pi-daddy 0.22.0 → 0.24.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 (385) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +12 -6
  3. package/contracts/daily-view/v1/README.md +114 -0
  4. package/contracts/daily-view/v1/fixtures/view.json +525 -0
  5. package/contracts/daily-view/v1/fixtures/view.txt +75 -0
  6. package/contracts/daily-view/v1/fixtures/work.jsonl +17 -0
  7. package/contracts/daily-view/v1/p03/README.md +26 -0
  8. package/contracts/daily-view/v1/p03/fixtures/retained-executions.json +241 -0
  9. package/contracts/daily-view/v1/p03/projection.schema.json +194 -0
  10. package/contracts/daily-view/v1/p03/provenance.json +21 -0
  11. package/contracts/dashboard-host/v1/README.md +176 -0
  12. package/contracts/debrief/v1/README.md +146 -0
  13. package/contracts/debrief/v1/intervention/README.md +32 -0
  14. package/contracts/debrief/v1/intervention/fixtures/artifact-3ee11136beb864f518252e5024dae9197421fbf97b6e981d3243c782b5c44bd0.txt +1 -0
  15. package/contracts/debrief/v1/intervention/fixtures/artifact-58905d872dd3c54a9705f67b05fa82edbad7af6476ae8993faf1a7b9fadfb905.txt +1 -0
  16. package/contracts/debrief/v1/intervention/fixtures/assessment.json +29 -0
  17. package/contracts/debrief/v1/intervention/fixtures/blind-view.json +20 -0
  18. package/contracts/debrief/v1/intervention/fixtures/choice.json +7 -0
  19. package/contracts/debrief/v1/intervention/fixtures/manifest.json +57 -0
  20. package/contracts/debrief/v1/intervention/fixtures/reveal.json +39 -0
  21. package/contracts/debrief/v1/provenance.json +89 -0
  22. package/contracts/debrief/v1/work-capture/README.md +38 -0
  23. package/contracts/debrief/v1/work-capture/fixtures/batch.json +17 -0
  24. package/contracts/debrief/v1/work-capture/fixtures/cases.json +184 -0
  25. package/contracts/debrief/v1/work-capture/fixtures/review.json +184 -0
  26. package/contracts/debrief/v1/work-capture/review-request.schema.json +41 -0
  27. package/contracts/debrief/v1/work-capture/work-case.schema.json +190 -0
  28. package/contracts/debrief/v2/README.md +71 -0
  29. package/contracts/debrief/v2/input-pin.json +66 -0
  30. package/contracts/debrief/v2/intervention-upstream.md +40 -0
  31. package/contracts/debrief/v2/work-signals-upstream.md +22 -0
  32. package/contracts/dispatch-control/v1/README.md +109 -0
  33. package/contracts/dispatch-control/v1/request.schema.json +19 -0
  34. package/contracts/effect-profile/v1/README.md +124 -0
  35. package/contracts/execution-retention/v1/README.md +109 -0
  36. package/contracts/execution-retention/v2/README.md +148 -0
  37. package/contracts/execution-retention/v2/fixtures/interrupted-native-bytes.json +91 -0
  38. package/contracts/execution-retention/v2/fixtures/missing-native-session.json +91 -0
  39. package/contracts/execution-retention/v2/fixtures/native-file-unknown-branch.json +91 -0
  40. package/contracts/execution-retention/v2/fixtures/native-id-without-bytes.json +91 -0
  41. package/contracts/execution-retention/v2/fixtures/native-live-branch.json +90 -0
  42. package/contracts/execution-retention/v2/fixtures/replaced-native-session.json +92 -0
  43. package/contracts/execution-retention/v2/fixtures/result-82c620cdfeb8ca6b858cf653d7f5e2eedca5315d6244216d60e8b36f03223d6a.bin +1 -0
  44. package/contracts/execution-retention/v2/fixtures/session-2ec1f134bc739984434f7fca689e1c3d1c39fce2dcadae709e9b6faedfcc4ac7.bin +3 -0
  45. package/contracts/execution-retention/v2/fixtures/session-9bdb4bd16a901da31580acf056bda525225259e15ec409e0410480109011772f.bin +3 -0
  46. package/contracts/execution-retention/v2/manifest.schema.json +858 -0
  47. package/contracts/experiment/v1/README.md +164 -0
  48. package/contracts/factory-order/v1/README.md +151 -0
  49. package/contracts/factory-order/v1/adoption-pin.json +8 -0
  50. package/contracts/intent-control/v1/README.md +135 -0
  51. package/contracts/intent-control/v1/request.schema.json +1096 -0
  52. package/contracts/intent-control/v2/README.md +34 -0
  53. package/contracts/intent-control/v2/request.schema.json +1070 -0
  54. package/contracts/ledger/v4/README.md +241 -0
  55. package/contracts/ledger/v4/fixtures/layout-options.json +428 -0
  56. package/contracts/ledger/v4/fixtures/work-acceptance.json +57 -0
  57. package/contracts/ledger/v4/fixtures/work-occurrence.json +44 -0
  58. package/contracts/ledger/v4/fixtures/work-revision.json +26 -0
  59. package/contracts/ledger/v4/fixtures/work-snapshot.json +73 -0
  60. package/contracts/ledger/v4/ledger-event.schema.json +162 -0
  61. package/contracts/ordinary-control/v1/README.md +59 -0
  62. package/contracts/producer-ipc/v1/README.md +137 -0
  63. package/dist/check-runner.d.ts +5 -0
  64. package/dist/check-runner.d.ts.map +1 -1
  65. package/dist/check-runner.js +16 -2
  66. package/dist/check-runner.js.map +1 -1
  67. package/dist/cli.d.ts +3 -1
  68. package/dist/cli.d.ts.map +1 -1
  69. package/dist/cli.js +49 -3
  70. package/dist/cli.js.map +1 -1
  71. package/dist/control-journal.d.ts +20 -0
  72. package/dist/control-journal.d.ts.map +1 -0
  73. package/dist/control-journal.js +73 -0
  74. package/dist/control-journal.js.map +1 -0
  75. package/dist/daily-dashboard-host.d.ts +99 -0
  76. package/dist/daily-dashboard-host.d.ts.map +1 -0
  77. package/dist/daily-dashboard-host.js +71 -0
  78. package/dist/daily-dashboard-host.js.map +1 -0
  79. package/dist/daily-view-input.d.ts +44 -0
  80. package/dist/daily-view-input.d.ts.map +1 -0
  81. package/dist/daily-view-input.js +68 -0
  82. package/dist/daily-view-input.js.map +1 -0
  83. package/dist/daily-view-render.d.ts +4 -0
  84. package/dist/daily-view-render.d.ts.map +1 -0
  85. package/dist/daily-view-render.js +41 -0
  86. package/dist/daily-view-render.js.map +1 -0
  87. package/dist/daily-view.d.ts +74 -0
  88. package/dist/daily-view.d.ts.map +1 -0
  89. package/dist/daily-view.js +170 -0
  90. package/dist/daily-view.js.map +1 -0
  91. package/dist/dashboard-cli.d.ts +26 -1
  92. package/dist/dashboard-cli.d.ts.map +1 -1
  93. package/dist/dashboard-cli.js +128 -3
  94. package/dist/dashboard-cli.js.map +1 -1
  95. package/dist/dashboard-harness.d.ts +22 -0
  96. package/dist/dashboard-harness.d.ts.map +1 -0
  97. package/dist/dashboard-harness.js +89 -0
  98. package/dist/dashboard-harness.js.map +1 -0
  99. package/dist/dashboard-herdr.d.ts.map +1 -1
  100. package/dist/dashboard-herdr.js +7 -2
  101. package/dist/dashboard-herdr.js.map +1 -1
  102. package/dist/dashboard-host-contract.d.ts +116 -0
  103. package/dist/dashboard-host-contract.d.ts.map +1 -0
  104. package/dist/dashboard-host-contract.js +14 -0
  105. package/dist/dashboard-host-contract.js.map +1 -0
  106. package/dist/dashboard-host-transport.d.ts +16 -0
  107. package/dist/dashboard-host-transport.d.ts.map +1 -0
  108. package/dist/dashboard-host-transport.js +124 -0
  109. package/dist/dashboard-host-transport.js.map +1 -0
  110. package/dist/dashboard-host.d.ts +203 -0
  111. package/dist/dashboard-host.d.ts.map +1 -0
  112. package/dist/dashboard-host.js +376 -0
  113. package/dist/dashboard-host.js.map +1 -0
  114. package/dist/dashboard-observation.d.ts +28 -0
  115. package/dist/dashboard-observation.d.ts.map +1 -0
  116. package/dist/dashboard-observation.js +86 -0
  117. package/dist/dashboard-observation.js.map +1 -0
  118. package/dist/debrief-contract.d.ts +65 -0
  119. package/dist/debrief-contract.d.ts.map +1 -0
  120. package/dist/debrief-contract.js +151 -0
  121. package/dist/debrief-contract.js.map +1 -0
  122. package/dist/debrief-fixture.d.ts +16 -0
  123. package/dist/debrief-fixture.d.ts.map +1 -0
  124. package/dist/debrief-fixture.js +41 -0
  125. package/dist/debrief-fixture.js.map +1 -0
  126. package/dist/debrief-host.d.ts +59 -0
  127. package/dist/debrief-host.d.ts.map +1 -0
  128. package/dist/debrief-host.js +49 -0
  129. package/dist/debrief-host.js.map +1 -0
  130. package/dist/debrief-render.d.ts +5 -0
  131. package/dist/debrief-render.d.ts.map +1 -0
  132. package/dist/debrief-render.js +65 -0
  133. package/dist/debrief-render.js.map +1 -0
  134. package/dist/debrief.d.ts +90 -0
  135. package/dist/debrief.d.ts.map +1 -0
  136. package/dist/debrief.js +263 -0
  137. package/dist/debrief.js.map +1 -0
  138. package/dist/delegate-types.d.ts +2 -0
  139. package/dist/delegate-types.d.ts.map +1 -1
  140. package/dist/delegate-types.js.map +1 -1
  141. package/dist/delegate.d.ts.map +1 -1
  142. package/dist/delegate.js +1 -0
  143. package/dist/delegate.js.map +1 -1
  144. package/dist/dispatch-control.d.ts +45 -0
  145. package/dist/dispatch-control.d.ts.map +1 -0
  146. package/dist/dispatch-control.js +76 -0
  147. package/dist/dispatch-control.js.map +1 -0
  148. package/dist/effect-profile-runtime.d.ts +40 -0
  149. package/dist/effect-profile-runtime.d.ts.map +1 -0
  150. package/dist/effect-profile-runtime.js +51 -0
  151. package/dist/effect-profile-runtime.js.map +1 -0
  152. package/dist/effect-profile.d.ts +40 -0
  153. package/dist/effect-profile.d.ts.map +1 -0
  154. package/dist/effect-profile.js +152 -0
  155. package/dist/effect-profile.js.map +1 -0
  156. package/dist/execution-retention.d.ts +90 -0
  157. package/dist/execution-retention.d.ts.map +1 -0
  158. package/dist/execution-retention.js +247 -0
  159. package/dist/execution-retention.js.map +1 -0
  160. package/dist/experiment-contract.d.ts +56 -0
  161. package/dist/experiment-contract.d.ts.map +1 -0
  162. package/dist/experiment-contract.js +80 -0
  163. package/dist/experiment-contract.js.map +1 -0
  164. package/dist/experiment-state.d.ts +22 -0
  165. package/dist/experiment-state.d.ts.map +1 -0
  166. package/dist/experiment-state.js +79 -0
  167. package/dist/experiment-state.js.map +1 -0
  168. package/dist/experiment-store.d.ts +30 -0
  169. package/dist/experiment-store.d.ts.map +1 -0
  170. package/dist/experiment-store.js +147 -0
  171. package/dist/experiment-store.js.map +1 -0
  172. package/dist/experiment.d.ts +65 -0
  173. package/dist/experiment.d.ts.map +1 -0
  174. package/dist/experiment.js +357 -0
  175. package/dist/experiment.js.map +1 -0
  176. package/dist/factory-contract.d.ts +79 -0
  177. package/dist/factory-contract.d.ts.map +1 -0
  178. package/dist/factory-contract.js +89 -0
  179. package/dist/factory-contract.js.map +1 -0
  180. package/dist/factory-migration.d.ts +20 -0
  181. package/dist/factory-migration.d.ts.map +1 -0
  182. package/dist/factory-migration.js +55 -0
  183. package/dist/factory-migration.js.map +1 -0
  184. package/dist/factory-order.d.ts +848 -0
  185. package/dist/factory-order.d.ts.map +1 -0
  186. package/dist/factory-order.js +83 -0
  187. package/dist/factory-order.js.map +1 -0
  188. package/dist/factory-registry.d.ts +121 -0
  189. package/dist/factory-registry.d.ts.map +1 -0
  190. package/dist/factory-registry.js +133 -0
  191. package/dist/factory-registry.js.map +1 -0
  192. package/dist/file-lock.d.ts +8 -2
  193. package/dist/file-lock.d.ts.map +1 -1
  194. package/dist/file-lock.js +78 -19
  195. package/dist/file-lock.js.map +1 -1
  196. package/dist/herdr-poll.d.ts +8 -0
  197. package/dist/herdr-poll.d.ts.map +1 -1
  198. package/dist/herdr-poll.js +23 -0
  199. package/dist/herdr-poll.js.map +1 -1
  200. package/dist/index.d.ts +20 -0
  201. package/dist/index.d.ts.map +1 -1
  202. package/dist/index.js +20 -0
  203. package/dist/index.js.map +1 -1
  204. package/dist/intent-application.d.ts +17 -0
  205. package/dist/intent-application.d.ts.map +1 -0
  206. package/dist/intent-application.js +113 -0
  207. package/dist/intent-application.js.map +1 -0
  208. package/dist/intent-control.d.ts +201 -0
  209. package/dist/intent-control.d.ts.map +1 -0
  210. package/dist/intent-control.js +110 -0
  211. package/dist/intent-control.js.map +1 -0
  212. package/dist/intent-scheduling.d.ts +9 -0
  213. package/dist/intent-scheduling.d.ts.map +1 -0
  214. package/dist/intent-scheduling.js +15 -0
  215. package/dist/intent-scheduling.js.map +1 -0
  216. package/dist/ledger-append.d.ts +15 -0
  217. package/dist/ledger-append.d.ts.map +1 -0
  218. package/dist/ledger-append.js +94 -0
  219. package/dist/ledger-append.js.map +1 -0
  220. package/dist/ledger.d.ts +11 -0
  221. package/dist/ledger.d.ts.map +1 -1
  222. package/dist/ledger.js +3 -7
  223. package/dist/ledger.js.map +1 -1
  224. package/dist/native-session-target.d.ts +9 -0
  225. package/dist/native-session-target.d.ts.map +1 -0
  226. package/dist/native-session-target.js +29 -0
  227. package/dist/native-session-target.js.map +1 -0
  228. package/dist/native-session.d.ts +59 -0
  229. package/dist/native-session.d.ts.map +1 -0
  230. package/dist/native-session.js +154 -0
  231. package/dist/native-session.js.map +1 -0
  232. package/dist/order-schedule.d.ts +37 -0
  233. package/dist/order-schedule.d.ts.map +1 -0
  234. package/dist/order-schedule.js +81 -0
  235. package/dist/order-schedule.js.map +1 -0
  236. package/dist/ordinary-children.d.ts +52 -0
  237. package/dist/ordinary-children.d.ts.map +1 -0
  238. package/dist/ordinary-children.js +93 -0
  239. package/dist/ordinary-children.js.map +1 -0
  240. package/dist/producer-ipc-contract.d.ts +29 -0
  241. package/dist/producer-ipc-contract.d.ts.map +1 -0
  242. package/dist/producer-ipc-contract.js +29 -0
  243. package/dist/producer-ipc-contract.js.map +1 -0
  244. package/dist/producer-ipc.d.ts +55 -0
  245. package/dist/producer-ipc.d.ts.map +1 -0
  246. package/dist/producer-ipc.js +143 -0
  247. package/dist/producer-ipc.js.map +1 -0
  248. package/dist/resource-budget.d.ts +334 -0
  249. package/dist/resource-budget.d.ts.map +1 -0
  250. package/dist/resource-budget.js +415 -0
  251. package/dist/resource-budget.js.map +1 -0
  252. package/dist/retention-contract.d.ts +73 -0
  253. package/dist/retention-contract.d.ts.map +1 -0
  254. package/dist/retention-contract.js +104 -0
  255. package/dist/retention-contract.js.map +1 -0
  256. package/dist/retention-json.d.ts +3 -0
  257. package/dist/retention-json.d.ts.map +1 -0
  258. package/dist/retention-json.js +32 -0
  259. package/dist/retention-json.js.map +1 -0
  260. package/dist/run-child.d.ts +4 -0
  261. package/dist/run-child.d.ts.map +1 -1
  262. package/dist/run-child.js +16 -2
  263. package/dist/run-child.js.map +1 -1
  264. package/dist/run-herdr.d.ts +6 -0
  265. package/dist/run-herdr.d.ts.map +1 -1
  266. package/dist/run-herdr.js +19 -6
  267. package/dist/run-herdr.js.map +1 -1
  268. package/dist/vendor/adoption.d.ts +129 -0
  269. package/dist/vendor/adoption.d.ts.map +1 -0
  270. package/dist/vendor/adoption.js +102 -0
  271. package/dist/vendor/adoption.js.map +1 -0
  272. package/dist/work-command.d.ts +30 -0
  273. package/dist/work-command.d.ts.map +1 -0
  274. package/dist/work-command.js +148 -0
  275. package/dist/work-command.js.map +1 -0
  276. package/dist/work-ledger-destination.d.ts +20 -0
  277. package/dist/work-ledger-destination.d.ts.map +1 -0
  278. package/dist/work-ledger-destination.js +131 -0
  279. package/dist/work-ledger-destination.js.map +1 -0
  280. package/dist/work-ledger-json.d.ts +25 -0
  281. package/dist/work-ledger-json.d.ts.map +1 -0
  282. package/dist/work-ledger-json.js +267 -0
  283. package/dist/work-ledger-json.js.map +1 -0
  284. package/dist/work-ledger-occurrences.d.ts +227 -0
  285. package/dist/work-ledger-occurrences.d.ts.map +1 -0
  286. package/dist/work-ledger-occurrences.js +115 -0
  287. package/dist/work-ledger-occurrences.js.map +1 -0
  288. package/dist/work-ledger-projection.d.ts +295 -0
  289. package/dist/work-ledger-projection.d.ts.map +1 -0
  290. package/dist/work-ledger-projection.js +237 -0
  291. package/dist/work-ledger-projection.js.map +1 -0
  292. package/dist/work-ledger-snapshot.d.ts +29 -0
  293. package/dist/work-ledger-snapshot.d.ts.map +1 -0
  294. package/dist/work-ledger-snapshot.js +267 -0
  295. package/dist/work-ledger-snapshot.js.map +1 -0
  296. package/dist/work-ledger-types.d.ts +261 -0
  297. package/dist/work-ledger-types.d.ts.map +1 -0
  298. package/dist/work-ledger-types.js +13 -0
  299. package/dist/work-ledger-types.js.map +1 -0
  300. package/dist/work-ledger-validation.d.ts +14 -0
  301. package/dist/work-ledger-validation.d.ts.map +1 -0
  302. package/dist/work-ledger-validation.js +226 -0
  303. package/dist/work-ledger-validation.js.map +1 -0
  304. package/dist/work-ledger.d.ts +43 -0
  305. package/dist/work-ledger.d.ts.map +1 -0
  306. package/dist/work-ledger.js +225 -0
  307. package/dist/work-ledger.js.map +1 -0
  308. package/extensions/daily-dashboard-session.ts +30 -0
  309. package/extensions/daily-work-session.ts +20 -0
  310. package/extensions/delegate-chain.ts +1 -0
  311. package/extensions/delegation-native.ts +12 -0
  312. package/extensions/delegation.ts +25 -11
  313. package/extensions/execute-child.ts +44 -5
  314. package/extensions/executor-session.ts +9 -0
  315. package/extensions/grants-command.ts +14 -15
  316. package/extensions/grants-connected-command.ts +19 -0
  317. package/extensions/grants.ts +26 -2
  318. package/extensions/ordinary-runtime.ts +14 -0
  319. package/extensions/primary-shadow.ts +11 -0
  320. package/extensions/run-delegation.ts +9 -7
  321. package/extensions/session.ts +10 -20
  322. package/extensions/work-runtime.ts +44 -0
  323. package/package.json +78 -4
  324. package/src/check-runner.ts +20 -2
  325. package/src/cli.ts +41 -4
  326. package/src/control-journal.ts +26 -0
  327. package/src/daily-dashboard-host.ts +49 -0
  328. package/src/daily-view-input.ts +59 -0
  329. package/src/daily-view-render.ts +44 -0
  330. package/src/daily-view.ts +152 -0
  331. package/src/dashboard-cli.ts +108 -4
  332. package/src/dashboard-harness.ts +37 -0
  333. package/src/dashboard-herdr.ts +7 -2
  334. package/src/dashboard-host-contract.ts +45 -0
  335. package/src/dashboard-host-transport.ts +40 -0
  336. package/src/dashboard-host.ts +191 -0
  337. package/src/dashboard-observation.ts +45 -0
  338. package/src/debrief-contract.ts +127 -0
  339. package/src/debrief-fixture.ts +29 -0
  340. package/src/debrief-host.ts +53 -0
  341. package/src/debrief-render.ts +49 -0
  342. package/src/debrief.ts +198 -0
  343. package/src/delegate-types.ts +2 -0
  344. package/src/delegate.ts +1 -0
  345. package/src/dispatch-control.ts +81 -0
  346. package/src/effect-profile-runtime.ts +46 -0
  347. package/src/effect-profile.ts +129 -0
  348. package/src/execution-retention.ts +230 -0
  349. package/src/experiment-contract.ts +66 -0
  350. package/src/experiment-state.ts +44 -0
  351. package/src/experiment-store.ts +98 -0
  352. package/src/experiment.ts +231 -0
  353. package/src/factory-contract.ts +47 -0
  354. package/src/factory-migration.ts +29 -0
  355. package/src/factory-order.ts +56 -0
  356. package/src/factory-registry.ts +60 -0
  357. package/src/file-lock.ts +47 -11
  358. package/src/herdr-poll.ts +18 -0
  359. package/src/index.ts +32 -0
  360. package/src/intent-application.ts +90 -0
  361. package/src/intent-control.ts +107 -0
  362. package/src/intent-scheduling.ts +14 -0
  363. package/src/ledger-append.ts +72 -0
  364. package/src/ledger.ts +3 -9
  365. package/src/native-session-target.ts +23 -0
  366. package/src/native-session.ts +139 -0
  367. package/src/order-schedule.ts +42 -0
  368. package/src/ordinary-children.ts +59 -0
  369. package/src/producer-ipc-contract.ts +26 -0
  370. package/src/producer-ipc.ts +107 -0
  371. package/src/resource-budget.ts +349 -0
  372. package/src/retention-contract.ts +84 -0
  373. package/src/retention-json.ts +20 -0
  374. package/src/run-child.ts +13 -2
  375. package/src/run-herdr.ts +11 -7
  376. package/src/vendor/adoption.ts +109 -0
  377. package/src/work-command.ts +179 -0
  378. package/src/work-ledger-destination.ts +113 -0
  379. package/src/work-ledger-json.ts +228 -0
  380. package/src/work-ledger-occurrences.ts +99 -0
  381. package/src/work-ledger-projection.ts +262 -0
  382. package/src/work-ledger-snapshot.ts +246 -0
  383. package/src/work-ledger-types.ts +229 -0
  384. package/src/work-ledger-validation.ts +174 -0
  385. package/src/work-ledger.ts +186 -0
