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.
Files changed (843) hide show
  1. package/.pi-session-mcp-cli/client-adapters/command.js +33 -0
  2. package/.pi-session-mcp-cli/client-adapters/mcp-verifier.js +198 -0
  3. package/.pi-session-mcp-cli/client-adapters/types.js +1 -0
  4. package/.pi-session-mcp-cli/config.js +29 -3
  5. package/.pi-session-mcp-cli/container-runtime.js +18 -0
  6. package/.pi-session-mcp-cli/doctor.js +370 -4
  7. package/.pi-session-mcp-cli/execution-modes.js +83 -0
  8. package/.pi-session-mcp-cli/execution-profile.js +1 -0
  9. package/.pi-session-mcp-cli/override-lock.js +4 -4
  10. package/.pi-session-mcp-cli/session-tools.js +45 -0
  11. package/.pi-session-mcp-cli/setup-platform.js +64 -36
  12. package/.pi-session-mcp-cli/setup-process.js +455 -0
  13. package/.pi-session-mcp-cli/skill-library.js +8 -4
  14. package/.pi-session-mcp-cli/turn-events.js +97 -0
  15. package/.pi-session-mcp-cli/writer-boundary.js +321 -0
  16. package/.pi-session-mcp-cli/writer-fence.js +50 -0
  17. package/.pi-session-mcp-cli/writer-lease.js +140 -0
  18. package/.pi-session-mcp-cli/writer-lifecycle.js +567 -0
  19. package/.pi-session-mcp-cli/writer-state.js +199 -0
  20. package/.pi-session-mcp-cli/writer-wrapper.js +14 -0
  21. package/CHANGELOG.md +527 -0
  22. package/README.md +8 -2
  23. package/dist/capabilities.d.ts +9 -1
  24. package/dist/capabilities.js +8 -3
  25. package/dist/child-stdio-transport.d.ts +21 -0
  26. package/dist/child-stdio-transport.js +88 -0
  27. package/dist/client-adapters/claude-code.js +3 -2
  28. package/dist/client-adapters/command.d.ts +8 -0
  29. package/dist/client-adapters/command.js +9 -1
  30. package/dist/client-adapters/mcp-verifier.d.ts +7 -0
  31. package/dist/client-adapters/mcp-verifier.js +21 -4
  32. package/dist/client-adapters/types.d.ts +5 -1
  33. package/dist/client-adapters/writer-registration.d.ts +16 -0
  34. package/dist/client-adapters/writer-registration.js +156 -0
  35. package/dist/config.d.ts +12 -1
  36. package/dist/config.js +29 -3
  37. package/dist/container-runtime.d.ts +2 -0
  38. package/dist/container-runtime.js +18 -0
  39. package/dist/doctor.d.ts +36 -2
  40. package/dist/doctor.js +370 -4
  41. package/dist/event-spool.d.ts +70 -0
  42. package/dist/event-spool.js +180 -0
  43. package/dist/execution-modes.d.ts +60 -0
  44. package/dist/execution-modes.js +83 -0
  45. package/dist/execution-profile.d.ts +2 -0
  46. package/dist/execution-profile.js +1 -0
  47. package/dist/main.js +63 -8
  48. package/dist/override-lock.d.ts +2 -0
  49. package/dist/override-lock.js +4 -4
  50. package/dist/pi-adapter.d.ts +31 -1
  51. package/dist/pi-adapter.js +12 -0
  52. package/dist/process-diagnostics.d.ts +1 -1
  53. package/dist/process-diagnostics.js +2 -1
  54. package/dist/refusal-server.d.ts +6 -0
  55. package/dist/refusal-server.js +46 -0
  56. package/dist/sdk-pi-adapter.js +16 -9
  57. package/dist/server.d.ts +3 -2
  58. package/dist/server.js +27 -53
  59. package/dist/session-registry.d.ts +32 -2
  60. package/dist/session-registry.js +61 -11
  61. package/dist/session-tools.d.ts +14 -5
  62. package/dist/session-tools.js +13 -9
  63. package/dist/setup-cli.d.ts +14 -0
  64. package/dist/setup-cli.js +132 -0
  65. package/dist/setup-command-guardian.js +9 -3
  66. package/dist/setup-hooks.d.ts +158 -0
  67. package/dist/setup-hooks.js +657 -0
  68. package/dist/setup-main.d.ts +1 -1
  69. package/dist/setup-main.js +18 -2
  70. package/dist/setup-modes.d.ts +18 -0
  71. package/dist/setup-modes.js +131 -0
  72. package/dist/setup-ownership.d.ts +1 -0
  73. package/dist/setup-ownership.js +11 -3
  74. package/dist/setup-platform.d.ts +9 -1
  75. package/dist/setup-platform.js +64 -36
  76. package/dist/setup-process.d.ts +23 -1
  77. package/dist/setup-process.js +88 -10
  78. package/dist/setup-writers.d.ts +42 -0
  79. package/dist/setup-writers.js +510 -0
  80. package/dist/setup.d.ts +4 -1
  81. package/dist/setup.js +23 -10
  82. package/dist/skill-library.d.ts +2 -0
  83. package/dist/skill-library.js +8 -4
  84. package/dist/tool-schemas.d.ts +339 -0
  85. package/dist/tool-schemas.js +49 -0
  86. package/dist/turn-events.d.ts +45 -0
  87. package/dist/turn-events.js +97 -0
  88. package/dist/wake-hook.d.ts +180 -0
  89. package/dist/wake-hook.js +638 -0
  90. package/dist/wake-main.d.ts +8 -0
  91. package/dist/wake-main.js +111 -0
  92. package/dist/writer-acceptance.d.ts +10 -0
  93. package/dist/writer-acceptance.js +192 -0
  94. package/dist/writer-boundary.d.ts +52 -0
  95. package/dist/writer-boundary.js +321 -0
  96. package/dist/writer-credentials.d.ts +29 -0
  97. package/dist/writer-credentials.js +85 -0
  98. package/dist/writer-fence.d.ts +12 -0
  99. package/dist/writer-fence.js +50 -0
  100. package/dist/writer-guard.d.ts +13 -0
  101. package/dist/writer-guard.js +54 -0
  102. package/dist/writer-launch.d.ts +29 -0
  103. package/dist/writer-launch.js +232 -0
  104. package/dist/writer-lease.d.ts +28 -0
  105. package/dist/writer-lease.js +140 -0
  106. package/dist/writer-lifecycle.d.ts +96 -0
  107. package/dist/writer-lifecycle.js +567 -0
  108. package/dist/writer-relay.d.ts +33 -0
  109. package/dist/writer-relay.js +359 -0
  110. package/dist/writer-state.d.ts +111 -0
  111. package/dist/writer-state.js +199 -0
  112. package/dist/writer-wrapper.d.ts +3 -0
  113. package/dist/writer-wrapper.js +14 -0
  114. package/docs/acceptance.md +1694 -1
  115. package/docs/adr/0003-post-mvp-maintenance.md +2 -2
  116. package/docs/adr/0006-pi-extension-allowlist.md +3 -1
  117. package/docs/adr/0008-coding-profile-isolation.md +295 -0
  118. package/docs/adr/0009-execution-modes.md +131 -0
  119. package/docs/adr/0010-read-only-extension-tools.md +68 -0
  120. package/docs/adr/0011-turn-events-and-controller-wake.md +173 -0
  121. package/docs/adr/0012-leased-writer-pool.md +357 -0
  122. package/docs/architecture.md +96 -8
  123. package/docs/client-setup-design.md +12 -8
  124. package/docs/client-setup.md +84 -2
  125. package/docs/doctor-design.md +48 -0
  126. package/docs/evaluation/2026-10-17-live-screening.md +121 -0
  127. package/docs/evaluation/2026-10-17-node-runtime-followup.md +33 -0
  128. package/docs/evaluation/2026-10-17-profile-evaluation-evidence.md +155 -0
  129. package/docs/evaluation/2026-10-17-test-coverage.md +127 -0
  130. package/docs/evaluation/README.md +123 -0
  131. package/docs/evaluation/client-reconnect-2026-10-17/README.md +41 -0
  132. package/docs/evaluation/client-reconnect-2026-10-17/checks.json +38 -0
  133. package/docs/evaluation/client-reconnect-2026-10-17/integrity.json +30 -0
  134. package/docs/evaluation/client-reconnect-2026-10-17/reconnect.json +57 -0
  135. package/docs/evaluation/client-reconnect-2026-10-17/registration-verification.json +389 -0
  136. package/docs/evaluation/client-reconnect-2026-10-17/review.json +10 -0
  137. package/docs/evaluation/controller-ledger-hooks-2026-10-26/README.md +115 -0
  138. package/docs/evaluation/evidence-2026-10-17/budget.proposed.json +13 -0
  139. package/docs/evaluation/evidence-2026-10-17/changed-files.txt +82 -0
  140. package/docs/evaluation/evidence-2026-10-17/checks.json +103 -0
  141. package/docs/evaluation/evidence-2026-10-17/comparison.json +247 -0
  142. package/docs/evaluation/evidence-2026-10-17/development-collection-failure.json +15 -0
  143. package/docs/evaluation/evidence-2026-10-17/full-attempt-default.json +19 -0
  144. package/docs/evaluation/evidence-2026-10-17/full-tests.json +17 -0
  145. package/docs/evaluation/evidence-2026-10-17/inventory.json +239 -0
  146. package/docs/evaluation/evidence-2026-10-17/manifest.json +359 -0
  147. package/docs/evaluation/evidence-2026-10-17/offline.json +1020 -0
  148. package/docs/evaluation/evidence-2026-10-17/ui-reference/T3-1280.png +0 -0
  149. package/docs/evaluation/evidence-2026-10-17/ui-reference/T3-375.png +0 -0
  150. package/docs/evaluation/evidence-2026-10-17/ui-reference/result.json +141 -0
  151. package/docs/evaluation/extension-ablation-2026-10-20/README.md +414 -0
  152. package/docs/evaluation/extension-ablation-2026-10-20/setup.md +140 -0
  153. package/docs/evaluation/extension-ablation-repeat-2026-10-21/README.md +142 -0
  154. package/docs/evaluation/extension-ablation-repeat-2026-10-21/setup.md +69 -0
  155. package/docs/evaluation/extension-audit-2026-10-17/README.md +149 -0
  156. package/docs/evaluation/extension-audit-2026-10-17/checks.json +38 -0
  157. package/docs/evaluation/extension-audit-2026-10-17/cursor-static-evidence.json +93 -0
  158. package/docs/evaluation/extension-audit-2026-10-17/installed-artifact-comparison.json +85 -0
  159. package/docs/evaluation/extension-audit-2026-10-17/installed-packages.json +100 -0
  160. package/docs/evaluation/extension-audit-2026-10-17/integrity.json +108 -0
  161. package/docs/evaluation/extension-audit-2026-10-17/navigation-cursor-registry.json +290 -0
  162. package/docs/evaluation/extension-audit-2026-10-17/navigation-static-evidence.json +185 -0
  163. package/docs/evaluation/extension-audit-2026-10-17/openwiki-headless-bindings.json +25 -0
  164. package/docs/evaluation/extension-audit-2026-10-17/openwiki-headless-cleanup.json +12 -0
  165. package/docs/evaluation/extension-audit-2026-10-17/openwiki-headless-probe.mjs +63 -0
  166. package/docs/evaluation/extension-audit-2026-10-17/openwiki-headless-reproduction.json +91 -0
  167. package/docs/evaluation/extension-audit-2026-10-17/openwiki-headless-result.json +83 -0
  168. package/docs/evaluation/extension-audit-2026-10-17/permission-cache-artifact-verification.json +24 -0
  169. package/docs/evaluation/extension-audit-2026-10-17/permission-cache-evidence.json +133 -0
  170. package/docs/evaluation/extension-audit-2026-10-17/permission-cache-report.md +64 -0
  171. package/docs/evaluation/extension-audit-2026-10-17/publication-export.json +10 -0
  172. package/docs/evaluation/extension-audit-2026-10-17/resolver-gates.json +51 -0
  173. package/docs/evaluation/extension-audit-2026-10-17/review.json +28 -0
  174. package/docs/evaluation/extension-audit-2026-10-17/run-openwiki-headless-probe.mjs +29 -0
  175. package/docs/evaluation/extension-audit-2026-10-17/summary.json +123 -0
  176. package/docs/evaluation/extension-audit-2026-10-17/web-openwiki-artifacts.json +29 -0
  177. package/docs/evaluation/extension-audit-2026-10-17/web-openwiki-evidence.json +116 -0
  178. package/docs/evaluation/extension-audit-2026-10-17/web-openwiki-report.md +113 -0
  179. package/docs/evaluation/extension-functions-2026-10-17/README.md +33 -0
  180. package/docs/evaluation/extension-functions-2026-10-17/bridges/README.md +39 -0
  181. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-03dc1dad-9959-40df-b51c-7820991bf7e3.json +79 -0
  182. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-0c43651e-8c7d-4c7c-aa9b-5b5761141e3b.json +54 -0
  183. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-51247b13-87c1-4ec6-886b-82d922b0585a.json +89 -0
  184. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-5337f6bf-503f-4c45-aac0-43b142385a87.json +47 -0
  185. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-60285194-b1d1-4335-b616-6614941585df.json +46 -0
  186. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-6d2fbaa9-a720-4582-9be1-a95f4764786d.json +69 -0
  187. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-6fbb576c-d87d-478d-9c05-4b5ef3563598.json +125 -0
  188. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-730926d1-ef20-4b2d-ab74-7e542f1065e9.json +48 -0
  189. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-a1baa47a-5bbe-4a16-ade8-a350599eb911.json +48 -0
  190. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-bc1d69c7-784f-4ddb-9335-0d905330d568.json +91 -0
  191. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-d582757d-2859-4683-8310-ec158bf6d551.json +99 -0
  192. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-e6533a23-4933-4d6e-a250-b1b27f010d18.json +60 -0
  193. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts.json +138 -0
  194. package/docs/evaluation/extension-functions-2026-10-17/bridges/guard.mjs +74 -0
  195. package/docs/evaluation/extension-functions-2026-10-17/bridges/integrity.json +86 -0
  196. package/docs/evaluation/extension-functions-2026-10-17/bridges/openwiki-final.json +125 -0
  197. package/docs/evaluation/extension-functions-2026-10-17/bridges/run.mjs +36 -0
  198. package/docs/evaluation/extension-functions-2026-10-17/bridges/web-final.json +99 -0
  199. package/docs/evaluation/extension-functions-2026-10-17/bridges/worker.mjs +102 -0
  200. package/docs/evaluation/extension-functions-2026-10-17/cache/README.md +21 -0
  201. 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
  202. 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
  203. 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
  204. 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
  205. 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
  206. 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
  207. 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
  208. 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
  209. 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
  210. 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
  211. 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
  212. package/docs/evaluation/extension-functions-2026-10-17/cache/integrity.json +165 -0
  213. package/docs/evaluation/extension-functions-2026-10-17/cache/probe.mjs +161 -0
  214. package/docs/evaluation/extension-functions-2026-10-17/cache/receipt-archive.json +150 -0
  215. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/commands-headless-3feeffc5-97bf-4079-8505-8119fab7956a.json +54 -0
  216. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/commands-headless-42e5eace-ad87-480a-94d9-448c1dd167b8.json +49 -0
  217. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/commands-headless-50f39f1c-8b48-442b-8d15-1f9c8f63bd81.json +49 -0
  218. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/commands-headless-8482b2b0-f600-488b-9f36-905e0125177a.json +54 -0
  219. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-codex-bypass-128ffdce-6fd5-431b-8019-32b40ba4174d.json +42 -0
  220. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-codex-bypass-3b572182-a737-471f-b9cb-b01d5da1752a.json +42 -0
  221. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-codex-bypass-6c225370-2f47-4a0a-80d5-87d12f6c6fdc.json +37 -0
  222. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-codex-bypass-b48399db-cbed-43de-9071-ac27c34e3757.json +37 -0
  223. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-openai-3a8f52b6-c8d6-4d1c-844c-782a6624a29e.json +45 -0
  224. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-openai-6fcdbc20-b14b-4b80-a4da-bf24078da8d2.json +50 -0
  225. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-openai-a8d6f628-40e1-437e-b192-f7232a051a44.json +50 -0
  226. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-openai-c3c39463-a2d6-4ff8-b985-8f6d1fb1aa02.json +45 -0
  227. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/stats-synthetic-a23c264f-151d-4ff0-aab4-bdbb2f6560d8.json +53 -0
  228. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/stats-synthetic-d8178bd3-6530-4915-9cf1-056a975bfbcd.json +53 -0
  229. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/stats-synthetic-e3985119-e101-459e-91cd-21a0905287ba.json +48 -0
  230. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/stats-synthetic-e7a40382-2d27-4db5-a133-dbe346a5dc60.json +48 -0
  231. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-unknown-223d7adc-2dbc-4017-b1ec-0c38294320e2.json +41 -0
  232. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-unknown-347a8548-d2e0-4846-a08e-b0399f8fd3b4.json +41 -0
  233. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-unknown-49b45e2b-e2d2-456f-b73f-e6bc938b6378.json +46 -0
  234. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-unknown-aaf432f2-bb91-41a7-b951-2d4316389632.json +46 -0
  235. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-zero-204ab3e8-f1fe-4894-8fb0-08299deb4c21.json +41 -0
  236. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-zero-9388d2df-fa15-479c-a4ef-2a774c366c0f.json +46 -0
  237. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-zero-e0bb4742-214a-4b3f-88d2-44de54394e2f.json +46 -0
  238. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-zero-f77e1e2d-742a-490f-9955-1dfb19f59c9c.json +41 -0
  239. package/docs/evaluation/extension-functions-2026-10-17/cache/runner.mjs +36 -0
  240. package/docs/evaluation/extension-functions-2026-10-17/cursor/README.md +20 -0
  241. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-36-10-753Z-2bb4fff5-48cc-4f6b-ae1b-5cc1a07f610b.json +54 -0
  242. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-36-26-537Z-5adc4fb1-0008-4ef9-a106-aa372dabf061.json +56 -0
  243. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-36-32-362Z-30949c31-73a3-4dae-af81-68deded51543.json +56 -0
  244. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-36-38-494Z-8eec81b8-5576-48cb-b2fa-c279269db058.json +56 -0
  245. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-36-45-546Z-991647e5-7ea4-43c4-a90d-868e4ac38d83.json +56 -0
  246. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-37-02-277Z-2296fb35-e5cb-4bf1-9e83-7370bcb46bfe.json +56 -0
  247. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-37-28-390Z-e9c3d106-b4c9-4146-ae83-a2799c907fe5.json +56 -0
  248. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-37-37-371Z-8545c893-a8e3-4dc6-973b-81dfd97d798b.json +56 -0
  249. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-38-41-612Z-c57c4778-261d-4397-8a36-df9cc23ca629.json +58 -0
  250. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-38-51-661Z-0eb898de-7471-4f17-a308-5ef5d86421ff.json +58 -0
  251. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-38-55-412Z-8169d843-a9e7-48f4-88b1-3a90e1592df1.json +58 -0
  252. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-39-15-274Z-a5610333-e428-4cc6-9f5a-9206748ee512.json +58 -0
  253. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-39-39-506Z-d4c80a7b-76b4-4d11-bf0f-552d11b131b2.json +136 -0
  254. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-39-53-515Z-db409f47-8ee5-4354-b7f9-a258eb7e17d0.json +136 -0
  255. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-42-04-909Z-01d70cb3-6897-46ca-b8aa-1c69d5b5c7fc.json +148 -0
  256. package/docs/evaluation/extension-functions-2026-10-17/cursor/integrity.json +205 -0
  257. package/docs/evaluation/extension-functions-2026-10-17/cursor/probe.mjs +151 -0
  258. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipt-archive.json +186 -0
  259. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-104e378f-8f82-4ae9-bffc-7f1d52e00e74.json +15 -0
  260. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-182a8009-c52a-4760-9768-9cba15fceb9c.json +14 -0
  261. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-1f07360d-046f-4f0c-b40f-6b57a027220c.json +65 -0
  262. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-256cb86e-40ae-4fec-a2d2-9b7f66cc4be8.json +14 -0
  263. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-2667d991-3133-44c3-b883-c401b3c14cb1.json +14 -0
  264. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-394fc425-ed51-408f-ab09-6d26aee0d48f.json +14 -0
  265. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-531d3f1d-c326-4914-b768-3d32103513b9.json +14 -0
  266. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-5c7d0d62-8290-494f-8729-5d60bc626ad7.json +14 -0
  267. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-64af1d94-ea73-481f-b827-dbf6755d8591.json +66 -0
  268. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-65fce696-864c-4247-960e-59f6d671cbf9.json +15 -0
  269. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-66acde31-19c7-4d3e-9814-ddeb2cffd373.json +14 -0
  270. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-79d220d0-fc0b-4cad-85cc-40b9e904fb97.json +14 -0
  271. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-a58f0281-71bc-4757-9d6f-e281f813135e.json +65 -0
  272. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-c2b61e4b-fd33-4969-ab29-118957ca5fbb.json +15 -0
  273. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-f61b5020-2c05-40ad-9cb8-590b22790186.json +15 -0
  274. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-0ee0df5a-299f-451c-96e3-5abcf8bfa999.json +45 -0
  275. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-169e5146-09a2-4231-8017-ebd8d4b75f0a.json +14 -0
  276. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-19d479f2-7162-463e-90de-2d89a13e59a3.json +15 -0
  277. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-1bd882bb-2403-4269-8335-90f9803f57b7.json +14 -0
  278. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-2ab9d418-68b2-4679-bf42-f31b6945ea5a.json +15 -0
  279. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-3a6aa7d7-b956-4fe5-9555-a2c63408c067.json +45 -0
  280. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-6333425f-0b46-4ced-a272-3d48895ee853.json +15 -0
  281. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-6eccb170-ff45-40e2-afc5-dfc0f77c229f.json +14 -0
  282. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-7f330c57-9c3f-4879-a1d0-67c4c5c36050.json +14 -0
  283. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-8d9de272-165c-4bb8-a147-d1b306388472.json +14 -0
  284. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-c1ffa69f-25fa-4f45-a691-af3bc422c089.json +14 -0
  285. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-c24ad0c8-5e7e-4d71-9b22-3e2708ce1626.json +14 -0
  286. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-c5a3140e-a28e-4264-9ee6-51b1310b3123.json +14 -0
  287. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-cdbb3dde-2441-46ae-9111-f2a299d45807.json +46 -0
  288. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-d68f774c-d1f0-4620-b334-301a20edffc3.json +15 -0
  289. package/docs/evaluation/extension-functions-2026-10-17/cursor/runner.mjs +147 -0
  290. package/docs/evaluation/extension-functions-2026-10-17/integrity.json +618 -0
  291. package/docs/evaluation/extension-functions-2026-10-17/navigation/README.md +22 -0
  292. package/docs/evaluation/extension-functions-2026-10-17/navigation/SHA256SUMS.txt +8 -0
  293. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempt.json +13 -0
  294. 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
  295. 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
  296. 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
  297. 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
  298. 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
  299. 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
  300. 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
  301. 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
  302. 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
  303. 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
  304. 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
  305. 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
  306. 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
  307. 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
  308. 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
  309. 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
  310. 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
  311. 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
  312. 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
  313. 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
  314. 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
  315. 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
  316. 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
  317. 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
  318. 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
  319. 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
  320. 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
  321. 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
  322. 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
  323. package/docs/evaluation/extension-functions-2026-10-17/navigation/child-guard.mjs +30 -0
  324. package/docs/evaluation/extension-functions-2026-10-17/navigation/final-result.json +42 -0
  325. package/docs/evaluation/extension-functions-2026-10-17/navigation/function-probe.mjs +521 -0
  326. package/docs/evaluation/extension-functions-2026-10-17/navigation/function-runner.mjs +201 -0
  327. package/docs/evaluation/extension-functions-2026-10-17/navigation/integrity.json +153 -0
  328. package/docs/evaluation/extension-functions-2026-10-17/navigation/receipt-archive.json +160 -0
  329. package/docs/evaluation/extension-functions-2026-10-17/review.json +27 -0
  330. package/docs/evaluation/extension-functions-2026-10-17/summary.json +102 -0
  331. package/docs/evaluation/extension-functions-2026-10-17/verification.json +103 -0
  332. package/docs/evaluation/isolation-acceptance-2026-10-18/README.md +106 -0
  333. package/docs/evaluation/isolation-acceptance-2026-10-18/auth-warmup.mjs +33 -0
  334. package/docs/evaluation/isolation-acceptance-2026-10-18/contained-agent-ro.json +433 -0
  335. package/docs/evaluation/isolation-acceptance-2026-10-18/contained.json +439 -0
  336. package/docs/evaluation/isolation-acceptance-2026-10-18/control.json +403 -0
  337. package/docs/evaluation/isolation-acceptance-2026-10-18/live.json +75 -0
  338. package/docs/evaluation/isolation-acceptance-2026-10-18/wrapper.sh +37 -0
  339. package/docs/evaluation/ledger-event-bridge-2026-10-21/README.md +360 -0
  340. package/docs/evaluation/ledger-event-bridge-2026-10-21/design.md +150 -0
  341. package/docs/evaluation/ledger-event-bridge-2026-10-21/inventory.md +113 -0
  342. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/README.md +117 -0
  343. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/dry-run/dry-01-L1-A.json +202 -0
  344. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/dry-run/dry-02-L1-C.json +259 -0
  345. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run/01-L1-A.json +169 -0
  346. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run/02-L1-A.json +202 -0
  347. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run/03-L1-C.json +256 -0
  348. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run/approval.json +31 -0
  349. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run-2/01-L1-C.json +256 -0
  350. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run-2/02-L1-A.json +201 -0
  351. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run-2/approval.json +16 -0
  352. package/docs/evaluation/ledger-event-bridge-2026-10-21/live-plan.md +87 -0
  353. package/docs/evaluation/ledger-event-bridge-2026-10-21/pre-registration.md +117 -0
  354. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S1.json +361 -0
  355. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S2.json +544 -0
  356. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S3.json +470 -0
  357. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S4.json +271 -0
  358. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S5.json +271 -0
  359. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S6.json +266 -0
  360. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/X6.json +29 -0
  361. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/summary.json +269 -0
  362. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S1.json +391 -0
  363. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S2.json +600 -0
  364. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S3.json +519 -0
  365. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S4.json +281 -0
  366. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S5.json +294 -0
  367. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S6.json +280 -0
  368. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S8.json +280 -0
  369. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/X6.json +32 -0
  370. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/summary.json +307 -0
  371. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S1.json +391 -0
  372. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S2.json +600 -0
  373. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S3.json +519 -0
  374. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S4.json +281 -0
  375. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S5.json +294 -0
  376. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S6.json +280 -0
  377. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S8.json +280 -0
  378. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/X6.json +32 -0
  379. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/summary.json +307 -0
  380. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S1.json +409 -0
  381. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S2.json +634 -0
  382. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S3.json +537 -0
  383. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S4.json +281 -0
  384. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S5.json +294 -0
  385. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S6.json +280 -0
  386. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S8.json +280 -0
  387. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/X6.json +32 -0
  388. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/summary.json +307 -0
  389. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S1.json +409 -0
  390. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S2.json +634 -0
  391. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S3.json +537 -0
  392. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S4.json +281 -0
  393. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S5.json +294 -0
  394. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S6.json +280 -0
  395. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S8.json +280 -0
  396. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/X6.json +32 -0
  397. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/summary.json +307 -0
  398. package/docs/evaluation/live-rescreen-2026-10-17/README.md +114 -0
  399. package/docs/evaluation/live-rescreen-2026-10-17/approval.json +18 -0
  400. package/docs/evaluation/live-rescreen-2026-10-17/approved-budget.json +13 -0
  401. package/docs/evaluation/live-rescreen-2026-10-17/approved-manifest.json +315 -0
  402. package/docs/evaluation/live-rescreen-2026-10-17/audit-rescreen.mjs +78 -0
  403. package/docs/evaluation/live-rescreen-2026-10-17/audit.json +152 -0
  404. package/docs/evaluation/live-rescreen-2026-10-17/backend-independent-checks.json +38 -0
  405. package/docs/evaluation/live-rescreen-2026-10-17/checks.json +54 -0
  406. package/docs/evaluation/live-rescreen-2026-10-17/execution.json +19 -0
  407. package/docs/evaluation/live-rescreen-2026-10-17/integrity.json +138 -0
  408. package/docs/evaluation/live-rescreen-2026-10-17/planning-ledger.json +26 -0
  409. package/docs/evaluation/live-rescreen-2026-10-17/review.json +16 -0
  410. package/docs/evaluation/live-rescreen-2026-10-17/runs/comparison.json +177 -0
  411. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-1.claim +1 -0
  412. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-1.diagnostic.json +1 -0
  413. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-1.json +97 -0
  414. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-2.claim +1 -0
  415. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-2.json +104 -0
  416. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-2.patch +11 -0
  417. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-2.snapshot/contract.mjs +4 -0
  418. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-2.snapshot/package.json +1 -0
  419. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-3.claim +1 -0
  420. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-3.json +89 -0
  421. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-4.claim +1 -0
  422. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-4.json +104 -0
  423. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-4.patch +11 -0
  424. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-4.snapshot/contract.mjs +4 -0
  425. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-4.snapshot/package.json +1 -0
  426. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-5.claim +1 -0
  427. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-5.diagnostic.json +1 -0
  428. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-5.json +117 -0
  429. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-6.json +53 -0
  430. package/docs/evaluation/live-rescreen-2026-10-17/runtime-observation.json +11 -0
  431. package/docs/evaluation/live-screening-2026-10-17/approval.json +13 -0
  432. package/docs/evaluation/live-screening-2026-10-17/approved-budget.json +13 -0
  433. package/docs/evaluation/live-screening-2026-10-17/approved-manifest.json +359 -0
  434. package/docs/evaluation/live-screening-2026-10-17/audit.json +143 -0
  435. package/docs/evaluation/live-screening-2026-10-17/integrity.json +148 -0
  436. package/docs/evaluation/live-screening-2026-10-17/inventory.json +239 -0
  437. package/docs/evaluation/live-screening-2026-10-17/runs/comparison.json +247 -0
  438. package/docs/evaluation/live-screening-2026-10-17/runs/screen-1.claim +1 -0
  439. package/docs/evaluation/live-screening-2026-10-17/runs/screen-1.diagnostic.json +1 -0
  440. package/docs/evaluation/live-screening-2026-10-17/runs/screen-1.json +98 -0
  441. package/docs/evaluation/live-screening-2026-10-17/runs/screen-2.claim +1 -0
  442. package/docs/evaluation/live-screening-2026-10-17/runs/screen-2.json +104 -0
  443. package/docs/evaluation/live-screening-2026-10-17/runs/screen-2.patch +11 -0
  444. package/docs/evaluation/live-screening-2026-10-17/runs/screen-2.snapshot/contract.mjs +4 -0
  445. package/docs/evaluation/live-screening-2026-10-17/runs/screen-2.snapshot/package.json +1 -0
  446. package/docs/evaluation/live-screening-2026-10-17/runs/screen-3.claim +1 -0
  447. package/docs/evaluation/live-screening-2026-10-17/runs/screen-3.diagnostic.json +1 -0
  448. package/docs/evaluation/live-screening-2026-10-17/runs/screen-3.json +97 -0
  449. package/docs/evaluation/live-screening-2026-10-17/runs/screen-4.claim +1 -0
  450. package/docs/evaluation/live-screening-2026-10-17/runs/screen-4.json +104 -0
  451. package/docs/evaluation/live-screening-2026-10-17/runs/screen-4.patch +11 -0
  452. package/docs/evaluation/live-screening-2026-10-17/runs/screen-4.snapshot/contract.mjs +4 -0
  453. package/docs/evaluation/live-screening-2026-10-17/runs/screen-4.snapshot/package.json +1 -0
  454. package/docs/evaluation/live-screening-2026-10-17/runs/screen-5.claim +1 -0
  455. package/docs/evaluation/live-screening-2026-10-17/runs/screen-5.diagnostic.json +1 -0
  456. package/docs/evaluation/live-screening-2026-10-17/runs/screen-5.json +97 -0
  457. package/docs/evaluation/live-screening-2026-10-17/runs/screen-6.claim +1 -0
  458. package/docs/evaluation/live-screening-2026-10-17/runs/screen-6.json +104 -0
  459. package/docs/evaluation/live-screening-2026-10-17/runs/screen-6.patch +11 -0
  460. package/docs/evaluation/live-screening-2026-10-17/runs/screen-6.snapshot/contract.mjs +4 -0
  461. package/docs/evaluation/live-screening-2026-10-17/runs/screen-6.snapshot/package.json +1 -0
  462. package/docs/evaluation/live-screening-2026-10-17/runs/screen-7.claim +1 -0
  463. package/docs/evaluation/live-screening-2026-10-17/runs/screen-7.json +108 -0
  464. package/docs/evaluation/live-screening-2026-10-17/runs/screen-8.claim +1 -0
  465. package/docs/evaluation/live-screening-2026-10-17/runs/screen-8.diagnostic.json +1 -0
  466. package/docs/evaluation/live-screening-2026-10-17/runs/screen-8.json +116 -0
  467. package/docs/evaluation/m1-ab-proposal-2026-10-18/README.md +124 -0
  468. package/docs/evaluation/m1-ab-proposal-2026-10-18/ab-proposal.json +135 -0
  469. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-1/README.md +25 -0
  470. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-1/approved-budget.json +13 -0
  471. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-1/approved-decision.json +79 -0
  472. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-1/approved-manifest.json +271 -0
  473. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-1/token-live-result.json +546 -0
  474. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-2/README.md +22 -0
  475. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-2/approved-budget.json +13 -0
  476. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-2/approved-decision.json +80 -0
  477. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-2/approved-manifest.json +271 -0
  478. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-2/token-live-result.json +1663 -0
  479. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-3/README.md +23 -0
  480. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-3/approved-budget.json +13 -0
  481. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-3/approved-decision.json +71 -0
  482. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-3/approved-manifest.json +271 -0
  483. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-3/token-live-result.json +1748 -0
  484. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/README.md +25 -0
  485. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-A/approved-budget.json +13 -0
  486. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-A/approved-decision.json +71 -0
  487. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-A/approved-manifest.json +271 -0
  488. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-A/token-live-result.json +3019 -0
  489. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-B/approved-budget.json +13 -0
  490. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-B/approved-decision.json +71 -0
  491. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-B/approved-manifest.json +271 -0
  492. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-B/token-live-result.json +2859 -0
  493. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/README.md +67 -0
  494. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r1-pair1-A/approved-budget.json +13 -0
  495. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r1-pair1-A/approved-decision.json +71 -0
  496. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r1-pair1-A/approved-manifest.json +271 -0
  497. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r1-pair1-A/token-live-result.json +3019 -0
  498. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r2-pair1-B/approved-budget.json +13 -0
  499. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r2-pair1-B/approved-decision.json +71 -0
  500. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r2-pair1-B/approved-manifest.json +271 -0
  501. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r2-pair1-B/token-live-result.json +2981 -0
  502. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r3-pair2-B/approved-budget.json +13 -0
  503. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r3-pair2-B/approved-decision.json +71 -0
  504. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r3-pair2-B/approved-manifest.json +271 -0
  505. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r3-pair2-B/token-live-result.json +2887 -0
  506. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r4-pair2-A/approved-budget.json +13 -0
  507. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r4-pair2-A/approved-decision.json +71 -0
  508. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r4-pair2-A/approved-manifest.json +271 -0
  509. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r4-pair2-A/token-live-result.json +3189 -0
  510. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r5-pair3-B/approved-budget.json +13 -0
  511. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r5-pair3-B/approved-decision.json +71 -0
  512. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r5-pair3-B/approved-manifest.json +271 -0
  513. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r5-pair3-B/token-live-result.json +2929 -0
  514. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r6-pair3-A/approved-budget.json +13 -0
  515. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r6-pair3-A/approved-decision.json +71 -0
  516. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r6-pair3-A/approved-manifest.json +271 -0
  517. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r6-pair3-A/token-live-result.json +3085 -0
  518. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r7-pair4-A/approved-budget.json +13 -0
  519. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r7-pair4-A/approved-decision.json +71 -0
  520. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r7-pair4-A/approved-manifest.json +271 -0
  521. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r7-pair4-A/token-live-result.json +3019 -0
  522. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r8-pair4-B/approved-budget.json +13 -0
  523. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r8-pair4-B/approved-decision.json +71 -0
  524. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r8-pair4-B/approved-manifest.json +271 -0
  525. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r8-pair4-B/token-live-result.json +2925 -0
  526. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/summary-rows.json +338 -0
  527. package/docs/evaluation/node24-followup-2026-10-17/README.md +55 -0
  528. package/docs/evaluation/node24-followup-2026-10-17/client-migration-review.json +20 -0
  529. package/docs/evaluation/node24-followup-2026-10-17/client-registration-migration.json +31 -0
  530. package/docs/evaluation/node24-followup-2026-10-17/client-registration-verification.json +389 -0
  531. package/docs/evaluation/node24-followup-2026-10-17/closure-checks.json +33 -0
  532. package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-probe.mjs +259 -0
  533. package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-report.md +39 -0
  534. package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-result-attempt-2.json +49 -0
  535. package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-result-attempt-3.json +76 -0
  536. package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-result-attempt-4.json +108 -0
  537. package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-result.json +12 -0
  538. package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-run.mjs +96 -0
  539. package/docs/evaluation/node24-followup-2026-10-17/download.json +16 -0
  540. package/docs/evaluation/node24-followup-2026-10-17/extension-summary.json +97 -0
  541. package/docs/evaluation/node24-followup-2026-10-17/final-review.json +15 -0
  542. package/docs/evaluation/node24-followup-2026-10-17/install.json +10 -0
  543. package/docs/evaluation/node24-followup-2026-10-17/integrity.json +204 -0
  544. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-evidence.json +39 -0
  545. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-probe.mjs +277 -0
  546. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-report.md +35 -0
  547. 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
  548. 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
  549. 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
  550. 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
  551. 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
  552. 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
  553. 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
  554. 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
  555. 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
  556. 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
  557. 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
  558. 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
  559. 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
  560. 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
  561. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-runner.mjs +172 -0
  562. package/docs/evaluation/node24-followup-2026-10-17/isolated-install.json +121 -0
  563. package/docs/evaluation/node24-followup-2026-10-17/isolated-package-lock.json +2321 -0
  564. package/docs/evaluation/node24-followup-2026-10-17/isolated-package.json +12 -0
  565. package/docs/evaluation/node24-followup-2026-10-17/launcher-review.json +17 -0
  566. package/docs/evaluation/node24-followup-2026-10-17/launcher-switch.json +28 -0
  567. package/docs/evaluation/node24-followup-2026-10-17/mcp-launcher-test.json +24 -0
  568. package/docs/evaluation/node24-followup-2026-10-17/migrate-client-node.mjs +129 -0
  569. package/docs/evaluation/node24-followup-2026-10-17/node-runtime-report.md +127 -0
  570. package/docs/evaluation/node24-followup-2026-10-17/node24-checks.json +44 -0
  571. package/docs/evaluation/node24-followup-2026-10-17/pi-launcher-test.json +13 -0
  572. package/docs/evaluation/node24-followup-2026-10-17/publication-export.json +11 -0
  573. package/docs/evaluation/node24-followup-2026-10-17/restore-launchers.mjs +26 -0
  574. package/docs/evaluation/node24-followup-2026-10-17/verify-client-node.mjs +36 -0
  575. package/docs/evaluation/permission-gates-2026-10-17/README.md +23 -0
  576. package/docs/evaluation/permission-gates-2026-10-17/attempts.json +53 -0
  577. package/docs/evaluation/permission-gates-2026-10-17/integrity.json +46 -0
  578. package/docs/evaluation/permission-gates-2026-10-17/permission-gate-probe.mjs +132 -0
  579. package/docs/evaluation/permission-gates-2026-10-17/permission-gate-worker.mjs +209 -0
  580. package/docs/evaluation/permission-gates-2026-10-17/permission-gates-result-final.json +53 -0
  581. package/docs/evaluation/permission-gates-2026-10-17/permission-gates-result-verified.json +54 -0
  582. package/docs/evaluation/permission-gates-2026-10-17/permission-gates-result.json +53 -0
  583. package/docs/evaluation/permission-gates-2026-10-17/review.json +19 -0
  584. package/docs/evaluation/permission-gates-2026-10-17/superseded-initial-receipt.json +40 -0
  585. package/docs/evaluation/pi-lens-registration-2026-10-19/README.md +90 -0
  586. package/docs/evaluation/pi-lens-registration-2026-10-19/probe.mjs +126 -0
  587. package/docs/evaluation/pi-lens-registration-2026-10-19/result.json +1 -0
  588. package/docs/evaluation/plan-continuation-2026-10-17/README.md +107 -0
  589. package/docs/evaluation/plan-continuation-2026-10-17/budget.proposed.json +13 -0
  590. package/docs/evaluation/plan-continuation-2026-10-17/checks.json +1048 -0
  591. package/docs/evaluation/plan-continuation-2026-10-17/integrity.json +58 -0
  592. package/docs/evaluation/plan-continuation-2026-10-17/inventory.json +239 -0
  593. package/docs/evaluation/plan-continuation-2026-10-17/manifest.proposed.json +315 -0
  594. package/docs/evaluation/plan-continuation-2026-10-17/next-stage-ledger.json +19 -0
  595. package/docs/evaluation/plan-continuation-2026-10-17/prepare-rescreen.mjs +30 -0
  596. package/docs/evaluation/plan-continuation-2026-10-17/prior-integrity.json +25 -0
  597. package/docs/evaluation/plan-continuation-2026-10-17/proposal-validation.json +14 -0
  598. package/docs/evaluation/plan-continuation-2026-10-17/receipt-contract-update.patch +40 -0
  599. package/docs/evaluation/plan-continuation-2026-10-17/review.json +8 -0
  600. package/docs/evaluation/plan-continuation-2026-10-17/source-delta.json +14 -0
  601. package/docs/evaluation/profile-evaluation.md +297 -0
  602. package/docs/evaluation/publication-2026-10-17/README.md +88 -0
  603. package/docs/evaluation/publication-2026-10-17/checks.json +117 -0
  604. package/docs/evaluation/publication-2026-10-17/integrity.json +21 -0
  605. package/docs/evaluation/publication-2026-10-17/publication-scan.json +63 -0
  606. package/docs/evaluation/publication-2026-10-17/review.json +21 -0
  607. package/docs/evaluation/s5-decision-inputs-2026-10-18/README.md +16 -0
  608. package/docs/evaluation/s5-decision-inputs-2026-10-18/bounded-wait.md +78 -0
  609. package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/README.md +151 -0
  610. package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/attempt-1/claude-projection.json +126 -0
  611. package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/attempt-2/claude-projection.json +1895 -0
  612. package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/attempt-3/claude-projection.json +1895 -0
  613. package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/attempt-4/claude-projection.json +1797 -0
  614. package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/attempt-5/claude-projection.json +1797 -0
  615. package/docs/evaluation/s5-decision-inputs-2026-10-18/worker-usage.md +63 -0
  616. package/docs/evaluation/s7-live-acceptance-2026-10-24/README.md +212 -0
  617. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/binding.json +20 -0
  618. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/config-ev-off.json +43 -0
  619. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/config-ev-spool.json +43 -0
  620. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/config-l3.json +39 -0
  621. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/config-pre.json +31 -0
  622. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e-teardown-setup-remove.json +1 -0
  623. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-clean-10s.json +15 -0
  624. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-clean.json +15 -0
  625. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-digest-ev-e1.json +8 -0
  626. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-leaks.json +131 -0
  627. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-oracle.json +74 -0
  628. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-run.json +33 -0
  629. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-setup-1-dryrun.json +1 -0
  630. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-setup-2-apply.json +1 -0
  631. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-setup-3-verify.json +1 -0
  632. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-clean-10s.json +15 -0
  633. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-clean.json +15 -0
  634. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-digest-ev-e2l.json +8 -0
  635. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-digest-ev-e2s.json +8 -0
  636. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-leaks.json +205 -0
  637. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-oracle.json +110 -0
  638. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-run.json +33 -0
  639. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-clean-10s.json +15 -0
  640. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-clean.json +15 -0
  641. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-digest-ev-e3.json +8 -0
  642. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-leaks.json +215 -0
  643. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-oracle.json +79 -0
  644. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-run.json +33 -0
  645. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-clean-10s.json +15 -0
  646. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-clean.json +15 -0
  647. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-digest-ev-e4a.json +8 -0
  648. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-digest-ev-e4b.json +8 -0
  649. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-late-a.json +16 -0
  650. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-late-b.json +16 -0
  651. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-leaks.json +167 -0
  652. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-oracle.json +70 -0
  653. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-run.json +37 -0
  654. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-clean-10s.json +15 -0
  655. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-clean.json +15 -0
  656. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-digest-ev-e5.json +8 -0
  657. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-leaks.json +82 -0
  658. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-oracle.json +60 -0
  659. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-run.json +33 -0
  660. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-server-env-names.txt +14 -0
  661. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-clean-10s.json +15 -0
  662. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-clean.json +15 -0
  663. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-digest-ev-e1.json +8 -0
  664. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-leaks.json +156 -0
  665. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-run.json +37 -0
  666. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-setup-apply.json +1 -0
  667. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-teardown-remove.json +1 -0
  668. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/final-e-clean.json +15 -0
  669. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/kit.sha256 +23 -0
  670. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l2-packed-off.json +1185 -0
  671. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l2-packed-spool.json +1334 -0
  672. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l2-wt-off.json +1185 -0
  673. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l2-wt-spool.json +1334 -0
  674. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-clean-10s.json +15 -0
  675. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-clean.json +15 -0
  676. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-digest-cc-analysis.json +8 -0
  677. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-leaks.json +80 -0
  678. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-oracle.json +61 -0
  679. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-run.json +33 -0
  680. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-clean-10s.json +15 -0
  681. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-clean.json +15 -0
  682. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-leaks.json +80 -0
  683. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-oracle-stage1.json +34 -0
  684. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-oracle-stage2.json +35 -0
  685. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-run.json +33 -0
  686. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-snapshot-stage1.txt +4 -0
  687. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-snapshot-stage2.txt +5 -0
  688. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-clean-10s.json +15 -0
  689. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-clean.json +15 -0
  690. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-digest-cc-abort.json +8 -0
  691. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-leaks.json +82 -0
  692. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-oracle-flow.json +61 -0
  693. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-oracle-late.json +16 -0
  694. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-run.json +33 -0
  695. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-controller-skill-remove.json +1 -0
  696. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-controller-skill-setup.json +1 -0
  697. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-clean-10s.json +15 -0
  698. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-clean.json +15 -0
  699. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-digest-cx-analysis.json +8 -0
  700. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-leaks.json +93 -0
  701. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-oracle.json +61 -0
  702. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-run.json +33 -0
  703. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-clean-10s.json +15 -0
  704. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-clean.json +15 -0
  705. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-leaks.json +93 -0
  706. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-oracle-stage1.json +34 -0
  707. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-oracle-stage2.json +35 -0
  708. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-run.json +33 -0
  709. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-snapshot-stage1.txt +4 -0
  710. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-snapshot-stage2.txt +5 -0
  711. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-clean-10s.json +15 -0
  712. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-clean.json +15 -0
  713. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-digest-cx-abort.json +8 -0
  714. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-leaks.json +95 -0
  715. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-oracle-flow.json +61 -0
  716. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-oracle-late.json +16 -0
  717. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-run.json +33 -0
  718. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-clean-10s.json +15 -0
  719. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-clean.json +15 -0
  720. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-digest-pre-analysis.json +8 -0
  721. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-digest-pre-code.json +8 -0
  722. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-leaks.json +86 -0
  723. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-oracle.json +39 -0
  724. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-run.json +33 -0
  725. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-clean-10s.json +15 -0
  726. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-clean.json +15 -0
  727. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-digest-pre-analysis.json +8 -0
  728. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-digest-pre-code.json +8 -0
  729. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-leaks.json +47 -0
  730. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-oracle.json +39 -0
  731. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-run.json +33 -0
  732. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/regdigest-after-cc.json +6 -0
  733. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/regdigest-after-cx.json +6 -0
  734. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/regdigest-after-e.json +6 -0
  735. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/regdigest-before.json +6 -0
  736. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-control-apply.json +1 -0
  737. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-control-dryrun.json +1 -0
  738. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-provision-apply-attempt1.json +1 -0
  739. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-provision-apply-attempt2.json +1 -0
  740. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-provision-dryrun.json +1 -0
  741. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-writer-verify.json +1 -0
  742. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2-leaks.json +130 -0
  743. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2-oracle.txt +14 -0
  744. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2-run.json +33 -0
  745. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2b-oracle.txt +16 -0
  746. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2c-oracle.txt +8 -0
  747. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2d-oracle.txt +6 -0
  748. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2r-leaks.json +130 -0
  749. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2r-oracle.txt +3 -0
  750. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2r-run.json +33 -0
  751. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w3-collect.json +1 -0
  752. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w3-finish.json +1 -0
  753. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w3r-collect.json +1 -0
  754. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w3r-finish.json +1 -0
  755. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w4-remove.json +1 -0
  756. package/docs/evaluation/subagent-probe-2026-10-26/README.md +132 -0
  757. package/docs/evaluation/subagent-probe-2026-10-26/results/K7.json +463 -0
  758. package/docs/evaluation/subagent-probe-2026-10-26/results/summary.json +50 -0
  759. package/docs/evaluation/test-coverage-2026-10-17.json +483 -0
  760. package/docs/evaluation/test-coverage-review-2026-10-17.json +22 -0
  761. package/docs/evaluation/test-coverage-verification-2026-10-17.json +31 -0
  762. package/docs/evaluation/token-footprint-2026-10-17/README.md +297 -0
  763. package/docs/evaluation/token-footprint-2026-10-17/baseline.json +25871 -0
  764. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/README.md +24 -0
  765. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/baseline.json +30346 -0
  766. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/client-projection.json +2538 -0
  767. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/live-approval/budget.json +13 -0
  768. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/live-approval/decision.json +69 -0
  769. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/live-approval/manifest.json +271 -0
  770. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/live-package.json +785 -0
  771. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/measurement.json +37956 -0
  772. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/summary.json +119 -0
  773. package/docs/evaluation/token-footprint-2026-10-17/checks-final.json +273 -0
  774. package/docs/evaluation/token-footprint-2026-10-17/checks.json +190 -0
  775. package/docs/evaluation/token-footprint-2026-10-17/client-attempts/README.md +25 -0
  776. package/docs/evaluation/token-footprint-2026-10-17/client-attempts/attempt-4.json +2274 -0
  777. package/docs/evaluation/token-footprint-2026-10-17/client-attempts/pilot-1.json +77 -0
  778. package/docs/evaluation/token-footprint-2026-10-17/client-attempts/pilot-2.json +81 -0
  779. package/docs/evaluation/token-footprint-2026-10-17/client-attempts/pilot-3.json +121 -0
  780. package/docs/evaluation/token-footprint-2026-10-17/current-calibration/baseline.json +30346 -0
  781. package/docs/evaluation/token-footprint-2026-10-17/current-calibration/measurement.json +37956 -0
  782. package/docs/evaluation/token-footprint-2026-10-17/current-calibration/summary.json +119 -0
  783. package/docs/evaluation/token-footprint-2026-10-17/current-client-projection.json +2538 -0
  784. package/docs/evaluation/token-footprint-2026-10-17/follow-up.md +76 -0
  785. package/docs/evaluation/token-footprint-2026-10-17/integrity.json +171 -0
  786. package/docs/evaluation/token-footprint-2026-10-17/live-approval/README.md +36 -0
  787. package/docs/evaluation/token-footprint-2026-10-17/live-approval/budget.json +13 -0
  788. package/docs/evaluation/token-footprint-2026-10-17/live-approval/decision.json +69 -0
  789. package/docs/evaluation/token-footprint-2026-10-17/live-approval/manifest.json +271 -0
  790. package/docs/evaluation/token-footprint-2026-10-17/live-package.json +795 -0
  791. package/docs/evaluation/token-footprint-2026-10-17/live-proposal.json +427 -0
  792. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/README.md +75 -0
  793. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-1/approved-budget.json +13 -0
  794. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-1/approved-decision.json +69 -0
  795. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-1/approved-manifest.json +271 -0
  796. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-1/token-live-result.json +837 -0
  797. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-2/approved-budget.json +13 -0
  798. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-2/approved-decision.json +69 -0
  799. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-2/approved-manifest.json +271 -0
  800. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-2/token-live-result.json +985 -0
  801. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-3/approved-budget.json +13 -0
  802. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-3/approved-decision.json +69 -0
  803. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-3/approved-manifest.json +271 -0
  804. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-3/token-live-result.json +3055 -0
  805. package/docs/evaluation/token-footprint-2026-10-17/measurement.json +32476 -0
  806. package/docs/evaluation/token-footprint-2026-10-17/prior-calibration/README.md +20 -0
  807. package/docs/evaluation/token-footprint-2026-10-17/prior-calibration/integrity.json +40 -0
  808. package/docs/evaluation/token-footprint-2026-10-17/summary.json +119 -0
  809. package/docs/evaluation/tool-definitions-2026-10-18/README.md +204 -0
  810. package/docs/evaluation/tool-definitions-2026-10-18/codex-projection/after/client-projection.json +2853 -0
  811. package/docs/evaluation/tool-definitions-2026-10-18/codex-projection/before/client-projection.json +2853 -0
  812. package/docs/evaluation/tool-definitions-2026-10-18/compare-validation.mjs +64 -0
  813. package/docs/evaluation/tool-definitions-2026-10-18/diff-validation.mjs +13 -0
  814. package/docs/evaluation/tool-definitions-2026-10-18/measure-wire.mjs +31 -0
  815. package/docs/evaluation/worker-system-prompt-2026-10-26/README.md +95 -0
  816. package/docs/evaluation/worker-system-prompt-2026-10-26/probe.mjs +155 -0
  817. package/docs/execution-modes.md +388 -0
  818. package/docs/installation.md +246 -12
  819. package/docs/isolation-setup.md +258 -0
  820. package/docs/macos-setup-design.md +2 -2
  821. package/docs/pi-extensions-design.md +71 -16
  822. package/docs/releasing.md +12 -6
  823. package/docs/reviews/2026-10-18-adr-0008-decision-brief.md +53 -0
  824. package/docs/roadmap.md +320 -9
  825. package/docs/session-mcp.md +5 -1
  826. package/docs/skills.md +23 -0
  827. package/docs/sprints/2026-10-15-s4-decision.md +73 -4
  828. package/docs/sprints/2026-10-17-token-footprint.md +130 -0
  829. package/docs/sprints/2026-10-18-s5-maintenance-orchestration.md +202 -0
  830. package/docs/sprints/2026-10-21-s6-ledger-event-bridge.md +120 -0
  831. package/docs/sprints/2026-10-24-s7-stabilization-live-acceptance.md +173 -0
  832. package/docs/sprints/2026-10-24-s8-writer-migration.md +235 -0
  833. package/docs/sprints/2026-10-26-s10-orchestration-reliability.md +250 -0
  834. package/docs/sprints/2026-10-26-s11-orchestration-gaps.md +173 -0
  835. package/docs/threat-model.md +37 -6
  836. package/docs/tool-contracts.md +91 -9
  837. package/package.json +17 -11
  838. package/scripts/isolation-acceptance.mjs +709 -0
  839. package/scripts/isolation-probe.cjs +213 -0
  840. package/skills/pi-session-implementation/SKILL.md +13 -3
  841. package/skills/pi-session-orchestration/SKILL.md +50 -13
  842. package/skills/pi-session-orchestration/references/start-errors.md +12 -0
  843. package/skills/pi-session-review/SKILL.md +13 -5
