Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ The first Qwen3 candidate was blocked at 35/36 when reasoning exhausted its answ

[Executed comparison and limits](docs/live-release-acceptance.md) · [Exact live gate](docs/evidence/live-release/qwen3-bounded-v2/gate.json) · [Actual release routing and rollback](docs/evidence/live-release/qwen3-bounded-v2/lifecycle.json) · [Download the offline evidence viewer](docs/release-review.html?raw=1)

![Read-only browser review of actual model decisions, independent outcomes and release evidence](docs/images/live-release/release-review-desktop.png)
![Read-only browser review of actual model decisions, independent outcomes and release evidence](docs/images/current-release-review/release-review-desktop.png)

*Captured from the running self-contained evidence viewer, not a live agent console. [Screenshot provenance](docs/images/live-release/release-review-provenance.json) · [Preserved initial failure](docs/images/live-release/release-review-initial-failure.png). Local finite-suite acceptance is not production certification or a commercial result.*
*Captured from the running self-contained evidence viewer, not a live agent console. [Current screenshot provenance](docs/images/current-release-review/release-review-provenance.json) · [Original capture](docs/images/live-release/release-review-provenance.json) · [Preserved initial failure](docs/images/live-release/release-review-initial-failure.png). Local finite-suite acceptance is not production certification or a commercial result.*

## Original baseline and release machinery

Expand Down
3 changes: 2 additions & 1 deletion docs/capture_release_review.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ def capture(output, axe_file):
page.on("request", lambda r: external.append(r.url) if r.url.startswith(("http:", "https:")) else None)
page.goto((DOCS / "release-review.html").as_uri())
page.wait_for_selector(".task")
assert page.locator("h1").inner_text() == "Can this agent act correctly, and can we release it safely?"
configurations = page.evaluate("JSON.parse(document.getElementById('evidence').textContent).configurations")
default_id = page.locator("#configuration").input_value()
for config in configurations:
Expand Down Expand Up @@ -94,7 +95,7 @@ def capture(output, axe_file):