package/CHANGELOG.md CHANGED
@@ -12,6 +12,46 @@ the record of how the package got here and are worth keeping; they are not worth
12
12
  > the record of how the package arrived at what it does, and because the reasoning behind each one is
13
13
  > usually the clearest statement of why the current behaviour is what it is.
14
14
 
15
+ ## 0.24.0 — declared daily work and concurrent variants (2026-09-11)
16
+
17
+ - Add `pi-daddy work add --id <id> --outcome <text>`: retain a digest-only selected obligation, reject changed redelivery and unsupported destinations, and join ordinary governed attempts without storing outcome prose. Runtime completion remains distinct from acceptance.
18
+ - Add the production `/grants host <fresh-id>|stop` lifecycle backed by the loaded skill-harness source bridge. The original process owns child handles, private socket transport and native validators; no authority is recovered from PID, pane labels or disk state.
19
+ - Publish frozen `pause-new-dispatch`, `resume-dispatch` and `refresh-current-work` dashboard actions. Pause changes only new ordinary admission, running children keep their original caller/result, refresh advances the existing source checkpoint explicitly, and stop never cancels a child.
20
+ - Add explicit bounded thinking selection to child argv and Work-v4 labels. Requested effort records selection only and is not proof of provider-internal reasoning.
21
+ - Add opt-in `delegate_all` primary return with eventual original-owner shadow accounting. Existing calls still wait for all; shadow failure or cancellation cannot replace or delay the selected primary, and invalid primary selection refuses before any child starts.
22
+ - Derive only exact retained scope, obligation and coverage when declared facts are absent. Deadlines, violations, prior acceptance, reopen history and unavailable artifact coverage are never inferred.
23
+ - Candidate-installed bridge/host startup, live busy-child pause/resume, same-host refresh/reconnect and primary-before-shadow settlement were observed. These are path/lifecycle checks, not acceptance or efficacy measurements.
24
+
25
+ ## 0.23.0 — bounded factory control and retained evidence (2026-09-11)
26
+
27
+ - Add an opt-in work-ledger v4 contract, strict builders/readers, deterministic fixtures and explicit
28
+ authority-scoped projection. Ledger v3 remains the default governance format; existing v2/v3 paths and
29
+ behavior are unchanged.
30
+ - Add opt-in execution retention for exact available process, Herdr and native-session evidence without
31
+ converting runtime completion into acceptance or claiming unavailable bytes.
32
+ - Add one fixed `linux-bwrap-digest-v1` effect profile with durable aggregate attempt/input/concurrency
33
+ accounting. It executes package-owned digest/hold code only; arbitrary shell/model profiles, shared
34
+ writable destinations and aggregate CPU/memory/money enforcement remain unsupported.
35
+ - Add versioned resource dispatch and work-intent controls, bounded experiments and factory orders. Exact
36
+ authority, CAS, quiescence, reservation and acknowledgement boundaries fail closed; unknown ownership is
37
+ never replayed, refunded or inferred as success.
38
+ - Add read-only daily projections, retained blind debrief/checkpoint adapters and an explicit dashboard host
39
+ transport over a private bounded socket. Presentation, steering and cancellation require independently
40
+ supplied exact authority; refresh remains read-only and does not authenticate a human or module.
41
+ - Retain original ordinary-child cancellation handles and intent admission holds without replacing caller
42
+ lifetimes. Best-effort terminal observation failure stays visible but no longer permanently poisons a
43
+ known-settled boundary; required failure, unknown ownership and late coverage still refuse quiescence.
44
+ - Reject benign stale dashboard CAS and immutable-ID mismatches without poisoning the host before any
45
+ claim/effect. Attempted or uncertain effects retain the existing failed/unknown stop.
46
+ - Remove each newly owned native-profile probe fixture after all probe children settle, on success and
47
+ failure, without sweeping historical or caller-selected directories.
48
+ - CI now provisions bubblewrap on its ephemeral Ubuntu 26.04 preview runners, records bounded runtime
49
+ diagnostics and stages a verified job-owned Node runtime. These observations do not establish a general
50
+ sandbox or a new supported-host guarantee.
51
+ - Add public subpath exports and versioned artifacts for the new work-ledger, resource, experiment,
52
+ factory-order, effect-profile, retention, debrief and dashboard-host APIs. The workspace root remains
53
+ private; `pi-daddy` is the only published package. No dependency ranges changed.
54
+
15
55
  ## 0.22.0 — fail-closed audit follow-ups (2026-09-04)
