diff --git a/docs/observatory.html b/docs/observatory.html index 0216331..91d2037 100644 --- a/docs/observatory.html +++ b/docs/observatory.html @@ -15,10 +15,10 @@ - - - - + + + + diff --git a/docs/webmcp-mission.js b/docs/webmcp-mission.js index 5c0fcb3..691a4e8 100644 --- a/docs/webmcp-mission.js +++ b/docs/webmcp-mission.js @@ -446,7 +446,6 @@ }, epoch_page: page, source_raw_sha256: projection.source_artifact_sha256, - projection_boundary: "Bounded scalar projection; the raw SHA-256 remains authoritative.", }, receipt); } @@ -485,6 +484,7 @@ } const bridge = await observatory(); await bridge.focusCausalPath(path.nodeIds, path.edges); + scrollToId("causal-field-title"); const nodeRows = path.nodeIds.map((id) => { const node = nodes.get(id); return { node_id: id, label: node.label, evidence_class: node.evidence_class }; diff --git a/tests/test_webmcp_contract.py b/tests/test_webmcp_contract.py index 7dc44ac..579fca2 100644 --- a/tests/test_webmcp_contract.py +++ b/tests/test_webmcp_contract.py @@ -377,9 +377,9 @@ def test_adapter_documents_late_bound_bridge_and_human_only_approval() -> None: def test_observatory_load_order_and_cache_keys_include_the_bridge_release() -> None: html = OBSERVATORY_HTML.read_text(encoding="utf-8") scripts = [ - 'observatory.js?v=20260903.2', - 'webmcp-tools.js?v=20260903.2', - 'webmcp-mission.js?v=20260903.2', + 'observatory.js?v=20260903.3', + 'webmcp-tools.js?v=20260903.3', + 'webmcp-mission.js?v=20260903.3', ] assert all(script in html for script in scripts) diff --git a/tests/test_webmcp_mission_runtime.mjs b/tests/test_webmcp_mission_runtime.mjs index e0557de..7e70c10 100644 --- a/tests/test_webmcp_mission_runtime.mjs +++ b/tests/test_webmcp_mission_runtime.mjs @@ -155,6 +155,7 @@ test("all eight WebMCP registrations execute against immutable evidence", async assert.equal(run.epoch_page.rows.length, 6); assert.equal(run.epoch_page.context_limit_applied, false); assert.equal(run.source_raw_sha256, "d6321d6fc4c0f71c4f14c2f799eff252348073b3fe5508783f9f078e7f5e9d76"); + assert.ok(JSON.stringify(run).length <= 1450, `run result left too little budget headroom: ${JSON.stringify(run).length}`); assert.equal(run.truncated, undefined); const trace = await execute("trace_causal_path", {