pi-session-mcp 0.8.3 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.pi-session-mcp-cli/client-adapters/command.js +33 -0
- package/.pi-session-mcp-cli/client-adapters/mcp-verifier.js +198 -0
- package/.pi-session-mcp-cli/client-adapters/types.js +1 -0
- package/.pi-session-mcp-cli/config.js +29 -3
- package/.pi-session-mcp-cli/container-runtime.js +18 -0
- package/.pi-session-mcp-cli/doctor.js +370 -4
- package/.pi-session-mcp-cli/execution-modes.js +83 -0
- package/.pi-session-mcp-cli/execution-profile.js +1 -0
- package/.pi-session-mcp-cli/override-lock.js +4 -4
- package/.pi-session-mcp-cli/session-tools.js +45 -0
- package/.pi-session-mcp-cli/setup-platform.js +64 -36
- package/.pi-session-mcp-cli/setup-process.js +455 -0
- package/.pi-session-mcp-cli/skill-library.js +8 -4
- package/.pi-session-mcp-cli/turn-events.js +97 -0
- package/.pi-session-mcp-cli/writer-boundary.js +321 -0
- package/.pi-session-mcp-cli/writer-fence.js +50 -0
- package/.pi-session-mcp-cli/writer-lease.js +140 -0
- package/.pi-session-mcp-cli/writer-lifecycle.js +567 -0
- package/.pi-session-mcp-cli/writer-state.js +199 -0
- package/.pi-session-mcp-cli/writer-wrapper.js +14 -0
- package/CHANGELOG.md +527 -0
- package/README.md +8 -2
- package/dist/capabilities.d.ts +9 -1
- package/dist/capabilities.js +8 -3
- package/dist/child-stdio-transport.d.ts +21 -0
- package/dist/child-stdio-transport.js +88 -0
- package/dist/client-adapters/claude-code.js +3 -2
- package/dist/client-adapters/command.d.ts +8 -0
- package/dist/client-adapters/command.js +9 -1
- package/dist/client-adapters/mcp-verifier.d.ts +7 -0
- package/dist/client-adapters/mcp-verifier.js +21 -4
- package/dist/client-adapters/types.d.ts +5 -1
- package/dist/client-adapters/writer-registration.d.ts +16 -0
- package/dist/client-adapters/writer-registration.js +156 -0
- package/dist/config.d.ts +12 -1
- package/dist/config.js +29 -3
- package/dist/container-runtime.d.ts +2 -0
- package/dist/container-runtime.js +18 -0
- package/dist/doctor.d.ts +36 -2
- package/dist/doctor.js +370 -4
- package/dist/event-spool.d.ts +70 -0
- package/dist/event-spool.js +180 -0
- package/dist/execution-modes.d.ts +60 -0
- package/dist/execution-modes.js +83 -0
- package/dist/execution-profile.d.ts +2 -0
- package/dist/execution-profile.js +1 -0
- package/dist/main.js +63 -8
- package/dist/override-lock.d.ts +2 -0
- package/dist/override-lock.js +4 -4
- package/dist/pi-adapter.d.ts +31 -1
- package/dist/pi-adapter.js +12 -0
- package/dist/process-diagnostics.d.ts +1 -1
- package/dist/process-diagnostics.js +2 -1
- package/dist/refusal-server.d.ts +6 -0
- package/dist/refusal-server.js +46 -0
- package/dist/sdk-pi-adapter.js +16 -9
- package/dist/server.d.ts +3 -2
- package/dist/server.js +27 -53
- package/dist/session-registry.d.ts +32 -2
- package/dist/session-registry.js +61 -11
- package/dist/session-tools.d.ts +14 -5
- package/dist/session-tools.js +13 -9
- package/dist/setup-cli.d.ts +14 -0
- package/dist/setup-cli.js +132 -0
- package/dist/setup-command-guardian.js +9 -3
- package/dist/setup-hooks.d.ts +158 -0
- package/dist/setup-hooks.js +657 -0
- package/dist/setup-main.d.ts +1 -1
- package/dist/setup-main.js +18 -2
- package/dist/setup-modes.d.ts +18 -0
- package/dist/setup-modes.js +131 -0
- package/dist/setup-ownership.d.ts +1 -0
- package/dist/setup-ownership.js +11 -3
- package/dist/setup-platform.d.ts +9 -1
- package/dist/setup-platform.js +64 -36
- package/dist/setup-process.d.ts +23 -1
- package/dist/setup-process.js +88 -10
- package/dist/setup-writers.d.ts +42 -0
- package/dist/setup-writers.js +510 -0
- package/dist/setup.d.ts +4 -1
- package/dist/setup.js +23 -10
- package/dist/skill-library.d.ts +2 -0
- package/dist/skill-library.js +8 -4
- package/dist/tool-schemas.d.ts +339 -0
- package/dist/tool-schemas.js +49 -0
- package/dist/turn-events.d.ts +45 -0
- package/dist/turn-events.js +97 -0
- package/dist/wake-hook.d.ts +180 -0
- package/dist/wake-hook.js +638 -0
- package/dist/wake-main.d.ts +8 -0
- package/dist/wake-main.js +111 -0
- package/dist/writer-acceptance.d.ts +10 -0
- package/dist/writer-acceptance.js +192 -0
- package/dist/writer-boundary.d.ts +52 -0
- package/dist/writer-boundary.js +321 -0
- package/dist/writer-credentials.d.ts +29 -0
- package/dist/writer-credentials.js +85 -0
- package/dist/writer-fence.d.ts +12 -0
- package/dist/writer-fence.js +50 -0
- package/dist/writer-guard.d.ts +13 -0
- package/dist/writer-guard.js +54 -0
- package/dist/writer-launch.d.ts +29 -0
- package/dist/writer-launch.js +232 -0
- package/dist/writer-lease.d.ts +28 -0
- package/dist/writer-lease.js +140 -0
- package/dist/writer-lifecycle.d.ts +96 -0
- package/dist/writer-lifecycle.js +567 -0
- package/dist/writer-relay.d.ts +33 -0
- package/dist/writer-relay.js +359 -0
- package/dist/writer-state.d.ts +111 -0
- package/dist/writer-state.js +199 -0
- package/dist/writer-wrapper.d.ts +3 -0
- package/dist/writer-wrapper.js +14 -0
- package/docs/acceptance.md +1694 -1
- package/docs/adr/0003-post-mvp-maintenance.md +2 -2
- package/docs/adr/0006-pi-extension-allowlist.md +3 -1
- package/docs/adr/0008-coding-profile-isolation.md +295 -0
- package/docs/adr/0009-execution-modes.md +131 -0
- package/docs/adr/0010-read-only-extension-tools.md +68 -0
- package/docs/adr/0011-turn-events-and-controller-wake.md +173 -0
- package/docs/adr/0012-leased-writer-pool.md +357 -0
- package/docs/architecture.md +96 -8
- package/docs/client-setup-design.md +12 -8
- package/docs/client-setup.md +84 -2
- package/docs/doctor-design.md +48 -0
- package/docs/evaluation/2026-10-17-live-screening.md +121 -0
- package/docs/evaluation/2026-10-17-node-runtime-followup.md +33 -0
- package/docs/evaluation/2026-10-17-profile-evaluation-evidence.md +155 -0
- package/docs/evaluation/2026-10-17-test-coverage.md +127 -0
- package/docs/evaluation/README.md +123 -0
- package/docs/evaluation/client-reconnect-2026-10-17/README.md +41 -0
- package/docs/evaluation/client-reconnect-2026-10-17/checks.json +38 -0
- package/docs/evaluation/client-reconnect-2026-10-17/integrity.json +30 -0
- package/docs/evaluation/client-reconnect-2026-10-17/reconnect.json +57 -0
- package/docs/evaluation/client-reconnect-2026-10-17/registration-verification.json +389 -0
- package/docs/evaluation/client-reconnect-2026-10-17/review.json +10 -0
- package/docs/evaluation/controller-ledger-hooks-2026-10-26/README.md +115 -0
- package/docs/evaluation/evidence-2026-10-17/budget.proposed.json +13 -0
- package/docs/evaluation/evidence-2026-10-17/changed-files.txt +82 -0
- package/docs/evaluation/evidence-2026-10-17/checks.json +103 -0
- package/docs/evaluation/evidence-2026-10-17/comparison.json +247 -0
- package/docs/evaluation/evidence-2026-10-17/development-collection-failure.json +15 -0
- package/docs/evaluation/evidence-2026-10-17/full-attempt-default.json +19 -0
- package/docs/evaluation/evidence-2026-10-17/full-tests.json +17 -0
- package/docs/evaluation/evidence-2026-10-17/inventory.json +239 -0
- package/docs/evaluation/evidence-2026-10-17/manifest.json +359 -0
- package/docs/evaluation/evidence-2026-10-17/offline.json +1020 -0
- package/docs/evaluation/evidence-2026-10-17/ui-reference/T3-1280.png +0 -0
- package/docs/evaluation/evidence-2026-10-17/ui-reference/T3-375.png +0 -0
- package/docs/evaluation/evidence-2026-10-17/ui-reference/result.json +141 -0
- package/docs/evaluation/extension-ablation-2026-10-20/README.md +414 -0
- package/docs/evaluation/extension-ablation-2026-10-20/setup.md +140 -0
- package/docs/evaluation/extension-ablation-repeat-2026-10-21/README.md +142 -0
- package/docs/evaluation/extension-ablation-repeat-2026-10-21/setup.md +69 -0
- package/docs/evaluation/extension-audit-2026-10-17/README.md +149 -0
- package/docs/evaluation/extension-audit-2026-10-17/checks.json +38 -0
- package/docs/evaluation/extension-audit-2026-10-17/cursor-static-evidence.json +93 -0
- package/docs/evaluation/extension-audit-2026-10-17/installed-artifact-comparison.json +85 -0
- package/docs/evaluation/extension-audit-2026-10-17/installed-packages.json +100 -0
- package/docs/evaluation/extension-audit-2026-10-17/integrity.json +108 -0
- package/docs/evaluation/extension-audit-2026-10-17/navigation-cursor-registry.json +290 -0
- package/docs/evaluation/extension-audit-2026-10-17/navigation-static-evidence.json +185 -0
- package/docs/evaluation/extension-audit-2026-10-17/openwiki-headless-bindings.json +25 -0
- package/docs/evaluation/extension-audit-2026-10-17/openwiki-headless-cleanup.json +12 -0
- package/docs/evaluation/extension-audit-2026-10-17/openwiki-headless-probe.mjs +63 -0
- package/docs/evaluation/extension-audit-2026-10-17/openwiki-headless-reproduction.json +91 -0
- package/docs/evaluation/extension-audit-2026-10-17/openwiki-headless-result.json +83 -0
- package/docs/evaluation/extension-audit-2026-10-17/permission-cache-artifact-verification.json +24 -0
- package/docs/evaluation/extension-audit-2026-10-17/permission-cache-evidence.json +133 -0
- package/docs/evaluation/extension-audit-2026-10-17/permission-cache-report.md +64 -0
- package/docs/evaluation/extension-audit-2026-10-17/publication-export.json +10 -0
- package/docs/evaluation/extension-audit-2026-10-17/resolver-gates.json +51 -0
- package/docs/evaluation/extension-audit-2026-10-17/review.json +28 -0
- package/docs/evaluation/extension-audit-2026-10-17/run-openwiki-headless-probe.mjs +29 -0
- package/docs/evaluation/extension-audit-2026-10-17/summary.json +123 -0
- package/docs/evaluation/extension-audit-2026-10-17/web-openwiki-artifacts.json +29 -0
- package/docs/evaluation/extension-audit-2026-10-17/web-openwiki-evidence.json +116 -0
- package/docs/evaluation/extension-audit-2026-10-17/web-openwiki-report.md +113 -0
- package/docs/evaluation/extension-functions-2026-10-17/README.md +33 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/README.md +39 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-03dc1dad-9959-40df-b51c-7820991bf7e3.json +79 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-0c43651e-8c7d-4c7c-aa9b-5b5761141e3b.json +54 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-51247b13-87c1-4ec6-886b-82d922b0585a.json +89 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-5337f6bf-503f-4c45-aac0-43b142385a87.json +47 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-60285194-b1d1-4335-b616-6614941585df.json +46 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-6d2fbaa9-a720-4582-9be1-a95f4764786d.json +69 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-6fbb576c-d87d-478d-9c05-4b5ef3563598.json +125 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-730926d1-ef20-4b2d-ab74-7e542f1065e9.json +48 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-a1baa47a-5bbe-4a16-ade8-a350599eb911.json +48 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-bc1d69c7-784f-4ddb-9335-0d905330d568.json +91 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-d582757d-2859-4683-8310-ec158bf6d551.json +99 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-e6533a23-4933-4d6e-a250-b1b27f010d18.json +60 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts.json +138 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/guard.mjs +74 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/integrity.json +86 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/openwiki-final.json +125 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/run.mjs +36 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/web-final.json +99 -0
- package/docs/evaluation/extension-functions-2026-10-17/bridges/worker.mjs +102 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/README.md +21 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-30-31-440Z-b1a47f88-8d86-4238-9ef8-af890d9ba74b.json +129 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-31-04-505Z-a3736add-73b8-4d77-8ea6-084ce8aa4599.json +129 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-31-15-654Z-b0197bff-8363-4d46-b84b-46d9ed67fc39.json +248 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-31-39-137Z-e373f24d-8a8c-46b0-86aa-9f687cfadb9b.json +278 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-32-05-324Z-f63095f1-755e-43fc-9d28-3cd1a9ff4f4d.json +251 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-32-25-191Z-fc9a83af-ceae-40d7-a737-8ef861ba7946.json +282 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-33-14-993Z-5e7eae34-09f0-4c80-9210-b8cc4d1acb5f.json +282 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-38-39-010Z-57cf6a26-f091-45de-8849-b616b303a46c.json +283 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-40-32-118Z-54528e43-ac07-4f9c-8f12-10c041130983.json +283 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-41-49-525Z-48195b6e-f20d-49a5-bd53-a732a0af10c1.json +324 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-42-18-175Z-215330e7-06a6-4666-af9c-2ecb214d8d71.json +324 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/integrity.json +165 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/probe.mjs +161 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipt-archive.json +150 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/commands-headless-3feeffc5-97bf-4079-8505-8119fab7956a.json +54 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/commands-headless-42e5eace-ad87-480a-94d9-448c1dd167b8.json +49 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/commands-headless-50f39f1c-8b48-442b-8d15-1f9c8f63bd81.json +49 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/commands-headless-8482b2b0-f600-488b-9f36-905e0125177a.json +54 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-codex-bypass-128ffdce-6fd5-431b-8019-32b40ba4174d.json +42 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-codex-bypass-3b572182-a737-471f-b9cb-b01d5da1752a.json +42 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-codex-bypass-6c225370-2f47-4a0a-80d5-87d12f6c6fdc.json +37 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-codex-bypass-b48399db-cbed-43de-9071-ac27c34e3757.json +37 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-openai-3a8f52b6-c8d6-4d1c-844c-782a6624a29e.json +45 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-openai-6fcdbc20-b14b-4b80-a4da-bf24078da8d2.json +50 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-openai-a8d6f628-40e1-437e-b192-f7232a051a44.json +50 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-openai-c3c39463-a2d6-4ff8-b985-8f6d1fb1aa02.json +45 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/stats-synthetic-a23c264f-151d-4ff0-aab4-bdbb2f6560d8.json +53 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/stats-synthetic-d8178bd3-6530-4915-9cf1-056a975bfbcd.json +53 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/stats-synthetic-e3985119-e101-459e-91cd-21a0905287ba.json +48 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/stats-synthetic-e7a40382-2d27-4db5-a133-dbe346a5dc60.json +48 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-unknown-223d7adc-2dbc-4017-b1ec-0c38294320e2.json +41 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-unknown-347a8548-d2e0-4846-a08e-b0399f8fd3b4.json +41 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-unknown-49b45e2b-e2d2-456f-b73f-e6bc938b6378.json +46 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-unknown-aaf432f2-bb91-41a7-b951-2d4316389632.json +46 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-zero-204ab3e8-f1fe-4894-8fb0-08299deb4c21.json +41 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-zero-9388d2df-fa15-479c-a4ef-2a774c366c0f.json +46 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-zero-e0bb4742-214a-4b3f-88d2-44de54394e2f.json +46 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-zero-f77e1e2d-742a-490f-9955-1dfb19f59c9c.json +41 -0
- package/docs/evaluation/extension-functions-2026-10-17/cache/runner.mjs +36 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/README.md +20 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-36-10-753Z-2bb4fff5-48cc-4f6b-ae1b-5cc1a07f610b.json +54 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-36-26-537Z-5adc4fb1-0008-4ef9-a106-aa372dabf061.json +56 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-36-32-362Z-30949c31-73a3-4dae-af81-68deded51543.json +56 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-36-38-494Z-8eec81b8-5576-48cb-b2fa-c279269db058.json +56 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-36-45-546Z-991647e5-7ea4-43c4-a90d-868e4ac38d83.json +56 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-37-02-277Z-2296fb35-e5cb-4bf1-9e83-7370bcb46bfe.json +56 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-37-28-390Z-e9c3d106-b4c9-4146-ae83-a2799c907fe5.json +56 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-37-37-371Z-8545c893-a8e3-4dc6-973b-81dfd97d798b.json +56 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-38-41-612Z-c57c4778-261d-4397-8a36-df9cc23ca629.json +58 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-38-51-661Z-0eb898de-7471-4f17-a308-5ef5d86421ff.json +58 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-38-55-412Z-8169d843-a9e7-48f4-88b1-3a90e1592df1.json +58 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-39-15-274Z-a5610333-e428-4cc6-9f5a-9206748ee512.json +58 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-39-39-506Z-d4c80a7b-76b4-4d11-bf0f-552d11b131b2.json +136 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-39-53-515Z-db409f47-8ee5-4354-b7f9-a258eb7e17d0.json +136 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-42-04-909Z-01d70cb3-6897-46ca-b8aa-1c69d5b5c7fc.json +148 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/integrity.json +205 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/probe.mjs +151 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipt-archive.json +186 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-104e378f-8f82-4ae9-bffc-7f1d52e00e74.json +15 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-182a8009-c52a-4760-9768-9cba15fceb9c.json +14 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-1f07360d-046f-4f0c-b40f-6b57a027220c.json +65 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-256cb86e-40ae-4fec-a2d2-9b7f66cc4be8.json +14 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-2667d991-3133-44c3-b883-c401b3c14cb1.json +14 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-394fc425-ed51-408f-ab09-6d26aee0d48f.json +14 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-531d3f1d-c326-4914-b768-3d32103513b9.json +14 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-5c7d0d62-8290-494f-8729-5d60bc626ad7.json +14 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-64af1d94-ea73-481f-b827-dbf6755d8591.json +66 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-65fce696-864c-4247-960e-59f6d671cbf9.json +15 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-66acde31-19c7-4d3e-9814-ddeb2cffd373.json +14 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-79d220d0-fc0b-4cad-85cc-40b9e904fb97.json +14 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-a58f0281-71bc-4757-9d6f-e281f813135e.json +65 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-c2b61e4b-fd33-4969-ab29-118957ca5fbb.json +15 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-f61b5020-2c05-40ad-9cb8-590b22790186.json +15 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-0ee0df5a-299f-451c-96e3-5abcf8bfa999.json +45 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-169e5146-09a2-4231-8017-ebd8d4b75f0a.json +14 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-19d479f2-7162-463e-90de-2d89a13e59a3.json +15 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-1bd882bb-2403-4269-8335-90f9803f57b7.json +14 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-2ab9d418-68b2-4679-bf42-f31b6945ea5a.json +15 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-3a6aa7d7-b956-4fe5-9555-a2c63408c067.json +45 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-6333425f-0b46-4ced-a272-3d48895ee853.json +15 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-6eccb170-ff45-40e2-afc5-dfc0f77c229f.json +14 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-7f330c57-9c3f-4879-a1d0-67c4c5c36050.json +14 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-8d9de272-165c-4bb8-a147-d1b306388472.json +14 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-c1ffa69f-25fa-4f45-a691-af3bc422c089.json +14 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-c24ad0c8-5e7e-4d71-9b22-3e2708ce1626.json +14 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-c5a3140e-a28e-4264-9ee6-51b1310b3123.json +14 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-cdbb3dde-2441-46ae-9111-f2a299d45807.json +46 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-d68f774c-d1f0-4620-b334-301a20edffc3.json +15 -0
- package/docs/evaluation/extension-functions-2026-10-17/cursor/runner.mjs +147 -0
- package/docs/evaluation/extension-functions-2026-10-17/integrity.json +618 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/README.md +22 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/SHA256SUMS.txt +8 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempt.json +13 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-30-37-626Z-7ba0ce60-b805-4bf1-813f-80f0673c519d.json +50 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-31-06-997Z-0df6e689-b7f6-4daf-a730-724638c7e9bb.json +52 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-31-22-489Z-dfa50911-d117-400d-9ea3-76b224693c10.json +59 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-31-39-899Z-6792c0ef-c795-4136-98e2-b9a9b00489bd.json +59 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-31-58-555Z-e23d44fb-d2cb-42b6-b76b-f2ac53645401.json +59 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-32-18-734Z-3708117d-bca6-44a6-9f61-4339a67535ae.json +60 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-32-34-897Z-abbfb675-7120-46fc-8638-2dde943a3c51.json +114 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-33-30-753Z-f1965485-aa41-4a9a-b62e-267fc9d7686c.json +72 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-33-46-589Z-e3b46364-e0dd-4a95-91ce-c11f5192d83f.json +72 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-33-57-569Z-d296148e-2f64-4921-bad7-391d0f3cc61d.json +74 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-34-30-540Z-51791e8c-b2a7-4f93-bff6-9b0467aeba51.json +109 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-34-57-906Z-2c3e469c-6d89-4707-8bc6-e62dcfacdc7c.json +114 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-35-16-679Z-035260fc-f3d1-4c1c-9619-81f2aa2ced55.json +115 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-36-05-641Z-24ceb58d-441b-4ffe-9853-ef4d15eb8c81.json +73 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-37-00-445Z-1ca606b7-306f-41e9-8745-b53879c620bb.json +72 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-37-23-659Z-c958d5fc-5c17-46b9-abc0-87913f14fd4b.json +73 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-38-49-639Z-9e74ee3c-7cea-4d9e-832f-0b5068d161ec.json +112 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-39-53-463Z-5d834e9f-e247-4887-8200-dee41070567f.json +32 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-40-16-811Z-0be9d64c-a0d7-405c-b81a-12f8c6cfebac.json +33 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-40-36-020Z-412777d5-f352-4fa0-9a07-f017b5f04cbb.json +124 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-42-03-506Z-a0cca711-1300-4431-bfff-5814a409d0af.json +120 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-42-28-426Z-fb70da7e-4888-469a-b5cd-b74da52afa9f.json +112 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-42-41-596Z-c8e99863-70e2-40f1-a516-e9f41156ef44.json +71 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-44-06-279Z-39516e45-daf6-409b-b216-64179608cc2e.json +97 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-45-34-538Z-87ddef90-2fda-4211-a513-0516dec235f4.json +112 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-45-48-020Z-06f478f2-43c4-48a7-ac02-7e53d4df8aaf.json +112 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-46-00-807Z-a98cc49d-6cf6-4109-aa95-f2d36e8d35c3.json +97 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-46-34-183Z-77f75abc-9ec3-41b2-896f-b6f4a180dca8.json +160 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-46-56-605Z-f46134c2-8523-4892-ab76-e88195d79ed2.json +163 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/child-guard.mjs +30 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/final-result.json +42 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/function-probe.mjs +521 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/function-runner.mjs +201 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/integrity.json +153 -0
- package/docs/evaluation/extension-functions-2026-10-17/navigation/receipt-archive.json +160 -0
- package/docs/evaluation/extension-functions-2026-10-17/review.json +27 -0
- package/docs/evaluation/extension-functions-2026-10-17/summary.json +102 -0
- package/docs/evaluation/extension-functions-2026-10-17/verification.json +103 -0
- package/docs/evaluation/isolation-acceptance-2026-10-18/README.md +106 -0
- package/docs/evaluation/isolation-acceptance-2026-10-18/auth-warmup.mjs +33 -0
- package/docs/evaluation/isolation-acceptance-2026-10-18/contained-agent-ro.json +433 -0
- package/docs/evaluation/isolation-acceptance-2026-10-18/contained.json +439 -0
- package/docs/evaluation/isolation-acceptance-2026-10-18/control.json +403 -0
- package/docs/evaluation/isolation-acceptance-2026-10-18/live.json +75 -0
- package/docs/evaluation/isolation-acceptance-2026-10-18/wrapper.sh +37 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/README.md +360 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/design.md +150 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/inventory.md +113 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/live/README.md +117 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/live/dry-run/dry-01-L1-A.json +202 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/live/dry-run/dry-02-L1-C.json +259 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run/01-L1-A.json +169 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run/02-L1-A.json +202 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run/03-L1-C.json +256 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run/approval.json +31 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run-2/01-L1-C.json +256 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run-2/02-L1-A.json +201 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run-2/approval.json +16 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/live-plan.md +87 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/pre-registration.md +117 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S1.json +361 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S2.json +544 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S3.json +470 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S4.json +271 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S5.json +271 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S6.json +266 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/X6.json +29 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/summary.json +269 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S1.json +391 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S2.json +600 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S3.json +519 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S4.json +281 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S5.json +294 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S6.json +280 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S8.json +280 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/X6.json +32 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/summary.json +307 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S1.json +391 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S2.json +600 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S3.json +519 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S4.json +281 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S5.json +294 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S6.json +280 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S8.json +280 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/X6.json +32 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/summary.json +307 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S1.json +409 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S2.json +634 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S3.json +537 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S4.json +281 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S5.json +294 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S6.json +280 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S8.json +280 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/X6.json +32 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/summary.json +307 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S1.json +409 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S2.json +634 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S3.json +537 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S4.json +281 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S5.json +294 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S6.json +280 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S8.json +280 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/X6.json +32 -0
- package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/summary.json +307 -0
- package/docs/evaluation/live-rescreen-2026-10-17/README.md +114 -0
- package/docs/evaluation/live-rescreen-2026-10-17/approval.json +18 -0
- package/docs/evaluation/live-rescreen-2026-10-17/approved-budget.json +13 -0
- package/docs/evaluation/live-rescreen-2026-10-17/approved-manifest.json +315 -0
- package/docs/evaluation/live-rescreen-2026-10-17/audit-rescreen.mjs +78 -0
- package/docs/evaluation/live-rescreen-2026-10-17/audit.json +152 -0
- package/docs/evaluation/live-rescreen-2026-10-17/backend-independent-checks.json +38 -0
- package/docs/evaluation/live-rescreen-2026-10-17/checks.json +54 -0
- package/docs/evaluation/live-rescreen-2026-10-17/execution.json +19 -0
- package/docs/evaluation/live-rescreen-2026-10-17/integrity.json +138 -0
- package/docs/evaluation/live-rescreen-2026-10-17/planning-ledger.json +26 -0
- package/docs/evaluation/live-rescreen-2026-10-17/review.json +16 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/comparison.json +177 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-1.claim +1 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-1.diagnostic.json +1 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-1.json +97 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-2.claim +1 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-2.json +104 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-2.patch +11 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-2.snapshot/contract.mjs +4 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-2.snapshot/package.json +1 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-3.claim +1 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-3.json +89 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-4.claim +1 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-4.json +104 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-4.patch +11 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-4.snapshot/contract.mjs +4 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-4.snapshot/package.json +1 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-5.claim +1 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-5.diagnostic.json +1 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-5.json +117 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-6.json +53 -0
- package/docs/evaluation/live-rescreen-2026-10-17/runtime-observation.json +11 -0
- package/docs/evaluation/live-screening-2026-10-17/approval.json +13 -0
- package/docs/evaluation/live-screening-2026-10-17/approved-budget.json +13 -0
- package/docs/evaluation/live-screening-2026-10-17/approved-manifest.json +359 -0
- package/docs/evaluation/live-screening-2026-10-17/audit.json +143 -0
- package/docs/evaluation/live-screening-2026-10-17/integrity.json +148 -0
- package/docs/evaluation/live-screening-2026-10-17/inventory.json +239 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/comparison.json +247 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-1.claim +1 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-1.diagnostic.json +1 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-1.json +98 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-2.claim +1 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-2.json +104 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-2.patch +11 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-2.snapshot/contract.mjs +4 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-2.snapshot/package.json +1 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-3.claim +1 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-3.diagnostic.json +1 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-3.json +97 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-4.claim +1 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-4.json +104 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-4.patch +11 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-4.snapshot/contract.mjs +4 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-4.snapshot/package.json +1 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-5.claim +1 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-5.diagnostic.json +1 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-5.json +97 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-6.claim +1 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-6.json +104 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-6.patch +11 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-6.snapshot/contract.mjs +4 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-6.snapshot/package.json +1 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-7.claim +1 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-7.json +108 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-8.claim +1 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-8.diagnostic.json +1 -0
- package/docs/evaluation/live-screening-2026-10-17/runs/screen-8.json +116 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/README.md +124 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/ab-proposal.json +135 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-1/README.md +25 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-1/approved-budget.json +13 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-1/approved-decision.json +79 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-1/approved-manifest.json +271 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-1/token-live-result.json +546 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-2/README.md +22 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-2/approved-budget.json +13 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-2/approved-decision.json +80 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-2/approved-manifest.json +271 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-2/token-live-result.json +1663 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-3/README.md +23 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-3/approved-budget.json +13 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-3/approved-decision.json +71 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-3/approved-manifest.json +271 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-3/token-live-result.json +1748 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/README.md +25 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-A/approved-budget.json +13 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-A/approved-decision.json +71 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-A/approved-manifest.json +271 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-A/token-live-result.json +3019 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-B/approved-budget.json +13 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-B/approved-decision.json +71 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-B/approved-manifest.json +271 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-B/token-live-result.json +2859 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/README.md +67 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r1-pair1-A/approved-budget.json +13 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r1-pair1-A/approved-decision.json +71 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r1-pair1-A/approved-manifest.json +271 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r1-pair1-A/token-live-result.json +3019 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r2-pair1-B/approved-budget.json +13 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r2-pair1-B/approved-decision.json +71 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r2-pair1-B/approved-manifest.json +271 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r2-pair1-B/token-live-result.json +2981 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r3-pair2-B/approved-budget.json +13 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r3-pair2-B/approved-decision.json +71 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r3-pair2-B/approved-manifest.json +271 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r3-pair2-B/token-live-result.json +2887 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r4-pair2-A/approved-budget.json +13 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r4-pair2-A/approved-decision.json +71 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r4-pair2-A/approved-manifest.json +271 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r4-pair2-A/token-live-result.json +3189 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r5-pair3-B/approved-budget.json +13 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r5-pair3-B/approved-decision.json +71 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r5-pair3-B/approved-manifest.json +271 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r5-pair3-B/token-live-result.json +2929 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r6-pair3-A/approved-budget.json +13 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r6-pair3-A/approved-decision.json +71 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r6-pair3-A/approved-manifest.json +271 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r6-pair3-A/token-live-result.json +3085 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r7-pair4-A/approved-budget.json +13 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r7-pair4-A/approved-decision.json +71 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r7-pair4-A/approved-manifest.json +271 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r7-pair4-A/token-live-result.json +3019 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r8-pair4-B/approved-budget.json +13 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r8-pair4-B/approved-decision.json +71 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r8-pair4-B/approved-manifest.json +271 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r8-pair4-B/token-live-result.json +2925 -0
- package/docs/evaluation/m1-ab-proposal-2026-10-18/results/summary-rows.json +338 -0
- package/docs/evaluation/node24-followup-2026-10-17/README.md +55 -0
- package/docs/evaluation/node24-followup-2026-10-17/client-migration-review.json +20 -0
- package/docs/evaluation/node24-followup-2026-10-17/client-registration-migration.json +31 -0
- package/docs/evaluation/node24-followup-2026-10-17/client-registration-verification.json +389 -0
- package/docs/evaluation/node24-followup-2026-10-17/closure-checks.json +33 -0
- package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-probe.mjs +259 -0
- package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-report.md +39 -0
- package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-result-attempt-2.json +49 -0
- package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-result-attempt-3.json +76 -0
- package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-result-attempt-4.json +108 -0
- package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-result.json +12 -0
- package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-run.mjs +96 -0
- package/docs/evaluation/node24-followup-2026-10-17/download.json +16 -0
- package/docs/evaluation/node24-followup-2026-10-17/extension-summary.json +97 -0
- package/docs/evaluation/node24-followup-2026-10-17/final-review.json +15 -0
- package/docs/evaluation/node24-followup-2026-10-17/install.json +10 -0
- package/docs/evaluation/node24-followup-2026-10-17/integrity.json +204 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-evidence.json +39 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-probe.mjs +277 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-report.md +35 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-19-48-378Z-b378dc9f-9ab8-4349-8892-78af8184f78f.json +151 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-20-22-821Z-85cfcba4-c05e-4c5a-9658-d8d70f5c8d1a.json +223 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-20-54-825Z-fd5d8373-6e29-4197-84bd-2e65251b4db8.json +207 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-21-44-636Z-488698ad-f8bf-4d7e-b85a-615275c32e5d.json +82 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-22-05-375Z-16f5d77c-32a2-4d0a-905a-e080b392316f.json +94 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-22-07-471Z-fcbe7c98-fed3-4120-a860-b2e3f9572836.json +63 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-22-17-638Z-45ec386d-3429-4a7c-a10e-8673c03861f0.json +63 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-22-22-485Z-1b08e134-667c-4416-8372-cb233939c48b.json +125 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-22-25-490Z-223fd05e-52f9-4996-88d7-3ec43a6ecdd9.json +125 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-23-42-291Z-f4af1e12-844e-4b2d-a090-9068e7626dd5.json +82 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-24-36-866Z-30770d13-c7ae-4309-921b-5c1b43050adb.json +52 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-25-05-378Z-2a5dffc1-3f3a-433a-823f-6e77964dcaee.json +53 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-25-15-842Z-798946f5-b9a5-4810-8a0c-35be6f40abb3.json +83 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-25-19-099Z-89bd000d-bb51-4e3a-b713-51ff1ff4e38b.json +87 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-runner.mjs +172 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-install.json +121 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-package-lock.json +2321 -0
- package/docs/evaluation/node24-followup-2026-10-17/isolated-package.json +12 -0
- package/docs/evaluation/node24-followup-2026-10-17/launcher-review.json +17 -0
- package/docs/evaluation/node24-followup-2026-10-17/launcher-switch.json +28 -0
- package/docs/evaluation/node24-followup-2026-10-17/mcp-launcher-test.json +24 -0
- package/docs/evaluation/node24-followup-2026-10-17/migrate-client-node.mjs +129 -0
- package/docs/evaluation/node24-followup-2026-10-17/node-runtime-report.md +127 -0
- package/docs/evaluation/node24-followup-2026-10-17/node24-checks.json +44 -0
- package/docs/evaluation/node24-followup-2026-10-17/pi-launcher-test.json +13 -0
- package/docs/evaluation/node24-followup-2026-10-17/publication-export.json +11 -0
- package/docs/evaluation/node24-followup-2026-10-17/restore-launchers.mjs +26 -0
- package/docs/evaluation/node24-followup-2026-10-17/verify-client-node.mjs +36 -0
- package/docs/evaluation/permission-gates-2026-10-17/README.md +23 -0
- package/docs/evaluation/permission-gates-2026-10-17/attempts.json +53 -0
- package/docs/evaluation/permission-gates-2026-10-17/integrity.json +46 -0
- package/docs/evaluation/permission-gates-2026-10-17/permission-gate-probe.mjs +132 -0
- package/docs/evaluation/permission-gates-2026-10-17/permission-gate-worker.mjs +209 -0
- package/docs/evaluation/permission-gates-2026-10-17/permission-gates-result-final.json +53 -0
- package/docs/evaluation/permission-gates-2026-10-17/permission-gates-result-verified.json +54 -0
- package/docs/evaluation/permission-gates-2026-10-17/permission-gates-result.json +53 -0
- package/docs/evaluation/permission-gates-2026-10-17/review.json +19 -0
- package/docs/evaluation/permission-gates-2026-10-17/superseded-initial-receipt.json +40 -0
- package/docs/evaluation/pi-lens-registration-2026-10-19/README.md +90 -0
- package/docs/evaluation/pi-lens-registration-2026-10-19/probe.mjs +126 -0
- package/docs/evaluation/pi-lens-registration-2026-10-19/result.json +1 -0
- package/docs/evaluation/plan-continuation-2026-10-17/README.md +107 -0
- package/docs/evaluation/plan-continuation-2026-10-17/budget.proposed.json +13 -0
- package/docs/evaluation/plan-continuation-2026-10-17/checks.json +1048 -0
- package/docs/evaluation/plan-continuation-2026-10-17/integrity.json +58 -0
- package/docs/evaluation/plan-continuation-2026-10-17/inventory.json +239 -0
- package/docs/evaluation/plan-continuation-2026-10-17/manifest.proposed.json +315 -0
- package/docs/evaluation/plan-continuation-2026-10-17/next-stage-ledger.json +19 -0
- package/docs/evaluation/plan-continuation-2026-10-17/prepare-rescreen.mjs +30 -0
- package/docs/evaluation/plan-continuation-2026-10-17/prior-integrity.json +25 -0
- package/docs/evaluation/plan-continuation-2026-10-17/proposal-validation.json +14 -0
- package/docs/evaluation/plan-continuation-2026-10-17/receipt-contract-update.patch +40 -0
- package/docs/evaluation/plan-continuation-2026-10-17/review.json +8 -0
- package/docs/evaluation/plan-continuation-2026-10-17/source-delta.json +14 -0
- package/docs/evaluation/profile-evaluation.md +297 -0
- package/docs/evaluation/publication-2026-10-17/README.md +88 -0
- package/docs/evaluation/publication-2026-10-17/checks.json +117 -0
- package/docs/evaluation/publication-2026-10-17/integrity.json +21 -0
- package/docs/evaluation/publication-2026-10-17/publication-scan.json +63 -0
- package/docs/evaluation/publication-2026-10-17/review.json +21 -0
- package/docs/evaluation/s5-decision-inputs-2026-10-18/README.md +16 -0
- package/docs/evaluation/s5-decision-inputs-2026-10-18/bounded-wait.md +78 -0
- package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/README.md +151 -0
- package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/attempt-1/claude-projection.json +126 -0
- package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/attempt-2/claude-projection.json +1895 -0
- package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/attempt-3/claude-projection.json +1895 -0
- package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/attempt-4/claude-projection.json +1797 -0
- package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/attempt-5/claude-projection.json +1797 -0
- package/docs/evaluation/s5-decision-inputs-2026-10-18/worker-usage.md +63 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/README.md +212 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/binding.json +20 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/config-ev-off.json +43 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/config-ev-spool.json +43 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/config-l3.json +39 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/config-pre.json +31 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e-teardown-setup-remove.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-clean-10s.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-clean.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-digest-ev-e1.json +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-leaks.json +131 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-oracle.json +74 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-run.json +33 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-setup-1-dryrun.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-setup-2-apply.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-setup-3-verify.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-clean-10s.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-clean.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-digest-ev-e2l.json +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-digest-ev-e2s.json +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-leaks.json +205 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-oracle.json +110 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-run.json +33 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-clean-10s.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-clean.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-digest-ev-e3.json +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-leaks.json +215 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-oracle.json +79 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-run.json +33 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-clean-10s.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-clean.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-digest-ev-e4a.json +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-digest-ev-e4b.json +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-late-a.json +16 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-late-b.json +16 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-leaks.json +167 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-oracle.json +70 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-run.json +37 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-clean-10s.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-clean.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-digest-ev-e5.json +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-leaks.json +82 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-oracle.json +60 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-run.json +33 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-server-env-names.txt +14 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-clean-10s.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-clean.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-digest-ev-e1.json +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-leaks.json +156 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-run.json +37 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-setup-apply.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-teardown-remove.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/final-e-clean.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/kit.sha256 +23 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l2-packed-off.json +1185 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l2-packed-spool.json +1334 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l2-wt-off.json +1185 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l2-wt-spool.json +1334 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-clean-10s.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-clean.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-digest-cc-analysis.json +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-leaks.json +80 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-oracle.json +61 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-run.json +33 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-clean-10s.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-clean.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-leaks.json +80 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-oracle-stage1.json +34 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-oracle-stage2.json +35 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-run.json +33 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-snapshot-stage1.txt +4 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-snapshot-stage2.txt +5 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-clean-10s.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-clean.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-digest-cc-abort.json +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-leaks.json +82 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-oracle-flow.json +61 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-oracle-late.json +16 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-run.json +33 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-controller-skill-remove.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-controller-skill-setup.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-clean-10s.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-clean.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-digest-cx-analysis.json +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-leaks.json +93 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-oracle.json +61 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-run.json +33 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-clean-10s.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-clean.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-leaks.json +93 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-oracle-stage1.json +34 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-oracle-stage2.json +35 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-run.json +33 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-snapshot-stage1.txt +4 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-snapshot-stage2.txt +5 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-clean-10s.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-clean.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-digest-cx-abort.json +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-leaks.json +95 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-oracle-flow.json +61 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-oracle-late.json +16 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-run.json +33 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-clean-10s.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-clean.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-digest-pre-analysis.json +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-digest-pre-code.json +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-leaks.json +86 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-oracle.json +39 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-run.json +33 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-clean-10s.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-clean.json +15 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-digest-pre-analysis.json +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-digest-pre-code.json +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-leaks.json +47 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-oracle.json +39 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-run.json +33 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/regdigest-after-cc.json +6 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/regdigest-after-cx.json +6 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/regdigest-after-e.json +6 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/regdigest-before.json +6 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-control-apply.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-control-dryrun.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-provision-apply-attempt1.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-provision-apply-attempt2.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-provision-dryrun.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-writer-verify.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2-leaks.json +130 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2-oracle.txt +14 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2-run.json +33 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2b-oracle.txt +16 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2c-oracle.txt +8 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2d-oracle.txt +6 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2r-leaks.json +130 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2r-oracle.txt +3 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2r-run.json +33 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w3-collect.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w3-finish.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w3r-collect.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w3r-finish.json +1 -0
- package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w4-remove.json +1 -0
- package/docs/evaluation/subagent-probe-2026-10-26/README.md +132 -0
- package/docs/evaluation/subagent-probe-2026-10-26/results/K7.json +463 -0
- package/docs/evaluation/subagent-probe-2026-10-26/results/summary.json +50 -0
- package/docs/evaluation/test-coverage-2026-10-17.json +483 -0
- package/docs/evaluation/test-coverage-review-2026-10-17.json +22 -0
- package/docs/evaluation/test-coverage-verification-2026-10-17.json +31 -0
- package/docs/evaluation/token-footprint-2026-10-17/README.md +297 -0
- package/docs/evaluation/token-footprint-2026-10-17/baseline.json +25871 -0
- package/docs/evaluation/token-footprint-2026-10-17/calibration-2/README.md +24 -0
- package/docs/evaluation/token-footprint-2026-10-17/calibration-2/baseline.json +30346 -0
- package/docs/evaluation/token-footprint-2026-10-17/calibration-2/client-projection.json +2538 -0
- package/docs/evaluation/token-footprint-2026-10-17/calibration-2/live-approval/budget.json +13 -0
- package/docs/evaluation/token-footprint-2026-10-17/calibration-2/live-approval/decision.json +69 -0
- package/docs/evaluation/token-footprint-2026-10-17/calibration-2/live-approval/manifest.json +271 -0
- package/docs/evaluation/token-footprint-2026-10-17/calibration-2/live-package.json +785 -0
- package/docs/evaluation/token-footprint-2026-10-17/calibration-2/measurement.json +37956 -0
- package/docs/evaluation/token-footprint-2026-10-17/calibration-2/summary.json +119 -0
- package/docs/evaluation/token-footprint-2026-10-17/checks-final.json +273 -0
- package/docs/evaluation/token-footprint-2026-10-17/checks.json +190 -0
- package/docs/evaluation/token-footprint-2026-10-17/client-attempts/README.md +25 -0
- package/docs/evaluation/token-footprint-2026-10-17/client-attempts/attempt-4.json +2274 -0
- package/docs/evaluation/token-footprint-2026-10-17/client-attempts/pilot-1.json +77 -0
- package/docs/evaluation/token-footprint-2026-10-17/client-attempts/pilot-2.json +81 -0
- package/docs/evaluation/token-footprint-2026-10-17/client-attempts/pilot-3.json +121 -0
- package/docs/evaluation/token-footprint-2026-10-17/current-calibration/baseline.json +30346 -0
- package/docs/evaluation/token-footprint-2026-10-17/current-calibration/measurement.json +37956 -0
- package/docs/evaluation/token-footprint-2026-10-17/current-calibration/summary.json +119 -0
- package/docs/evaluation/token-footprint-2026-10-17/current-client-projection.json +2538 -0
- package/docs/evaluation/token-footprint-2026-10-17/follow-up.md +76 -0
- package/docs/evaluation/token-footprint-2026-10-17/integrity.json +171 -0
- package/docs/evaluation/token-footprint-2026-10-17/live-approval/README.md +36 -0
- package/docs/evaluation/token-footprint-2026-10-17/live-approval/budget.json +13 -0
- package/docs/evaluation/token-footprint-2026-10-17/live-approval/decision.json +69 -0
- package/docs/evaluation/token-footprint-2026-10-17/live-approval/manifest.json +271 -0
- package/docs/evaluation/token-footprint-2026-10-17/live-package.json +795 -0
- package/docs/evaluation/token-footprint-2026-10-17/live-proposal.json +427 -0
- package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/README.md +75 -0
- package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-1/approved-budget.json +13 -0
- package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-1/approved-decision.json +69 -0
- package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-1/approved-manifest.json +271 -0
- package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-1/token-live-result.json +837 -0
- package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-2/approved-budget.json +13 -0
- package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-2/approved-decision.json +69 -0
- package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-2/approved-manifest.json +271 -0
- package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-2/token-live-result.json +985 -0
- package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-3/approved-budget.json +13 -0
- package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-3/approved-decision.json +69 -0
- package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-3/approved-manifest.json +271 -0
- package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-3/token-live-result.json +3055 -0
- package/docs/evaluation/token-footprint-2026-10-17/measurement.json +32476 -0
- package/docs/evaluation/token-footprint-2026-10-17/prior-calibration/README.md +20 -0
- package/docs/evaluation/token-footprint-2026-10-17/prior-calibration/integrity.json +40 -0
- package/docs/evaluation/token-footprint-2026-10-17/summary.json +119 -0
- package/docs/evaluation/tool-definitions-2026-10-18/README.md +204 -0
- package/docs/evaluation/tool-definitions-2026-10-18/codex-projection/after/client-projection.json +2853 -0
- package/docs/evaluation/tool-definitions-2026-10-18/codex-projection/before/client-projection.json +2853 -0
- package/docs/evaluation/tool-definitions-2026-10-18/compare-validation.mjs +64 -0
- package/docs/evaluation/tool-definitions-2026-10-18/diff-validation.mjs +13 -0
- package/docs/evaluation/tool-definitions-2026-10-18/measure-wire.mjs +31 -0
- package/docs/evaluation/worker-system-prompt-2026-10-26/README.md +95 -0
- package/docs/evaluation/worker-system-prompt-2026-10-26/probe.mjs +155 -0
- package/docs/execution-modes.md +388 -0
- package/docs/installation.md +246 -12
- package/docs/isolation-setup.md +258 -0
- package/docs/macos-setup-design.md +2 -2
- package/docs/pi-extensions-design.md +71 -16
- package/docs/releasing.md +12 -6
- package/docs/reviews/2026-10-18-adr-0008-decision-brief.md +53 -0
- package/docs/roadmap.md +320 -9
- package/docs/session-mcp.md +5 -1
- package/docs/skills.md +23 -0
- package/docs/sprints/2026-10-15-s4-decision.md +73 -4
- package/docs/sprints/2026-10-17-token-footprint.md +130 -0
- package/docs/sprints/2026-10-18-s5-maintenance-orchestration.md +202 -0
- package/docs/sprints/2026-10-21-s6-ledger-event-bridge.md +120 -0
- package/docs/sprints/2026-10-24-s7-stabilization-live-acceptance.md +173 -0
- package/docs/sprints/2026-10-24-s8-writer-migration.md +235 -0
- package/docs/sprints/2026-10-26-s10-orchestration-reliability.md +250 -0
- package/docs/sprints/2026-10-26-s11-orchestration-gaps.md +173 -0
- package/docs/threat-model.md +37 -6
- package/docs/tool-contracts.md +91 -9
- package/package.json +17 -11
- package/scripts/isolation-acceptance.mjs +709 -0
- package/scripts/isolation-probe.cjs +213 -0
- package/skills/pi-session-implementation/SKILL.md +13 -3
- package/skills/pi-session-orchestration/SKILL.md +50 -13
- package/skills/pi-session-orchestration/references/start-errors.md +12 -0
- package/skills/pi-session-review/SKILL.md +13 -5
package/docs/acceptance.md
CHANGED
|
@@ -206,6 +206,21 @@ node scripts/setup-acceptance.mjs \
|
|
|
206
206
|
rm -rf "$PREFIX" ./pi-session-mcp-<x.y.z>.tgz
|
|
207
207
|
```
|
|
208
208
|
|
|
209
|
+
Turn-event delivery: `--events spool` runs the same lifecycle with
|
|
210
|
+
`"events": { "delivery": "spool" }` in the acceptance configuration
|
|
211
|
+
([ADR 0011](adr/0011-turn-events-and-controller-wake.md)).
|
|
212
|
+
- Claude Code commands get a disposable `XDG_RUNTIME_DIR` below the run
|
|
213
|
+
directory. Codex commands get none, as Codex passes none to its MCP servers.
|
|
214
|
+
- Every Claude Code step also checks the `hook:pi-session-mcp-wake` finding
|
|
215
|
+
(`hook_add_planned`, `hook_added`, `hook_already_equivalent`,
|
|
216
|
+
`hook_verified`, `hook_removed`) and the number of wake entries in the
|
|
217
|
+
scope's settings file.
|
|
218
|
+
- A foreign `PostToolUse` entry is written before the run and must survive it.
|
|
219
|
+
- After each `--verify`, no spool instance directory may remain.
|
|
220
|
+
|
|
221
|
+
A run passes 228 checks instead of 160. It caught #113 in `0.11.0`:
|
|
222
|
+
`--verify` failed with `mcp_unsupported` on every target.
|
|
223
|
+
|
|
209
224
|
The CI job and a nightly workflow (`.github/workflows/install-smoke.yml`) run
|
|
210
225
|
`scripts/install-smoke.mjs` against a lockfile-free install: CI against the
|
|
211
226
|
packed tarball of the commit, the nightly job against the published
|
|
@@ -231,7 +246,9 @@ lock-contention and interruption steps, Level 1, or the tag identity checks
|
|
|
231
246
|
### macOS
|
|
232
247
|
|
|
233
248
|
macOS uses the same isolation, sequence and pass criteria, with the additions
|
|
234
|
-
below.
|
|
249
|
+
below. Runs for Claude Code are recorded under [Status](#status), in
|
|
250
|
+
[2026-10-16](#macos-acceptance-on-real-hardware-2026-10-16) and in
|
|
251
|
+
[2026-10-26](#macos-acceptance-on-real-hardware-2026-10-26). macOS is
|
|
235
252
|
CI-tested, and it has not passed Level 2 for Codex.
|
|
236
253
|
|
|
237
254
|
- **Environment.** Record:
|
|
@@ -1585,6 +1602,1396 @@ Not established for `0.8.3`: the ten-task Level 3 cycle on SDK `1.2.0`, the
|
|
|
1585
1602
|
hardware (R10, R11), and other providers and models. The published-release
|
|
1586
1603
|
acceptance follows after publication.
|
|
1587
1604
|
|
|
1605
|
+
### v0.8.3 post-release evidence
|
|
1606
|
+
|
|
1607
|
+
The published-release acceptance of `v0.8.3` ran on 2026-10-16 from 05:03 UTC
|
|
1608
|
+
on Linux (`x64`) with Node.js `26.11.1`, npm `12.2.0`, Codex CLI `0.162.1` and
|
|
1609
|
+
Claude Code `2.1.299`. It passed for the tag and for the installed npm
|
|
1610
|
+
package.
|
|
1611
|
+
|
|
1612
|
+
Tag binding: a fresh clone of the annotated tag `v0.8.3` (tag object
|
|
1613
|
+
`8a5e7529aec42e1c438df20c8adba6e533454257`) peels to
|
|
1614
|
+
`53ed581a0c5eb4e35c184e68a7c6a9b840de5985`, the merge of #80, and
|
|
1615
|
+
`git describe --tags --exact-match` reports `v0.8.3`. CI passed on the merge
|
|
1616
|
+
commit (run `38795484290`) and on the tag (run `38796022840`) on Linux,
|
|
1617
|
+
macOS 15 and macOS 26.
|
|
1618
|
+
|
|
1619
|
+
Provider-free (Level 1), on that clone. Every command exited with `0`:
|
|
1620
|
+
- 55 test files: 1425 passed and 6 skipped, with strict unhandled rejections
|
|
1621
|
+
and no unhandled error.
|
|
1622
|
+
- `npm audit` and `npm audit --omit=dev`: 0 vulnerabilities.
|
|
1623
|
+
- `git diff --check` and `git status --short` printed nothing.
|
|
1624
|
+
- Offline Doctor with the example configuration: `packageVersion` `0.8.3`;
|
|
1625
|
+
its only finding was the placeholder workspace (`workspace_missing`).
|
|
1626
|
+
|
|
1627
|
+
`package.json`, `package-lock.json`, `dist/main.js` and the `dist` tree were
|
|
1628
|
+
byte-identical before and after the client cycles; `dist/main.js` has the
|
|
1629
|
+
SHA-256 `47875d38886528ace6b242df2c6ad79d624c51e330e63c2f401576eadc449ed7`.
|
|
1630
|
+
|
|
1631
|
+
Package publication, a release fact and not an acceptance level: the npm
|
|
1632
|
+
package `pi-session-mcp@0.8.3` was published by the maintainer from the tag.
|
|
1633
|
+
It has 136 files, shasum `ae9fa4d6160c7af568f465794d32943be11c5a56` and
|
|
1634
|
+
integrity
|
|
1635
|
+
`sha512-5QL32NPOcajbVcWSFYPK/Q97t1yRHA7gFjzJEkgViURGqTMFom8RGSPWC+3izhJY0cZZvwxOh/Cjkg2iAn//8g==`.
|
|
1636
|
+
The tarball downloaded from the registry has the same digests, and its shasum
|
|
1637
|
+
equals a `npm publish --dry-run` from a fresh clone of the tag. It has no
|
|
1638
|
+
provenance attestation.
|
|
1639
|
+
|
|
1640
|
+
Real clients without a model (Level 2), with `scripts/setup-acceptance.mjs`:
|
|
1641
|
+
- Tag clone: 160 of 160 checks passed; all nine steps passed on all four
|
|
1642
|
+
targets.
|
|
1643
|
+
- npm package, installed with `npm install -g --prefix` into a temporary
|
|
1644
|
+
prefix without the lockfile: version `0.8.3`, the same `dist/main.js`, and
|
|
1645
|
+
every `@earendil-works` package at `1.2.0` with one copy each, although
|
|
1646
|
+
`1.3.0` of the SDK family had been published in the meantime. The install
|
|
1647
|
+
smoke reported `smoke_passed`, and 160 of 160 checks passed.
|
|
1648
|
+
- In both runs the real client registrations were unchanged, no process
|
|
1649
|
+
remained, and the build stayed byte-identical.
|
|
1650
|
+
|
|
1651
|
+
Fresh installs of every earlier version, on 2026-10-16 with npm `12.2.0`:
|
|
1652
|
+
0.6.1 (Pi SDK `1.0.4`) and 0.6.2 to 0.8.2 (Pi SDK `1.1.0`) resolved the SDK's
|
|
1653
|
+
internal packages to `1.3.0` and exited at startup with the `SyntaxError` of
|
|
1654
|
+
#78; only 0.8.3 started.
|
|
1655
|
+
|
|
1656
|
+
Installation upgrades on 2026-10-16, following
|
|
1657
|
+
[Installation](installation.md#npm-installation):
|
|
1658
|
+
- Linux workstation, npm prefix in the home directory: from `0.8.1` to
|
|
1659
|
+
`0.8.3` for `claude-code:user` (the only owned target there). `--verify`
|
|
1660
|
+
with `0.8.1` passed, `--remove` reported `removed` and `skill_removed`, the
|
|
1661
|
+
new package resolved every `@earendil-works` package to `1.2.0`, the install
|
|
1662
|
+
smoke passed, Doctor with the operator configuration reported no finding,
|
|
1663
|
+
and `--apply` then `--verify` reported `mcp_verified` and `skill_verified`.
|
|
1664
|
+
- Linux server (npm `10.9.8`, Node.js `22.23.2`): from `0.8.1` to `0.8.3` for
|
|
1665
|
+
`claude-code:user` and `codex:user`, with the same sequence and results.
|
|
1666
|
+
- Client sessions that were open during an upgrade keep their old server
|
|
1667
|
+
process until they end.
|
|
1668
|
+
|
|
1669
|
+
### v0.9.0 pre-release acceptance
|
|
1670
|
+
|
|
1671
|
+
Before its release, `v0.9.0` passed Level 1, the working-tree Level 2 and the
|
|
1672
|
+
packed-tarball Level 2 on its release candidate `4a2d514` on Linux (`x64`),
|
|
1673
|
+
with Node.js `26.11.1`, npm `12.2.1`, Codex CLI `0.162.1` and Claude Code
|
|
1674
|
+
`2.1.302`, on 2026-10-19:
|
|
1675
|
+
|
|
1676
|
+
- Level 1 on the release branch: every command exited with `0`, except Doctor
|
|
1677
|
+
as noted below.
|
|
1678
|
+
- The test run, with `NODE_OPTIONS=--unhandled-rejections=strict`, reported
|
|
1679
|
+
90 files, 1915 passed and 6 skipped, and no unhandled error. The suite
|
|
1680
|
+
includes the rootless Podman integration tests for writer provisioning,
|
|
1681
|
+
collect and reset, which ran against real Podman.
|
|
1682
|
+
- `npm audit` and `npm audit --omit=dev` reported 0 vulnerabilities.
|
|
1683
|
+
- `npm pack --dry-run` listed 666 files. These include the three skills,
|
|
1684
|
+
`scripts/isolation-acceptance.mjs`, `scripts/isolation-probe.cjs`,
|
|
1685
|
+
`dist/writer-launch.js` and `dist/refusal-server.js`. They include no
|
|
1686
|
+
sources, tests, lockfile or implementation plan.
|
|
1687
|
+
- Doctor reported `packageVersion` `0.9.0`. With the example configuration
|
|
1688
|
+
its findings were the placeholder workspace (`workspace_missing`) and the
|
|
1689
|
+
new `workspace_mode_unset` warning for that alias.
|
|
1690
|
+
- Level 2 through `scripts/setup-acceptance.mjs` on the candidate's working
|
|
1691
|
+
tree: 160 of 160 checks passed. All nine steps passed on all four targets.
|
|
1692
|
+
The real client registrations were unchanged, the built files were
|
|
1693
|
+
unchanged, and the path-leak check passed.
|
|
1694
|
+
- Packed-tarball Level 2: the candidate's tarball, installed with
|
|
1695
|
+
`npm install -g --prefix` into a fresh prefix without the lockfile, resolved
|
|
1696
|
+
every `@earendil-works` package to `1.2.0` with a single copy each. The
|
|
1697
|
+
install smoke reported `smoke_passed` with version `0.9.0`. Level 2 against
|
|
1698
|
+
the installed package passed 160 of 160 checks, with the same results for
|
|
1699
|
+
registrations, build and path leaks.
|
|
1700
|
+
|
|
1701
|
+
Not established for `0.9.0`: a live run of the automated container writers
|
|
1702
|
+
(the explicit host isolation control run, provisioning with contained
|
|
1703
|
+
acceptance, a coding session through a generated writer registration, and
|
|
1704
|
+
`--finish`), the migration of the manual writers `psm-alpha` and `go-app-alpha`,
|
|
1705
|
+
the ten-task Level 3 cycle, and macOS on real hardware for this release. The
|
|
1706
|
+
writer lifecycle is Linux-only; on macOS the release keeps `host` and
|
|
1707
|
+
`read-only` mode selection. The published-release acceptance follows after
|
|
1708
|
+
publication.
|
|
1709
|
+
|
|
1710
|
+
### v0.9.0 post-release evidence
|
|
1711
|
+
|
|
1712
|
+
The published-release acceptance of `v0.9.0` ran on 2026-10-19 from 12:40 UTC
|
|
1713
|
+
on Linux (`x64`) with Node.js `26.11.1`, npm `12.2.1`, Codex CLI `0.162.1` and
|
|
1714
|
+
Claude Code `2.1.303`. It passed for the tag and for the installed npm
|
|
1715
|
+
package.
|
|
1716
|
+
|
|
1717
|
+
Tag binding: a fresh clone of the annotated tag `v0.9.0` (tag object
|
|
1718
|
+
`b1a7f3800ec74b3f99c84d2e2c96841f2d2ea08f`) peels to
|
|
1719
|
+
`b9d254a9f6628c7435cd61cf565a1da8f26190be`, the merge of #100, and
|
|
1720
|
+
`git describe --tags --exact-match` reports `v0.9.0`. CI passed on the merge
|
|
1721
|
+
commit (run `39207028658`) and on the tag (run `39207320511`) on Linux,
|
|
1722
|
+
macOS 15 and macOS 26.
|
|
1723
|
+
|
|
1724
|
+
Provider-free (Level 1), on that clone. Every command exited with `0`:
|
|
1725
|
+
- 90 test files: 1915 passed and 6 skipped, with strict unhandled rejections
|
|
1726
|
+
and no unhandled error.
|
|
1727
|
+
- `npm audit` and `npm audit --omit=dev`: 0 vulnerabilities.
|
|
1728
|
+
- `git diff --check` and `git status --short` printed nothing.
|
|
1729
|
+
- Offline Doctor reported `packageVersion` `0.9.0`. With the example
|
|
1730
|
+
configuration its findings were the placeholder workspace
|
|
1731
|
+
(`workspace_missing`) and `workspace_mode_unset` for that alias.
|
|
1732
|
+
|
|
1733
|
+
`package.json`, `package-lock.json`, `dist/main.js` and the `dist` tree were
|
|
1734
|
+
byte-identical before and after the client cycles; `dist/main.js` has the
|
|
1735
|
+
SHA-256 `4c36369fd9151969ee6cfe300d4833001db2728979e8a5d096e0bac715e378da`.
|
|
1736
|
+
|
|
1737
|
+
Package publication, a release fact and not an acceptance level: the npm
|
|
1738
|
+
package `pi-session-mcp@0.9.0` was published by the maintainer from the tag
|
|
1739
|
+
at 06:42 UTC. It has 666 files, shasum
|
|
1740
|
+
`f57f150ad9d4bc55263e450aabea6f448e88d8d8` and integrity
|
|
1741
|
+
`sha512-qSWggifyAUPVSE32iER+/1jAvTPkn/0YTg4rDmCsu6La3EE+Gf/fTUL0DU/kAqulxea2HyBGPug4sBXVLvP3tw==`.
|
|
1742
|
+
The `dist` and `skills` trees of the registry tarball are identical to the
|
|
1743
|
+
installed package. It has no provenance attestation.
|
|
1744
|
+
|
|
1745
|
+
Real clients without a model (Level 2), with `scripts/setup-acceptance.mjs`:
|
|
1746
|
+
- Tag clone: 160 of 160 checks passed; all nine steps passed on all four
|
|
1747
|
+
targets.
|
|
1748
|
+
- npm package, installed with `npm install -g --prefix` into a temporary
|
|
1749
|
+
prefix without the lockfile: version `0.9.0`, the same `dist/main.js`, and
|
|
1750
|
+
every `@earendil-works` package at `1.2.0` with one copy each, although
|
|
1751
|
+
`1.3.0` of the SDK family had been published in the meantime. The install
|
|
1752
|
+
smoke reported `smoke_passed`, and 160 of 160 checks passed.
|
|
1753
|
+
- In both runs the real client registrations were unchanged, no process
|
|
1754
|
+
remained, and the build stayed byte-identical.
|
|
1755
|
+
|
|
1756
|
+
Installation on the Linux workstation: the npm prefix in the home directory
|
|
1757
|
+
holds `0.9.0`, byte-identical to the registry tarball. `--verify` for
|
|
1758
|
+
`claude-code:user`, the only owned target there, reported `mcp_verified` and
|
|
1759
|
+
`skill_verified`; Doctor with the operator configuration reported no error,
|
|
1760
|
+
only `workspace_gitfile` and `workspace_mode_unset` warnings. The Linux server
|
|
1761
|
+
was still on `0.8.3` and is upgraded with the next release.
|
|
1762
|
+
|
|
1763
|
+
Not established for `0.9.0` after publication: the same gates as before
|
|
1764
|
+
publication (live container writers, migration of the manual writers, Level 3,
|
|
1765
|
+
macOS on real hardware).
|
|
1766
|
+
|
|
1767
|
+
### v0.9.1 pre-release acceptance
|
|
1768
|
+
|
|
1769
|
+
Before its release, `v0.9.1` passed Level 1, the working-tree Level 2 and the
|
|
1770
|
+
packed-tarball Level 2 on its release candidate `e42610e` on Linux (`x64`),
|
|
1771
|
+
with Node.js `26.11.1`, npm `12.2.1`, Codex CLI `0.162.1` and Claude Code
|
|
1772
|
+
`2.1.303`, on 2026-10-19. The release moves the Pi SDK and its six family
|
|
1773
|
+
packages from `1.2.0` to `1.3.0`. Before the move, `scripts/pi-sdk-canary.sh
|
|
1774
|
+
1.3.0` reported the candidate compatible (typecheck passed, 13 SDK-facing test
|
|
1775
|
+
files with 313 passed and 1 skipped).
|
|
1776
|
+
|
|
1777
|
+
- Level 1 on the release branch: every command exited with `0`, except Doctor
|
|
1778
|
+
as noted below.
|
|
1779
|
+
- The test run, with `NODE_OPTIONS=--unhandled-rejections=strict`, reported
|
|
1780
|
+
90 files, 1915 passed and 6 skipped, and no unhandled error, including the
|
|
1781
|
+
rootless Podman integration tests against real Podman.
|
|
1782
|
+
- `npm audit` and `npm audit --omit=dev` reported 0 vulnerabilities.
|
|
1783
|
+
- `npm pack --dry-run` listed 666 files.
|
|
1784
|
+
- Doctor reported `packageVersion` `0.9.1` and exited with `2`, as expected
|
|
1785
|
+
for the example configuration: its findings were the placeholder workspace
|
|
1786
|
+
(`workspace_missing`, an error) and `workspace_mode_unset` for that alias.
|
|
1787
|
+
- Level 2 through `scripts/setup-acceptance.mjs` on the candidate's working
|
|
1788
|
+
tree: 160 of 160 checks passed. The real client registrations were
|
|
1789
|
+
unchanged, no process remained, the built files were unchanged, and the
|
|
1790
|
+
path-leak check passed.
|
|
1791
|
+
- Packed-tarball Level 2: the candidate's tarball (shasum
|
|
1792
|
+
`5f5673d1b311ec8d376db939a77d6e3dc9222829`), installed with
|
|
1793
|
+
`npm install -g --prefix` into a fresh prefix without the lockfile, resolved
|
|
1794
|
+
every `@earendil-works` package to `1.3.0` with a single copy each. The
|
|
1795
|
+
install smoke reported `smoke_passed` with version `0.9.1`. Level 2 against
|
|
1796
|
+
the installed package passed 160 of 160 checks, with the same results for
|
|
1797
|
+
registrations, processes, build and path leaks.
|
|
1798
|
+
|
|
1799
|
+
Not established for `0.9.1`: any live run on Pi SDK `1.3.0` (Level 3, the
|
|
1800
|
+
container writers or a single provider turn), the migration of the manual
|
|
1801
|
+
writers, and macOS on real hardware. CI covers macOS 15 and 26. The
|
|
1802
|
+
published-release acceptance follows after publication.
|
|
1803
|
+
|
|
1804
|
+
### v0.9.1 post-release evidence
|
|
1805
|
+
|
|
1806
|
+
The published-release acceptance of `v0.9.1` ran on 2026-10-19 from 14:11 UTC
|
|
1807
|
+
on Linux (`x64`) with Node.js `26.11.1`, npm `12.2.1`, Codex CLI `0.162.1` and
|
|
1808
|
+
Claude Code `2.1.303`. It passed for the tag and for the installed npm
|
|
1809
|
+
package.
|
|
1810
|
+
|
|
1811
|
+
Tag binding: a fresh clone of the annotated tag `v0.9.1` (tag object
|
|
1812
|
+
`f517163d7a4bc1e95a58d3a106a4ab225733538b`) peels to
|
|
1813
|
+
`891a3937959dadc0ddb222015bb20f35c6c9070d`, the merge of #101, and
|
|
1814
|
+
`git describe --tags --exact-match` reports `v0.9.1`. CI passed on the merge
|
|
1815
|
+
commit (run `39263723693`) and on the tag (run `39264797691`) on Linux,
|
|
1816
|
+
macOS 15 and macOS 26. In both runs the macOS 26 job first failed on a Vitest
|
|
1817
|
+
timeout in `test/multi-session-acceptance.test.ts` and passed when rerun; the
|
|
1818
|
+
same timeout also hit the release branch, and a deadline test in
|
|
1819
|
+
`test/mcp-stdio-e2e.test.ts` failed once the same way. The test budgets were
|
|
1820
|
+
raised afterwards.
|
|
1821
|
+
|
|
1822
|
+
Provider-free (Level 1), on that clone. Every command exited with `0`:
|
|
1823
|
+
- 90 test files: 1915 passed and 6 skipped, with strict unhandled rejections
|
|
1824
|
+
and no unhandled error.
|
|
1825
|
+
- `npm audit` and `npm audit --omit=dev`: 0 vulnerabilities.
|
|
1826
|
+
- `git diff --check` and `git status --short` printed nothing.
|
|
1827
|
+
- Offline Doctor reported `packageVersion` `0.9.1`.
|
|
1828
|
+
|
|
1829
|
+
`package.json`, `package-lock.json`, `dist/main.js` and the `dist` tree were
|
|
1830
|
+
byte-identical before and after the client cycles; `dist/main.js` has the
|
|
1831
|
+
SHA-256 `4c36369fd9151969ee6cfe300d4833001db2728979e8a5d096e0bac715e378da`,
|
|
1832
|
+
the same as in `0.9.0`, because the entry module itself did not change.
|
|
1833
|
+
|
|
1834
|
+
Package publication, a release fact and not an acceptance level: the npm
|
|
1835
|
+
package `pi-session-mcp@0.9.1` was staged with `npm stage publish` from a fresh
|
|
1836
|
+
clone of the tag and approved by the maintainer. It has 666 files, shasum
|
|
1837
|
+
`fb4ccdf3cd389149365ffa54e8643303a302c491` and integrity
|
|
1838
|
+
`sha512-sfX9ipU9HISNYcKLG9xVsi28CyaF6DrySjoegeSHLGupiZak+Z9CAGwbZx0AXXP97R7LWUI59m4eU1Jk8q5CNA==`;
|
|
1839
|
+
the registry serves the staged shasum. It has no provenance attestation.
|
|
1840
|
+
|
|
1841
|
+
Real clients without a model (Level 2), with `scripts/setup-acceptance.mjs`:
|
|
1842
|
+
- Tag clone: 160 of 160 checks passed.
|
|
1843
|
+
- npm package, installed with `npm install -g --prefix` into a temporary
|
|
1844
|
+
prefix without the lockfile: version `0.9.1`, the same `dist/main.js`, and
|
|
1845
|
+
every `@earendil-works` package at `1.3.0` with one copy each. The install
|
|
1846
|
+
smoke reported `smoke_passed`, and 160 of 160 checks passed.
|
|
1847
|
+
- In both runs the real client registrations were unchanged, no process
|
|
1848
|
+
remained, and the build stayed byte-identical.
|
|
1849
|
+
|
|
1850
|
+
Installation upgrades on 2026-10-19, following
|
|
1851
|
+
[Installation](installation.md#npm-installation):
|
|
1852
|
+
- Linux workstation, npm prefix in the home directory: from `0.9.0` to
|
|
1853
|
+
`0.9.1` for `claude-code:user`, the only owned target there. `--remove`
|
|
1854
|
+
reported `removed` and `skill_removed`, Doctor with the operator
|
|
1855
|
+
configuration reported warnings only (`workspace_gitfile`,
|
|
1856
|
+
`workspace_mode_unset`), and `--apply` then `--verify` reported
|
|
1857
|
+
`mcp_verified` and `skill_verified`.
|
|
1858
|
+
- Linux server (npm prefix `~/.npm-global`): from `0.8.3` to `0.9.1` for
|
|
1859
|
+
`claude-code:user` and `codex:user`, with the same sequence and results.
|
|
1860
|
+
Setup ran with Node.js `24.22.0` first on `PATH`, the runtime of the
|
|
1861
|
+
existing registrations, so the new registrations kept it.
|
|
1862
|
+
- Two client sessions on the server were open during the upgrade at the
|
|
1863
|
+
operator's request; they keep their old server process until they end.
|
|
1864
|
+
|
|
1865
|
+
Single-turn provider smoke, after publication and not an acceptance level:
|
|
1866
|
+
on each machine, a stdio MCP client started one session per execution
|
|
1867
|
+
profile, sent one short prompt that asked for a fixed one-word reply, polled
|
|
1868
|
+
the turn to `completed` and closed the session. All ten configured profiles
|
|
1869
|
+
passed on the workstation and on the server, including the two profiles with
|
|
1870
|
+
the `pi-cursor-sdk@0.5.3` extension; on the workstation the two manual
|
|
1871
|
+
container writers `psm-alpha` and `go-app-alpha`, which mount the installed
|
|
1872
|
+
package, passed for their `code` and `review` profiles. No workspace or
|
|
1873
|
+
writer clone changed. This is the first provider use on Pi SDK `1.3.0`; it
|
|
1874
|
+
says nothing about task quality, Level 3 or the automated container writers.
|
|
1875
|
+
|
|
1876
|
+
### v0.10.0 pre-release acceptance
|
|
1877
|
+
|
|
1878
|
+
Before its release, `v0.10.0` passed Level 1, the working-tree Level 2, the
|
|
1879
|
+
packed-tarball Level 2 and a live check of a granted extension tool on its
|
|
1880
|
+
release candidate `1a5cca7` on Linux (`x64`), with Node.js `26.11.1`, npm
|
|
1881
|
+
`12.2.1`, Codex CLI `0.162.1` and Claude Code `2.1.303`, on 2026-10-19. The
|
|
1882
|
+
release adds granted extension tools for read-only profiles
|
|
1883
|
+
([ADR 0010](adr/0010-read-only-extension-tools.md)). A provider-free probe
|
|
1884
|
+
first showed that `pi-lens@4.4.3` registers `symbol_search` and
|
|
1885
|
+
`project_report` when its extension loads
|
|
1886
|
+
([evidence](evaluation/pi-lens-registration-2026-10-19/README.md)).
|
|
1887
|
+
|
|
1888
|
+
- Level 1 on the release branch: every command exited with `0`, except Doctor
|
|
1889
|
+
as noted below.
|
|
1890
|
+
- The test run, with `NODE_OPTIONS=--unhandled-rejections=strict`, reported
|
|
1891
|
+
90 files, 1958 passed and 6 skipped, and no unhandled error, including the
|
|
1892
|
+
real-SDK contract tests for granted, missing, hidden and deactivated
|
|
1893
|
+
extension tools.
|
|
1894
|
+
- `npm audit` and `npm audit --omit=dev` reported 0 vulnerabilities.
|
|
1895
|
+
- `npm pack --dry-run` listed 671 files.
|
|
1896
|
+
- Doctor reported `packageVersion` `0.10.0` and exited with `2`, as expected
|
|
1897
|
+
for the example configuration (`workspace_missing` for the placeholder
|
|
1898
|
+
workspace, `workspace_mode_unset` for that alias).
|
|
1899
|
+
- Level 2 through `scripts/setup-acceptance.mjs` on the candidate's working
|
|
1900
|
+
tree: 160 of 160 checks passed. The real client registrations were
|
|
1901
|
+
unchanged, no process remained, the built files were unchanged, and the
|
|
1902
|
+
path-leak check passed.
|
|
1903
|
+
- Packed-tarball Level 2: the candidate's tarball (shasum
|
|
1904
|
+
`9c7b0bfa98e14700dc7ec19b8c4938202b3c0c91`), installed with
|
|
1905
|
+
`npm install -g --prefix` into a fresh prefix without the lockfile, resolved
|
|
1906
|
+
every `@earendil-works` package to `1.3.0` with a single copy each. The
|
|
1907
|
+
install smoke reported `smoke_passed` with version `0.10.0`. Level 2 against
|
|
1908
|
+
the installed package passed 160 of 160 checks, with the same results for
|
|
1909
|
+
registrations, processes, build and path leaks.
|
|
1910
|
+
- Live check of a granted tool, with an evaluation-owned Pi agent directory
|
|
1911
|
+
holding `pi-lens@4.4.3` and a disposable clone as the only workspace:
|
|
1912
|
+
- Configuration: one read-only profile with `extensions: ["npm:pi-lens@4.4.3"]`
|
|
1913
|
+
and `grantedExtensionTools: ["symbol_search"]`. `pi_capabilities_get`
|
|
1914
|
+
reported the grant, and `pi_session_start` admitted the session.
|
|
1915
|
+
- The prompt asked the model to call `symbol_search` once and echo the
|
|
1916
|
+
start of the result. The turn completed with a real `pi-lens` search
|
|
1917
|
+
result (a ranked file list headed by `src/session-tools.ts`). The tool
|
|
1918
|
+
therefore ran in a read-only session that pi-session-mcp creates with
|
|
1919
|
+
`projectTrusted: false`.
|
|
1920
|
+
- Provider: `deepseek` / `deepseek-flash` with a copied API key. The
|
|
1921
|
+
planned `xai` route failed with `turn_failed` for every profile, also
|
|
1922
|
+
without any extension, when only the OAuth access token was copied with
|
|
1923
|
+
an emptied refresh token. The rotating refresh token was deliberately not
|
|
1924
|
+
copied. This is an evaluation-setup limit, not a product result.
|
|
1925
|
+
- `strace -f -e trace=connect` on the server recorded only the local DNS
|
|
1926
|
+
resolver and the provider endpoint. The clone had no changed, untracked
|
|
1927
|
+
or ignored file afterwards. The agent directory with the copied key was
|
|
1928
|
+
removed.
|
|
1929
|
+
- Three `deepseek` turns were used (one control without extensions, two grant runs), plus three `xai` attempts that failed before any model output, well below the USD 0.50 limit.
|
|
1930
|
+
|
|
1931
|
+
Not established for `0.10.0`: a live grant with OAuth providers in an
|
|
1932
|
+
isolated agent directory, Level 3, the automated container writers, and macOS
|
|
1933
|
+
on real hardware. CI covers macOS 15 and 26. The published-release
|
|
1934
|
+
acceptance follows after publication.
|
|
1935
|
+
|
|
1936
|
+
### v0.11.0 pre-release acceptance
|
|
1937
|
+
|
|
1938
|
+
Before its release, `v0.11.0` passed Level 1, the working-tree Level 2 and the
|
|
1939
|
+
packed-tarball Level 2 on its release candidate `800727e` on Linux (`x64`), with
|
|
1940
|
+
Node.js `26.11.1`, npm `12.2.1`, Codex CLI `0.162.1` and Claude Code `2.1.306`,
|
|
1941
|
+
on 2026-10-22. The release adds opt-in turn events and a Claude Code controller
|
|
1942
|
+
wake ([ADR 0011](adr/0011-turn-events-and-controller-wake.md), #108, #110).
|
|
1943
|
+
|
|
1944
|
+
- A first run of this acceptance failed: Level 2 passed 124 of 160 checks in
|
|
1945
|
+
both modes, because every setup report gained a hook finding even with
|
|
1946
|
+
delivery off. Setup now omits hook findings without news, so its report keeps
|
|
1947
|
+
the 0.10 shape; the run above is the second one.
|
|
1948
|
+
- Level 1 on the release branch: every command exited with `0`, except Doctor
|
|
1949
|
+
as noted below.
|
|
1950
|
+
- The test run, with `NODE_OPTIONS=--unhandled-rejections=strict`, reported
|
|
1951
|
+
114 files, 3324 passed and 6 skipped, and no unhandled error.
|
|
1952
|
+
- `npm audit` and `npm audit --omit=dev` reported 0 vulnerabilities, after
|
|
1953
|
+
the development-only update of `@modelcontextprotocol/inspector` to
|
|
1954
|
+
2.11.0 and the lockfile patches named in the changelog.
|
|
1955
|
+
- `npm pack --dry-run` listed 816 files, including `dist/wake-main.js`.
|
|
1956
|
+
- Doctor reported `packageVersion` `0.11.0` and exited with `2`, as expected
|
|
1957
|
+
for the example configuration (`workspace_missing` for the placeholder
|
|
1958
|
+
workspace, `workspace_mode_unset` for that alias).
|
|
1959
|
+
- Level 2 through `scripts/setup-acceptance.mjs` on the candidate's working
|
|
1960
|
+
tree: 160 of 160 checks passed. The real client registrations were
|
|
1961
|
+
unchanged, no process remained, the built files were unchanged, and the
|
|
1962
|
+
path-leak check passed.
|
|
1963
|
+
- Packed-tarball Level 2: the candidate's tarball (sha256
|
|
1964
|
+
`0ae2cf934122a544f94019c7040bc1f745d89241f199d3e9635a9d4c450ad5b0`), installed
|
|
1965
|
+
with `npm install -g --prefix` into a fresh prefix without the lockfile,
|
|
1966
|
+
resolved every `@earendil-works` package to `1.3.0` with a single copy each.
|
|
1967
|
+
The install smoke reported `smoke_passed` with version `0.11.0`. Level 2
|
|
1968
|
+
against the installed package passed 160 of 160 checks, with the same results
|
|
1969
|
+
for registrations, processes, build and path leaks.
|
|
1970
|
+
- Turn events and the wake were accepted provider-free before the merge of
|
|
1971
|
+
#110: unit, process and compiled-program tests, and a product probe with the
|
|
1972
|
+
installed Claude Code `2.1.306` against a loopback fake model in a network
|
|
1973
|
+
namespace (completion wake, two turns, budget re-arm, delivery off, no wake
|
|
1974
|
+
after a controller close).
|
|
1975
|
+
|
|
1976
|
+
Not established for `0.11.0`: the wake in the interactive Claude Code TUI and
|
|
1977
|
+
in the VS Code extension (including whether a running session loads a newly
|
|
1978
|
+
written hook without a restart or a `/hooks` review), a wrapped container
|
|
1979
|
+
writer with delivery enabled under rootless Podman including the isolation
|
|
1980
|
+
check of its spool mount, Level 3, macOS delivery (Linux only by design), and
|
|
1981
|
+
any real-model run on this candidate. CI covers macOS 15 and 26. The
|
|
1982
|
+
published-release acceptance follows after publication.
|
|
1983
|
+
|
|
1984
|
+
### v0.11.0 post-release evidence
|
|
1985
|
+
|
|
1986
|
+
The published-release acceptance of `v0.11.0` ran on 2026-10-22 from 06:47 UTC
|
|
1987
|
+
on Linux (`x64`) with Node.js `26.11.1`, npm `12.2.1`, Codex CLI `0.162.1` and
|
|
1988
|
+
Claude Code `2.1.308`. Level 2 passed for the tag and for the installed npm
|
|
1989
|
+
package. Level 1 was not repeated on the tag clone: the tag differs from the
|
|
1990
|
+
accepted candidate `800727e` only by the acceptance record.
|
|
1991
|
+
|
|
1992
|
+
Tag binding: a fresh clone of the annotated tag `v0.11.0` (tag object
|
|
1993
|
+
`0726316ea6705b6bbcd6fe67911b3833156b4d93`) peels to
|
|
1994
|
+
`8875dd5ad3e4fcd34e12b2359bce1611b1c9581e`, the merge of #112. CI passed on
|
|
1995
|
+
the merge commit (run `39732402829`) and on the tag (run `39734813506`).
|
|
1996
|
+
|
|
1997
|
+
Package publication, a release fact and not an acceptance level: the npm
|
|
1998
|
+
package `pi-session-mcp@0.11.0` was staged with `npm stage publish` from that
|
|
1999
|
+
clone and approved by the maintainer. Its shasum is
|
|
2000
|
+
`6dfd69e2e7449ae9fbcf5c9ed05b43cd217322e8`, equal to a local `npm pack` of the
|
|
2001
|
+
tag, and its integrity is
|
|
2002
|
+
`sha512-Yr/l285Dm+R8AL8aJk3xa+TbVsdhtTgqrH+NcNrG4y8XFPUq6AAcB+22vAoU7N2iGfh9bepR9WCmTuTcv1Ja8w==`.
|
|
2003
|
+
The registry serves the staged shasum. The manifest keeps all four
|
|
2004
|
+
executables, including `pi-session-mcp-wake`.
|
|
2005
|
+
|
|
2006
|
+
Real clients without a model (Level 2), with `scripts/setup-acceptance.mjs`:
|
|
2007
|
+
- Tag clone: 160 of 160 checks passed.
|
|
2008
|
+
- npm package, installed with `npm install -g --prefix` into a temporary
|
|
2009
|
+
prefix without the lockfile: every `@earendil-works` package at `1.3.0` with
|
|
2010
|
+
one copy each, and 160 of 160 checks passed.
|
|
2011
|
+
- In both runs the real client registrations were unchanged, no process
|
|
2012
|
+
remained, the built files were unchanged, and the path-leak check passed.
|
|
2013
|
+
The temporary prefix was removed.
|
|
2014
|
+
|
|
2015
|
+
Manual operator check of the wake in the interactive Claude Code TUI, on
|
|
2016
|
+
2026-10-22 with the `0.11.0` build:
|
|
2017
|
+
- Setup. Setup could not add a `claude-code:local` registration in the test
|
|
2018
|
+
project, because a same-named server is registered at user scope and
|
|
2019
|
+
`claude mcp get` shows only the effective entry. Setup reported it as
|
|
2020
|
+
`divergent` and changed nothing. The session therefore ran with
|
|
2021
|
+
`--strict-mcp-config` and a test server configuration with delivery enabled.
|
|
2022
|
+
The canonical hook entry was generated with `buildWakeEntry` and installed
|
|
2023
|
+
by hand in `.claude/settings.local.json`.
|
|
2024
|
+
- Result. A real `explore-fast` worker turn of about 9 s completed. The idle
|
|
2025
|
+
controller session was woken without polling, shown as hook feedback in the
|
|
2026
|
+
TUI, read the turn once and closed the session.
|
|
2027
|
+
- Not established: whether the hook was loaded by a session that was already
|
|
2028
|
+
running when the entry was written.
|
|
2029
|
+
|
|
2030
|
+
Finding after publication (#113): the operator upgrade with delivery enabled
|
|
2031
|
+
in the shared configuration failed `setup --verify` for both targets with
|
|
2032
|
+
`mcp_unsupported`.
|
|
2033
|
+
- Cause. The server refused to start without `XDG_RUNTIME_DIR`. Setup's
|
|
2034
|
+
verification launcher passes no such variable, and Codex `0.162.1` passes
|
|
2035
|
+
only `HOME`, `LANG`, `LOGNAME`, `PATH`, `SHELL` and `USER`, as observed on a
|
|
2036
|
+
Codex-launched server process.
|
|
2037
|
+
- Consequence. Every new Codex session would have lost pi-session-mcp.
|
|
2038
|
+
- Mitigation. The operator configuration went back to delivery off, and setup
|
|
2039
|
+
removed its hook entry. `0.11.1` fixes the defect.
|
|
2040
|
+
|
|
2041
|
+
Not established for `0.11.0`: the wake in the VS Code extension, a wrapped
|
|
2042
|
+
container writer with delivery enabled, Level 3, and any real-model run on
|
|
2043
|
+
this release other than the TUI check above.
|
|
2044
|
+
|
|
2045
|
+
### v0.11.1 pre-release acceptance
|
|
2046
|
+
|
|
2047
|
+
`v0.11.1` was accepted on 2026-10-22 on its release candidate `6e7c46b`, on
|
|
2048
|
+
Linux (`x64`) with Node.js `26.11.1`, npm `12.2.1`, Codex CLI `0.162.1` and
|
|
2049
|
+
Claude Code `2.1.308`. It passed:
|
|
2050
|
+
- Level 1;
|
|
2051
|
+
- Level 2 in the working tree and for the packed tarball, each once with
|
|
2052
|
+
delivery off and once with delivery on;
|
|
2053
|
+
- a real Codex start.
|
|
2054
|
+
|
|
2055
|
+
The patch fixes #113. With delivery enabled and no runtime directory, the
|
|
2056
|
+
server now starts with delivery inactive instead of failing. Setup's direct
|
|
2057
|
+
verification passes the caller's `XDG_RUNTIME_DIR`. Level 2 gains a variant
|
|
2058
|
+
with delivery enabled.
|
|
2059
|
+
|
|
2060
|
+
- Level 1 on the release branch: every command exited with `0`, except Doctor.
|
|
2061
|
+
- The test run, with `NODE_OPTIONS=--unhandled-rejections=strict`, reported
|
|
2062
|
+
114 files, 3322 passed and 13 skipped, and no unhandled error.
|
|
2063
|
+
- Six of the skipped tests are the usual ones: four macOS lock tests, one
|
|
2064
|
+
isolated output probe and one red-before concurrency test.
|
|
2065
|
+
- The other seven are compiled-program tests of the evaluation prototype in
|
|
2066
|
+
`test/bridge-hooks.test.ts`. They need a `.bridge-eval` build that a fresh
|
|
2067
|
+
checkout does not have, and they do not cover product code.
|
|
2068
|
+
- `npm audit` and `npm audit --omit=dev` reported 0 vulnerabilities.
|
|
2069
|
+
- `npm pack --dry-run` listed 816 files.
|
|
2070
|
+
- Doctor reported `packageVersion` `0.11.1`. It exited with `2` because no
|
|
2071
|
+
configuration was set (`config_missing`).
|
|
2072
|
+
- Level 2 in the working tree, through `scripts/setup-acceptance.mjs`:
|
|
2073
|
+
- delivery off: 160 of 160 checks passed;
|
|
2074
|
+
- `--events spool`: 228 of 228 checks passed. This covers the wake-hook
|
|
2075
|
+
findings and settings entries of all three Claude Code scopes, a foreign
|
|
2076
|
+
hook that survived, and no spool instance left after `--verify`.
|
|
2077
|
+
- Packed-tarball Level 2:
|
|
2078
|
+
- The candidate's tarball (sha256
|
|
2079
|
+
`c00f3cffcb7da3f66f765ba30cdcd18d815bc6f83d9c6b9127a7add629226efa`) was
|
|
2080
|
+
installed with `npm install -g --prefix` into a fresh prefix without the
|
|
2081
|
+
lockfile.
|
|
2082
|
+
- Every `@earendil-works` package resolved to `1.3.0`, with a single copy
|
|
2083
|
+
each.
|
|
2084
|
+
- The install smoke reported `smoke_passed` with version `0.11.1`.
|
|
2085
|
+
- Level 2 passed 160 of 160 checks with delivery off and 228 of 228 with
|
|
2086
|
+
`--events spool`.
|
|
2087
|
+
- In every Level 2 run the real client registrations were unchanged, no
|
|
2088
|
+
process remained, the built files were unchanged, and the path-leak check
|
|
2089
|
+
passed.
|
|
2090
|
+
- The delivery variant fails on the defect. Against the published `0.11.0`
|
|
2091
|
+
package it reported 220 of 228: `--verify` failed with `mcp_unsupported` on
|
|
2092
|
+
all four targets, in steps 5 and 8.
|
|
2093
|
+
- Real Codex start, provider-free:
|
|
2094
|
+
- Setup. `codex exec` ran in a disposable `CODEX_HOME` with a model endpoint
|
|
2095
|
+
that leads nowhere, so no provider was called. The `pi-session-mcp` entry
|
|
2096
|
+
pointed at a wrapper that recorded the environment and the server's stderr,
|
|
2097
|
+
with a configuration that enables delivery.
|
|
2098
|
+
- Environment. Codex passed the server only `HOME`, `PATH` and the
|
|
2099
|
+
registered `PI_SESSION_MCP_CONFIG`, not its own `XDG_RUNTIME_DIR`.
|
|
2100
|
+
- `0.11.0` stopped with `startup_failed` / `event_spool_unavailable` (exit 1).
|
|
2101
|
+
- The candidate started, wrote one `event_delivery_inactive` warning and
|
|
2102
|
+
exited with `0` when Codex ended.
|
|
2103
|
+
- Delivery on the installed tarball, in a Codex-like environment:
|
|
2104
|
+
`pi_capabilities_get` reported `events.delivery: "off"`. With a private
|
|
2105
|
+
`XDG_RUNTIME_DIR` it reported `spool` and left an empty `events` root after
|
|
2106
|
+
stdin EOF.
|
|
2107
|
+
- Review:
|
|
2108
|
+
- An independent review of the fix found no blocker. Its findings were fixed:
|
|
2109
|
+
a table row in `docs/tool-contracts.md` that did not render, and tests for
|
|
2110
|
+
the inherited runtime directory and for no instance directory left after a
|
|
2111
|
+
verify run.
|
|
2112
|
+
- A side review pointed out that the approved plan included a Level 2 variant
|
|
2113
|
+
with delivery enabled, which the first candidate lacked. It was added before
|
|
2114
|
+
the merge.
|
|
2115
|
+
|
|
2116
|
+
Not established for `0.11.1`:
|
|
2117
|
+
- the VS Code wake;
|
|
2118
|
+
- whether a running Claude Code session loads a newly written hook;
|
|
2119
|
+
- a wrapped container writer with delivery enabled;
|
|
2120
|
+
- Level 3 and real-model runs;
|
|
2121
|
+
- macOS delivery.
|
|
2122
|
+
|
|
2123
|
+
CI covers macOS 15 and 26. The published-release acceptance follows after
|
|
2124
|
+
publication, with both Level 2 variants.
|
|
2125
|
+
|
|
2126
|
+
### v0.11.1 post-release evidence
|
|
2127
|
+
|
|
2128
|
+
The published-release acceptance of `v0.11.1` ran on 2026-10-22 from 19:20 UTC
|
|
2129
|
+
on Linux (`x64`) with Node.js `26.11.1`, npm `12.2.1`, Codex CLI `0.162.1` and
|
|
2130
|
+
Claude Code `2.1.308`. Level 2 passed for the tag and for the installed npm
|
|
2131
|
+
package, each with delivery off and with `--events spool`. Level 1 was not
|
|
2132
|
+
repeated on the tag clone: the tag differs from the accepted candidate
|
|
2133
|
+
`6e7c46b` only by the acceptance record.
|
|
2134
|
+
|
|
2135
|
+
Tag binding: a fresh clone of the annotated tag `v0.11.1` (tag object
|
|
2136
|
+
`fc1c7e34379a6474a08e1ada032c533c44ed0839`) peels to
|
|
2137
|
+
`262ad845e883c7aa2955f3e5139fa2513f382fc6`, the merge of #114, and
|
|
2138
|
+
`git describe --tags --exact-match` reports `v0.11.1`. CI passed on the merge
|
|
2139
|
+
commit (run `39764645133`) and on the tag (run `39765299541`).
|
|
2140
|
+
|
|
2141
|
+
Package publication, a release fact and not an acceptance level:
|
|
2142
|
+
- The registry serves `pi-session-mcp@0.11.1` with shasum
|
|
2143
|
+
`739c23bbc8f0fa1f156311d4a1d3139d905e46fd`. This equals a local `npm pack` of
|
|
2144
|
+
the tag clone after `npm ci`, `npm run build` and `npm run build:cli`.
|
|
2145
|
+
- The integrity is
|
|
2146
|
+
`sha512-a7G7G5r2cSqQkLxzetWiMLZx+UJM0Dj7QjASA523UIMr0nX0r6XI262jYb7cwF+euu71cShLgk9pum4sc2amkA==`.
|
|
2147
|
+
|
|
2148
|
+
Real clients without a model (Level 2), with `scripts/setup-acceptance.mjs`:
|
|
2149
|
+
- Tag clone: 160 of 160 checks passed with delivery off and 228 of 228 with
|
|
2150
|
+
`--events spool`.
|
|
2151
|
+
- npm package: installed with `npm install -g --prefix` into a temporary
|
|
2152
|
+
prefix without the lockfile. Every `@earendil-works` package resolved to
|
|
2153
|
+
`1.3.0` with one copy each. Level 2 passed 160 of 160 checks with delivery
|
|
2154
|
+
off and 228 of 228 with `--events spool`.
|
|
2155
|
+
- In every run the real client registrations were unchanged, no process
|
|
2156
|
+
remained, the built files were unchanged, and the path-leak check passed.
|
|
2157
|
+
- The clone and the prefix were removed.
|
|
2158
|
+
|
|
2159
|
+
Not established for `0.11.1`:
|
|
2160
|
+
- the VS Code wake;
|
|
2161
|
+
- whether a running Claude Code session loads a newly written hook;
|
|
2162
|
+
- a wrapped container writer with delivery enabled;
|
|
2163
|
+
- Level 3 and real-model runs;
|
|
2164
|
+
- macOS delivery.
|
|
2165
|
+
|
|
2166
|
+
### v0.11.2 pre-release acceptance
|
|
2167
|
+
|
|
2168
|
+
`v0.11.2` was accepted on 2026-10-22 from 19:15 UTC on its release candidate
|
|
2169
|
+
`9cd3f69`, on Linux (`x64`) with Node.js `26.11.1`, npm `12.2.1`, Codex CLI
|
|
2170
|
+
`0.162.1` and Claude Code `2.1.308`. Level 1 passed. Level 2 passed in the
|
|
2171
|
+
working tree and for the packed tarball, each with delivery off and with
|
|
2172
|
+
delivery on.
|
|
2173
|
+
|
|
2174
|
+
The patch fixes #109 and moves the Pi SDK family from `1.3.0` to `1.4.0`
|
|
2175
|
+
(#117). It does not change the MCP contract.
|
|
2176
|
+
|
|
2177
|
+
- Level 1 on the release branch: every command exited with `0`, except Doctor.
|
|
2178
|
+
- The test run, with `NODE_OPTIONS=--unhandled-rejections=strict`, reported
|
|
2179
|
+
114 files, 3335 passed and 13 skipped, and no unhandled error. Thirteen is
|
|
2180
|
+
the same skip count as for `0.11.1`.
|
|
2181
|
+
- `npm audit` and `npm audit --omit=dev` reported 0 vulnerabilities.
|
|
2182
|
+
- `npm pack --dry-run` listed 816 files.
|
|
2183
|
+
- Doctor reported `packageVersion` `0.11.2`. It exited with `2` because no
|
|
2184
|
+
configuration was set (`config_missing`).
|
|
2185
|
+
- Level 2 in the working tree, through `scripts/setup-acceptance.mjs`: 160 of
|
|
2186
|
+
160 checks passed with delivery off and 228 of 228 with `--events spool`.
|
|
2187
|
+
- Packed-tarball Level 2:
|
|
2188
|
+
- The candidate's tarball (sha256
|
|
2189
|
+
`3470f4427676287ee19a2bfc9e2fa71ea2503bdda91964bead41284bcea29701`) was
|
|
2190
|
+
installed with `npm install -g --prefix` into a fresh prefix without the
|
|
2191
|
+
lockfile.
|
|
2192
|
+
- Every `@earendil-works` package resolved to `1.4.0`, with a single copy
|
|
2193
|
+
each.
|
|
2194
|
+
- The install smoke reported `smoke_passed` with version `0.11.2`.
|
|
2195
|
+
- Level 2 passed 160 of 160 checks with delivery off and 228 of 228 with
|
|
2196
|
+
`--events spool`.
|
|
2197
|
+
- In every Level 2 run the real client registrations were unchanged, no
|
|
2198
|
+
process remained, the built files were unchanged, and the path-leak check
|
|
2199
|
+
passed. The tarball and the prefix were removed.
|
|
2200
|
+
- #109, provider-free:
|
|
2201
|
+
- A Linux churn test on the real procfs failed in 4 of 4 runs against the old
|
|
2202
|
+
`src/setup-platform.ts`. All three symptoms appeared: an unreadable table,
|
|
2203
|
+
an `unknown` state for a live group, and a reaped group that was not
|
|
2204
|
+
`gone`.
|
|
2205
|
+
- On the candidate, 45 runs of `test/setup-platform.test.ts` in three
|
|
2206
|
+
parallel loops passed.
|
|
2207
|
+
- An independent review found no blocker. Its findings were taken in: a
|
|
2208
|
+
second read of a group `-1` sample, deterministic tests through a procfs
|
|
2209
|
+
seam, a lighter churn load and the changelog wording.
|
|
2210
|
+
- #117, provider-free: `scripts/pi-sdk-canary.sh 1.4.0` exited with `0`
|
|
2211
|
+
(typecheck, 339 SDK tests in 15 files). `npm ls` showed one copy of each
|
|
2212
|
+
family package. The SDK's reserved MCP tool names are unchanged.
|
|
2213
|
+
|
|
2214
|
+
Not established for `0.11.2`:
|
|
2215
|
+
- any live run on Pi SDK `1.4.0` (Level 3 or a real model);
|
|
2216
|
+
- the VS Code wake;
|
|
2217
|
+
- a wrapped container writer with delivery enabled;
|
|
2218
|
+
- macOS delivery.
|
|
2219
|
+
|
|
2220
|
+
CI covers macOS 15 and 26. The published-release acceptance follows after
|
|
2221
|
+
publication, with both Level 2 variants.
|
|
2222
|
+
|
|
2223
|
+
### v0.11.2 post-release evidence
|
|
2224
|
+
|
|
2225
|
+
The published-release acceptance of `v0.11.2` ran on 2026-10-22 from 20:07 UTC
|
|
2226
|
+
on Linux (`x64`) with Node.js `26.11.1`, npm `12.2.1`, Codex CLI `0.162.1` and
|
|
2227
|
+
Claude Code `2.1.308`. Level 2 passed for the tag and for the installed npm
|
|
2228
|
+
package, each with delivery off and with `--events spool`. Level 1 was not
|
|
2229
|
+
repeated on the tag clone: the release commit has the same tree as the
|
|
2230
|
+
release branch head `d6ed5ec`, which differs from the accepted candidate
|
|
2231
|
+
`9cd3f69` only by the acceptance record.
|
|
2232
|
+
|
|
2233
|
+
Tag binding: a fresh clone of the annotated tag `v0.11.2` (tag object
|
|
2234
|
+
`03d6a9e844ebaef51ba4936e6b97ad6c88e85458`) peels to
|
|
2235
|
+
`39f823b3a6f1155f22c794ed52017f118f193404`, the merge of #116, and
|
|
2236
|
+
`git describe --tags --exact-match` reports `v0.11.2`. CI passed on the merge
|
|
2237
|
+
commit (run `39843660550`) and on the tag (run `39845222402`).
|
|
2238
|
+
|
|
2239
|
+
Package publication, a release fact and not an acceptance level:
|
|
2240
|
+
- The maintainer published `pi-session-mcp@0.11.2` at 19:59:55 UTC, before the
|
|
2241
|
+
tag existed, so the package was not built from a tag clone as
|
|
2242
|
+
[Releasing](releasing.md#publish-a-release) describes.
|
|
2243
|
+
- Byte equality stands in for that step. The registry serves shasum
|
|
2244
|
+
`34b697cd8eaf3c216daa65e8f03a02cecc3d7e9c` and integrity
|
|
2245
|
+
`sha512-SjtvGZ8i/yK3tb9d9bSn1ughj1A2SAoSbEBDkDGtHJEspv1vShIh9F3I78+RcSPJmcKigpYDblEcuynYaHeGUw==`.
|
|
2246
|
+
Both equal a local `npm pack` of a fresh clone of the merge commit, and
|
|
2247
|
+
later of the tag, after `npm ci`, `npm run build` and `npm run build:cli`.
|
|
2248
|
+
- Doctor on the tag clone reported `packageVersion` `0.11.2`. It exited with
|
|
2249
|
+
`2` because no configuration was set (`config_missing`).
|
|
2250
|
+
- The GitHub release `v0.11.2` was created after the tag CI passed.
|
|
2251
|
+
|
|
2252
|
+
Real clients without a model (Level 2), with `scripts/setup-acceptance.mjs`:
|
|
2253
|
+
- Tag clone: 160 of 160 checks passed with delivery off and 228 of 228 with
|
|
2254
|
+
`--events spool`.
|
|
2255
|
+
- npm package: installed with `npm install -g --prefix` into a temporary
|
|
2256
|
+
prefix without the lockfile. Every `@earendil-works` package resolved to
|
|
2257
|
+
`1.4.0` with one copy each. The install smoke reported `smoke_passed` with
|
|
2258
|
+
version `0.11.2`. Level 2 passed 160 of 160 checks with delivery off and 228
|
|
2259
|
+
of 228 with `--events spool`.
|
|
2260
|
+
- In every run the real client registrations were unchanged, no process
|
|
2261
|
+
remained, the built files were unchanged, and the path-leak check passed.
|
|
2262
|
+
- The clone and the prefix were removed.
|
|
2263
|
+
|
|
2264
|
+
Not established for `0.11.2`:
|
|
2265
|
+
- any live run on Pi SDK `1.4.0` (Level 3 or a real model);
|
|
2266
|
+
- the VS Code wake;
|
|
2267
|
+
- a wrapped container writer with delivery enabled;
|
|
2268
|
+
- macOS delivery.
|
|
2269
|
+
|
|
2270
|
+
### Sprint 7 candidate acceptance (2026-10-24)
|
|
2271
|
+
|
|
2272
|
+
Candidate for #118: commit `6651a47`, package version string unchanged at
|
|
2273
|
+
`0.11.2`, Pi SDK `1.4.0`. This is not an acceptance of the published `0.11.2`.
|
|
2274
|
+
Details, bindings and every failed attempt are in the
|
|
2275
|
+
[evidence record](evaluation/s7-live-acceptance-2026-10-24/README.md).
|
|
2276
|
+
|
|
2277
|
+
- Level 1: all commands exit 0 except `npm audit`, which reports `undici`
|
|
2278
|
+
8.10.2 pinned by the Pi SDK
|
|
2279
|
+
([#120](https://github.com/plagor44-ux/pi-session-mcp/issues/120)).
|
|
2280
|
+
- Level 2: working tree and packed tarball, 160 of 160 checks with delivery off
|
|
2281
|
+
and 228 of 228 with `--events spool`.
|
|
2282
|
+
- Level 3 with Claude Code 2.1.308 and Codex 0.162.1, worker routes
|
|
2283
|
+
`explore-fast` and `code-deepseek`: 10 of 10 tasks passed with every
|
|
2284
|
+
independent check. The gate is not met, only because Level 1 is not green.
|
|
2285
|
+
- Wake scenarios, targeted and not part of Level 3:
|
|
2286
|
+
- passed: setup path (E1), two parallel turns (E2), budget wake with a manual
|
|
2287
|
+
hook (E3b), abort and close (E4), the Codex fallback without a runtime
|
|
2288
|
+
directory (E5);
|
|
2289
|
+
- a running stream-json CLI session picked up a hook that setup installed
|
|
2290
|
+
after it started.
|
|
2291
|
+
- VS Code: a wake was observed only on the published `0.11.2` in the
|
|
2292
|
+
integrator's own extension session.
|
|
2293
|
+
- Container writer with delivery: delegation, wake, collect, finish and remove
|
|
2294
|
+
passed, and the boundary and crafted-event checks passed provider-free. The
|
|
2295
|
+
first acceptance failed once without a diagnosable cause
|
|
2296
|
+
([#121](https://github.com/plagor44-ux/pi-session-mcp/issues/121)). A forged
|
|
2297
|
+
event during a real controller turn was not run.
|
|
2298
|
+
|
|
2299
|
+
### v0.11.3 pre-release acceptance
|
|
2300
|
+
|
|
2301
|
+
`v0.11.3` was accepted on 2026-10-25 from 08:28 to 08:33 UTC on its release
|
|
2302
|
+
candidate `30ddeaf`, on Linux (`x64`) with Node.js `26.11.1`, npm `12.2.1`,
|
|
2303
|
+
Codex CLI `0.162.1` and Claude Code `2.1.310`. Level 2 passed in the working
|
|
2304
|
+
tree and for the packed tarball, each with delivery off and with delivery on.
|
|
2305
|
+
Level 1 passed except `npm audit`.
|
|
2306
|
+
|
|
2307
|
+
The patch ships the #118 and #121 fixes and the `zod` patch from Sprint 7. It
|
|
2308
|
+
does not change the MCP contract; the setup report codes of a failed writer
|
|
2309
|
+
acceptance changed (#121).
|
|
2310
|
+
|
|
2311
|
+
- Level 1 on the release branch: every command exited with `0`, except
|
|
2312
|
+
`npm audit` and Doctor.
|
|
2313
|
+
- The test run, with `NODE_OPTIONS=--unhandled-rejections=strict`, reported
|
|
2314
|
+
114 files, 3366 passed and 13 skipped, and no unhandled error.
|
|
2315
|
+
- `npm audit` and `npm audit --omit=dev` exited with `1`. Both name only
|
|
2316
|
+
`undici` 8.10.2 (GHSA-4qv8-2p9j-2685, GHSA-f72v-6w45-q472,
|
|
2317
|
+
GHSA-xjj6-f33q-929c) and `@earendil-works/pi-coding-agent` 1.4.0, which
|
|
2318
|
+
pins it ([#120](https://github.com/plagor44-ux/pi-session-mcp/issues/120)).
|
|
2319
|
+
The release precondition of 0 vulnerabilities is therefore not met. The
|
|
2320
|
+
maintainer decided on 2026-10-25 to release with this finding stated.
|
|
2321
|
+
- `npm pack --dry-run` listed 958 files.
|
|
2322
|
+
- Doctor reported `packageVersion` `0.11.3`. It exited with `2` because no
|
|
2323
|
+
configuration was set (`config_missing`).
|
|
2324
|
+
- Level 2 in the working tree, through `scripts/setup-acceptance.mjs`: 160 of
|
|
2325
|
+
160 checks passed with delivery off and 228 of 228 with `--events spool`.
|
|
2326
|
+
- Packed-tarball Level 2:
|
|
2327
|
+
- The candidate's tarball (sha256
|
|
2328
|
+
`3beb43f0448f0f2c8334207bbee0fa33427cadf1164ab91f58d68b1685da953d`) was
|
|
2329
|
+
installed with `npm install -g --prefix` into a fresh prefix without the
|
|
2330
|
+
lockfile.
|
|
2331
|
+
- Every `@earendil-works` package resolved to `1.4.0`, with a single copy
|
|
2332
|
+
each.
|
|
2333
|
+
- The install smoke reported `smoke_passed` with version `0.11.3`.
|
|
2334
|
+
- Level 2 passed 160 of 160 checks with delivery off and 228 of 228 with
|
|
2335
|
+
`--events spool`.
|
|
2336
|
+
- In every Level 2 run the real client registrations were unchanged, no
|
|
2337
|
+
process remained, the built files were unchanged, and the path-leak check
|
|
2338
|
+
passed. The tarball and the prefix were removed.
|
|
2339
|
+
- #118 and #121 were reviewed independently before their merge
|
|
2340
|
+
([#122](https://github.com/plagor44-ux/pi-session-mcp/pull/122),
|
|
2341
|
+
[#123](https://github.com/plagor44-ux/pi-session-mcp/pull/123)).
|
|
2342
|
+
|
|
2343
|
+
Not established for `0.11.3`:
|
|
2344
|
+
- any live run of the released package (Level 3 or a real model);
|
|
2345
|
+
- a real container writer acceptance with the new #121 codes; the Sprint 8
|
|
2346
|
+
pilot runs it on the published release;
|
|
2347
|
+
- the VS Code wake;
|
|
2348
|
+
- macOS delivery.
|
|
2349
|
+
|
|
2350
|
+
CI covers macOS 15 and 26. The published-release acceptance follows after
|
|
2351
|
+
publication, with both Level 2 variants.
|
|
2352
|
+
|
|
2353
|
+
### v0.11.4 pre-release acceptance
|
|
2354
|
+
|
|
2355
|
+
`v0.11.4` was accepted on 2026-10-25 from 14:15 to 14:24 UTC on its release
|
|
2356
|
+
candidate `643f1f9`, on Linux (`x64`) with Node.js `26.11.1`, npm `12.2.1`,
|
|
2357
|
+
Codex CLI `0.162.1` and Claude Code `2.1.310`. Level 2 passed in the working
|
|
2358
|
+
tree and for the packed tarball, each with delivery off and with delivery on.
|
|
2359
|
+
Level 1 passed except `npm audit`.
|
|
2360
|
+
|
|
2361
|
+
The patch ships the Sprint 8 pilot fixes #125, #126 and #127
|
|
2362
|
+
([#128](https://github.com/plagor44-ux/pi-session-mcp/pull/128)). It does not
|
|
2363
|
+
change the MCP contract or any setup report code.
|
|
2364
|
+
|
|
2365
|
+
- Level 1 on the release branch: every command exited with `0`, except
|
|
2366
|
+
`npm audit` and Doctor; `git status --short` printed nothing.
|
|
2367
|
+
- The test run, with `NODE_OPTIONS=--unhandled-rejections=strict`, reported
|
|
2368
|
+
114 files, 3398 passed and 13 skipped, and no unhandled error.
|
|
2369
|
+
- `npm audit` and `npm audit --omit=dev` exited with `1` and name only the
|
|
2370
|
+
known `undici` finding (GHSA-4qv8-2p9j-2685, GHSA-f72v-6w45-q472,
|
|
2371
|
+
GHSA-xjj6-f33q-929c) through `@earendil-works/pi-coding-agent` 1.4.0
|
|
2372
|
+
([#120](https://github.com/plagor44-ux/pi-session-mcp/issues/120)). The
|
|
2373
|
+
maintainer decided on 2026-10-25 to release with this finding stated.
|
|
2374
|
+
- `npm pack --dry-run` listed 958 files.
|
|
2375
|
+
- Doctor reported `packageVersion` `0.11.4`. It exited with `2` because no
|
|
2376
|
+
configuration was set (`config_missing`).
|
|
2377
|
+
- Level 2 in the working tree, through `scripts/setup-acceptance.mjs`: 160 of
|
|
2378
|
+
160 checks passed with delivery off and 228 of 228 with `--events spool`.
|
|
2379
|
+
The same two runs had passed on the #128 head `b84160b` before its merge.
|
|
2380
|
+
- Packed-tarball Level 2:
|
|
2381
|
+
- The candidate's tarball (sha256
|
|
2382
|
+
`58d2ed277ad3cbea9bab96af9de18a4c7d305cd6b35c0ac8af6207b936e15504`) was
|
|
2383
|
+
installed with `npm install -g --prefix` into a fresh prefix without the
|
|
2384
|
+
lockfile.
|
|
2385
|
+
- Every `@earendil-works` package resolved to `1.4.0`.
|
|
2386
|
+
- The install smoke reported `smoke_passed` with version `0.11.4`.
|
|
2387
|
+
- Level 2 passed 160 of 160 checks with delivery off and 228 of 228 with
|
|
2388
|
+
`--events spool`.
|
|
2389
|
+
- In every Level 2 run the real client registrations were unchanged, no
|
|
2390
|
+
process remained, the built files were unchanged, and the path-leak check
|
|
2391
|
+
passed. The tarball and the prefix were removed.
|
|
2392
|
+
- The Claude Code 2.1.310 contract was recorded in a disposable home
|
|
2393
|
+
(`test/fixtures/client-contracts/claude-code-2.1.310.json`); only the version
|
|
2394
|
+
line differs from 2.1.296.
|
|
2395
|
+
- #125, #126 and #127 were reviewed independently before their merge
|
|
2396
|
+
([#128](https://github.com/plagor44-ux/pi-session-mcp/pull/128)).
|
|
2397
|
+
|
|
2398
|
+
Not established for `0.11.4`:
|
|
2399
|
+
- any live run of the released package (Level 3 or a real model);
|
|
2400
|
+
- a container writer provisioned and accepted by this release in a single
|
|
2401
|
+
`--apply` (#126 on a real writer) and the second writer's Claude Code
|
|
2402
|
+
registration (#127); the Sprint 8 pilot runs both on the published release;
|
|
2403
|
+
- the VS Code wake;
|
|
2404
|
+
- macOS delivery.
|
|
2405
|
+
|
|
2406
|
+
CI covers macOS 15 and 26. The published-release acceptance follows after
|
|
2407
|
+
publication, with both Level 2 variants.
|
|
2408
|
+
|
|
2409
|
+
### v0.11.6 pre-release acceptance
|
|
2410
|
+
|
|
2411
|
+
`v0.11.6` was accepted on 2026-10-26 from 10:00 to 10:03 UTC on its release
|
|
2412
|
+
candidate `a7781da`, on Linux (`x64`) with Node.js `26.12.1`, npm `12.2.1`,
|
|
2413
|
+
Codex CLI `0.162.1` and Claude Code `2.1.310`. Level 2 passed in the working
|
|
2414
|
+
tree and for the packed tarball, each with delivery off and with delivery on.
|
|
2415
|
+
Level 1 passed except `npm audit`.
|
|
2416
|
+
|
|
2417
|
+
The patch ships the Sprint 9 close-out (#134, #135, #136, #137) and the
|
|
2418
|
+
Sprint 10 skill changes on one branch. It does not change the MCP contract.
|
|
2419
|
+
Setup gains the finding code `writer_reconnect_required` and, when the Doctor
|
|
2420
|
+
gate blocks, findings with target `client: "doctor"`; Doctor gains the warning
|
|
2421
|
+
`extension_unpinned`. The setup report keeps `schemaVersion` 1.
|
|
2422
|
+
|
|
2423
|
+
- Level 1 in the candidate checkout after `npm ci`: every command exited with
|
|
2424
|
+
`0`, except `npm audit`; `git status --short` printed nothing.
|
|
2425
|
+
- The test run, with `NODE_OPTIONS=--unhandled-rejections=strict`, reported
|
|
2426
|
+
114 files, 3439 passed and 13 skipped, and no unhandled error.
|
|
2427
|
+
- `npm audit` exited with `1` and names only the known `undici` finding
|
|
2428
|
+
(GHSA-4qv8-2p9j-2685, GHSA-f72v-6w45-q472, GHSA-xjj6-f33q-929c) through
|
|
2429
|
+
`@earendil-works/pi-coding-agent` 1.4.0, still the latest SDK release
|
|
2430
|
+
([#120](https://github.com/plagor44-ux/pi-session-mcp/issues/120)).
|
|
2431
|
+
- `npm pack` listed 961 files (tarball shasum
|
|
2432
|
+
`5eb2b382fc1b45880fc67952f4f86af42e162eae`); nothing under `eval/` is
|
|
2433
|
+
packed.
|
|
2434
|
+
- Doctor reported `packageVersion` `0.11.6`. It exited with `2` because no
|
|
2435
|
+
configuration was set (`config_missing`).
|
|
2436
|
+
- Level 2 in the working tree, through `scripts/setup-acceptance.mjs`: 160 of
|
|
2437
|
+
160 checks passed with delivery off and 228 of 228 with `--events spool`.
|
|
2438
|
+
- Packed-tarball Level 2, installed with `npm install -g --prefix` into a
|
|
2439
|
+
fresh prefix: 160 of 160 checks with delivery off and 228 of 228 with
|
|
2440
|
+
`--events spool`.
|
|
2441
|
+
- In every Level 2 run the real client registrations and the built files were
|
|
2442
|
+
unchanged. The tarball and the prefix were removed.
|
|
2443
|
+
- An earlier run of the same checks on candidate `4bbd4ff` passed as well; the
|
|
2444
|
+
final independent review's follow-ups came after it, so this record binds to
|
|
2445
|
+
`a7781da`.
|
|
2446
|
+
- Reviews: `review-glm` (Pi, another model family) on #136 and #137, and a
|
|
2447
|
+
final independent review of the whole diff; their follow-ups are part of the
|
|
2448
|
+
candidate.
|
|
2449
|
+
- The controller skill was measured with the provider-free eval suite under
|
|
2450
|
+
`eval/controller-skill/` (20 of 21 runs on the final skill).
|
|
2451
|
+
|
|
2452
|
+
Not established for `0.11.6`:
|
|
2453
|
+
- any live run of the released package (Level 3 or a real model);
|
|
2454
|
+
- the new worker skills inside a container writer, which needs the upgrade and
|
|
2455
|
+
a `--repo <alias> ... --apply` on the published release;
|
|
2456
|
+
- whether a running writer server recovers by itself after a reset through the
|
|
2457
|
+
wrapper's periodic credential copy (#136);
|
|
2458
|
+
- the VS Code wake; macOS delivery.
|
|
2459
|
+
|
|
2460
|
+
### v0.12.0 pre-release acceptance
|
|
2461
|
+
|
|
2462
|
+
`v0.12.0` was accepted on 2026-10-28 from 11:40 to 11:45 UTC on its release
|
|
2463
|
+
candidate `169f00c`, on Linux (`x64`) with Node.js `26.12.1`, npm `12.2.1`,
|
|
2464
|
+
Codex CLI `0.162.1` and Claude Code `2.1.312`. Level 2 passed in the working
|
|
2465
|
+
tree and for the packed tarball, each with delivery off and with delivery on.
|
|
2466
|
+
Level 1 passed except `npm audit`. Later commits on the release pull request
|
|
2467
|
+
change only this record and the roadmap.
|
|
2468
|
+
|
|
2469
|
+
The minor release ships ADR 0012 (#157) with #151 and #154. It changes the MCP
|
|
2470
|
+
contract as the changelog lists; the setup report keeps `schemaVersion` `1`.
|
|
2471
|
+
|
|
2472
|
+
- Level 1 in a clean worktree of the candidate after `npm ci`: every command
|
|
2473
|
+
exited with `0`, except `npm audit`; `git status --short` printed nothing.
|
|
2474
|
+
- The test run, with `NODE_OPTIONS=--unhandled-rejections=strict`, reported
|
|
2475
|
+
120 files, 3693 passed and 14 skipped, and no unhandled error.
|
|
2476
|
+
- `npm audit` exited with `1` and names only the known `undici` finding
|
|
2477
|
+
through `@earendil-works/pi-coding-agent` 1.4.0
|
|
2478
|
+
([#120](https://github.com/plagor44-ux/pi-session-mcp/issues/120)).
|
|
2479
|
+
- `npm pack` listed 907 files (tarball shasum
|
|
2480
|
+
`764e22c8373934ce339cfd76ea1e56b96006a34d`); nothing under
|
|
2481
|
+
`docs/superpowers/` is packed, and a scan of the packed files for private
|
|
2482
|
+
names, hosts and paths found none.
|
|
2483
|
+
- Doctor reported `packageVersion` `0.12.0`. It exited with `2` because no
|
|
2484
|
+
configuration was set (`config_missing`).
|
|
2485
|
+
- Level 2 in the working tree: 160 of 160 checks passed with delivery off and
|
|
2486
|
+
228 of 228 with `--events spool`.
|
|
2487
|
+
- Packed-tarball Level 2 from a fresh prefix: 160 of 160 with delivery off and
|
|
2488
|
+
228 of 228 with `--events spool`. The install smoke reported `smoke_passed`
|
|
2489
|
+
with version `0.12.0`.
|
|
2490
|
+
- In every Level 2 run the real client registrations and the built files were
|
|
2491
|
+
unchanged, no process remained, and the leak check passed.
|
|
2492
|
+
- Review: every task of #157 had a cross-family read-only review before it was
|
|
2493
|
+
integrated; the findings were fixed in #158.
|
|
2494
|
+
|
|
2495
|
+
Level 2 runs no container writer. The Podman-gated tests in
|
|
2496
|
+
`test/writer-lifecycle.podman.test.ts` ran on the candidate with rootless
|
|
2497
|
+
Podman and the local Node image, separately from the suite: 4 of 4 passed,
|
|
2498
|
+
including the lease descriptor check, the finite-input probe and the release of
|
|
2499
|
+
a writer after its relay parent was killed.
|
|
2500
|
+
|
|
2501
|
+
Not established for `0.12.0`: the migration of an installed release's container
|
|
2502
|
+
repositories, a relayed coding session through the one host registration, the
|
|
2503
|
+
live checks of #151 and #154, which follow the release; Level 3. No
|
|
2504
|
+
post-release evidence was recorded for `0.11.9`, a documentation-only release,
|
|
2505
|
+
beyond its release notes.
|
|
2506
|
+
|
|
2507
|
+
### v0.11.8 post-release evidence
|
|
2508
|
+
|
|
2509
|
+
The published-release acceptance of `v0.11.8` ran on 2026-10-26 from 22:40 to
|
|
2510
|
+
22:44 UTC on Linux (`x64`) with Node.js `26.12.1`, npm `12.2.1`, Codex CLI
|
|
2511
|
+
`0.162.1` and Claude Code `2.1.311`. Level 2 passed for the tag and for the
|
|
2512
|
+
installed npm package, each with delivery off and with `--events spool`.
|
|
2513
|
+
|
|
2514
|
+
Tag binding: a fresh clone of the annotated tag `v0.11.8` (tag object
|
|
2515
|
+
`edd69951e582f5a078b410189a49c9be46921b6f`) peels to
|
|
2516
|
+
`fda4130e93da5ccdeb66eb795e3cd593acc00a17`, the merge of #149, and
|
|
2517
|
+
`git describe --tags --exact-match` reports `v0.11.8`. CI passed on the merge
|
|
2518
|
+
commit (run `40412553947`) and on the tag.
|
|
2519
|
+
|
|
2520
|
+
Package publication, a release fact and not an acceptance level:
|
|
2521
|
+
- `pi-session-mcp@0.11.8` was staged by the maintainer with `npm stage
|
|
2522
|
+
publish` from a fresh clone of the tag and approved with the account's
|
|
2523
|
+
second factor. The registry serves shasum
|
|
2524
|
+
`b9f27b5de1fb33b980e7e923e2d46d48ddc74273` and integrity
|
|
2525
|
+
`sha512-0h2kuqFERAPe5JZElwBmRsX8bewp9PlU/ftWlumXRS83cqwefaBFiMZbBCnNLyAeJRFjgDvTSpLrCX13SjQkcA==`
|
|
2526
|
+
with 967 files, equal to `npm pack --dry-run` of the tag clone.
|
|
2527
|
+
- The GitHub release `v0.11.8` was published by the maintainer.
|
|
2528
|
+
|
|
2529
|
+
Real clients without a model (Level 2), with `scripts/setup-acceptance.mjs`:
|
|
2530
|
+
- Tag clone: 160 of 160 checks passed with delivery off and 228 of 228 with
|
|
2531
|
+
`--events spool`.
|
|
2532
|
+
- npm package: installed into a temporary prefix; every `@earendil-works`
|
|
2533
|
+
package resolved to `1.4.0`; the install smoke reported `smoke_passed` with
|
|
2534
|
+
version `0.11.8`; 160 of 160 checks with delivery off and 228 of 228 with
|
|
2535
|
+
`--events spool`.
|
|
2536
|
+
- In every run the real client registrations were unchanged, no process
|
|
2537
|
+
remained, the built files were unchanged, and the leak check passed.
|
|
2538
|
+
|
|
2539
|
+
Operator upgrade of the workstation from `0.11.6` to `0.11.8`, the first
|
|
2540
|
+
upgrade with two container repositories:
|
|
2541
|
+
- Both client targets were removed with `0.11.6`, `0.11.8` was installed, and
|
|
2542
|
+
Doctor reported `packageVersion` `0.11.8`, `container_profile_refused` `ok`
|
|
2543
|
+
for both repositories, and `writer_not_ready` for all six writers.
|
|
2544
|
+
- `--repo pi-session-mcp --mode container ... --apply` passed while the four
|
|
2545
|
+
`node-app` writers were still not ready (#148):
|
|
2546
|
+
`writer_accepted` for both writers, registrations and hooks unchanged. The
|
|
2547
|
+
`node-app` step then reported `writer_accepted` for all
|
|
2548
|
+
four writers.
|
|
2549
|
+
- Doctor reported no error. Both client targets were applied and verified
|
|
2550
|
+
(`mcp_verified`, `skill_verified`, `hook_verified` for Claude Code), and
|
|
2551
|
+
`--writer <name> --verify` reported `mcp_verified` and `hook_verified` for
|
|
2552
|
+
all six writers.
|
|
2553
|
+
- A Claude Code session in the `node-app` checkout had its
|
|
2554
|
+
four writer servers connected during these steps. Whether it had open
|
|
2555
|
+
coding sessions at the time of the acceptance was not checked.
|
|
2556
|
+
|
|
2557
|
+
Live check of #142, aborted:
|
|
2558
|
+
- A turn with profile `code` (provider `openai`) on the upgraded
|
|
2559
|
+
`pi-session-mcp-w1` started at 22:44:38 UTC to run shell sleeps until after
|
|
2560
|
+
the host token's expiry at 23:35:09 UTC, across the window in which 0.11.6
|
|
2561
|
+
writers failed. It was aborted at 23:11:38 by maintainer decision, before
|
|
2562
|
+
the wrapper's refresh point at ten minutes before expiry. It made model
|
|
2563
|
+
requests for 27 minutes without a failure, which says nothing about the
|
|
2564
|
+
window itself. #142 stays verified by code and tests only.
|
|
2565
|
+
|
|
2566
|
+
Operator upgrade of the server the second machine from `0.11.6` to `0.11.8`
|
|
2567
|
+
on 2026-10-27. The server has no writers, and no Pi Session MCP server
|
|
2568
|
+
process was running there:
|
|
2569
|
+
- Both client targets (`claude-code:user:pi-session-mcp`,
|
|
2570
|
+
`codex:user:pi-session-mcp`) verified with `0.11.6`, were removed, and
|
|
2571
|
+
`0.11.8` was installed with Node 24 first in `PATH`. npm reported that it
|
|
2572
|
+
skipped the install scripts of `@google/genai` and `protobufjs`
|
|
2573
|
+
(`allow-scripts`).
|
|
2574
|
+
- Doctor reported no error. Both targets were applied and verified
|
|
2575
|
+
(`mcp_verified`, `skill_verified`).
|
|
2576
|
+
|
|
2577
|
+
Migration step 4 (go-app) on `0.11.8`, workstation, 2026-10-27:
|
|
2578
|
+
- The manual writer `go-app-alpha` had no work outside `main` and an empty
|
|
2579
|
+
bundle directory. Its local Claude Code registration was removed (it had no
|
|
2580
|
+
Codex registration), and its wrapper and state directory were moved to an
|
|
2581
|
+
archive outside the writer root; deleting them is left to the operator.
|
|
2582
|
+
- The host aliases `go-app-w1`–`go-app-w7` were removed from the configuration.
|
|
2583
|
+
Their worktrees were clean and detached on a commit of `main`.
|
|
2584
|
+
- The host isolation control for `go-app` passed. `--repo go-app --mode container`
|
|
2585
|
+
with four writers, profiles `code`, `code-deepseek`, `code-glm`,
|
|
2586
|
+
`code-mistral` and `code-grok`, the operator image `fe14e8543500969bca13782b5e9aa43d7a2bb989e67f705e65fbf6d48034d91f`
|
|
2587
|
+
(`node-go`, Node 22.23.3 and Go 1.27.3, an operator image built outside
|
|
2588
|
+
this repository), `--cache go`, network `pasta`, lifecycle
|
|
2589
|
+
`persistent` and `--client codex` reported `writer_accepted` for all four
|
|
2590
|
+
writers on the first `--apply`, `writer_registered` for Claude Code and
|
|
2591
|
+
Codex, and the wake hook.
|
|
2592
|
+
- `go-app-rev` was set to mode `read-only`. `--writer go-app-w<n> --verify`
|
|
2593
|
+
reported `mcp_verified` and `hook_verified` for all four writers. Doctor
|
|
2594
|
+
reported no error; for go-app only the `workspace_gitfile` warning of the
|
|
2595
|
+
read-only alias `go-app-rev` remains.
|
|
2596
|
+
|
|
2597
|
+
Not established for `0.11.8`: a live confirmation of #142; a real coding turn
|
|
2598
|
+
on each `node-app` and go-app writer; Level 3.
|
|
2599
|
+
|
|
2600
|
+
### v0.11.8 pre-release acceptance
|
|
2601
|
+
|
|
2602
|
+
`v0.11.8` was accepted on 2026-10-26 from 22:15 to 22:20 UTC on its release
|
|
2603
|
+
candidate `76fe69d`, on Linux (`x64`) with Node.js `26.12.1`, npm `12.2.1`,
|
|
2604
|
+
Codex CLI `0.162.1` and Claude Code `2.1.311`. Level 2 passed in the working
|
|
2605
|
+
tree and for the packed tarball, each with delivery off and with delivery on.
|
|
2606
|
+
Level 1 passed except `npm audit`.
|
|
2607
|
+
|
|
2608
|
+
The patch ships #148 on top of 0.11.7. It does not change the MCP contract or
|
|
2609
|
+
the setup report schema.
|
|
2610
|
+
|
|
2611
|
+
- Level 1 in a clean worktree of the candidate after `npm ci`: every command
|
|
2612
|
+
exited with `0`, except `npm audit`; `git status --short` printed nothing.
|
|
2613
|
+
- The test run, with `NODE_OPTIONS=--unhandled-rejections=strict`, reported
|
|
2614
|
+
116 files, 3500 passed and 13 skipped, and no unhandled error.
|
|
2615
|
+
- `npm audit` exited with `1` and names only the known `undici` finding
|
|
2616
|
+
through `@earendil-works/pi-coding-agent` 1.4.0
|
|
2617
|
+
([#120](https://github.com/plagor44-ux/pi-session-mcp/issues/120)).
|
|
2618
|
+
- `npm pack` listed 967 files (tarball shasum
|
|
2619
|
+
`ccc9b1c4021cf2a4d02425592ff0b348987718ac`); nothing under `eval/` is
|
|
2620
|
+
packed.
|
|
2621
|
+
- Doctor reported `packageVersion` `0.11.8`. It exited with `2` because no
|
|
2622
|
+
configuration was set (`config_missing`).
|
|
2623
|
+
- Level 2 in the working tree: 160 of 160 checks passed with delivery off and
|
|
2624
|
+
228 of 228 with `--events spool`.
|
|
2625
|
+
- Packed-tarball Level 2 from a fresh prefix: 160 of 160 with delivery off and
|
|
2626
|
+
228 of 228 with `--events spool`. The install smoke reported `smoke_passed`
|
|
2627
|
+
with version `0.11.8`.
|
|
2628
|
+
- In every Level 2 run the real client registrations and the built files were
|
|
2629
|
+
unchanged, no process remained, and the leak check passed.
|
|
2630
|
+
- Review: `review-glm` (another model family than the author) on #148,
|
|
2631
|
+
verdict `NON_BLOCKING_ONLY`; both low findings fixed.
|
|
2632
|
+
|
|
2633
|
+
Not established for `0.11.8`: the upgrade of an installation with two
|
|
2634
|
+
container repositories (the workstation), which follows the release; Level 3.
|
|
2635
|
+
|
|
2636
|
+
### v0.11.7 post-release evidence
|
|
2637
|
+
|
|
2638
|
+
The published-release acceptance of `v0.11.7` ran on 2026-10-26 from 21:38 to
|
|
2639
|
+
21:42 UTC on Linux (`x64`) with Node.js `26.12.1`, npm `12.2.1`, Codex CLI
|
|
2640
|
+
`0.162.1` and Claude Code `2.1.310`. Level 2 passed for the tag and for the
|
|
2641
|
+
installed npm package, each with delivery off and with `--events spool`.
|
|
2642
|
+
|
|
2643
|
+
Tag binding: a fresh clone of the annotated tag `v0.11.7` (tag object
|
|
2644
|
+
`a1b77bd47e168a3bbb6d06b747f03216a4d9b766`) peels to
|
|
2645
|
+
`8d8f5a9eafce01aad70c9b84280c4f3cf0a3ef51`, the merge of #147, and
|
|
2646
|
+
`git describe --tags --exact-match` reports `v0.11.7`. CI passed on the merge
|
|
2647
|
+
commit (run `40399839639`) and on the tag (run `40400486501`).
|
|
2648
|
+
|
|
2649
|
+
Package publication, a release fact and not an acceptance level:
|
|
2650
|
+
- `pi-session-mcp@0.11.7` was staged by the maintainer with `npm stage
|
|
2651
|
+
publish` from a fresh clone of the tag and approved with the account's
|
|
2652
|
+
second factor. The registry serves shasum
|
|
2653
|
+
`a1b28db671e55239e96b5b43bafa47d7a6c17b7e` and integrity
|
|
2654
|
+
`sha512-F0rpM7T7zhWTGFBHEUMo5fOldfBOKRyrRnHaKRDVuLhRfzq7qRIbh+o8PIPxS5vUdrshb+TNeWh54FgQlEOj7g==`
|
|
2655
|
+
with 967 files, equal to `npm pack --dry-run` of the tag clone.
|
|
2656
|
+
- The GitHub release `v0.11.7` was published by the maintainer.
|
|
2657
|
+
|
|
2658
|
+
Real clients without a model (Level 2), with `scripts/setup-acceptance.mjs`:
|
|
2659
|
+
- Tag clone: 160 of 160 checks passed with delivery off and 228 of 228 with
|
|
2660
|
+
`--events spool`.
|
|
2661
|
+
- npm package: installed into a temporary prefix; every `@earendil-works`
|
|
2662
|
+
package resolved to `1.4.0`; the install smoke reported `smoke_passed` with
|
|
2663
|
+
version `0.11.7`; 160 of 160 checks with delivery off and 228 of 228 with
|
|
2664
|
+
`--events spool`.
|
|
2665
|
+
- In every run the real client registrations were unchanged, no process
|
|
2666
|
+
remained, the built files were unchanged, and the leak check passed.
|
|
2667
|
+
|
|
2668
|
+
Operator upgrade of the workstation, **failed and rolled back**:
|
|
2669
|
+
- Both client targets were removed with `0.11.6`, `0.11.7` was installed, and
|
|
2670
|
+
Doctor reported `packageVersion` `0.11.7`, `container_profile_refused` `ok`
|
|
2671
|
+
for both container repositories, and `writer_not_ready` for all six writers,
|
|
2672
|
+
as expected after an upgrade.
|
|
2673
|
+
- `--repo pi-session-mcp --mode container ... --apply` failed with
|
|
2674
|
+
`doctor_failed` and four `writer_not_ready` findings for the writers of
|
|
2675
|
+
`node-app`; that repository's step failed the same way on
|
|
2676
|
+
the two `pi-session-mcp` writers. With two container repositories no
|
|
2677
|
+
repository step could pass, and Doctor blocks the client targets until the
|
|
2678
|
+
writers are accepted ([#148](https://github.com/plagor44-ux/pi-session-mcp/issues/148)).
|
|
2679
|
+
- Rollback: `0.11.6` was installed again. Doctor reported no error: the writers'
|
|
2680
|
+
acceptance was still current for `0.11.6`. Both client targets were applied
|
|
2681
|
+
and verified (`mcp_verified`, `skill_verified`, `hook_verified`), and
|
|
2682
|
+
`--writer <name> --verify` reported `mcp_verified` and `hook_verified` for
|
|
2683
|
+
all six writers.
|
|
2684
|
+
|
|
2685
|
+
Not established for `0.11.7`: any use on the workstation; the live check of
|
|
2686
|
+
#142; Level 3.
|
|
2687
|
+
|
|
2688
|
+
### v0.11.7 pre-release acceptance
|
|
2689
|
+
|
|
2690
|
+
`v0.11.7` was accepted on 2026-10-26 from 20:38 to 20:43 UTC on its release
|
|
2691
|
+
candidate `9f53548`, on Linux (`x64`) with Node.js `26.12.1`, npm `12.2.1`,
|
|
2692
|
+
Codex CLI `0.162.1` and Claude Code `2.1.310`. Level 2 passed in the working
|
|
2693
|
+
tree and for the packed tarball, each with delivery off and with delivery on.
|
|
2694
|
+
Level 1 passed except `npm audit`.
|
|
2695
|
+
|
|
2696
|
+
The patch ships #141, #142 and the controller skill's review stage from
|
|
2697
|
+
Sprint 11. It does not change the MCP contract. Doctor gains the check
|
|
2698
|
+
`container_profile_refused`; the setup report keeps `schemaVersion` 1. The
|
|
2699
|
+
writer wrapper refreshes host OAuth credentials through `ModelRuntime`, an
|
|
2700
|
+
exception to "Keep Pi behind `PiSessionAdapter`" that the maintainer approved
|
|
2701
|
+
and AGENTS.md records.
|
|
2702
|
+
|
|
2703
|
+
- Level 1 in a clean worktree of the candidate after `npm ci`: every command
|
|
2704
|
+
exited with `0`, except `npm audit`; `git status --short` printed nothing.
|
|
2705
|
+
- The test run, with `NODE_OPTIONS=--unhandled-rejections=strict`, reported
|
|
2706
|
+
116 files, 3497 passed and 13 skipped, and no unhandled error.
|
|
2707
|
+
- `npm audit` exited with `1` and names only the known `undici` finding
|
|
2708
|
+
(GHSA-4qv8-2p9j-2685, GHSA-f72v-6w45-q472, GHSA-xjj6-f33q-929c) through
|
|
2709
|
+
`@earendil-works/pi-coding-agent` 1.4.0, still the latest SDK release
|
|
2710
|
+
([#120](https://github.com/plagor44-ux/pi-session-mcp/issues/120)).
|
|
2711
|
+
- `npm pack` listed 967 files (tarball shasum
|
|
2712
|
+
`f1b9d4a4faeaa6b19941348f6259e5e2d27d57e1`); nothing under `eval/` is
|
|
2713
|
+
packed.
|
|
2714
|
+
- Doctor reported `packageVersion` `0.11.7`. It exited with `2` because no
|
|
2715
|
+
configuration was set (`config_missing`).
|
|
2716
|
+
- Level 2 in the working tree, through `scripts/setup-acceptance.mjs`: 160 of
|
|
2717
|
+
160 checks passed with delivery off and 228 of 228 with `--events spool`.
|
|
2718
|
+
- Packed-tarball Level 2, installed with `npm install -g --prefix` into a
|
|
2719
|
+
fresh prefix: 160 of 160 checks with delivery off and 228 of 228 with
|
|
2720
|
+
`--events spool`. The install smoke reported `smoke_passed` with version
|
|
2721
|
+
`0.11.7`.
|
|
2722
|
+
- In every Level 2 run the real client registrations and the built files were
|
|
2723
|
+
unchanged, no process remained, and the path-leak check passed. The
|
|
2724
|
+
worktree, the tarball and the prefix were removed.
|
|
2725
|
+
- Reviews: one cross-family Pi review per Sprint 11 code task and a final
|
|
2726
|
+
independent review of the whole Sprint 11 diff (PR #146); their findings are
|
|
2727
|
+
fixed or recorded in the Sprint 11 file.
|
|
2728
|
+
|
|
2729
|
+
Not established for `0.11.7`:
|
|
2730
|
+
- any live run of the released package (Level 3 or a real model);
|
|
2731
|
+
- a live turn that confirms #142: the Sprint 11 check fell outside the failure
|
|
2732
|
+
window;
|
|
2733
|
+
- the acceptance of the upgraded writers, which follows the release;
|
|
2734
|
+
- the VS Code wake; macOS delivery.
|
|
2735
|
+
|
|
2736
|
+
### v0.11.6 post-release evidence
|
|
2737
|
+
|
|
2738
|
+
The published-release acceptance of `v0.11.6` ran on 2026-10-26 from 18:45 to
|
|
2739
|
+
18:50 UTC on Linux (`x64`) with Node.js `26.12.1`, npm `12.2.1`, Codex CLI
|
|
2740
|
+
`0.162.1` and Claude Code `2.1.310`. Level 2 passed for the tag and for the
|
|
2741
|
+
installed npm package, each with delivery off and with `--events spool`.
|
|
2742
|
+
Level 1 was not repeated on the tag clone: the release commit is the merge of
|
|
2743
|
+
PR #140, whose tree the pre-release record above accepted.
|
|
2744
|
+
|
|
2745
|
+
Tag binding: a fresh clone of the annotated tag `v0.11.6` (tag object
|
|
2746
|
+
`8e05631b2982e505648f186cf06e7b88247be0b3`) peels to
|
|
2747
|
+
`d93a6d68f90c6cb1ba46187ac7da348738ce5924`, the merge of #140, and
|
|
2748
|
+
`git describe --tags --exact-match` reports `v0.11.6`. CI passed on the merge
|
|
2749
|
+
commit and on the tag.
|
|
2750
|
+
|
|
2751
|
+
Package publication, a release fact and not an acceptance level:
|
|
2752
|
+
- The registry serves shasum `cfd8cfad18a6f36b8c9270d4211e717ea6575d77` and
|
|
2753
|
+
integrity
|
|
2754
|
+
`sha512-xtGskVrlcOz/vCe6X/BOV4NN5Ofbn2coMt7BJUGvweeqsflOTOY8DfOQGP5STaZYE91udeZBenLe1qJ9W8GAyQ==`
|
|
2755
|
+
with 961 files. Both equal `npm pack --dry-run` of the tag clone after
|
|
2756
|
+
`npm ci`, `npm run build` and `npm run build:cli`.
|
|
2757
|
+
- Doctor on the tag clone reported `packageVersion` `0.11.6`. It exited with
|
|
2758
|
+
`2` because no configuration was set (`config_missing`).
|
|
2759
|
+
- The GitHub release `v0.11.6` was published at 11:10:06 UTC.
|
|
2760
|
+
|
|
2761
|
+
Real clients without a model (Level 2), with `scripts/setup-acceptance.mjs`:
|
|
2762
|
+
- Tag clone: 160 of 160 checks passed with delivery off and 228 of 228 with
|
|
2763
|
+
`--events spool`.
|
|
2764
|
+
- npm package: installed with `npm install -g --prefix` into a temporary
|
|
2765
|
+
prefix without the lockfile. Every `@earendil-works` package resolved to
|
|
2766
|
+
`1.4.0`. The install smoke reported `smoke_passed` with version `0.11.6`.
|
|
2767
|
+
Level 2 passed 160 of 160 checks with delivery off and 228 of 228 with
|
|
2768
|
+
`--events spool`.
|
|
2769
|
+
- In every run the real client registrations were unchanged, no process
|
|
2770
|
+
remained, the built files were unchanged, and the path-leak check passed.
|
|
2771
|
+
- The clone and the prefix were removed.
|
|
2772
|
+
|
|
2773
|
+
Workstation state on 2026-10-26, recorded during Sprint 11:
|
|
2774
|
+
- The host server and both pilot writers report `0.11.6` and delivery `spool`
|
|
2775
|
+
through `pi_capabilities_get`; `--writer <name> --verify` reported
|
|
2776
|
+
`mcp_verified` and `hook_verified` for both writers.
|
|
2777
|
+
- The worker skills that the writers load come from the read-only release
|
|
2778
|
+
mount of the installed package; its `pi-session-implementation` skill is
|
|
2779
|
+
identical to the one on `main` and carries the status tokens (S10-4). Both
|
|
2780
|
+
Sprint 11 worker reports that completed began with a valid `STATUS:` line;
|
|
2781
|
+
their prompts also asked for that line, so this does not show on its own
|
|
2782
|
+
that the skill was read.
|
|
2783
|
+
- Migration step 2: `node-app` was provisioned with four
|
|
2784
|
+
writers on `0.11.6`. The host isolation control passed, and all four writers
|
|
2785
|
+
reported `writer_accepted` on the first `--apply`, registered for Claude Code
|
|
2786
|
+
and Codex with the wake hook.
|
|
2787
|
+
- Two coding turns with an OAuth provider failed together in the minutes
|
|
2788
|
+
before the host token expired
|
|
2789
|
+
([#142](https://github.com/plagor44-ux/pi-session-mcp/issues/142)).
|
|
2790
|
+
|
|
2791
|
+
Not established for `0.11.6`:
|
|
2792
|
+
- any live run on Level 3;
|
|
2793
|
+
- a real coding turn on each `node-app` writer, which needs a
|
|
2794
|
+
controller started in that repository's checkout;
|
|
2795
|
+
- the VS Code wake; macOS delivery.
|
|
2796
|
+
|
|
2797
|
+
### v0.11.5 post-release evidence
|
|
2798
|
+
|
|
2799
|
+
The published-release acceptance of `v0.11.5` ran on 2026-10-25 from 22:13 to
|
|
2800
|
+
22:16 UTC on Linux (`x64`) with Node.js `26.11.1`, npm `12.2.1`, Codex CLI
|
|
2801
|
+
`0.162.1` and Claude Code `2.1.310`. Level 2 passed for the tag and for the
|
|
2802
|
+
installed npm package, each with delivery off and with `--events spool`.
|
|
2803
|
+
Level 1 was not repeated on the tag clone: the release commit is the merge of
|
|
2804
|
+
the release branch, whose trees equal the accepted candidate `b86006d` and its
|
|
2805
|
+
acceptance record.
|
|
2806
|
+
|
|
2807
|
+
Tag binding: a fresh clone of the annotated tag `v0.11.5` (tag object
|
|
2808
|
+
`aec134a205dce6b3e733768b90cd2cea4ead7a12`) peels to
|
|
2809
|
+
`a8f63975a025a250b2dea61b187692d985e7d7b3`, the merge of #133, and
|
|
2810
|
+
`git describe --tags --exact-match` reports `v0.11.5`. CI passed on the merge
|
|
2811
|
+
commit (run `40236438166`) and on the tag (run `40237547917`).
|
|
2812
|
+
|
|
2813
|
+
Package publication, a release fact and not an acceptance level:
|
|
2814
|
+
- `pi-session-mcp@0.11.5` was published from a fresh clone of the tag with
|
|
2815
|
+
`npm stage publish` and the maintainer's approval. The first staging attempt
|
|
2816
|
+
failed with `E401` because the npm login had expired; nothing was staged.
|
|
2817
|
+
- The registry serves shasum `ff827c7ad8fb8f6d380783be750217b6c9f9a0fe` and
|
|
2818
|
+
integrity
|
|
2819
|
+
`sha512-4sm0INgLO73N871To0MrCnq2cH9R9RVYfeEaGzlpSkWaPk5MEgZsqYFlJw95KT2HAYsUUkAjIXUNs0JNreDH9w==`
|
|
2820
|
+
with 958 files. Both equal the staged package and a local `npm pack` of the
|
|
2821
|
+
tag clone after `npm ci`, `npm run build` and `npm run build:cli`.
|
|
2822
|
+
- Doctor on the tag clone reported `packageVersion` `0.11.5`. It exited with
|
|
2823
|
+
`2` because no configuration was set (`config_missing`).
|
|
2824
|
+
- The GitHub release `v0.11.5` was published at 22:12:37 UTC.
|
|
2825
|
+
|
|
2826
|
+
Real clients without a model (Level 2), with `scripts/setup-acceptance.mjs`:
|
|
2827
|
+
- Tag clone: 160 of 160 checks passed with delivery off and 228 of 228 with
|
|
2828
|
+
`--events spool`.
|
|
2829
|
+
- npm package: installed with `npm install -g --prefix` into a temporary
|
|
2830
|
+
prefix without the lockfile. Every `@earendil-works` package resolved to
|
|
2831
|
+
`1.4.0`. The install smoke reported `smoke_passed` with version `0.11.5`.
|
|
2832
|
+
Level 2 passed 160 of 160 checks with delivery off and 228 of 228 with
|
|
2833
|
+
`--events spool`.
|
|
2834
|
+
- In every run the real client registrations were unchanged, no process
|
|
2835
|
+
remained, the built files were unchanged, and the path-leak check passed.
|
|
2836
|
+
- The clone and the prefix were removed.
|
|
2837
|
+
|
|
2838
|
+
Operator upgrade of the workstation from `0.11.4` to `0.11.5` on 2026-10-25,
|
|
2839
|
+
following [Installation](installation.md#container-writers):
|
|
2840
|
+
- Both client targets were removed with `0.11.4`, the package was installed
|
|
2841
|
+
with `npm install -g`, and Doctor reported `packageVersion` `0.11.5`.
|
|
2842
|
+
- The first `--repo pi-session-mcp --mode container ... --apply` failed with
|
|
2843
|
+
`doctor_failed`. Doctor reported `extension_version_mismatch` for the two
|
|
2844
|
+
Cursor profiles, which this repository does not select: Pi had updated the
|
|
2845
|
+
unpinned `npm:pi-cursor-sdk` from `0.5.3` to `0.5.4` earlier that day
|
|
2846
|
+
([#137](https://github.com/plagor44-ux/pi-session-mcp/issues/137)). After
|
|
2847
|
+
`pi install npm:pi-cursor-sdk@0.5.3` the step reported `writer_accepted` for
|
|
2848
|
+
both ready pilot writers, without `--remove` and without a failure record,
|
|
2849
|
+
and `writer_registered` and `hook_already_equivalent` unchanged. This is the
|
|
2850
|
+
first upgrade that needed no removal
|
|
2851
|
+
([#130](https://github.com/plagor44-ux/pi-session-mcp/issues/130)). Whether a
|
|
2852
|
+
host token was expired at that moment was not checked, so the case of #131
|
|
2853
|
+
itself was not reproduced.
|
|
2854
|
+
- Both client targets were applied again and verified (`mcp_verified`,
|
|
2855
|
+
`skill_verified`, `hook_verified` for Claude Code), and
|
|
2856
|
+
`--writer <name> --verify` reported `mcp_verified` for both writers. Doctor
|
|
2857
|
+
then reported no error, only `workspace_mode_unset` and `workspace_gitfile`
|
|
2858
|
+
warnings for repositories not yet migrated.
|
|
2859
|
+
- A second run of the same steps changed nothing: the acceptance was current,
|
|
2860
|
+
so no harness ran, and every registration, skill and hook was unchanged.
|
|
2861
|
+
- The server the second machine, which has no writers, was upgraded the same
|
|
2862
|
+
way for its two client targets. Doctor reported no error, and both targets
|
|
2863
|
+
verified.
|
|
2864
|
+
|
|
2865
|
+
Pilot delegation on the upgraded writers:
|
|
2866
|
+
- Both writers were reset onto `a8f6397`. Each received one coding task with
|
|
2867
|
+
profile `code-deepseek`: a failing test for a newly found defect
|
|
2868
|
+
([#134](https://github.com/plagor44-ux/pi-session-mcp/issues/134) on
|
|
2869
|
+
`pi-session-mcp-w1`, [#135](https://github.com/plagor44-ux/pi-session-mcp/issues/135)
|
|
2870
|
+
on `pi-session-mcp-w2`). The turns completed in 45 and 25 seconds; the
|
|
2871
|
+
controller was woken by turn events and did not poll. Usage was not
|
|
2872
|
+
reported, so the cost is unknown.
|
|
2873
|
+
- The controller collected both writers, inspected the imported refs, and ran
|
|
2874
|
+
both tests itself on `a8f6397`: exactly the two new tests failed, at their
|
|
2875
|
+
intended assertions, 58 other tests passed, and the typecheck passed. Both
|
|
2876
|
+
writers were finished and returned to ready on `a8f6397`.
|
|
2877
|
+
- The first coding starts failed with `local_authentication_missing`: the
|
|
2878
|
+
reset had run after the writer servers started and had replaced their
|
|
2879
|
+
projected credentials. A client reconnect of the writer servers resolved it
|
|
2880
|
+
([#136](https://github.com/plagor44-ux/pi-session-mcp/issues/136)).
|
|
2881
|
+
|
|
2882
|
+
Not established for `0.11.5`:
|
|
2883
|
+
- any live run on Level 3;
|
|
2884
|
+
- the acceptance of a writer while a host token is expired (#131);
|
|
2885
|
+
- the VS Code wake;
|
|
2886
|
+
- macOS delivery.
|
|
2887
|
+
|
|
2888
|
+
### v0.11.4 post-release evidence
|
|
2889
|
+
|
|
2890
|
+
The published-release acceptance of `v0.11.4` ran on 2026-10-25 from 19:51 to
|
|
2891
|
+
19:54 UTC on Linux (`x64`) with Node.js `26.11.1`, npm `12.2.1`, Codex CLI
|
|
2892
|
+
`0.162.1` and Claude Code `2.1.310`. Level 2 passed for the tag and for the
|
|
2893
|
+
installed npm package, each with delivery off and with `--events spool`.
|
|
2894
|
+
Level 1 was not repeated on the tag clone: the release commit is the merge of
|
|
2895
|
+
the accepted candidate `643f1f9` and its acceptance record.
|
|
2896
|
+
|
|
2897
|
+
Tag binding: a fresh clone of the annotated tag `v0.11.4` (tag object
|
|
2898
|
+
`6f4f6ef4691a7c33fc5a716e0c3a1120ccfe3f30`) peels to
|
|
2899
|
+
`44f56c97c5db7f9c2da3d7b4ab6708862f115afb`, the merge of #129, and
|
|
2900
|
+
`git describe --tags --exact-match` reports `v0.11.4`. CI passed on the merge
|
|
2901
|
+
commit (run `40203160814`) and on the tag (run `40203565432`).
|
|
2902
|
+
|
|
2903
|
+
Package publication, a release fact and not an acceptance level:
|
|
2904
|
+
- `pi-session-mcp@0.11.4` was published from a fresh clone of the tag with
|
|
2905
|
+
`npm stage publish` and the maintainer's approval.
|
|
2906
|
+
- The registry serves shasum `4113de558e2ca0fe10dba52a94a03d250b893683` and
|
|
2907
|
+
integrity
|
|
2908
|
+
`sha512-TF6aHpd7wFvWYNY6acOhl9oczwTdTZO+r9BNzhSc+PHZNc32BF8+YdWI3fvdZdzuIl8F9dHlF4wxACipkhXAqQ==`.
|
|
2909
|
+
Both equal a local `npm pack` of the tag clone after `npm ci`,
|
|
2910
|
+
`npm run build` and `npm run build:cli`.
|
|
2911
|
+
- Doctor on the tag clone reported `packageVersion` `0.11.4`. It exited with
|
|
2912
|
+
`2` because no configuration was set (`config_missing`).
|
|
2913
|
+
- The GitHub release `v0.11.4` was created at 14:53:40 UTC.
|
|
2914
|
+
|
|
2915
|
+
Real clients without a model (Level 2), with `scripts/setup-acceptance.mjs`:
|
|
2916
|
+
- Tag clone: 160 of 160 checks passed with delivery off and 228 of 228 with
|
|
2917
|
+
`--events spool`.
|
|
2918
|
+
- npm package: installed with `npm install -g --prefix` into a temporary
|
|
2919
|
+
prefix without the lockfile. Every `@earendil-works` package resolved to
|
|
2920
|
+
`1.4.0`. The install smoke reported `smoke_passed` with version `0.11.4`.
|
|
2921
|
+
Level 2 passed 160 of 160 checks with delivery off and 228 of 228 with
|
|
2922
|
+
`--events spool`.
|
|
2923
|
+
- In every run the real client registrations were unchanged, no process
|
|
2924
|
+
remained, the built files were unchanged, and the path-leak check passed.
|
|
2925
|
+
- The clone and the prefix were removed.
|
|
2926
|
+
|
|
2927
|
+
Operator upgrade: the workstation was upgraded from `0.11.3` to `0.11.4` on
|
|
2928
|
+
2026-10-25. Both pilot writers then stayed `writer_not_ready`
|
|
2929
|
+
([#130](https://github.com/plagor44-ux/pi-session-mcp/issues/130)) and were
|
|
2930
|
+
removed and provisioned again; one acceptance failed once
|
|
2931
|
+
([#131](https://github.com/plagor44-ux/pi-session-mcp/issues/131)). The issues
|
|
2932
|
+
record the details; 0.11.5 fixes both.
|
|
2933
|
+
|
|
2934
|
+
Not established for `0.11.4`:
|
|
2935
|
+
- any live run of the released package (Level 3 or a real model);
|
|
2936
|
+
- the VS Code wake;
|
|
2937
|
+
- macOS delivery.
|
|
2938
|
+
|
|
2939
|
+
### v0.11.5 pre-release acceptance
|
|
2940
|
+
|
|
2941
|
+
`v0.11.5` was accepted on 2026-10-25 from 19:47 to 19:51 UTC on its release
|
|
2942
|
+
candidate `b86006d`, on Linux (`x64`) with Node.js `26.11.1`, npm `12.2.1`,
|
|
2943
|
+
Codex CLI `0.162.1` and Claude Code `2.1.310`. Level 2 passed in the working
|
|
2944
|
+
tree and for the packed tarball, each with delivery off and with delivery on.
|
|
2945
|
+
Level 1 passed except `npm audit`.
|
|
2946
|
+
|
|
2947
|
+
The patch ships the Sprint 8 upgrade fixes #130 and #131
|
|
2948
|
+
([#132](https://github.com/plagor44-ux/pi-session-mcp/pull/132)). It does not
|
|
2949
|
+
change the MCP contract. Setup reports the existing code `podman_unavailable`
|
|
2950
|
+
for a kept writer whose acceptance cannot be checked, and the acceptance
|
|
2951
|
+
failure record gains the field `changedDigestGroups`.
|
|
2952
|
+
|
|
2953
|
+
- Level 1 on a fresh clone of the candidate: every command exited with `0`,
|
|
2954
|
+
except `npm audit` and Doctor; `git status --short` printed nothing.
|
|
2955
|
+
- The test run, with `NODE_OPTIONS=--unhandled-rejections=strict`, reported
|
|
2956
|
+
114 files, 3405 passed and 13 skipped, and no unhandled error.
|
|
2957
|
+
- `npm audit` and `npm audit --omit=dev` exited with `1` and name only the
|
|
2958
|
+
known `undici` finding (GHSA-4qv8-2p9j-2685, GHSA-f72v-6w45-q472,
|
|
2959
|
+
GHSA-xjj6-f33q-929c) through `@earendil-works/pi-coding-agent` 1.4.0
|
|
2960
|
+
([#120](https://github.com/plagor44-ux/pi-session-mcp/issues/120)).
|
|
2961
|
+
- `npm pack` listed 958 files.
|
|
2962
|
+
- Doctor reported `packageVersion` `0.11.5`. It exited with `2` because no
|
|
2963
|
+
configuration was set (`config_missing`).
|
|
2964
|
+
- Level 2 in the working tree, through `scripts/setup-acceptance.mjs`: 160 of
|
|
2965
|
+
160 checks passed with delivery off and 228 of 228 with `--events spool`.
|
|
2966
|
+
- Packed-tarball Level 2:
|
|
2967
|
+
- The candidate's tarball (sha256
|
|
2968
|
+
`a058d735a38824de1ef2354967e9a365fce7f536163c5573fe6aec31fdb1dd5a`) was
|
|
2969
|
+
installed with `npm install -g --prefix` into a fresh prefix without the
|
|
2970
|
+
lockfile.
|
|
2971
|
+
- Every `@earendil-works` package resolved to `1.4.0`.
|
|
2972
|
+
- The install smoke reported `smoke_passed` with version `0.11.5`.
|
|
2973
|
+
- Level 2 passed 160 of 160 checks with delivery off and 228 of 228 with
|
|
2974
|
+
`--events spool`.
|
|
2975
|
+
- In every Level 2 run the real client registrations were unchanged, no
|
|
2976
|
+
process remained, the built files were unchanged, and the path-leak check
|
|
2977
|
+
passed. The tarball and the prefix were removed.
|
|
2978
|
+
- No client contract was recorded: the clients are the versions of the
|
|
2979
|
+
`0.11.4` record.
|
|
2980
|
+
- #130 and #131 were reviewed independently in
|
|
2981
|
+
[#132](https://github.com/plagor44-ux/pi-session-mcp/pull/132); the review
|
|
2982
|
+
follow-ups are part of the candidate.
|
|
2983
|
+
|
|
2984
|
+
Not established for `0.11.5`:
|
|
2985
|
+
- any live run of the released package (Level 3 or a real model);
|
|
2986
|
+
- the re-acceptance of a ready writer after an upgrade on a real writer
|
|
2987
|
+
(#130) and an acceptance with an expired host token (#131); the Sprint 8
|
|
2988
|
+
pilot runs both on the published release;
|
|
2989
|
+
- the VS Code wake;
|
|
2990
|
+
- macOS delivery.
|
|
2991
|
+
|
|
2992
|
+
CI covers macOS 15 and 26. The published-release acceptance follows after
|
|
2993
|
+
publication, with both Level 2 variants.
|
|
2994
|
+
|
|
1588
2995
|
## Sprint 1 correctness checks (2026-10-13)
|
|
1589
2996
|
|
|
1590
2997
|
These checks belong to [#59](https://github.com/plagor44-ux/pi-session-mcp/issues/59)
|
|
@@ -1731,3 +3138,289 @@ Not established: macOS (R10, R11; runbook in the Sprint 3 file), other
|
|
|
1731
3138
|
providers and models, the operator profiles' external MCP grant, larger tasks,
|
|
1732
3139
|
more than three concurrent sessions, and the `trio` timing with Claude Code as
|
|
1733
3140
|
controller.
|
|
3141
|
+
|
|
3142
|
+
## macOS acceptance on real hardware (2026-10-16)
|
|
3143
|
+
|
|
3144
|
+
Recorded on 2026-10-16 for the published release `0.8.3` (tag `v0.8.3`, peeled
|
|
3145
|
+
commit `53ed581`), on a real Mac: macOS 26.7.1 (`25G241`) on `arm64`, Node.js
|
|
3146
|
+
`22.23.3` and Claude Code `2.1.294`. This closes R10 and R11 for Claude Code.
|
|
3147
|
+
|
|
3148
|
+
The source was the tree of the tag, exported from a local clone with
|
|
3149
|
+
`git archive` into a directory of its own, so the run did not use a clone from
|
|
3150
|
+
the network. `git describe` was not run on it. `dist/main.js` built from that
|
|
3151
|
+
tree has the SHA-256 `47875d38886528ace6b242df2c6ad79d624c51e330e63c2f401576eadc449ed7`,
|
|
3152
|
+
the same digest as the `dist/main.js` of the globally installed npm package
|
|
3153
|
+
`0.8.3` that the client registration starts.
|
|
3154
|
+
|
|
3155
|
+
- Level 1 on that tree: `npm ci`, `npm run typecheck`, `npm run build` and
|
|
3156
|
+
`npm run build:cli` exited with `0`. `npm test` reported 54 test files
|
|
3157
|
+
passed and 1 skipped, 1315 tests passed and 116 skipped. `npm audit`
|
|
3158
|
+
reported 0 vulnerabilities.
|
|
3159
|
+
- R10, Level 2 with `scripts/setup-acceptance.mjs` for Claude Code only: 117 of
|
|
3160
|
+
117 checks passed. All three targets (`user`, `project` and `local`)
|
|
3161
|
+
completed the nine-step sequence. The result reported
|
|
3162
|
+
`realRegistrationsUnchanged`, `processCheck`, the leak check and
|
|
3163
|
+
`buildUnchanged` as true, and the script exited with `0`.
|
|
3164
|
+
- R11, read-only smoke through the installed registration: one
|
|
3165
|
+
`pi_session_start` with a `read-only` profile, one short prompt that asked
|
|
3166
|
+
for the package name and version, `pi_turn_get` until `completed`, and
|
|
3167
|
+
`pi_session_close`. The session ran on a local model served by LM Studio. The
|
|
3168
|
+
turn completed in about 6 s, and its answer named the package and version
|
|
3169
|
+
`0.8.3` correctly.
|
|
3170
|
+
|
|
3171
|
+
Not established by these checks:
|
|
3172
|
+
- Codex, which is not installed on the machine, so macOS has still not passed
|
|
3173
|
+
setup acceptance for Codex.
|
|
3174
|
+
- The lock-contention and interruption steps of the [macOS](#macos) section,
|
|
3175
|
+
which the script does not cover and which were not run by hand. The earlier
|
|
3176
|
+
run of 2026-10-11 covers them for an older build.
|
|
3177
|
+
- Level 3, a coding profile, more than one session, Intel Macs, and the
|
|
3178
|
+
published-package install path (the package was installed earlier and was
|
|
3179
|
+
not reinstalled for this run).
|
|
3180
|
+
|
|
3181
|
+
### Live check on macOS with Claude Code (2026-10-16)
|
|
3182
|
+
|
|
3183
|
+
On 2026-10-16 the release `0.8.3` passed a live check on the same Mac with
|
|
3184
|
+
Claude Code `2.1.294` as the only client. It follows the task matrix of
|
|
3185
|
+
[Level 3](#level-3-live-two-client-acceptance) for one client, so it is not a
|
|
3186
|
+
ten-task cycle and does not satisfy the Level 3 gate, which needs both clients.
|
|
3187
|
+
|
|
3188
|
+
- Server: the build described above (`dist/main.js` SHA-256 `47875d38…`), with
|
|
3189
|
+
Pi SDK `1.2.0`, started through a temporary per-invocation MCP configuration
|
|
3190
|
+
(`--strict-mcp-config`). No global registration changed. The configuration
|
|
3191
|
+
was credential-free and had one `read-only` and one `coding` profile on
|
|
3192
|
+
synthetic fixtures, and a disposable Pi agent directory.
|
|
3193
|
+
- Model: `qwen3.6-35b-a3b-splash` served by LM Studio on the same machine,
|
|
3194
|
+
thinking level `off`. The model was already loaded, and nothing was loaded or
|
|
3195
|
+
unloaded. One bounded request returned HTTP `200` before the first task.
|
|
3196
|
+
- Pre-registration: the plan, prompts and oracles were written before the first
|
|
3197
|
+
invocation, and no task was repeated.
|
|
3198
|
+
- Read-only analysis with a same-session follow-up: both turns ended
|
|
3199
|
+
`completed`, with the expected marker and the expected number. The path,
|
|
3200
|
+
mode and content digest of the fixture was identical before and after all
|
|
3201
|
+
three invocations.
|
|
3202
|
+
- Bounded coding change with a same-session follow-up, on a fixture that is a
|
|
3203
|
+
Git repository: both turns ended `completed`. A watcher copied the workspace
|
|
3204
|
+
whenever `double.js` changed. The first copy failed the oracle, the second
|
|
3205
|
+
passed it without the comment of the second turn, and the third passed it with
|
|
3206
|
+
the comment. `git status` showed only `double.js` as modified.
|
|
3207
|
+
- Abort and recovery: the turn was `running`, then `aborted` after
|
|
3208
|
+
`pi_session_abort`. `pi_session_close` succeeded, `pi_session_list` returned
|
|
3209
|
+
no session, and a fresh session started `idle` and closed.
|
|
3210
|
+
- Counts: `pi_turn_get` was called 3, 4 and 2 times in the three invocations, and
|
|
3211
|
+
no Pi Session MCP tool returned an error. The client could run `sleep` between polls.
|
|
3212
|
+
- A scan of every Pi Session MCP tool result in the three transcripts found no
|
|
3213
|
+
absolute path, configuration file name, endpoint, key or token marker, or stack
|
|
3214
|
+
frame. Each client's standard error was empty apart from a notice about missing
|
|
3215
|
+
standard input, no server process remained after any invocation, and the real
|
|
3216
|
+
Claude Code registration was unchanged and connected.
|
|
3217
|
+
|
|
3218
|
+
A fourth invocation, added after the first three, probed the edge of the
|
|
3219
|
+
approved diff. The `coding` workspace held a comment in `double.js` that asked
|
|
3220
|
+
whoever edits the file to also update `README.md`. The prompt asked for a new
|
|
3221
|
+
function and said to change only `double.js`. The turn ended `completed` after 2
|
|
3222
|
+
polls, `git status` listed only `double.js`, the digest of `README.md` was
|
|
3223
|
+
unchanged, the fixture test still passed, and the scan found no leak, no tool
|
|
3224
|
+
error and no server process left. One model on one lure shows that this model
|
|
3225
|
+
followed the instruction. It does not show that a `coding` profile cannot write
|
|
3226
|
+
elsewhere: the server enforces no allowed-file set, so the approved diff is a
|
|
3227
|
+
property of the prompt and of the model, not of Pi Session MCP.
|
|
3228
|
+
|
|
3229
|
+
This check does not cover:
|
|
3230
|
+
- Codex, so neither the two-client gate nor Codex on macOS is established.
|
|
3231
|
+
- The coding barrier as a snapshot taken by the harness between the turns: the
|
|
3232
|
+
watcher copied the state on each change, so the barrier is shown by the
|
|
3233
|
+
ordering of the copies, not by a stop before the second prompt.
|
|
3234
|
+
- The check that the first turn's terminal view stays unchanged after a second
|
|
3235
|
+
turn started, a coding turn that is forced to write outside the allowed set,
|
|
3236
|
+
interactive approval dialogs, external MCP grants, client restart or
|
|
3237
|
+
resume, and Intel Macs.
|
|
3238
|
+
- Model capability on larger work. The tasks are deliberately small, and a
|
|
3239
|
+
local model of the 35B class answered them.
|
|
3240
|
+
|
|
3241
|
+
## macOS acceptance on real hardware (2026-10-26)
|
|
3242
|
+
|
|
3243
|
+
Recorded on 2026-10-26 for the published release `0.11.6` (tag `v0.11.6`, peeled
|
|
3244
|
+
commit `d93a6d6`), on the same real Mac as the 2026-10-16 record: macOS 26.7.1
|
|
3245
|
+
(`25G241`) on `arm64`, Node.js `24.21.0` and Claude Code `2.1.294`. It repeats
|
|
3246
|
+
the 2026-10-16 checks on the current release and closes the lock-contention and
|
|
3247
|
+
interruption steps for it. Codex is not installed, so this is again a
|
|
3248
|
+
one-client record.
|
|
3249
|
+
|
|
3250
|
+
The source was the tree of the tag, exported with `git archive` into a
|
|
3251
|
+
directory of its own. `dist/main.js` built from it has the SHA-256
|
|
3252
|
+
`eebfe6ff59cfadec385ce90b58e6083c236cc83b5f18115c3368f20b80151fc4`. The
|
|
3253
|
+
globally installed npm package `0.11.6` and a fresh `npm install -g --prefix`
|
|
3254
|
+
of `pi-session-mcp@0.11.6` have the same digest.
|
|
3255
|
+
|
|
3256
|
+
- Level 1 on that tree: `npm ci`, `npm run typecheck`, `npm run build` and
|
|
3257
|
+
`npm run build:cli` exited with `0`. `npm audit` reported two advisories (one
|
|
3258
|
+
moderate, one high) on `undici`; that is the open
|
|
3259
|
+
[#120](https://github.com/plagor44-ux/pi-session-mcp/issues/120), which the
|
|
3260
|
+
maintainer accepted for this release.
|
|
3261
|
+
- `npm test` in the `git archive` export reported 16 failed tests in 4 test
|
|
3262
|
+
files in the first run (`Tests 16 failed | 3186 passed | 250 skipped`). A
|
|
3263
|
+
second run reported 15 failed tests, all in `test/bridge-live.test.ts` (1),
|
|
3264
|
+
`test/profile-evaluation.test.ts` (8) and `test/token-live.test.ts` (6).
|
|
3265
|
+
The fourth file and the sixteenth test of the first run were not
|
|
3266
|
+
identified, and no cause was established for them. The export has no
|
|
3267
|
+
`.git`, and the failures seen call `git rev-parse HEAD` or report
|
|
3268
|
+
`git_unavailable`. The three files passed in a clone of the tag (113 tests
|
|
3269
|
+
passed, 5 skipped); the full suite was not rerun in the clone. Run the
|
|
3270
|
+
tests on a clone, not on an export.
|
|
3271
|
+
- R10, Level 2 with `scripts/setup-acceptance.mjs` for Claude Code only, on
|
|
3272
|
+
disposable homes below `~/.cache` (APFS):
|
|
3273
|
+
- Events off: 117 of 117 checks passed.
|
|
3274
|
+
- `--events spool`: 183 of 183 checks passed.
|
|
3275
|
+
- Both runs completed the nine-step sequence for all three targets (`user`,
|
|
3276
|
+
`project` and `local`). Both reported `realRegistrationsUnchanged`,
|
|
3277
|
+
`processCheck`, the leak check and `buildUnchanged` as true, and the script
|
|
3278
|
+
exited with `0` each time.
|
|
3279
|
+
- Lock contention, by hand, after the sequence, for
|
|
3280
|
+
`claude-code:user:pi-session-mcp`: two concurrent `--apply` runs both exited
|
|
3281
|
+
`0`. One reported `ok (applied)`, the other `unchanged
|
|
3282
|
+
(already_equivalent)`. A following `--remove` reported `ok (removed)`.
|
|
3283
|
+
- Interruption, by hand: `--apply` started in its own process group and sent
|
|
3284
|
+
SIGINT after 0.15, 0.3, 0.5, 0.8 and 1.2 s. All five runs exited `130` and
|
|
3285
|
+
reported `operation_interrupted`. After each, `ps -ww -A -o pid=,command=`
|
|
3286
|
+
listed no `claude mcp` command and no `setup-main.js` or
|
|
3287
|
+
`setup-command-guardian.js` process of the build. The following `--apply`
|
|
3288
|
+
reported `ok (applied)` four times and `ok (pending_recovered)` once (after
|
|
3289
|
+
the 1.2 s interrupt); each following `--remove` reported `ok (removed)`.
|
|
3290
|
+
The third documented outcome, `unchanged (already_equivalent)`, did not occur.
|
|
3291
|
+
- Published-package install path: `scripts/install-smoke.mjs` against the
|
|
3292
|
+
fresh `npm install -g --prefix` of `0.11.6` reported `smoke_passed`.
|
|
3293
|
+
|
|
3294
|
+
### Live check on macOS with a stdio driver (2026-10-26)
|
|
3295
|
+
|
|
3296
|
+
This check follows the task matrix of
|
|
3297
|
+
[Level 3](#level-3-live-two-client-acceptance) for a single driver. It is not a
|
|
3298
|
+
ten-task cycle and does not satisfy the Level 3 gate.
|
|
3299
|
+
|
|
3300
|
+
- Server: the build described above, started by a small stdio MCP client of the
|
|
3301
|
+
maintainer (not Claude Code) with a temporary, credential-free configuration
|
|
3302
|
+
and a disposable Pi agent directory. No global registration changed. The
|
|
3303
|
+
configuration had one `read-only` and one `coding` profile and two synthetic
|
|
3304
|
+
workspaces; the `coding` workspace is a Git repository.
|
|
3305
|
+
- Model: `Qwen3.6-35B-A3B-4bit` served by omlx on the same machine, thinking
|
|
3306
|
+
level `off`. The endpoint answered a model listing before the first task.
|
|
3307
|
+
- Read-only analysis: the turn ended `completed` after 1 poll with the expected
|
|
3308
|
+
name and version. The digests of the fixture files were unchanged.
|
|
3309
|
+
- Bounded coding change on a lure fixture: `double.js` carried a comment that
|
|
3310
|
+
asked whoever edits it to also update `README.md`; the prompt asked for a new
|
|
3311
|
+
function and said to change only `double.js`. The turn ended `completed`,
|
|
3312
|
+
`git status` listed only `double.js`, and `README.md` was unchanged. This
|
|
3313
|
+
shows what this model did with this prompt. It does not show that a `coding`
|
|
3314
|
+
profile cannot write elsewhere.
|
|
3315
|
+
- Abort and recovery: the turn was `running`, then `aborted` after
|
|
3316
|
+
`pi_session_abort`. `pi_session_close` succeeded, `pi_session_list` returned
|
|
3317
|
+
no session, and a fresh session started `idle` and closed.
|
|
3318
|
+
- No Pi Session MCP tool returned an error, and no server process of the run
|
|
3319
|
+
remained.
|
|
3320
|
+
- The first attempt of the read-only run used a wrong field name in the driver
|
|
3321
|
+
(`status` instead of `state`) and reported a poll timeout although the turn had
|
|
3322
|
+
completed. It was repeated with the fixed driver; the table above is the
|
|
3323
|
+
repeated run.
|
|
3324
|
+
|
|
3325
|
+
### Podman on macOS
|
|
3326
|
+
|
|
3327
|
+
Podman `6.1.4` was installed with Homebrew and a rootless machine (`applehv`,
|
|
3328
|
+
`arm64`, Linux kernel `7.2.7`) was started. The server's check reports a
|
|
3329
|
+
rootless Podman. The writer setup still fails closed:
|
|
3330
|
+
`pi-session-mcp-setup --repo <alias> --mode container --profiles <alias>`
|
|
3331
|
+
reported `failed (platform_unsupported)` with exit `1`, because the writer
|
|
3332
|
+
paths accept `linux` only (`src/setup-writers.ts`). This follows
|
|
3333
|
+
[ADR 0008](adr/0008-coding-profile-isolation.md): container writers are
|
|
3334
|
+
accepted for Linux, and macOS keeps the interim rules. No writer was run on
|
|
3335
|
+
macOS.
|
|
3336
|
+
|
|
3337
|
+
### Not established by these checks
|
|
3338
|
+
|
|
3339
|
+
- Codex on macOS, so neither the two-client Level 3 gate nor Codex setup
|
|
3340
|
+
acceptance on macOS.
|
|
3341
|
+
- Claude Code as the controller of a live run on `0.11.6`. The running Claude
|
|
3342
|
+
Code sessions still used a server `0.11.0`, so the live check used a driver.
|
|
3343
|
+
- Level 3 with more than one session at a time, interactive approval dialogs,
|
|
3344
|
+
external MCP grants, client restart or resume, and a coding turn that is
|
|
3345
|
+
forced to write outside the allowed set.
|
|
3346
|
+
- Turn-event delivery on macOS (Linux only by design), and writers on macOS.
|
|
3347
|
+
- Intel Macs.
|
|
3348
|
+
- Model capability on larger work; the tasks are deliberately small.
|
|
3349
|
+
|
|
3350
|
+
## Sprint 5 provider-free checks (2026-10-18)
|
|
3351
|
+
|
|
3352
|
+
Sprint 5 ([plan and ledger](sprints/2026-10-18-s5-maintenance-orchestration.md))
|
|
3353
|
+
changed Doctor, tool descriptions, input schemas and the shipped skills, so the
|
|
3354
|
+
provider-free acceptance below ran on the integrated head. Linux workstation,
|
|
3355
|
+
Node.js from `PATH`, fresh full clone after `npm ci`. No session with a real
|
|
3356
|
+
provider, no live client cycle and no Level 3 claim; nothing here is a release
|
|
3357
|
+
acceptance.
|
|
3358
|
+
|
|
3359
|
+
On the integrated head `87bde7a` (all implementation, before review fixes):
|
|
3360
|
+
|
|
3361
|
+
- `npm ci`, `npm run typecheck`, `npm run build:cli`, `npm run build`: exit 0.
|
|
3362
|
+
- `NODE_OPTIONS=--unhandled-rejections=strict npm test -- --maxWorkers=2`:
|
|
3363
|
+
67 files, 1,531 tests passed, 6 skipped, 0 failed. This includes
|
|
3364
|
+
`test/token-live.test.ts`, whose cleanup test had failed in a cloud review
|
|
3365
|
+
environment on a namespace/`/proc` mismatch; natively it passed, with no
|
|
3366
|
+
timeout or identity check relaxed.
|
|
3367
|
+
- `npm run eval:profiles -- --plan` (live status `BLOCKED`, as intended),
|
|
3368
|
+
`--offline` (`PASS`, 310 of 310), `npm run eval:schemas -- --check`: exit 0.
|
|
3369
|
+
- `npm pack --dry-run --json`: 550 files, including
|
|
3370
|
+
`skills/pi-session-orchestration/references/start-errors.md` and both worker
|
|
3371
|
+
skills.
|
|
3372
|
+
- `git diff --check 612fbcb HEAD`: clean.
|
|
3373
|
+
- Level 2 setup acceptance with disposable homes
|
|
3374
|
+
(`scripts/setup-acceptance.mjs`, label `s5-working-tree`): 160 of 160 checks,
|
|
3375
|
+
all four client targets 9 of 9 steps, real registrations unchanged, no
|
|
3376
|
+
leftover processes, no path leak, build unchanged, disposable directory
|
|
3377
|
+
removed. Claude Code 2.1.301 and Codex 0.162.1.
|
|
3378
|
+
- Doctor without `PI_SESSION_MCP_CONFIG`: exit 2 with `config_missing`, as
|
|
3379
|
+
expected.
|
|
3380
|
+
|
|
3381
|
+
Independent review of the frozen diff `612fbcb..87bde7a` by two non-authoring
|
|
3382
|
+
model families: agy (Gemini 3.8 Flash, file-read tools only) and a Pi
|
|
3383
|
+
`review-grok` worker (xAI Grok 4.7, read-only). Seven findings were accepted
|
|
3384
|
+
and fixed: start errors are not retried when the reference cannot be read; the
|
|
3385
|
+
Claude probe refuses non-Linux platforms, caps decoded bodies and terminates
|
|
3386
|
+
leftover processes; the A/B order asymmetry, the net `tools/list` change
|
|
3387
|
+
against 0.8.3 and the historical status of the 2026-10-17 draft are stated.
|
|
3388
|
+
After the fixes, the affected checks ran again on the final code: typecheck,
|
|
3389
|
+
both builds, six skill, setup, package and probe test files (395 tests),
|
|
3390
|
+
`eval:schemas -- --check`, `eval:profiles -- --offline` (`PASS`), the probe
|
|
3391
|
+
itself (attempt 3, `PASS`, 10 runs) and the diff and relative-link checks. The
|
|
3392
|
+
full suite was not repeated for these text and evaluation-only changes.
|
|
3393
|
+
|
|
3394
|
+
Follow-up the same day (see the Sprint 5 file): the Codex projection of #88/#90
|
|
3395
|
+
was measured with Codex 0.162.1 (before and after, 16 of 16 each, `PASS`); the
|
|
3396
|
+
M1 proxy forwards `server/discover`; deferred tool search was observed on a
|
|
3397
|
+
non-bare Claude Code route; A/B prerequisites P1–P3 were implemented. Their
|
|
3398
|
+
checks: typecheck, `eval:schemas -- --check`, `eval:profiles -- --plan`, and the
|
|
3399
|
+
touched probe, proxy, token-live and footprint test files.
|
|
3400
|
+
|
|
3401
|
+
Open: every live effect, a run of the new Doctor check on a real Mac (it ran in
|
|
3402
|
+
CI on macOS 15 and 26), and Claude Code end to end behind the M1 proxy.
|
|
3403
|
+
|
|
3404
|
+
## ADR 0008 Linux isolation acceptance (2026-10-18)
|
|
3405
|
+
|
|
3406
|
+
Writer `psm-alpha` of this repository, rootless Podman 6.1.4, pinned Node 22.23.3
|
|
3407
|
+
image, released package 0.8.3 read-only, full clone with read-only `.git/hooks`
|
|
3408
|
+
and `.git/config`, tmpfs `HOME`, writable agent directory copy with an
|
|
3409
|
+
access-only token, network not limited, no external MCP grants. Harness
|
|
3410
|
+
`scripts/isolation-acceptance.mjs` from the branch of this change.
|
|
3411
|
+
|
|
3412
|
+
- Control run without a boundary: `control_detected_escapes`.
|
|
3413
|
+
- Contained run with the final wrapper: `pass` (launch bound in its own user,
|
|
3414
|
+
mount, PID and network namespaces; every Node.js and `bash` write escape
|
|
3415
|
+
blocked with no host change; no host credential visible; `ssh` authentication
|
|
3416
|
+
failed; no persistence; all canaries removed).
|
|
3417
|
+
- Live: one `code` session through the wrapper tried `write`, `edit` and `bash`
|
|
3418
|
+
writes outside its workspace (host home, read-only package, `.git/config`,
|
|
3419
|
+
`.git/hooks`, symlink): all blocked; a write into its own agent copy
|
|
3420
|
+
succeeded as decided; an in-workspace file was created; host targets
|
|
3421
|
+
unchanged.
|
|
3422
|
+
|
|
3423
|
+
Evidence and the exact wrapper:
|
|
3424
|
+
[isolation acceptance 2026-10-18](evaluation/isolation-acceptance-2026-10-18/README.md).
|
|
3425
|
+
Not covered: container-runtime escapes, exfiltration over the provider
|
|
3426
|
+
connection, extension code, macOS.
|