16
56
 
17
57
  - **BREAKING — invalid project stores now fail closed.** Malformed, unsupported, unreadable and wrong-directory
package/README.md CHANGED
@@ -165,12 +165,12 @@ delegate_all({ children: [ {…}, {…}, {…} ] }) // several
165
165
  (`PI_GRANTS_CHILD_TIMEOUT`, default 1200s) with `SIGTERM` → `SIGKILL` escalation so a child cannot ignore
166
166
  its way past it, an abort is honoured even if it arrived before the spawn, and a child that exits
167
167
  non-zero, times out or is cancelled comes back as a **tool error naming which** — not as an answer.
168
- - **Fan-out is synchronous and bounded.** At most 8 children per call, and the subtree budget bounds the
169
- total across the whole tree. Every child goes through the same plan-gate-audit path as a single
170
- `delegate`; `delegate_all` adds only cardinality and sibling identity. **There is deliberately no
171
- background mode** (ADR-0015): fan-out carried most of the value and background carries nearly all of the
172
- lifecycle holes, and because the turn still owns its children the parent cannot exit before them, the
173
- tool-call signal is still live, and there are no ids to dangle across a compaction.
168
+ - **Fan-out stays bounded and waits for all by default.** At most 8 children per call, and the subtree budget
169
+ bounds the whole tree. Every child uses the same plan-gate-audit path. The opt-in
170
+ `completion:"primary", primary:N` form returns when that one-based child settles while the original
171
+ session retains bounded role/outcome accounting for its shadows; `/grants variants` displays it. Shadow
172
+ failure or later cancellation cannot replace/delay the primary result. This is not detached job recovery:
173
+ process exit ends ownership, and there is no retry, acceptance, winner selection or result-text store.
174
174
  - **One child can be refused while its siblings succeed**, and every outcome is reported. A fan-out that