if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--output", type=Path, default=DOCS / "images/live-release")
parser.add_argument("--output", type=Path, default=DOCS / "images/current-release-review")
parser.add_argument("--axe-file", type=Path, required=True)
args = parser.parse_args()
capture(args.output, args.axe_file)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
62 changes: 62 additions & 0 deletions docs/images/current-release-review/release-review-provenance.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{
"captured_at": "2026-10-26T12:31:22.886154+00:00",
"source": "docs/release-review.html",
"html_sha256": "d6fed0f77e763bdd72d692155396753c748f30acc26c18854d295990361fc989",
"capture_source_sha256": "c32076e2586f8b6d5b21dfe7aa3397d8303804904c0ee878565011babeb11271",
"axe_version": "4.10.3",
"axe_sha256": "880970c081707360e64f34cea25ff91892f5bc95675b0776925b9709dd8a68bb",
"checks": {
"desktop": {
"configuration_math": true,
"failure_filter": true,
"keyboard": true,
"record_export": true,
"viewport": [
1440,
1000
],
"no_overflow": true
},
"mobile": {
"configuration_math": true,
"failure_filter": true,
"keyboard": true,
"record_export": true,
"viewport": [
390,
844
],
"no_overflow": true
}
},
"accessibility": {
"desktop": {
"violations": [],
"incomplete_rule_ids": [
"aria-prohibited-attr"
],
"scope": "automated finite-page check, not accessibility certification"
},
"initial_failure": {
"violations": [],
"incomplete_rule_ids": [
"aria-prohibited-attr"
]
},
"mobile": {
"violations": [],
"incomplete_rule_ids": [
"aria-prohibited-attr"
],
"scope": "automated finite-page check, not accessibility certification"
}
},
"page_errors": [],
"external_network_requests": [],
"image_sha256": {
"release-review-desktop.png": "4a62b5a7b33f8c6ae8902ed40613a4546913fdbdbd62767978d2b644433b5a4b",
"release-review-initial-failure.png": "0633539183d1859ab4c579cd9059d7e2fa6031fa176df386c3a3de0163b70ad3",
"release-review-mobile.png": "a1096d657f8a5f1dbc42984bd806e298c99829aa0b307771d9e11d0c98ac92d2"
},
"execution_boundary": "actual Chromium rendering of recorded evidence; no fresh model or destination execution"
}
2 changes: 1 addition & 1 deletion docs/live-release-acceptance.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,4 @@ Optional screenshot reproduction uses [Playwright 1.55.0](browser-requirements.t
python docs/capture_release_review.py --axe-file work/axe.min.js
```

Desktop/mobile capture checks configuration arithmetic, failure filtering, keyboard navigation, exact JSON export, overflow, page errors and automated WCAG rules. Zero automated violations is not an accessibility certification. Capturing the viewer performs no model inference.
Desktop/mobile capture checks configuration arithmetic, failure filtering, keyboard navigation, exact JSON export, overflow, page errors and automated WCAG rules. Zero automated violations is not an accessibility certification. Capturing the viewer performs no model inference. Current captures are written to `docs/images/current-release-review/`; the original `docs/images/live-release/` captures and provenance are preserved unchanged. Current captures are written to `docs/images/current-release-review/`; the original `docs/images/live-release/` captures and provenance are preserved unchanged.
4 changes: 2 additions & 2 deletions docs/release-review-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@
"docs/evidence/live-release/qwen25-development/qwen25-1.5b-authority-facts-v4/original-uncertain-1.json": "b1b0d1fabef3d8da9ce86f1b6b4eb1692584bd09fba775bf7b653e6325431a6b"
},
"generator_sha256": "70c21dd68a83f7c15bc534dce04fdabc2dc2d7b5fee363fac2680d528de23abb",
"template_sha256": "8b81c5884f023abf569dec67621e7eb68e6b1bd8fc941ce6643f78d7fce9f96c",
"html_sha256": "8ad9e385cdc43919ec5f74bb28bf64779e8e1ac763d942828a838a8b5f3fb9e3",
"template_sha256": "88df70ea1ef0271669c3ec8b98549eef73f10c81b84caed7220c1815030dae78",
"html_sha256": "d6fed0f77e763bdd72d692155396753c748f30acc26c18854d295990361fc989",
"scope": "Self-contained projection of recorded local-model evidence; no inference, network or write authority"
}
2 changes: 1 addition & 1 deletion docs/release-review.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
:root{color-scheme:dark;--bg:#0a121d;--panel:#132132;--line:#2c4054;--text:#edf4fb;--muted:#b8c7d7;--accent:#8ed8d2;--bad:#ffc09c;--good:#9ee1c3}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 system-ui,Segoe UI,sans-serif}main{max-width:1440px;margin:auto;padding:32px 40px}a{color:var(--accent)}.mast{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:18px}.eyebrow{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:750}h1{font-size:clamp(27px,3vw,40px);line-height:1.15;max-width:900px;margin:17px 0 14px;letter-spacing:-.025em}h2{font-size:18px;margin:0 0 14px}h3{font-size:14px;margin:18px 0 8px}p{margin:8px 0;color:var(--muted)}.intro{max-width:960px;margin-bottom:24px}.boundary{font-size:12px;color:var(--muted);border:1px solid var(--line);padding:8px 12px;border-radius:6px;align-self:start}.toolbar{display:flex;align-items:end;gap:16px;margin:24px 0 16px}.toolbar label:first-child{flex:1}label{font-size:12px;font-weight:650;color:var(--muted)}select,input{background:#0d1927;border:1px solid #536b83;color:var(--text);border-radius:6px;padding:11px;font:inherit;max-width:100%}select{width:100%;margin-top:6px}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;vertical-align:middle}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 20px}.stat{background:var(--panel);padding:16px 20px;border:1px solid var(--line);border-radius:8px}.stat strong{display:block;font-size:28px;letter-spacing:-.04em}.stat span{font-size:12px;color:var(--muted)}.grid{display:grid;grid-template-columns:minmax(290px,.9fr) minmax(0,1.8fr);gap:20px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:20px;min-width:0}.sub{font-size:12px;color:var(--muted)}#tasks{max-height:610px;overflow:auto;padding-right:4px}.task{width:100%;display:block;text-align:left;border:1px solid var(--line);background:#0d1927;color:var(--text);border-radius:6px;margin:8px 0;padding:12px;cursor:pointer;font:inherit}.task[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent)}.task span{display:block;font-size:12px;color:var(--muted)}.task b{font-size:13px;overflow-wrap:anywhere}.tag{display:inline-block;border:1px solid var(--line);border-radius:4px;padding:3px 8px;font-size:11px;margin:0 6px 6px 0}.pass{color:var(--good)}.fail{color:var(--bad)}pre{background:#0b1724;border:1px solid var(--line);border-radius:6px;color:#dce9f6;padding:14px;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.5 Consolas,monospace;max-height:280px;overflow:auto}details{border-top:1px solid var(--line);margin-top:15px;padding-top:12px}summary{cursor:pointer;color:var(--accent);font-size:13px;font-weight:650}button.export{margin-top:12px;padding:9px 12px;border:1px solid #77b9b9;border-radius:5px;background:#1a3943;color:var(--text);cursor:pointer}button:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #ffe0a1;outline-offset:3px}.release-banner{border-left:3px solid var(--accent);background:var(--panel);padding:10px 14px;margin-top:16px;font-size:13px;color:var(--muted)}.release{padding:12px 16px;border:1px solid var(--line);border-left:3px solid var(--accent);margin-top:20px;border-radius:5px}.release h2{font-size:16px;margin:0 0 6px}.release p{font-size:13px}.footer{display:flex;justify-content:space-between;gap:16px;margin-top:24px;padding-top:14px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.hidden{display:none}@media(max-width:760px){main{padding:20px 16px}.mast,.footer{flex-direction:column;gap:10px}.toolbar{align-items:stretch;flex-direction:column;gap:12px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:12px}.stat strong{font-size:24px}.grid{grid-template-columns:minmax(0,1fr)}#tasks{max-height:260px}.panel{padding:16px}.boundary{align-self:stretch}pre{font-size:11px}}
</style></head><body><main>
<header class="mast"><div><div class="eyebrow">Engineering evidence / applied AI</div><b>Enterprise Agent Runtime & Evaluation</b></div><div class="boundary">Recorded local execution · Synthetic enterprise systems</div></header>
<section class="intro"><h1>Can this agent act correctly—and can we release it safely?</h1><p>Inspect actual model decisions, independently read destination effects and the release gate. Failed tasks remain visible even when deterministic controls prevented harm.</p><div class="release-banner" id="release-banner" role="status" aria-live="polite"></div></section>
<section class="intro"><h1>Can this agent act correctly, and can we release it safely?</h1><p>Inspect actual model decisions, independently read destination effects and the release gate. Failed tasks remain visible even when deterministic controls prevented harm.</p><div class="release-banner" id="release-banner" role="status" aria-live="polite"></div></section>
<section class="toolbar" aria-label="Evidence filters"><label for="configuration">Executed configuration<select id="configuration"></select></label><label><input id="failures" type="checkbox"> Show unsuccessful tasks only</label></section>
<section class="stats" aria-label="Executed results" id="stats"></section>
<section class="grid"><div class="panel"><h2>Recorded account tasks</h2><p class="sub" id="scope"></p><div id="tasks" aria-label="Select a recorded task"></div></div><article class="panel" id="detail" aria-label="Selected task evidence"></article></section>
Expand Down
2 changes: 1 addition & 1 deletion docs/release-review.template.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
:root{color-scheme:dark;--bg:#0a121d;--panel:#132132;--line:#2c4054;--text:#edf4fb;--muted:#b8c7d7;--accent:#8ed8d2;--bad:#ffc09c;--good:#9ee1c3}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 system-ui,Segoe UI,sans-serif}main{max-width:1440px;margin:auto;padding:32px 40px}a{color:var(--accent)}.mast{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:18px}.eyebrow{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:750}h1{font-size:clamp(27px,3vw,40px);line-height:1.15;max-width:900px;margin:17px 0 14px;letter-spacing:-.025em}h2{font-size:18px;margin:0 0 14px}h3{font-size:14px;margin:18px 0 8px}p{margin:8px 0;color:var(--muted)}.intro{max-width:960px;margin-bottom:24px}.boundary{font-size:12px;color:var(--muted);border:1px solid var(--line);padding:8px 12px;border-radius:6px;align-self:start}.toolbar{display:flex;align-items:end;gap:16px;margin:24px 0 16px}.toolbar label:first-child{flex:1}label{font-size:12px;font-weight:650;color:var(--muted)}select,input{background:#0d1927;border:1px solid #536b83;color:var(--text);border-radius:6px;padding:11px;font:inherit;max-width:100%}select{width:100%;margin-top:6px}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;vertical-align:middle}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 20px}.stat{background:var(--panel);padding:16px 20px;border:1px solid var(--line);border-radius:8px}.stat strong{display:block;font-size:28px;letter-spacing:-.04em}.stat span{font-size:12px;color:var(--muted)}.grid{display:grid;grid-template-columns:minmax(290px,.9fr) minmax(0,1.8fr);gap:20px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:20px;min-width:0}.sub{font-size:12px;color:var(--muted)}#tasks{max-height:610px;overflow:auto;padding-right:4px}.task{width:100%;display:block;text-align:left;border:1px solid var(--line);background:#0d1927;color:var(--text);border-radius:6px;margin:8px 0;padding:12px;cursor:pointer;font:inherit}.task[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent)}.task span{display:block;font-size:12px;color:var(--muted)}.task b{font-size:13px;overflow-wrap:anywhere}.tag{display:inline-block;border:1px solid var(--line);border-radius:4px;padding:3px 8px;font-size:11px;margin:0 6px 6px 0}.pass{color:var(--good)}.fail{color:var(--bad)}pre{background:#0b1724;border:1px solid var(--line);border-radius:6px;color:#dce9f6;padding:14px;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.5 Consolas,monospace;max-height:280px;overflow:auto}details{border-top:1px solid var(--line);margin-top:15px;padding-top:12px}summary{cursor:pointer;color:var(--accent);font-size:13px;font-weight:650}button.export{margin-top:12px;padding:9px 12px;border:1px solid #77b9b9;border-radius:5px;background:#1a3943;color:var(--text);cursor:pointer}button:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #ffe0a1;outline-offset:3px}.release-banner{border-left:3px solid var(--accent);background:var(--panel);padding:10px 14px;margin-top:16px;font-size:13px;color:var(--muted)}.release{padding:12px 16px;border:1px solid var(--line);border-left:3px solid var(--accent);margin-top:20px;border-radius:5px}.release h2{font-size:16px;margin:0 0 6px}.release p{font-size:13px}.footer{display:flex;justify-content:space-between;gap:16px;margin-top:24px;padding-top:14px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.hidden{display:none}@media(max-width:760px){main{padding:20px 16px}.mast,.footer{flex-direction:column;gap:10px}.toolbar{align-items:stretch;flex-direction:column;gap:12px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:12px}.stat strong{font-size:24px}.grid{grid-template-columns:minmax(0,1fr)}#tasks{max-height:260px}.panel{padding:16px}.boundary{align-self:stretch}pre{font-size:11px}}
</style></head><body><main>
<header class="mast"><div><div class="eyebrow">Engineering evidence / applied AI</div><b>Enterprise Agent Runtime & Evaluation</b></div><div class="boundary">Recorded local execution · Synthetic enterprise systems</div></header>
<section class="intro"><h1>Can this agent act correctly—and can we release it safely?</h1><p>Inspect actual model decisions, independently read destination effects and the release gate. Failed tasks remain visible even when deterministic controls prevented harm.</p><div class="release-banner" id="release-banner" role="status" aria-live="polite"></div></section>
<section class="intro"><h1>Can this agent act correctly, and can we release it safely?</h1><p>Inspect actual model decisions, independently read destination effects and the release gate. Failed tasks remain visible even when deterministic controls prevented harm.</p><div class="release-banner" id="release-banner" role="status" aria-live="polite"></div></section>
<section class="toolbar" aria-label="Evidence filters"><label for="configuration">Executed configuration<select id="configuration"></select></label><label><input id="failures" type="checkbox"> Show unsuccessful tasks only</label></section>
<section class="stats" aria-label="Executed results" id="stats"></section>
<section class="grid"><div class="panel"><h2>Recorded account tasks</h2><p class="sub" id="scope"></p><div id="tasks" aria-label="Select a recorded task"></div></div><article class="panel" id="detail" aria-label="Selected task evidence"></article></section>
Expand Down
5 changes: 4 additions & 1 deletion docs/verify_release_review.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,11 @@ def verify():
receipts = [t["detail"]["receipt"] for t in lifecycle["promoted_run"]["trace"] if t["kind"] == "verified_receipt"]
assert sorted(receipts, key=lambda r: r["key"]) == lifecycle["independent_effects"]
assert len(receipts) == 1 and receipts[0]["effect"]["tool"] == "create_task"
screenshot_proof = DOCS / "images/live-release/release-review-provenance.json"
screenshot_proof = DOCS / "images/current-release-review/release-review-provenance.json"
screenshots = 0
historical_proof = DOCS / "images/live-release/release-review-provenance.json"
for name, expected in load(historical_proof)["image_sha256"].items():
assert hashlib.sha256((historical_proof.parent / name).read_bytes()).hexdigest() == expected
if screenshot_proof.exists():
proof = load(screenshot_proof)
assert proof["html_sha256"] == manifest["html_sha256"]
Expand Down
Loading
Loading