package/CHANGELOG.md CHANGED
@@ -2,6 +2,533 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.12.0 — 2026-10-28
6
+
7
+ Minor release under ADR 0003 for
8
+ [ADR 0012](docs/adr/0012-leased-writer-pool.md)
9
+ ([#157](https://github.com/plagor44-ux/pi-session-mcp/issues/157)): one host
10
+ registration codes in container workspaces through a leased writer pool. The
11
+ MCP contract changes: `pi_session_start` gains an optional `base`, sessions and
12
+ capabilities gain writer fields, and there are new error codes. It also ships
13
+ the writer cache and identity changes of
14
+ [#151](https://github.com/plagor44-ux/pi-session-mcp/issues/151) and
15
+ [#154](https://github.com/plagor44-ux/pi-session-mcp/issues/154). `npm audit`
16
+ still reports `undici` 8.10.2, pinned by Pi SDK 1.4.0, the latest SDK release
17
+ ([#120](https://github.com/plagor44-ux/pi-session-mcp/issues/120)).
18
+
19
+ Upgrading needs a one-time migration of every container repository; follow
20
+ [Installation](docs/installation.md#upgrade). Writers must be accepted again
21
+ after the upgrade, as after every release.
22
+
23
+ - Changed: coding on a `container` workspace goes through the one host
24
+ registration `pi-session-mcp`. The host leases a ready, accepted writer at
25
+ the requested or default base and relays the session to the writer's
26
+ contained server over stdio. Setup no longer adds `pi-coding-<alias>-w<n>`
27
+ registrations or writer hook entries, and `--client codex` has no writer
28
+ effect any more. Relayed start has a 60-second budget, prompt preflight and
29
+ abort 15 seconds each, and close cleanup 10 seconds; inner replies are
30
+ validated and size-bounded.
31
+ - Changed: every writer operation, from launch to setup's collect, finish,
32
+ reset and recreate, runs under a per-writer host lease
33
+ (`~/.local/state/pi-session-mcp/leases/<name>.lock`) and a container fence
34
+ (container name, label and clone mount). A held lease fails with
35
+ `writer_busy`; setup waits up to 10 seconds for it. A container that cannot be
36
+ removed fails with `writer_fenced`. The lease descriptor never enters a
37
+ container.
38
+ - Changed: reset, finish and recreate no longer need a reconnect of the writer
39
+ server; setup no longer reports `writer_reconnect_required`.
40
+ - Added: `pi_session_start` accepts an optional `base`, a short branch name,
41
+ for coding profiles on `container` workspaces; elsewhere it fails with
42
+ `base_not_applicable`. Container coding sessions carry `writer` and `base`,
43
+ and `pi_capabilities_get` lists each container workspace's `writers` and
44
+ `defaultBase`.
45
+ - Added: error codes `writer_unavailable` (with `reason` `none_ready`,
46
+ `none_at_base` or `none_admitted`, and the counts `busy`, `notAtBaseline`
47
+ and `settingsChanged`), `writer_session_lost` and `base_not_applicable`.
48
+ - Added: container modes record a default base. Setup records the base that
49
+ provisioning resolves (`--base`, else `origin/HEAD`, else `main`); migration
50
+ records the writers' shared base and fails with `workspace_base_ambiguous` if
51
+ they differ and no `--base` is given. Finish returns a writer to the default
52
+ base.
53
+ - Added: re-running a repository's provisioning command migrates its writers:
54
+ it removes the owned writer registrations and hooks, rewrites the wrappers,
55
+ marks the writers `launch: "relay"` and accepts them again. A divergent
56
+ registration is never removed; it reports `registration_divergent`, and that
57
+ writer stays outside the pool.
58
+ - Added: Doctor checks `writer_lease_directory`, `writer_not_migrated`,
59
+ `workspace_base_unset` and `writer_off_default_base`.
60
+ - Added: `--cache uv` mounts a private per-writer cache at `/pi/uv` with
61
+ `UV_CACHE_DIR=/pi/uv/cache` and `npm_config_cache=/pi/uv/npm`
62
+ ([#151](https://github.com/plagor44-ux/pi-session-mcp/issues/151)).
63
+ - Added: writer clones get the operator checkout's commit identity when both
64
+ values are valid, and Doctor warns with `writer_git_identity_missing`
65
+ otherwise. `--tags reachable` bundles the tags reachable from the base
66
+ commit; the default stays `none`
67
+ ([#154](https://github.com/plagor44-ux/pi-session-mcp/issues/154)).
68
+ - Changed: the wake hook matches only `mcp__pi-session-mcp__*` and reads the
69
+ host spool, which now also carries relayed container turns. Migrated writers
70
+ get no spool mount; a writer that is not yet migrated keeps it.
71
+ - Limits: lease, fence and relay need Linux. The live migration of an existing
72
+ installation and a relayed coding turn follow the release.
73
+
74
+ ## 0.11.9 — 2026-10-27
75
+
76
+ Documentation-only release. The published `docs/` of 0.9.0 to 0.11.8 contained
77
+ references to the maintainer's private environment; they are removed, and those
78
+ versions are withdrawn from npm. Code, MCP contract and behavior are unchanged
79
+ from 0.11.8.
80
+
81
+ ## 0.11.8 — 2026-10-26
82
+
83
+ Patch release for [#148](https://github.com/plagor44-ux/pi-session-mcp/issues/148):
84
+ installations with two or more container repositories could not complete an
85
+ upgrade. It also carries the fixes of 0.11.7, which such installations could
86
+ not install. The MCP contract is unchanged. `npm audit` still reports
87
+ `undici` 8.10.2, pinned by Pi SDK 1.4.0, the latest SDK release
88
+ ([#120](https://github.com/plagor44-ux/pi-session-mcp/issues/120)).
89
+
90
+ - Fixed: after an upgrade, the repository step of one container repository no
91
+ longer fails with `doctor_failed` because the writers of another container
92
+ repository are still `writer_not_ready`. With two or more container
93
+ repositories no repository step could pass, and the client targets stayed
94
+ unregistered ([#148](https://github.com/plagor44-ux/pi-session-mcp/issues/148)).
95
+ Every release before this one has the gap; it shows once two or more
96
+ repositories use container mode. Upgrade such an installation straight to
97
+ this release.
98
+
99
+ ## 0.11.7 — 2026-10-26
100
+
101
+ Patch release for Sprint 11
102
+ ([#141](https://github.com/plagor44-ux/pi-session-mcp/issues/141),
103
+ [#142](https://github.com/plagor44-ux/pi-session-mcp/issues/142)) and the
104
+ controller skill's review stage. The MCP contract is unchanged. `npm audit`
105
+ still reports `undici` 8.10.2, pinned by Pi SDK 1.4.0, the latest SDK release
106
+ ([#120](https://github.com/plagor44-ux/pi-session-mcp/issues/120)). Writers
107
+ must be accepted again after the upgrade, as after every release.
108
+
109
+ - Fixed: Doctor reports `container_profile_refused` for selected coding profiles that container writer provisioning would reject, and reports unreadable configuration without blaming individual profiles (#141).
110
+ - Fixed: writer launches now refresh a selected OAuth credential on the host
111
+ when it expires within **10 minutes** (was 2), through the Pi SDK's
112
+ documented `ModelRuntime` on the host's locked credential store, before the
113
+ SDK inside the writer opens its own five-minute pre-expiry window, in which
114
+ writer turns could fail; not yet confirmed by a live turn
115
+ ([#142](https://github.com/plagor44-ux/pi-session-mcp/issues/142)).
116
+ Several OAuth providers are refreshed in parallel under one 20 s bound.
117
+ - Fixed: the setup Doctor gate counts `container_profile_refused` for the
118
+ repository's own profile as the repository's own finding, so collect, finish
119
+ and the profile change that fixes it are not blocked by it (#141).
120
+ - Changed: the orchestration skill asks for a cross-family read-only review of
121
+ every code task, with a verdict line and at most three fix rounds, and
122
+ explains how a fresh session continues from collected writer work.
123
+
124
+ ## 0.11.6 — 2026-10-26
125
+
126
+ Patch release for the Sprint 9 close-out
127
+ ([#134](https://github.com/plagor44-ux/pi-session-mcp/issues/134),
128
+ [#135](https://github.com/plagor44-ux/pi-session-mcp/issues/135),
129
+ [#136](https://github.com/plagor44-ux/pi-session-mcp/issues/136),
130
+ [#137](https://github.com/plagor44-ux/pi-session-mcp/issues/137)) and the
131
+ Sprint 10 skill changes. The MCP contract is unchanged. `npm audit` still
132
+ reports `undici` 8.10.2, pinned by Pi SDK 1.4.0, the latest SDK release
133
+ ([#120](https://github.com/plagor44-ux/pi-session-mcp/issues/120)).
134
+
135
+ - Fixed: `setup --writer <name> --reset`, `--finish` and `--recreate` rewrite
136
+ the writer's projected credentials, so a running writer server could fail
137
+ its next coding start with `local_authentication_missing` until the client
138
+ reconnected it. After an applied, successful reset, finish or recreate, setup
139
+ now reports `writer_reconnect_required`, and the orchestration skill and
140
+ `docs/isolation-setup.md` name the reconnect
141
+ ([#136](https://github.com/plagor44-ux/pi-session-mcp/issues/136)).
142
+ - Added: Doctor warns with `extension_unpinned` when an extension that an
143
+ execution profile pins as `npm:<name>@<version>` is listed in Pi's agent
144
+ `settings.json` without a version, as a string or as an object's `source`.
145
+ Pi can update such a package by itself, which then fails Doctor with
146
+ `extension_version_mismatch`. Missing or unreadable settings are ignored, and
147
+ Doctor loads the Pi SDK only for this check
148
+ ([#137](https://github.com/plagor44-ux/pi-session-mcp/issues/137)).
149
+ - Changed: when the Doctor gate blocks `setup --repo <alias> --mode container
150
+ ... --apply` or a mutating `--writer` operation, setup reports one failed
151
+ finding per blocking check next to `doctor_failed`, with the Doctor check id
152
+ as its code and the profile or workspace alias of its subject. The gate's
153
+ tolerance is unchanged: an error in a profile that the repository does not
154
+ select still blocks
155
+ ([#137](https://github.com/plagor44-ux/pi-session-mcp/issues/137)).
156
+ - Changed: the shipped skills carry a report contract. The orchestration skill
157
+ asks workers for a first line `STATUS:` with `DONE`, `DONE_WITH_CONCERNS`,
158
+ `NEEDS_CONTEXT` or `BLOCKED`, checks the report format before verifying,
159
+ acts on each status, follows up once on a turn that finished quickly without
160
+ a change, and routes tasks by type with the evidence level stated. The
161
+ implementation and review skills emit the status line, stop with `BLOCKED`
162
+ on a wrong base instead of fetching, and do not end a turn on a plan alone.
163
+ Container writers use the new worker skills after the upgrade and a
164
+ `--repo <alias> ... --apply`; until then the new controller asks once more
165
+ for a report in the new format.
166
+ - Fixed: `setup --repo <alias> --mode container ... --apply` kept an existing
167
+ writer silently on its old settings when the image, network, cache, profile
168
+ list or a selected coding profile (model, thinking level, skills) or the
169
+ event delivery had changed, and reported only `writer_registered`. Reconcile
170
+ now checks every kept writer first against the settings and the configuration
171
+ it would be provisioned from now and reports `writer_settings_changed`
172
+ without accepting the writer or changing its registrations. The image is
173
+ resolved locally only and never pulled: Podman that cannot be asked reports
174
+ `podman_unavailable`, an image it cannot resolve `image_unavailable`. The dry
175
+ run runs the same check, so it now asks Podman too. Key order in the profile
176
+ objects does not count as a change, and an explicit `events.delivery` of
177
+ `"off"` counts the same as no `events` field
178
+ ([#134](https://github.com/plagor44-ux/pi-session-mcp/issues/134)).
179
+
180
+ - Fixed: a coding profile for a container repository could select a `builtin:`
181
+ skill that the writer cannot resolve the same way as the host. Operator
182
+ overrides never reach the writer, so a customized `pi-session-implementation`
183
+ was replaced silently by the shipped text, and a name that exists only as an
184
+ override failed the session start with `skill_load_failed`. Setup now refuses
185
+ such a profile with `container_profile_unsupported`: a selected `builtin:`
186
+ skill must be shipped by the package and must have no override. For an
187
+ existing writer reconcile reports the same code and leaves the writer as it
188
+ is, so after an upgrade it stays `writer_not_ready` until the profile changes,
189
+ the override is removed, or the writer is removed and provisioned again
190
+ ([#135](https://github.com/plagor44-ux/pi-session-mcp/issues/135)).
191
+ - Development: a provider-free `claude plugin eval` suite for the
192
+ orchestration skill under `eval/controller-skill/`, and a probe showing that
193
+ worker sessions keep Pi's default system prompt
194
+ (`docs/evaluation/worker-system-prompt-2026-10-26/`).
195
+
196
+ ## 0.11.5 — 2026-10-25
197
+
198
+ Patch release for the Sprint 8 upgrade defects
199
+ [#130](https://github.com/plagor44-ux/pi-session-mcp/issues/130) and
200
+ [#131](https://github.com/plagor44-ux/pi-session-mcp/issues/131), found when
201
+ the pilot writers were upgraded to 0.11.4. `npm audit` still reports `undici`
202
+ 8.10.2, pinned by Pi SDK 1.4.0
203
+ ([#120](https://github.com/plagor44-ux/pi-session-mcp/issues/120)).
204
+
205
+ - Fixed: after a package upgrade, `setup --repo <alias> ... --apply` reported
206
+ `writer_registered` for container writers but did not accept them again, so
207
+ Doctor kept reporting `writer_not_ready` and blocked the client targets.
208
+ Reconciliation now accepts every kept writer whose acceptance is not current,
209
+ using Doctor's `writer_not_ready` predicate (not ready, a stale fingerprint or
210
+ a missing image), instead of only writers whose phase is not ready. A writer
211
+ whose re-acceptance fails is not registered again; an existing registration
212
+ stays and refuses with `writer_not_ready` until the writer is accepted. When
213
+ Podman cannot be asked or fails, a ready writer is left as it is and setup
214
+ reports `podman_unavailable`. `docs/installation.md#upgrade` describes the
215
+ order for operators with container writers
216
+ ([#130](https://github.com/plagor44-ux/pi-session-mcp/issues/130)).
217
+ - Fixed: writer acceptance failed with `acceptance_harness_failed`
218
+ (`digests.preexisting_changed`) when a selected host OAuth token was expired
219
+ or about to expire, because the writer launch inside the harness refreshed it
220
+ in the host's Pi agent directory. The harness now launches the writer with
221
+ `PI_WRITER_NO_CREDENTIAL_REFRESH=1`, as direct verify does; acceptance makes
222
+ no provider request. `acceptance-failure.json` also records the ids of the
223
+ changed digest groups (`changedDigestGroups`), without digests or paths
224
+ ([#131](https://github.com/plagor44-ux/pi-session-mcp/issues/131)).
225
+
226
+ ## 0.11.4 — 2026-10-25
227
+
228
+ Patch release for the Sprint 8 pilot defects
229
+ [#125](https://github.com/plagor44-ux/pi-session-mcp/issues/125),
230
+ [#126](https://github.com/plagor44-ux/pi-session-mcp/issues/126) and
231
+ [#127](https://github.com/plagor44-ux/pi-session-mcp/issues/127). `npm audit`
232
+ still reports `undici` 8.10.2, pinned by Pi SDK 1.4.0
233
+ ([#120](https://github.com/plagor44-ux/pi-session-mcp/issues/120)); this
234
+ release ships with that finding by maintainer decision.
235
+
236
+ - Fixed: `setup --verify` and `setup --writer <name> --verify` killed the
237
+ launched server with SIGKILL 100 ms after stdin EOF and SIGTERM. A server
238
+ that needed longer to shut down its registry and close its event spool was
239
+ killed first and could leave a stale `inst-*` directory under
240
+ `$XDG_RUNTIME_DIR/pi-session-mcp/events` or the writer's spool directory.
241
+ Both launchers now wait for the server to exit for up to 2 s before SIGKILL,
242
+ and the verifier allows up to 5 s (`min(timeout, 5 s)`, after the MCP
243
+ exchange ends) for stopping the server. A server that exits sooner is not waited for
244
+ ([#125](https://github.com/plagor44-ux/pi-session-mcp/issues/125)). Also
245
+ gave the multi-session acceptance test's temporary-root cleanup an explicit
246
+ 120 s hook timeout, which it exceeded on macOS CI, and the bulk spool-cleanup
247
+ test a 60 s timeout. No MCP contract change.
248
+ - Fixed: the first acceptance of every newly provisioned writer failed with
249
+ `acceptance_harness_failed` (`digests.preexisting_changed`) when event
250
+ delivery was on, and a repeated `--apply` passed. The writer's spool directory
251
+ was created at its first launch, which is the acceptance harness's own
252
+ launch, so the harness saw a new entry in the writer root. Provisioning now
253
+ creates the directory (0700) when delivery is on. This is the cause behind
254
+ [#121](https://github.com/plagor44-ux/pi-session-mcp/issues/121); writers
255
+ provisioned by an earlier release keep needing one repeated `--apply`
256
+ ([#126](https://github.com/plagor44-ux/pi-session-mcp/issues/126)).
257
+ - Fixed: with Claude Code 2.1.310, setup reported `client_unsupported` for the
258
+ second and every further writer of a repository, because `claude mcp get`
259
+ now appends `Did you mean "<name>"? Run \`claude mcp list\` to see all.` to
260
+ the absent message when a similar server is configured. The same message made
261
+ `--remove` of one writer fail with `post_remove_mismatch` while a sibling
262
+ writer stayed registered. Both Claude Code adapters accept this suffix with
263
+ any quoted suggestion of up to 256 characters without quotes or line breaks
264
+ (Claude also suggests plugin servers and connectors); any other text stays
265
+ unsupported. Added the Claude Code 2.1.310 client contract fixture
266
+ ([#127](https://github.com/plagor44-ux/pi-session-mcp/issues/127)).
267
+
268
+ ## 0.11.3 — 2026-10-25
269
+
270
+ Patch release for [#118](https://github.com/plagor44-ux/pi-session-mcp/issues/118) and
271
+ [#121](https://github.com/plagor44-ux/pi-session-mcp/issues/121). `npm audit`
272
+ still reports `undici` 8.10.2, pinned by Pi SDK 1.4.0
273
+ ([#120](https://github.com/plagor44-ux/pi-session-mcp/issues/120)); this
274
+ release ships with that finding by maintainer decision.
275
+
276
+ - Fixed: a failed writer acceptance ended as one undiagnosable
277
+ `writer_acceptance_failed`. It now returns `writer_state_invalid`,
278
+ `writer_state_unreadable`, `podman_unavailable`, `acceptance_harness_failed` (including a harness that
279
+ exits without writing its report) or `acceptance_fingerprint_changed`, and
280
+ writes a path-free `acceptance-failure.json` into the writer's state
281
+ directory, removed by the next successful acceptance. The setup report codes
282
+ changed; `writer_acceptance_failed` remains only for unexpected errors
283
+ ([#121](https://github.com/plagor44-ux/pi-session-mcp/issues/121)). No MCP
284
+ contract change.
285
+ - Fixed: on Linux the setup fence's process table counted a zombie
286
+ thread-group leader as gone while other threads of its process still ran and
287
+ held its file descriptors, including the setup lock. A zombie group member
288
+ now counts as gone only when `/proc/<pid>/stat` reports one thread; more
289
+ threads count as alive, and an unreadable thread count keeps the fence
290
+ ([#118](https://github.com/plagor44-ux/pi-session-mcp/issues/118)). The
291
+ handling of processes that exit during a scan (#109) and the macOS path are
292
+ unchanged. No MCP contract change.
293
+ - Security: `zod` 4.6.5 → 4.6.7 (direct pin, production install path;
294
+ GHSA-mrhx-c7xc-m3w5). In the lockfile only, development path: `fast-uri`
295
+ 3.1.8 → 3.1.9 (via MCP Inspector's `ajv`; GHSA-w74x-v6f9-j3xg,
296
+ GHSA-xhq7-xmqj-769h, GHSA-wjr9-j795-jxcr, GHSA-333x-w4r6-6crp) and the
297
+ Inspector's `undici` 8.11.2 → 8.12.3. Still open: `undici` 8.10.2 in the
298
+ production path, pinned exactly by Pi SDK 1.4.0 (GHSA-4qv8-2p9j-2685,
299
+ GHSA-f72v-6w45-q472, GHSA-xjj6-f33q-929c), so `npm audit` still reports it.
300
+ - Documentation: Pi's own MCP client (Pi 1.2 and later: `pi mcp add`,
301
+ `~/.pi/agent/mcp.json`, the built-in `mcp` extension) is never loaded in
302
+ embedded sessions. A server registered with it is invisible to workers and
303
+ must be granted through `mcpServers`
304
+ ([#115](https://github.com/plagor44-ux/pi-session-mcp/issues/115)). A new
305
+ SDK contract test makes sure that no `mcp.json` starts a server in a session.
306
+
307
+ ## 0.11.2 — 2026-10-22
308
+
309
+ Patch release for [#109](https://github.com/plagor44-ux/pi-session-mcp/issues/109) and
310
+ [#117](https://github.com/plagor44-ux/pi-session-mcp/issues/117).
311
+
312
+ - Changed: Pi SDK `@earendil-works/pi-coding-agent` 1.4.0, together with its
313
+ family packages `pi-ai`, `pi-mcp`, `pi-tui`, `pi-codemode`, `pi-agent-core`
314
+ and `pi-telemetry`, all exactly pinned at 1.4.0
315
+ ([#117](https://github.com/plagor44-ux/pi-session-mcp/issues/117)). No MCP
316
+ contract change. The SDK's reserved MCP tool names and stop reasons are
317
+ unchanged. Upstream changes that operators may notice:
318
+ - The `grep` tool runs `rg --no-config` and ignores `RIPGREP_CONFIG_PATH`.
319
+ - Provider attribution headers come from pi-ai's client identity, so an
320
+ extension's `before_provider_headers` handler no longer sees the
321
+ OpenRouter, NVIDIA NIM and OpenCode attribution headers.
322
+ - Default models changed for GitHub Copilot (`gpt-6.1-sol`), NVIDIA and
323
+ Xiaomi. The `openai-codex` provider no longer offers `gpt-5.5` and
324
+ `gpt-5.3-codex-spark`.
325
+ - Compaction summaries use the model's output limit. A session now recovers
326
+ after a response cut off at the output limit, and automatic retry covers
327
+ more transient gateway errors.
328
+ - Fixed: on Linux, a mutating `setup` run could fail at random with
329
+ `ownership_lock_unavailable` while other processes exited
330
+ ([#109](https://github.com/plagor44-ux/pi-session-mcp/issues/109)). The
331
+ process-table scan behind the setup fence treated a process that vanished
332
+ during the scan as indeterminate. Listing `/proc` with file types made Node
333
+ `lstat` an entry whose type procfs did not report, which happens for a
334
+ process that exits during the listing, and that `lstat` threw `ENOENT`.
335
+ Reading `/proc/<pid>/stat` of a process that is being reaped returns
336
+ `ESRCH` or process group `-1`. The guardian then refused to start, and a
337
+ cleanup loop could report an indeterminate state. Such processes now count
338
+ as gone, as a vanished `/proc` entry already did; a group of `-1` is read
339
+ once more and counts as gone only if the process has vanished by then. Any
340
+ other read or parse failure still makes the scan indeterminate and keeps the
341
+ fence.
342
+
343
+ ## 0.11.1 — 2026-10-22
344
+
345
+ Patch release for [#113](https://github.com/plagor44-ux/pi-session-mcp/issues/113).
346
+
347
+ - Fixed: with `events.delivery: "spool"`, 0.11.0 refused to start
348
+ (`event_spool_unavailable`) when the server's environment had neither
349
+ `PI_SESSION_MCP_EVENTS_DIR` nor an absolute `XDG_RUNTIME_DIR`. Codex passes
350
+ only `HOME`, `LANG`, `LOGNAME`, `PATH`, `SHELL` and `USER` to stdio MCP
351
+ servers, so a configuration shared with a Codex registration broke
352
+ pi-session-mcp in every new Codex session. The server now starts with
353
+ delivery inactive: `pi_capabilities_get` reports `events.delivery: "off"`,
354
+ and stderr carries one `event_delivery_inactive` warning with code
355
+ `event_runtime_dir_missing`. A relative `PI_SESSION_MCP_EVENTS_DIR` or an
356
+ unsafe spool root still fails startup with `event_spool_unavailable`
357
+ ([ADR 0011 amendment](docs/adr/0011-turn-events-and-controller-wake.md#amendment-2026-10-22-inactive-delivery-without-a-runtime-directory)).
358
+ - Fixed: `setup --verify` reported `mcp_unsupported` for every target when
359
+ delivery was enabled, because its direct MCP check started the server with
360
+ `PI_SESSION_MCP_CONFIG` only. It now also passes the caller's
361
+ `XDG_RUNTIME_DIR`.
362
+ - Changed: Doctor's `event_spool_root` warning says that delivery stays
363
+ inactive without a runtime directory.
364
+ - Operators of 0.11.0: leave `events` unset in a configuration that a Codex
365
+ registration uses, or upgrade.
366
+
367
+ ## 0.11.0 — 2026-10-22
368
+
369
+ Minor release under ADR 0003 for
370
+ [ADR 0011](docs/adr/0011-turn-events-and-controller-wake.md) (#108, #110):
371
+ `pi_capabilities_get` gains `events`.
372
+
373
+ - Security, development dependencies only (nothing in the production install
374
+ path; `npm audit` and `npm audit --omit=dev` report 0 vulnerabilities):
375
+ - `@modelcontextprotocol/inspector` 2.10.1 → 2.11.0, which pins the MCP SDK at
376
+ 2.3.1 like this package, so the nested `@modelcontextprotocol/client` and
377
+ `server` 2.2.0 copies are gone (GHSA-6prh-2h8m-c8cw, GHSA-jm63-cq47-j5jp,
378
+ GHSA-46jr-4wx8-v453, GHSA-rvq5-wwqv-78pq).
379
+ - Lockfile only: `hono` 4.13.7 → 4.13.13 (GHSA-5r4p-p66f-jhc7) and `vite`
380
+ 8.3.0 → 8.3.5 (GHSA-9jrq-w75r-8gcw and the bundled `launch-editor`
381
+ advisories), with their `@rolldown`, `@napi-rs` and `@oxc-project` builds.
382
+
383
+ - Added: opt-in turn events for a Claude Code controller wake. The optional
384
+ top-level server configuration field `events: { "delivery": "spool" | "off" }`
385
+ (`off` is the default; any other shape fails startup with
386
+ `invalid_event_delivery`). With `spool`, the registry's terminal transition
387
+ writes one content-free event file per turn (identifiers, state, time) into a
388
+ private spool below `$XDG_RUNTIME_DIR/pi-session-mcp/events/`, removed at
389
+ shutdown. An unusable
390
+ spool root stops startup with `event_spool_unavailable`; a later write failure
391
+ is one sanitized `event_spool_write_failed` diagnostic on stderr.
392
+ - Added: the `pi-session-mcp-wake` executable, a Claude Code `PostToolUse`
393
+ `asyncRewake` hook. It waits for the event of a running turn, claims it exactly
394
+ once and wakes the controller with one line; after its wait budget (30 minutes)
395
+ it wakes so that the controller reads once and re-arms. At most one waiter runs
396
+ per turn: a re-arming read of a still running turn does not start a second
397
+ wait. A turn ended by `close` (the session is gone) does not wake. A waiter
398
+ whose namespace shows no spool directory within a short grace period (2 s)
399
+ exits quietly. If the runtime directory is full (`ENOSPC`, `EDQUOT`), claims
400
+ and waiter locks cannot be written and the waiter falls back to the budget
401
+ wake.
402
+ - Added: `setup --apply` installs, `--verify` checks and `--remove` /
403
+ `--rollback` remove the hook entry in the settings file of the Claude Code
404
+ target's scope, under the existing dry-run, ownership and divergence rules
405
+ (`hook_*` and `settings_*` finding codes, see the
406
+ [client setup reference](docs/client-setup.md#wake-hook)). With delivery off
407
+ and no entry of its own, and for Codex targets, setup reports no hook finding,
408
+ so its report keeps the 0.10 shape; Codex controllers keep polling.
409
+ - Added: container writers with delivery enabled get one dedicated spool mount
410
+ at `/pi/events`. The spool lives on disk in the writer's own state directory
411
+ (`~/.local/state/pi-session-mcp/writers/<name>/events/`), not on the runtime
412
+ tmpfs. Each launch creates and checks it, resets a mode the worker changed and
413
+ prunes it (everything that is not an instance directory, and entries older than
414
+ 24 hours inside instance directories); `events_directory_unavailable` refuses
415
+ the launch. A crashed instance directory can survive until a later launch prunes
416
+ it, after 24 hours at the earliest. Acceptance binds delivery when enabled, and changing
417
+ delivery on an existing writer reports `writer_settings_changed` (remove and
418
+ add the writer). Amends ADR 0008.
419
+ - Added: a server keeps only the newest 256 event files of its spool instance
420
+ and recreates its instance directory once if a launch pruned it.
421
+ - Added: Doctor check `event_spool_root` (only when delivery is enabled) and a
422
+ section "Event delivery" in the controller skill `pi-session-orchestration`:
423
+ with `events.delivery` `spool`, wait for the wake instead of polling.
424
+ - Changed: `pi_capabilities_get` gains `events: { delivery: "spool" | "off" }`.
425
+ This is a public contract change, hence a minor release under
426
+ [ADR 0003](docs/adr/0003-post-mvp-maintenance.md#versioning). The eight tools
427
+ and their other fields are unchanged.
428
+ - Security: events are wake triggers only and carry no prompt, answer, path or
429
+ error text. A worker can write to its own writer's spool mount, so it can
430
+ forge, delete or flood events there; the effect is a spurious or missing wake
431
+ inside that namespace (a missing wake is replaced by the budget wake after up
432
+ to 30 minutes, on which the controller reads once), never a changed
433
+ result, since the controller always reads `pi_turn_get`. The hook validates
434
+ events strictly, bounds its scans and follows no link, and its claims live
435
+ outside every writer mount. The mount gives the worker no other host access.
436
+ See the [threat model](docs/threat-model.md).
437
+ - Limits: Linux only (on other platforms the hook exits without a wake and the
438
+ controller polls); Claude Code only, in interactive or stream-json sessions (one-shot
439
+ `claude -p` blocks until the hook ends); Codex keeps polling. Claude Code may
440
+ need a restart or a `/hooks` review to load a new hook, and managed settings
441
+ can disable hooks. The setup hook path must be free of shell metacharacters
442
+ (`hook_path_unsafe`). No token or cost saving is claimed.
443
+ - Evaluation (#104): a provider-free ledger, completion-event bridge and
444
+ Claude Code rewake prototype under `eval/bridge/` (not shipped), its
445
+ [report](docs/evaluation/ledger-event-bridge-2026-10-21/README.md) (including
446
+ two operator-approved real-model pairs) and
447
+ [ADR 0011](docs/adr/0011-turn-events-and-controller-wake.md) (accepted
448
+ 2026-10-21, items 1–3, with an ADR 0008 amendment), implemented in #108 as described
449
+ above.
450
+
451
+ ## 0.10.0 — 2026-10-19
452
+
453
+ - Added: individual `grantedExtensionTools` on read-only profiles with
454
+ extensions, decided in [ADR 0010](docs/adr/0010-read-only-extension-tools.md),
455
+ amending ADR 0006. Active tools include exactly these grants alongside the
456
+ read-only built-ins and granted MCP tools. A grant must be registered at load
457
+ and active and declared to the model at admission, or start fails closed with
458
+ `extension_tool_missing` (`needs_operator`). Capabilities expose the configured
459
+ grants; setup verify validates them. This is a public contract change for minor
460
+ release **0.10.0** under [ADR 0003](docs/adr/0003-post-mvp-maintenance.md#versioning).
461
+ Grants are operator trust decisions: third-party tools may write, and workspace
462
+ modes `container` and `read-only` do not restrict them. Lazy registration in
463
+ `session_start` or later is unsupported.
464
+
465
+ ## 0.9.1 — 2026-10-19
466
+
467
+ - Changed: Pi SDK `@earendil-works/pi-coding-agent` from `1.2.0` to `1.3.0`,
468
+ together with its family packages `pi-ai`, `pi-mcp`, `pi-tui`,
469
+ `pi-codemode`, `pi-agent-core` and `pi-telemetry`, all at `1.3.0`. The public
470
+ MCP contract is unchanged. The SDK's stop reasons, its `AssistantMessage`
471
+ type and its reserved MCP tool names (`isMcpToolName`) are unchanged, and the
472
+ SDK now pins its own family packages exactly. Operator note from upstream:
473
+ a `models.json` override of the `kimi-coding` base URL must now include
474
+ `/v1`. Upstream also retries more gateway errors automatically and rejects
475
+ tool calls with malformed JSON arguments instead of running them partially.
476
+
477
+ ## 0.9.0 — 2026-10-19
478
+
479
+ - Added: [per-repository execution modes](docs/execution-modes.md), decided in
480
+ [ADR 0009](docs/adr/0009-execution-modes.md) as a minor release because the
481
+ public MCP contract changes. A separate `execution-modes.json` records acknowledged `host`,
482
+ `container` or `read-only`; missing entries remain `unset` with compatible
483
+ host behavior. Capabilities workspace entries include `mode`; coding starts
484
+ on container/read-only aliases fail with `workspace_mode_forbids_coding`.
485
+ Invalid modes fail startup with `invalid_execution_modes`. Setup `--repo`
486
+ plans by default and writes only with `--apply`; Doctor reports unset modes,
487
+ accepted host writes and unavailable rootless Podman. Controllers must restart
488
+ after changes.
489
+ - Added: Plan B automated Linux rootless-Podman writers: separate full clones,
490
+ generated wrappers, explicit isolation control and contained acceptance,
491
+ readiness/refusal servers, registration, collect/reset/recreate/remove/verify
492
+ and controller `--finish`. Collected refs remain untrusted until reviewed.
493
+ Each writer defaults to `boundary-read-only`; coding requires an explicit
494
+ profile. Credential checks run every 60 seconds, with host OAuth warmup only
495
+ within 2 minutes of expiry, then a boundary copy. Provider credentials remain
496
+ in the boundary and pasta networking is not limited. The controller skill
497
+ teaches finish before reuse; operator docs cover migration and selecting
498
+ the writer toolchain cache with `--cache none|go`. No new live acceptance is claimed.
499
+
500
+ - Added: Doctor warning `workspace_gitfile` when a configured workspace has a
501
+ `.git` gitfile (`gitdir:` pointer) and at least one execution profile uses the
502
+ `coding` permission profile. A gitfile can mean a linked worktree, a submodule
503
+ or a separate Git directory, so hooks and config may be shared with another
504
+ repository. Advice only: Doctor never follows the pointer or runs Git, the
505
+ remediation recommends a separate full clone, exit status rules are unchanged.
506
+ Issue #81.
507
+ - Changed: the `pi-session-orchestration` controller skill records a terminal
508
+ turn (`completed`, `failed`, `aborted`) once and does not fetch it again in
509
+ normal operation, gives a concrete polling cadence (first poll about 10 s
510
+ after the prompt, then every 15–30 s, running tasks only) with fixed task and
511
+ cleanup budgets, and notes as a Codex route observation that every controller
512
+ tool call re-sent the accumulated context. The `pi_session_start` error
513
+ classification moved to `references/start-errors.md` in the skill tree, read
514
+ only after a start failure; a start error is never retried before it is
515
+ classified. Issue #86.
516
+ - Changed: the worker skills `pi-session-implementation` and
517
+ `pi-session-review` ask for concise final reports without full diffs or logs
518
+ by default, never drop failed checks, blockers or risks, and state what
519
+ `truncated` does and does not mean. Issue #87.
520
+ - Changed: the descriptions of `pi_capabilities_get`, `pi_session_prompt`,
521
+ `pi_session_close` and `pi_turn_get` carry short behavior hints. No tool,
522
+ argument, result, state, annotation or error changed. Issue #88.
523
+ - Changed: the input JSON Schemas of the six `sessionId`/`turnId` fields keep
524
+ `format: "uuid"` but no longer repeat the long `pattern`; the server still
525
+ validates with the same rule, and accepted values and error responses are
526
+ byte-identical (156 compared responses). `tools/list` shrinks by 1,074 bytes
527
+ against the #88 state; net against 0.8.3 it is 819 bytes smaller (19,962 to
528
+ 19,143 bytes), because #88 adds 255 bytes.
529
+ Output schemas are unchanged. Codex 0.162.1 already drops `pattern` from the
530
+ projected schemas, so its model-visible tool bytes do not change. Issue #90.
531
+
5
532
  ## 0.8.3 — 2026-10-15
6
533
 
7
534
  - Fixed: a fresh `npm install -g pi-session-mcp@0.8.2` produced a server that
package/README.md CHANGED
@@ -30,14 +30,16 @@ It is not the right tool when:
30
30
 
31
31
  ## Status
32
32
 
33
- The package version is **0.8.3**.
33
+ The package version is **0.12.0**.
34
+
35
+ [Per-repository execution modes](docs/execution-modes.md) make host writes explicit and block coding on read-only aliases. On container workspaces, the one host `pi-session-mcp` registration leases a rootless-Podman writer per coding session on Linux; no per-writer registrations or tool prefixes are needed ([ADR 0012](docs/adr/0012-leased-writer-pool.md)). Setup provisions, accepts, collects and resets the pool. Starts normally use the workspace default base; fix rounds can pass a short branch `base`. Start/get report `writer` and `base` for collection, and capabilities report configured `writers` and `defaultBase`. Reset, finish and recreate need no reconnect; finish returns the writer to the default base. See the [container upgrade runbook](docs/installation.md#container-writers).
34
36
 
35
37
  - **Pre-1.0.** The public tool contract is stable within a minor line: a change to tools, fields, states or error codes needs a new minor release.
36
38
  - **Linux and macOS**, Node.js 22.19.0 or newer. macOS is tested in CI on macOS 15 and 26 on Apple silicon; Intel Macs run the same code but are untested. Setup acceptance on a real Mac is recorded for Claude Code only; Codex is still pending. See [Acceptance](docs/acceptance.md#status). On other platforms `setup` refuses with `platform_unsupported`.
37
39
  - **Clients:** Codex CLI and Claude Code. The `setup` command does not pin client versions: it accepts a client whose public `mcp` command output matches the expected contract and fails closed otherwise.
38
40
  - **Out of scope by design:** HTTP, a web UI, persistence, resume, remote access and multi-user behavior. One trusted local MCP peer talks to one server process.
39
41
  - **Not a sandbox.** A `coding` profile restricts the Pi tools that a session may use. It does not isolate the process from the operating system.
40
- - **Acceptance.** Every release passes the provider-free checks. The live two-client acceptance has not yet been repeated on a build with Pi SDK `1.x`; see [Acceptance](docs/acceptance.md).
42
+ - **Acceptance.** Every release passes the provider-free checks. The last live two-client acceptance (Level 3) ran on Pi SDK `1.1.0` with one provider pair on Linux and has not been repeated on later SDK pins; see [Acceptance](docs/acceptance.md).
41
43
 
42
44
  ## How it works
43
45
 
@@ -114,6 +116,7 @@ The [installation guide](docs/installation.md) also covers installing from a rel
114
116
  - An execution profile binds a permission profile (`read-only` or `coding`), a provider, a model and a thinking level. Exactly one profile is the default, and it must be `read-only`.
115
117
  - A profile can grant individual tools of local stdio MCP servers to its sessions; see [External MCP tools in embedded sessions](docs/session-mcp.md).
116
118
  - An optional top-level `skillCatalog` maps skill aliases to `builtin:<name>` (a skill of the package or of your override directory) or to a `SKILL.md` file, and a profile's optional `skills` selects aliases from it. A profile without `skills` gets no skills. See [Pi skills](docs/skills.md).
119
+ - An optional top-level `"events": { "delivery": "spool" }` turns on content-free turn events, so that a Claude Code hook can wake the controller when a turn ends instead of polling. It is off by default and changes nothing for Codex. See [Wake the controller](docs/installation.md#wake-the-controller-claude-code).
117
120
  - The server reads the file once at startup. Start a new client session after changing it.
118
121
 
119
122
  ## Run it by hand
@@ -169,10 +172,13 @@ Contract and design:
169
172
  - [ADR 0003: no new feature phase after the MVP](docs/adr/0003-post-mvp-maintenance.md)
170
173
  - [ADR 0004: setup accepts clients by contract, not by version](docs/adr/0004-client-contract-not-version.md)
171
174
  - [ADR 0007: execution profiles select Pi skills from an operator catalog](docs/adr/0007-profile-skill-selection.md)
175
+ - [ADR 0011: turn events and controller wake](docs/adr/0011-turn-events-and-controller-wake.md)
176
+ - [ADR 0012: one registration with a leased writer pool](docs/adr/0012-leased-writer-pool.md)
172
177
 
173
178
  Maintain:
174
179
 
175
180
  - [Acceptance](docs/acceptance.md)
181
+ - [Synthetic profile evaluation](docs/evaluation/README.md): current results, provider-free harness and gated live plan
176
182
  - [Maintenance roadmap](docs/roadmap.md)
177
183
  - [Post-0.8.1 audit and backlog snapshot](docs/reviews/2026-10-13-post-0.8.1-audit.md)
178
184
  - [Releasing](docs/releasing.md)
@@ -1,7 +1,8 @@
1
1
  import type { ConfigurationMetadata } from "./config.js";
2
+ import type { WorkspaceModeEntry } from "./execution-modes.js";
2
3
  import type { ConfiguredExecutionProfile } from "./execution-profile.js";
3
4
  /** Pure projection of the snapshot captured at load time; never reads the configuration file. */
4
- export declare function projectCapabilities(workspaces: ReadonlyMap<string, string>, executionProfiles: ReadonlyMap<string, ConfiguredExecutionProfile>, configuration: ConfigurationMetadata): {
5
+ export declare function projectCapabilities(workspaces: ReadonlyMap<string, string>, executionProfiles: ReadonlyMap<string, ConfiguredExecutionProfile>, configuration: ConfigurationMetadata, workspaceModes?: ReadonlyMap<string, WorkspaceModeEntry>, eventDelivery?: "spool" | "off"): {
5
6
  ok: true;
6
7
  server: {
7
8
  name: string;
@@ -11,8 +12,14 @@ export declare function projectCapabilities(workspaces: ReadonlyMap<string, stri
11
12
  fingerprint: `sha256:${string}`;
12
13
  reloadPolicy: "restart-required";
13
14
  };
15
+ events: {
16
+ delivery: "off" | "spool";
17
+ };
14
18
  workspaces: {
15
19
  alias: string;
20
+ mode: import("./execution-modes.js").WorkspaceMode;
21
+ writers?: number;
22
+ defaultBase?: string | null;
16
23
  }[];
17
24
  executionProfiles: {
18
25
  alias: string;
@@ -22,6 +29,7 @@ export declare function projectCapabilities(workspaces: ReadonlyMap<string, stri
22
29
  model: string;
23
30
  thinkingLevel: import("./execution-profile.js").ThinkingLevel;
24
31
  extensions: string[];
32
+ grantedExtensionTools: string[];
25
33
  skills: string[];
26
34
  }[];
27
35
  };
@@ -1,7 +1,7 @@
1
1
  import packageMetadata from "../package.json" with { type: "json" };
2
2
  const compareAliases = (left, right) => left < right ? -1 : left > right ? 1 : 0;
3
3
  /** Pure projection of the snapshot captured at load time; never reads the configuration file. */
4
- export function projectCapabilities(workspaces, executionProfiles, configuration) {
4
+ export function projectCapabilities(workspaces, executionProfiles, configuration, workspaceModes = new Map(), eventDelivery = "off") {
5
5
  return {
6
6
  ok: true,
7
7
  server: { name: packageMetadata.name, version: packageMetadata.version },
@@ -9,12 +9,16 @@ export function projectCapabilities(workspaces, executionProfiles, configuration
9
9
  fingerprint: configuration.fingerprint,
10
10
  reloadPolicy: configuration.reloadPolicy,
11
11
  },
12
+ events: { delivery: eventDelivery },
12
13
  workspaces: [...workspaces.keys()]
13
14
  .sort(compareAliases)
14
- .map((alias) => ({ alias })),
15
+ .map((alias) => {
16
+ const entry = workspaceModes.get(alias);
17
+ return { alias, mode: entry?.mode ?? "unset", ...(entry?.mode === "container" && entry.container ? { writers: entry.container.writers, defaultBase: entry.container.base ?? null } : {}) };
18
+ }),
15
19
  executionProfiles: [...executionProfiles.values()]
16
20
  .sort((left, right) => compareAliases(left.alias, right.alias))
17
- .map(({ alias, default: isDefault, permissionProfile, provider, model, thinkingLevel, extensions, skills }) => ({
21
+ .map(({ alias, default: isDefault, permissionProfile, provider, model, thinkingLevel, extensions, grantedExtensionTools, skills }) => ({
18
22
  alias,
19
23
  default: isDefault,
20
24
  permissionProfile,
@@ -22,6 +26,7 @@ export function projectCapabilities(workspaces, executionProfiles, configuration
22
26
  model,
23
27
  thinkingLevel,
24
28
  extensions: (extensions ?? []).map((extension) => extension.spec),
29
+ grantedExtensionTools: [...(grantedExtensionTools ?? [])],
25
30
  skills: (skills ?? []).map((skill) => skill.alias),
26
31
  })),
27
32
  };