175
175
  hid its refusals would let an orchestrator summarise four reviews when only three happened.
176
176
 
@@ -236,6 +236,10 @@ depth 2 · 1 active
236
236
 
237
237
  The plugin ships inside pi-daddy and is linked globally only after an explicit **Install and open** choice.
238
238
  Literal **Not now** and **Never ask** choices are persisted; dismissing or losing the dialog stores nothing.
239
+ A connected host can publish exact pre-authorized actions as short commands such as `pause-new-dispatch` or `defer-weekly`; the dashboard lists their human labels and accepts the key followed by Enter. The host resolves the key to its current CAS-bound request, so a person does not type JSON or tokens. Unknown/stale keys refuse before effects; raw JSON remains compatibility-only.
240
+
241
+ With pi-daddy 0.24.0 and skill-harness 0.14.0 loaded, declare work, reload, then run `/grants host <fresh-id>`. This creates one process-owned daily host, captures the current work/facts sources, publishes its private socket to `/grants dashboard`, and lists `pause-new-dispatch` or `resume-dispatch` plus `refresh-current-work`. Refresh is a deliberate action that atomically mirrors the current declared ledger and advances the existing source checkpoint; periodic dashboard redraw remains read-only. Pausing blocks only new governed ordinary children; a child already running keeps its original caller/result. `/grants host stop` closes the host and never cancels a child. Restart uses a fresh id; no PID, JSON/CAS envelope or prior controller is recovered.
242
+
239
243
  `/grants dashboard` never installs silently and prints the exact manual command when the plugin is absent. It
240
244
  checks the bundled plugin root and protocol before suggesting that a disabled plugin be enabled. Panes and
241
245
  ledgers stay workspace/tab-specific: reuse rechecks the pane's current workspace/tab, a wrong-host open is
@@ -775,6 +779,8 @@ pi install npm:pi-daddy # as a pi extension
775
779
  npm i pi-daddy # as a library (the resolver, ledger and spawn planner are pure)
776
780
  npx pi-daddy init # as a command: scaffold .pi/skills/ and .pi/grants.env from installed
777
781
  # skill packages — see the worked example above
782
+ npx pi-daddy work add --id daily-1 --outcome "Ship the declared slice"
783
+ # select one digest-only obligation; /reload then /grants dashboard
778
784
  ```
779
785
 
780
786
  The package is also the source of the optional Herdr plugin: the extension offers to link the trusted
@@ -0,0 +1,114 @@
1
+ # P04 daily read-model v1 — input for P07/P08
2
+
3
+ Implemented candidate, local only. Independent overall review and formal acceptance remain pending.
4
+ This is an actual read-only path through the existing `pi-daddy-dashboard` CLI/Herdr plugin, not a control
5
+ API or an accepted-work counter derived from archive exits. P05 targeted control remains unavailable here.
6
+
7
+ The authority snapshot has its OWN identity namespace, distinct from the selected work snapshot.
8
+ Current/stale applicability derives from actual P01 claim/selection/matched-receipt validation, not equality
9
+ of those IDs/digests. Missing authority and superseded/mismatched receipts cannot carry acceptance forward.
10
+ The real walking P01 fixture with distinct identities is covered; P01 validation itself is unchanged.
11
+
12
+ ## Pinned P03 input, independent P01 authority
13
+
14
+ `p03/` vendors exact immutable Git blobs from skill-harness
15
+ `a311df8c991108ada7b6f4b901332232a78e9a44`. `p03/provenance.json` records paths/SHA256. Those schema/fixture
16
+ bytes are unchanged. Input version is exactly `execution-archive-projection-v1`; the reader rejects other
17
+ versions, duplicate JSON members/execution identities, contradictory terminal shapes and lossy numeric
18
+ forms. It supports the adapter's emitted integer-token subset. P03 is always partial/not-assessed.
19
+
20
+ Work intent is rebuilt with existing `projectWorkLedger` from separately configured strict work-v4 bytes.
21
+ Exact selected scope/obligation revisions and occurrence bindings attach attempts by **executionId**, not
22
+ child names, output labels, file tails, sessions or timestamps. Claimed P03 runtime and P01 runtime remain
23
+ separate; disagreements are diagnostic. P03 conflicts neither grant nor revoke independently supplied P01
24
+ acceptance. All active branches remain null, even if P01 labels or P03 reported sessions contain other hints.
25
+
26
+ Only a genuine host supplies `workContext` to `readDailyView`/`dashboardFrame`. The reader detaches it before
27
+ I/O and invokes P01 validation; it never manufactures decisions/availability from claims or loads authority
28
+ from a file/environment variable. Missing authority or authority for another selection means unresolved
29
+ acceptance, not zero completed work. Accepted results are explicitly **under supplied snapshot authority**,
30
+ not fresh native approval. The host must independently establish availability/authority when resupplying it.
31
+
32
+ ## Existing view path
33
+
34
+ The existing plugin command still calls `runDashboard`. Operator-only read settings are forwarded by its
35
+ existing open/reuse seam (no new plugin, worker hook or installation flow):
36
+
37
+ - `PI_DADDY_ARCHIVE_PROJECTION`: exact P03 snapshot file.
38
+ - `PI_DADDY_WORK_LEDGER`: exact separate work-v4 file.
39
+ - `PI_DADDY_WORK_SNAPSHOT`: JSON containing P01's exact `{snapshot:{id,digest},event:{eventId,digest}}` selection.
40
+ This is selection **only**, never authority. Pane reuse keys include these settings and their CWD.
41
+
42
+ CLI equivalents are `--archive-projection`, `--work-ledger`, `--work-snapshot`, plus `--once --no-color` or
43
+ `--once --daily-json`. No new files are discovered, installed or written by a status read. Legacy dashboard
44
+ behavior is unchanged when no daily input is configured. Existing core/plugin protocol validation remains.
45
+ Without a programmatic host-authority context the CLI intentionally cannot show authoritative acceptance.
46
+
47
+ ```ts
48
+ import { readDailyView, createDailyViewReader } from 'pi-daddy/daily-view';
49
+ const read = createDailyViewReader(); // session-local gap metadata, not an authority store
50
+ const view = await read({ archiveProjectionPath, workLedgerPath, workContext: independentlyVerifiedP01Context,
51
+ sourceManifestFiles: policyAuthorizedManifestPathsBySha256 });
52
+ // renderDailyView(view) is exported from the package root; dashboardFrame({cwd, dailyView: options})
53
+ // invokes the same reader/render path. Rendering an arbitrary caller object is not validation.
54
+ ```
55
+
56
+ ## Output contract
57
+
58
+ `version: "pi-daddy-daily-view-v1"`, `readOnly:true`, `freshness:"snapshot-unknown"`, `coverage:"partial"`.
59
+ Public TypeScript types: `DailyView`, `DailyObligation`, `DailyAttempt`, `DailyViewOptions` in `src/daily-view.ts`.
60
+ The deterministic `fixtures/view.json` and `fixtures/view.txt` are emitted by the actual reader/renderer.
61
+
62
+ - `scope` is an exact P01 revision or null; `selectedSnapshot` retains the exact selection references.
63
+ - `scopeState`, `authority`, and nullable `progress` are independent of runtime counts. Authority is
64
+ unavailable, stale-for-selection, or supplied-host-context. Obligations include intent/policy revisions,
65
+ acceptance, unstarted/attached activity, artifact/evidence coverage, matched receipt IDs, claim sources
66
+ and obstacle codes. IDs are shown because work-v4 has no verified human description text here.
67
+ - `attempts` preserves exact execution identity, P01 logical child/runtime and separate validated P03 row
68
+ (parents/public calls/archive IDs/reported sessions/outcome/issues). Reused child names stay separate.
69
+ `activeBranch` is always null. An archive exit0, including failed-control exit0, is never acceptance.
70
+ - `sourceAvailability` requires actual caller-authorized bytes matching each SHA256. No projection-supplied
71
+ path/URL is read. Missing mappings/deleted files are missing; mismatches/errors are not recovered facts.
72
+ Raw-manifest availability does not independently revalidate native transcript/check blobs or provenance.
73
+ - Check/evidence detail comes from P01's authority-aware coverage/receipt matching. P03 v1 has no named-check
74
+ receipt byte payload; that gap is printed, not inferred from a terminal result or an absent issue string.
75
+ - `sources` reports read/missing/error/unconfigured and exact file hashes. `issues` and `narrative` carry
76
+ deterministic coverage/obstacle explanations. No raw invalid input/error excerpts are rendered.
77
+
78
+ Reads are bounded regular non-symlink descriptor snapshots (4 MiB P03, 16 MiB work; at most 128 explicitly
79
+ mapped 64 KiB source manifests). Descriptor/path changes during read become errors. Every refresh rereads
80
+ rather than extending a cached execution history. Missing/error frames do not retain old runtime rows.
81
+ Reconnect produces a resnapshot and sticky gap label, never invented continuity. A new process starts with
82
+ an initial snapshot, not recovered history. Mtime is only a consistency check, never freshness or branch
83
+ proof. Rendering strips terminal control characters and caps lines/columns with visible omissions.
84
+
85
+ ## Supported and BLOCKED scope
86
+
87
+ Supported: deterministic file-backed read-only view, real CLI and freshly isolated compiled plugin-command
88
+ execution, plus fixture transport wiring through the existing plugin open seam. No worker/model/native-gate
89
+ call is needed. Repeated reads preserve session/control bytes and message counts; disconnected/unavailable
90
+ models do not prevent useful status. Model connectivity itself remains unknown, not falsely "connected".
91
+
92
+ **BLOCKED live qualification:** no deployed P03 live archive policy/subscription or actual passive live
93
+ transport freshness was supplied. No live Herdr pane/worker observation is claimed; no terminal read,
94
+ scroll, monitoring prompt or control message was used. Installed smoke is separate from isolated compiled
95
+ checks. Full native session/active-branch gaps from P02 and P06's arbitrary-shell/shared-write/aggregate
96
+ CPU-memory-PID-money limitations remain. No accepted packet, fresh source, steering, dispatch or recovery
97
+ can be inferred from the daily view. P07/P08 must preserve these distinctions.
98
+
99
+ ## Fixtures and reproduction
100
+
101
+ The fixture combines three fixed P01 obligations, two independently reconstructed fixture decisions and
102
+ one exited-but-unaccepted obligation with the exact six-row P03 fixture. P01's known branch labels are
103
+ explicit **test-world declarations**, not authentication of P03's unknown live branches. No authority is
104
+ constructed from incoming wire claims. Separate tests cover unstarted work, missing evidence, changed
105
+ scope/stale authority, unavailable sources, reconnect gaps and read-only repeated operation.
106
+
107
+ ```sh
108
+ node --test packages/pi-daddy/test/daily-view.test.ts
109
+ node packages/pi-daddy/scripts/generate-daily-view-fixture.ts --check packages/pi-daddy/contracts/daily-view/v1/fixtures /absolute/owned/scratch-parent
110
+ ```
111
+
112
+ The generator is repository fixture tooling, imports read-only and writes only explicit owned scratch/new
113
+ targets. Check does not change published fixtures; scratch is retained for inspection. No install, model
114
+ call, per-task review loop, mutation machinery or automatic authority/store update is involved.