@overdeck/desktop 0.45.21 → 0.45.23

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 (387) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-CJIFA8Vg.js → acceptance-criteria-DOA0KgXx.js} +5 -5
  3. package/server/{advancing-selfheal-CPOBO5ZS.js → advancing-selfheal-BBu6DSNm.js} +6 -6
  4. package/server/{agent-gc-D6PUckBB.js → agent-gc-BV1q_2EV.js} +4 -4
  5. package/server/agent-state-Bg0lhqwj.js +3 -0
  6. package/server/{agent-state-service-DHwemt96.js → agent-state-service-CnzFKSAQ.js} +1 -1
  7. package/server/{agent-state-service-6MFQqnFy.js → agent-state-service-HoK8U4jW.js} +5 -5
  8. package/server/{agents-DbrHWunF.js → agents-B4Bjbkfv.js} +4 -4
  9. package/server/agents-FlIgQ3ql.js +3 -0
  10. package/server/{archive-planning-BOnwJq8M.js → archive-planning-DYrYojxl.js} +31 -7
  11. package/server/{archive-planning-MPpvQJL4.js → archive-planning-zkJb3BeM.js} +1 -1
  12. package/server/{artifact-index-jobs-BOoySTKD.js → artifact-index-jobs-C-xy7Z5v.js} +2 -2
  13. package/server/{backlog-auto-trigger-BUaFI44J.js → backlog-auto-trigger-GtG71X8H.js} +3 -3
  14. package/server/{behavior-Dg-D8eBG.js → behavior-B_-4EKF3.js} +2 -2
  15. package/server/{briefing-freshness-OouGbJ7d.js → briefing-freshness-DWdW7vUm.js} +2 -2
  16. package/server/{build-info-27NlbKhV.js → build-info-BT096lEl.js} +3 -3
  17. package/server/{build-info-Cv6CI7Gu.js → build-info-DgTqZkL5.js} +1 -1
  18. package/server/{checkpoint-manager-C7mFCY_E.js → checkpoint-manager-B7Bt29J0.js} +1 -1
  19. package/server/{checkpoint-manager-D64fCC4p.js → checkpoint-manager-DDqcGyu8.js} +2 -2
  20. package/server/checkpoint-worker.js +1 -1
  21. package/server/{checkpoints-Vh-J15ge.js → checkpoints-C-AXLfYT.js} +2 -2
  22. package/server/{checkpoints-DwZqT2qQ.js → checkpoints-CpgCjAlN.js} +1 -1
  23. package/server/{claude-hooks-provision-CS5W_dhI.js → claude-hooks-provision-C8wdRnN1.js} +1 -1
  24. package/server/{claude-hooks-provision-BVLGfHrv.js → claude-hooks-provision-but-_qGY.js} +2 -2
  25. package/server/{claude-permissions-C2OrLYKL.js → claude-permissions-H_5wHQZQ.js} +2 -2
  26. package/server/{claude-settings-overlay-DWXjafJh.js → claude-settings-overlay-BTENVmYf.js} +1 -1
  27. package/server/{claude-settings-overlay-DX-fMFpC.js → claude-settings-overlay-CbSz0Dvb.js} +2 -2
  28. package/server/cli-BsVIHwzC.js +3 -0
  29. package/server/{cli-mvpEOb3w.js → cli-vBeXbPrq.js} +9 -9
  30. package/server/{cliproxy-Dvsr4ZkW.js → cliproxy-Bgb2XCqi.js} +2 -2
  31. package/server/{cliproxy-7g1nObvB.js → cliproxy-DW0V86F8.js} +1 -1
  32. package/server/{close-issue-8F6uawYj.js → close-issue-Dn_4c4G8.js} +5 -5
  33. package/server/{closed-issue-reaper-BhV-r-tC.js → closed-issue-reaper-CWpY2uBw.js} +1 -1
  34. package/server/{closed-issue-reaper-BaYQYF6w.js → closed-issue-reaper-hANY_ehE.js} +9 -9
  35. package/server/codex-Dg7Is5yb.js +3 -0
  36. package/server/{codex-D_UBEOwL.js → codex-TmSi-yTv.js} +30 -8
  37. package/server/{codex-parser-BTzlOZiV.js → codex-parser-C4gSH-IR.js} +2 -2
  38. package/server/{config-CrduXs4a.js → config-CCvjQf27.js} +2 -2
  39. package/server/{config-nAB_F-Gp.js → config-DUIhMN_T.js} +1 -1
  40. package/server/{config-G1TOMJZA.js → config-DjLOdbgT.js} +2 -2
  41. package/server/{config-yaml-Ciyp2mYe.js → config-yaml-DvyMuOle.js} +177 -211
  42. package/server/{conflict-gate-BKalpcjL.js → conflict-gate-BSJkNTdp.js} +1 -1
  43. package/server/{conflict-gate-BLUNMs1i.js → conflict-gate-CmrYpa47.js} +3 -3
  44. package/server/{context-layers-YNpf6Q_I.js → context-layers-B3Nt58jl.js} +2 -2
  45. package/server/{context-layers-Cg9ZgVfx.js → context-layers-ZYFcWiyc.js} +3 -3
  46. package/server/{control-settings-D_79A6gp.js → control-settings-aP1ANIlI.js} +4 -4
  47. package/server/{conversation-compaction-DiuZbIUB.js → conversation-compaction-CNbTLB86.js} +8 -8
  48. package/server/{conversation-compaction-CMIeWW4_.js → conversation-compaction-DiG5zWQq.js} +1 -1
  49. package/server/{conversation-service-DQybSPUK.js → conversation-service-Du-MTNpJ.js} +6 -6
  50. package/server/{conversation-service-CWk8mEym.js → conversation-service-Up7FEzIC.js} +1 -1
  51. package/server/{conversations-BJ-t3BRm.js → conversations-6mPANqvL.js} +1 -1
  52. package/server/{conversations-BUgGvqVL.js → conversations-DbOs1e9Q.js} +4 -4
  53. package/server/{cost-jJ2cgDcG.js → cost-CW4WSe72.js} +3 -3
  54. package/server/{cost-Drm7qeD5.js → cost-Ca0YTWDw.js} +18 -2
  55. package/server/{cost-sync-DzHP6zaR.js → cost-sync-C0VdGme1.js} +3 -3
  56. package/server/{dag-DIji6O2b.js → dag-CdOjJVDT.js} +9 -9
  57. package/server/{dangerous-git-ops-BebB-61h.js → dangerous-git-ops-CT-IypG3.js} +1 -1
  58. package/server/dashboard-db-worker.js +7 -7
  59. package/server/{deacon-pleYrvIm.js → deacon-DYSEJb48.js} +3 -3
  60. package/server/{deacon-nudge-log-C5VCKtyi.js → deacon-nudge-log-Bjg8U4Y9.js} +3 -3
  61. package/server/{deacon-1s7bM5zn.js → deacon-pRnyD5w9.js} +1133 -474
  62. package/server/deacon-swarm-9jRLS5Ke.js +2 -0
  63. package/server/{deacon-swarm-DmA3rJ7k.js → deacon-swarm-DftYRDo8.js} +17 -17
  64. package/server/deacon.js +8 -8
  65. package/server/{deploy-patrol-DmM6F-yw.js → deploy-patrol-Bjsho_ha.js} +136 -19
  66. package/server/{deploy-window-ClLq1RYf.js → deploy-window-CM6W1-c6.js} +1 -1
  67. package/server/{deploy-window-jw4S_Y-c.js → deploy-window-DeP_OIRk.js} +77 -10
  68. package/server/{dev-supervisor-Do2Stz49.js → dev-supervisor-BpMoHlkR.js} +2 -2
  69. package/server/{devcontainer-renderer-D8ylupco.js → devcontainer-renderer-CtUgrVKW.js} +3 -3
  70. package/server/dist-Bd3vn0Hw.js +3 -0
  71. package/server/{dist-yfR7G1BL.js → dist-DyRx4cI7.js} +1 -1
  72. package/server/{docker-ClwPQaba.js → docker-BK7HIcBj.js} +2 -2
  73. package/server/{dod-BLphkhjs.js → dod-BrSfUHm0.js} +1 -1
  74. package/server/{ensure-devcontainer-BA3bICoY.js → ensure-devcontainer-DRqaAkBR.js} +1 -1
  75. package/server/{ensure-devcontainer-CFpQatOc.js → ensure-devcontainer-DseivYEy.js} +4 -4
  76. package/server/{esm-shims-BZw-fTQ6.js → esm-shims-CbI3BVkl.js} +1 -1
  77. package/server/{event-store-DABarGNz.js → event-store-Cr5PQwFC.js} +1 -1
  78. package/server/{event-store-BVnON3vf.js → event-store-tdiY5eDZ.js} +3 -3
  79. package/server/{events-CmERlnwn.js → events-CC1dgUpx.js} +3 -3
  80. package/server/{events-LGeUehYW.js → events-CvvGK6LT.js} +1 -1
  81. package/server/{factory-CQNprtHe.js → factory-CynerjXO.js} +50 -13
  82. package/server/{feature-registry-population-D9Z3tYSa.js → feature-registry-population-B0pmAz0a.js} +4 -4
  83. package/server/{feature-registry-storage-BWymOgXE.js → feature-registry-storage-_wUBRD3J.js} +2 -2
  84. package/server/{features--fOza5g5.js → features-Dhxz-wLc.js} +2 -2
  85. package/server/{feedback-target-Dqik2WTe.js → feedback-target-CPS15Vte.js} +7 -7
  86. package/server/{feedback-target-Dn9vfPpz.js → feedback-target-iygZwmMc.js} +1 -1
  87. package/server/{feedback-writer-Wlq5-qgS.js → feedback-writer-C9b6ccN1.js} +6 -5
  88. package/server/{feedback-writer-DDQNV8uc.js → feedback-writer-qmiMbqTZ.js} +1 -1
  89. package/server/{flywheel-Q-38YhZG.js → flywheel-DMCUzDWg.js} +1 -1
  90. package/server/{flywheel-1Wd8WDlh.js → flywheel-DSSpWmqF.js} +13 -13
  91. package/server/{flywheel-DPUc8r3V.js → flywheel-DcBkQvgE.js} +14 -14
  92. package/server/{flywheel-merge-order-CeBuX0EJ.js → flywheel-merge-order-C-6zRLvM.js} +1 -1
  93. package/server/{flywheel-merge-order-4SqOXFAr.js → flywheel-merge-order-DxbQKE1d.js} +8 -8
  94. package/server/forge-B-ZWyTRm.js +2 -0
  95. package/server/{forge-DBbDpiYc.js → forge-Ch9gCFod.js} +2 -2
  96. package/server/{from-hh6vTBGl.js → from-CJ_aH5jD.js} +1 -1
  97. package/server/{fts-db-6ponMie2.js → fts-db-CKgg0VKg.js} +2 -2
  98. package/server/{fts-operations-KIRK165y.js → fts-operations-BrL_VTRr.js} +2 -2
  99. package/server/git-utils-BVa07a4a.js +198 -0
  100. package/server/{git-utils-DmF5xkj8.js → git-utils-Dry_Ka_D.js} +1 -1
  101. package/server/{github-app-B3yfECo8.js → github-app-CMBdIFBQ.js} +11 -3
  102. package/server/{github-app-CeSVFL6C.js → github-app-CPfoFAdV.js} +1 -1
  103. package/server/{github-client-Dslipypz.js → github-client--XVlDpwM.js} +2 -2
  104. package/server/{github-client-4A6FgA8O.js → github-client-B4QsdE-X.js} +1 -1
  105. package/server/{github-pr-lookup-DBP0YHMr.js → github-pr-lookup-BRbDW-qk.js} +2 -2
  106. package/server/harness-binary-CVio2m-u.js +106 -0
  107. package/server/{harness-resolve-BGpO-OVM.js → harness-resolve-qHJBhy3Z.js} +9 -15
  108. package/server/{health-events-CZGZ5I-A.js → health-events-C9B8y1Hm.js} +2 -2
  109. package/server/{health-events-CnwV_SSz.js → health-events-CpfvuVmm.js} +1 -1
  110. package/server/{hooks-CoNscX84.js → hooks-DUXw8A0-.js} +2 -2
  111. package/server/{hooks-DvX33gY_.js → hooks-ltecuFqZ.js} +1 -1
  112. package/server/{hume-DSJt5eA_.js → hume-BEq0bUDg.js} +2 -2
  113. package/server/hume-B_DbflNM.js +3 -0
  114. package/server/{idle-stack-reaper-5DVRoY6P.js → idle-stack-reaper-D7w9t3fE.js} +1 -1
  115. package/server/{idle-stack-reaper-BfL8HqYy.js → idle-stack-reaper-w1ISSlhs.js} +2 -2
  116. package/server/{in-flight-guard-tVGiI5ee.js → in-flight-guard-aQ1IxeI3.js} +2 -2
  117. package/server/{infra-DN2wSxle.js → infra-CzaSOgul.js} +4 -4
  118. package/server/{injection-DtlT8Akv.js → injection-DZ0PfYa4.js} +7 -7
  119. package/server/{injection-DK9zh_HL.js → injection-oNZeoDhL.js} +1 -1
  120. package/server/{inspect-agent-DKByUS_F.js → inspect-agent-DJKLWcVT.js} +15 -11
  121. package/server/inspect-agent-ch-F-5Ci.js +2 -0
  122. package/server/{internal-token-DhfFiwW7.js → internal-token-Bb4XeV2x.js} +2 -2
  123. package/server/{internal-token-7bYL5v6K.js → internal-token-DXdfprGr.js} +1 -1
  124. package/server/{io-BiM-7Zsx.js → io-B3_AHDfr.js} +160 -184
  125. package/server/{issue-closed-Dfw3QDyZ.js → issue-closed-zhdvQicO.js} +7 -7
  126. package/server/{issue-lifecycle-B7HZWnTA.js → issue-lifecycle-CreaCkjW.js} +22 -22
  127. package/server/{issue-lifecycle-ytsEdDlK.js → issue-lifecycle-Dy4vd0Oa.js} +1 -1
  128. package/server/{issue-service-singleton-CPESc4Or.js → issue-service-singleton-B5ushCvE.js} +8 -8
  129. package/server/{issue-service-singleton-D5EB5eYr.js → issue-service-singleton-DabvBWUp.js} +1 -1
  130. package/server/{issues-XYtFMxrH.js → issues-B6ToV6x1.js} +2 -2
  131. package/server/{jsonl-parser-DJV2eZUP.js → jsonl-parser-Dhflo1SH.js} +3 -3
  132. package/server/{label-cleanup-CJ4m8iRU.js → label-cleanup-BKPJm4Hv.js} +3 -3
  133. package/server/{label-reconciler-CNf3Ylm3.js → label-reconciler-DdWbHEBu.js} +4 -4
  134. package/server/{launcher-generator-5DJRiovn.js → launcher-generator-CHVm7bGT.js} +10 -9
  135. package/server/{layers-cZx7ibtV.js → layers-DzxSTGNA.js} +2 -2
  136. package/server/lifecycle-DfeyBDwA.js +121 -0
  137. package/server/lifecycle-io-Bsnr2K4F.js +3 -0
  138. package/server/{lifecycle-io-DMurK4oM.js → lifecycle-io-D8iNBcux.js} +37 -37
  139. package/server/{lifecycle-CE7619Xw.js → lifecycle-sycO16hj.js} +6 -6
  140. package/server/{linear-client-BLyN-NiP.js → linear-client-D4zqMnX7.js} +2 -2
  141. package/server/{linear-client-Bj1l4FOA.js → linear-client-DqhDQO9k.js} +1 -1
  142. package/server/memory-fts-worker.js +1 -1
  143. package/server/{merge-hSC2BENe.js → merge-C_ZEhbqI.js} +3 -3
  144. package/server/{merge-CwX2_AWm.js → merge-DK23JEdS.js} +1 -1
  145. package/server/{merge-agent-CnORPiri.js → merge-agent-BQM3a8z5.js} +1 -1
  146. package/server/{merge-agent-DnBsms_V.js → merge-agent-XrB80vfT.js} +369 -213
  147. package/server/{merge-batch-C2w2U2eK.js → merge-batch-Bwoyr8Je.js} +1 -1
  148. package/server/{merge-blockers-DhRgh76x.js → merge-blockers-BsFjGrQ8.js} +2 -2
  149. package/server/merge-ops-DlB1IM0Y.js +2 -0
  150. package/server/{merge-rebase-CE-ZyOMY.js → merge-rebase-C1KIVr0s.js} +2 -2
  151. package/server/{merge-set-D7YNU1ZB.js → merge-set-DLz0MkGT.js} +3 -3
  152. package/server/{merge-set-DHkzPCJU.js → merge-set-DnSYdBEp.js} +1 -1
  153. package/server/{merge-sync-De1FYva5.js → merge-sync-DZ9dojJn.js} +2 -2
  154. package/server/{merge-sync-CpGA9Kg7.js → merge-sync-SSv3E-pl.js} +1 -1
  155. package/server/{merge-train-SvkRJZ-k.js → merge-train-DxDfBTjr.js} +3 -3
  156. package/server/{merge-train-deps-CECJTElu.js → merge-train-deps-CyYQUksx.js} +4 -4
  157. package/server/{merge-verification-B3meGcXF.js → merge-verification-CSizH3HY.js} +4 -4
  158. package/server/{multipart-parser-ByTMgYV5.js → multipart-parser-Dt8YPN5S.js} +2 -2
  159. package/server/{no-resume-mode-BnInAFKs.js → no-resume-mode-Cx3K0hHi.js} +11 -8
  160. package/server/node_modules/.package-lock.json +5 -5
  161. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/README.md +3 -3
  162. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.d.ts.map +1 -1
  163. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js +2 -2
  164. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js.map +1 -1
  165. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +5 -5
  166. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeChildProcessSpawner.ts +6 -8
  167. package/server/{orphan-proposed-reconciler-CAfuWTA1.js → orphan-proposed-reconciler-BTkDrl4R.js} +1 -1
  168. package/server/{orphan-proposed-reconciler-AxAGUouN.js → orphan-proposed-reconciler-neK8dHQk.js} +23 -14
  169. package/server/package-lock.json +6 -6
  170. package/server/package.json +1 -1
  171. package/server/{pan-dir-Rw17YjT1.js → pan-dir-DeVUgwA7.js} +78 -58
  172. package/server/{paths-FP8v3lTz.js → paths-_zEts6wc.js} +2 -2
  173. package/server/{pickup-xi3KTLaJ.js → pickup-Dd0Znxxy.js} +2 -2
  174. package/server/{pipeline-membership-BtKMNY7v.js → pipeline-membership-0HaEGDlH.js} +190 -68
  175. package/server/{pipeline-notifier-dQ-U4NSb.js → pipeline-notifier-6iCJplFZ.js} +1 -1
  176. package/server/{pipeline-notifier-BM2HLF7B.js → pipeline-notifier-D0ykk59O.js} +2 -2
  177. package/server/{project-pipelines-B59NfN44.js → project-pipelines-2sK1apsO.js} +2 -2
  178. package/server/projects-9SkRpES9.js +3 -0
  179. package/server/{prompts-CbqaVjbe.js → prompts-Dp4Tpk39.js} +2 -2
  180. package/server/providers-DKkBXhxU.js +3 -0
  181. package/server/{providers-d3pwXGVE.js → providers-DV7ec8l7.js} +7 -7
  182. package/server/public/assets/{chunk-BO2N2NFS-BxYSL7J-.js → chunk-BO2N2NFS-CltymLRg.js} +4 -4
  183. package/server/public/assets/{diagram-OG6HWLK6-C_F9Q2as.js → diagram-OG6HWLK6-D2f6pjgA.js} +1 -1
  184. package/server/public/assets/{dist-DQNg4CiF.js → dist-BWR4qFiV.js} +1 -1
  185. package/server/public/assets/{dist-CLSlc6cV.js → dist-DEmlBBNQ.js} +3 -3
  186. package/server/public/assets/{ganttDiagram-6RSMTGT7-Cq0my-0C.js → ganttDiagram-6RSMTGT7-DnfiViPK.js} +1 -1
  187. package/server/public/assets/{highlighted-body-OFNGDK62-eZC03dGh.js → highlighted-body-OFNGDK62-B8Wrmj9H.js} +1 -1
  188. package/server/public/assets/index-CUr1xv8w.css +1 -0
  189. package/server/public/assets/{index-SLYGA8AQ.js → index-CsSuZQBI.js} +148 -145
  190. package/server/public/assets/{linear-6Fi3qnGg.js → linear-C9zFQpkX.js} +1 -1
  191. package/server/public/assets/mermaid-GHXKKRXX-BUAB8hqt.js +1 -0
  192. package/server/public/assets/{pieDiagram-4H26LBE5-Dpmc6xsv.js → pieDiagram-4H26LBE5-lR8H7Yjd.js} +1 -1
  193. package/server/public/assets/{prod-ojHllFvN.js → prod-B1jCQihw.js} +4 -4
  194. package/server/public/assets/{quadrantDiagram-W4KKPZXB-Ulr9gON5.js → quadrantDiagram-W4KKPZXB-CVQ2guem.js} +1 -1
  195. package/server/public/assets/{sankeyDiagram-5OEKKPKP-CwdHGXfL.js → sankeyDiagram-5OEKKPKP-eD1RB4gm.js} +1 -1
  196. package/server/public/assets/{xychartDiagram-2RQKCTM6-r-bEDzJh.js → xychartDiagram-2RQKCTM6-ChEC6dQn.js} +1 -1
  197. package/server/public/index.html +54 -10
  198. package/server/{pull-requests-D3N6HQzI.js → pull-requests--Ib2jTgy.js} +1 -1
  199. package/server/{pull-requests-CjjPj7v6.js → pull-requests-CXIhdCYD.js} +13 -11
  200. package/server/{queries-B5hl7lMQ.js → queries-6d7Cdtm7.js} +723 -110
  201. package/server/{rally-Dp0Gb1DN.js → rally-B708-nZn.js} +3 -3
  202. package/server/{rally-api-DGaFz5L5.js → rally-api-nY0ZANw3.js} +2 -2
  203. package/server/{rally-api-CKr0O4DJ.js → rally-api-yjQ0TfHd.js} +1 -1
  204. package/server/{rally-client-SVbjGvqj.js → rally-client-B1EJhfV0.js} +4 -4
  205. package/server/{rally-client-Cqf6EX_r.js → rally-client-CULK2XAY.js} +1 -1
  206. package/server/rally-njs_mJrt.js +3 -0
  207. package/server/reap-terminal-sessions-MWnqdLCJ.js +4 -0
  208. package/server/{reap-terminal-sessions-CjqRAGw7.js → reap-terminal-sessions-N3BTkmX_.js} +11 -28
  209. package/server/{rebuild-stack-DHqCLvLX.js → rebuild-stack-Dp4eLkt4.js} +6 -6
  210. package/server/{rebuild-stack-DjdpALr1.js → rebuild-stack-kA7XngID.js} +1 -1
  211. package/server/{reconstruct-cache-BqrCQt0o.js → reconstruct-cache-uWbZfjms.js} +6 -6
  212. package/server/record-t6V-3Dcj.js +3 -0
  213. package/server/{record-update-BlB8mpKO.js → record-update-DACtKh6_.js} +1 -1
  214. package/server/record-update-Dq0t2uBG.js +310 -0
  215. package/server/{recovery-trip-l1Hsi37x.js → recovery-trip-BJtIQuag.js} +2 -2
  216. package/server/{release-engine-CSI4K6Oj.js → release-engine-DZpmGGzb.js} +5 -5
  217. package/server/{release-set-BywwggrE.js → release-set-hnXd_kga.js} +3 -3
  218. package/server/{remote-DYziAkiZ.js → remote-4tiENDaI.js} +3 -3
  219. package/server/{remote-cnoeuDWn.js → remote-Br-ZWVIP.js} +3 -3
  220. package/server/{remote-agents-BNORDWAX.js → remote-agents-CRCg1L4H.js} +1 -1
  221. package/server/{remote-agents-CZ2rc8I0.js → remote-agents-nmty1mLu.js} +6 -6
  222. package/server/{remote-completion-W67FNQ-A.js → remote-completion-BbWNd10K.js} +13 -13
  223. package/server/resume-CcKqnTvE.js +3 -0
  224. package/server/{review-agent-CSswH985.js → review-agent-DJRO8EG8.js} +1 -1
  225. package/server/{review-agent-CqSqSHkU.js → review-agent-sKkE1FEL.js} +23 -23
  226. package/server/{review-artifacts-BBgnd5df.js → review-artifacts-BLbSC4ke.js} +5 -5
  227. package/server/{review-context-Ctp9BdNJ.js → review-context-BgX3lcCx.js} +9 -9
  228. package/server/{review-status-CCgPVK1h.js → review-status-A7quS5KJ.js} +56 -39
  229. package/server/review-status-C6n6-9f_.js +3 -0
  230. package/server/{review-status-enrichment-DtDRGpst.js → review-status-enrichment-tbOn_A_u.js} +3 -3
  231. package/server/review-status-source-CxuEjLGg.js +39 -0
  232. package/server/{review-status-sync-jnLgd04F.js → review-status-sync-BhSQ0d0l.js} +2 -2
  233. package/server/{review-status-sync-C792ksoJ.js → review-status-sync-To3-iS-N.js} +1 -1
  234. package/server/{review-verdict-feedback-D5lW0o3k.js → review-verdict-feedback-C1Kg8n7t.js} +1 -1
  235. package/server/{review-verdict-feedback-CMsIpTpy.js → review-verdict-feedback-CTRNtzXO.js} +7 -7
  236. package/server/{rollup-B3kQmNpl.js → rollup-B53Y81xK.js} +1 -1
  237. package/server/{rollup-CLj_AK9f.js → rollup-WA0VD-Rr.js} +8 -8
  238. package/server/{scanner-C4NeC4FE.js → scanner-D2743cp8.js} +11 -7
  239. package/server/{sequence-io-Ce-6grIY.js → sequence-io-Cg0zYj_E.js} +4 -4
  240. package/server/{sequencer-agent-Bpz0yGmG.js → sequencer-agent-BGY8gjg-.js} +5 -5
  241. package/server/server.js +1348 -963
  242. package/server/{service-CqAY8Kmk.js → service-DCpB_SGd.js} +154 -51
  243. package/server/{session-fork-uNo4rMRA.js → session-fork-BQ8_6H32.js} +2 -2
  244. package/server/{session-history-DUehL3KN.js → session-history-CVZDpS3c.js} +4 -4
  245. package/server/{settings-DP2OYLXL.js → settings-BZ5m1UCl.js} +3 -3
  246. package/server/settings-D0OSwos5.js +2 -0
  247. package/server/{settings-D9grjmaP.js → settings-ylxwqwQG.js} +2 -2
  248. package/server/{shadow-engineering-Bi_oIMtF.js → shadow-engineering-BlxG6Xye.js} +3 -3
  249. package/server/{shadow-state-CDxEuPlE.js → shadow-state-C2_epgx2.js} +1 -1
  250. package/server/{shadow-state-a_ztFBJe.js → shadow-state-Dh-HzF2J.js} +2 -2
  251. package/server/{shadow-utils-CyOg6_Xq.js → shadow-utils-4bvjn9b3.js} +2 -2
  252. package/server/{ship-log-DDcueaIR.js → ship-log-ClSMIzZX.js} +1 -1
  253. package/server/{smart-compaction-C1_VVLEd.js → smart-compaction-CHIxLr_d.js} +1 -1
  254. package/server/{smart-compaction--Oj65Uov.js → smart-compaction-r4pHQBIr.js} +7 -7
  255. package/server/{spawn-planning-session-AiUSsBnH.js → spawn-planning-session-DWAorh2B.js} +25 -20
  256. package/server/{spawn-planning-session-LFtK2QCE.js → spawn-planning-session-KC_UduxD.js} +1 -1
  257. package/server/{specialist-completion-qOgqdqXH.js → specialist-completion-BXhav38U.js} +1 -1
  258. package/server/{specialist-context-gjj8Z4Ii.js → specialist-context-DtrYvGJ-.js} +5 -5
  259. package/server/{specialist-handoff-logger-BsBNvVZv.js → specialist-handoff-logger-C45ouoZ6.js} +2 -2
  260. package/server/{specialist-logs-CSLtvPx6.js → specialist-logs-DJ3RzKxW.js} +3 -3
  261. package/server/{specialists-D0VBf8g_.js → specialists-D5fRZXmN.js} +1 -1
  262. package/server/specialists-DVj0hvaL.js +3 -0
  263. package/server/{specialists-CYRwELzc.js → specialists-DyFeedjn.js} +66 -76
  264. package/server/{specialists-DAegTvRt.js → specialists-JVO00bs7.js} +374 -220
  265. package/server/specs-nN45DG2X.js +3 -0
  266. package/server/{src-OLoJhUiJ.js → src-CG9mCkP6.js} +6 -6
  267. package/server/{src-BqTcrfO_.js → src-CMTQGyCK.js} +3 -3
  268. package/server/{src-Dpq1yFIl.js → src-U7_kTPEE.js} +338 -4
  269. package/server/{stack-health-I713ELld.js → stack-health-Df0YEZKa.js} +1 -1
  270. package/server/{stack-health-DV_f-lK0.js → stack-health-puygdaMd.js} +2 -2
  271. package/server/{stale-task-claims-CQSKZVq0.js → stale-task-claims-BbFwCTb0.js} +4 -4
  272. package/server/{staleness-BbsGxmF2.js → staleness-Bpy41ngS.js} +15 -3
  273. package/server/{staleness-zGp4P1hd.js → staleness-Cbl_w4Bw.js} +1 -1
  274. package/server/{state-home-DixkE-up.js → state-home-CIGjwNfJ.js} +119 -54
  275. package/server/state-migrate-Dkzaxvny.js +487 -0
  276. package/server/{stuck-remediation-BWkK_O7A.js → stuck-remediation-CzEov_fq.js} +27 -21
  277. package/server/{stuck-remediation-CTPRC2S5.js → stuck-remediation-sY_MHHgQ.js} +1 -1
  278. package/server/{substrate-bug-weights-service-DXd0ID83.js → substrate-bug-weights-service-BH66lhm7.js} +3 -3
  279. package/server/{summary-fork-CdLn8Chr.js → summary-fork-D8bXjCr7.js} +2 -2
  280. package/server/{summary-fork-f3DpgjXh.js → summary-fork-DHhJIsAL.js} +8 -8
  281. package/server/{supervisor-Ch8CDuoF.js → supervisor-BO-Zk_h-.js} +3 -3
  282. package/server/supervisor-BPy-o1A8.js +2 -0
  283. package/server/{swarm-readiness-C9P2iPap.js → swarm-readiness-CQ_fwUWF.js} +4 -4
  284. package/server/{system-prerequisites-DkoQBn1q.js → system-prerequisites-Bza0ffAh.js} +24 -44
  285. package/server/{teardown-workspace-D-5yMyit.js → teardown-workspace-CEgauF4U.js} +15 -15
  286. package/server/{test-agent-queue-BwpUpu-o.js → test-agent-queue-DXDt0Xa-.js} +7 -7
  287. package/server/{test-verdict-BRiSu7eW.js → test-verdict-CmUBK5cT.js} +1 -1
  288. package/server/{test-verdict-BQ1yx7d4.js → test-verdict-DFjjIHR5.js} +1 -1
  289. package/server/{tldr-daemon-DjxP5g6Y.js → tldr-daemon-BDtLOIlO.js} +2 -2
  290. package/server/{tldr-daemon-BJA7TkqS.js → tldr-daemon-DL566HbH.js} +1 -1
  291. package/server/tmux-DoThH6aj.js +3 -0
  292. package/server/{tmux-y1blSxks.js → tmux-ftABRAmc.js} +76 -44
  293. package/server/{token-LUrbM9sU.js → token-CsOhvw42.js} +2 -2
  294. package/server/{token-util-BZaDAQ8S.js → token-util-CTmczIfW.js} +1 -1
  295. package/server/token-util-DrHg8abn.js +3 -0
  296. package/server/{tracker-config-DSFZBdXP.js → tracker-config-B4itFzDo.js} +2 -2
  297. package/server/{tracker-utils-WtP_V-yn.js → tracker-utils-BePq_oj-.js} +1 -1
  298. package/server/{tracker-utils-DiceZN3a.js → tracker-utils-tnxxqROg.js} +2 -2
  299. package/server/{traefik-connect-BXqfOP4-.js → traefik-connect-m73vGebA.js} +1 -1
  300. package/server/{tunnel-DTng1rfQ.js → tunnel-B2vxjx_b.js} +3 -3
  301. package/server/{tunnel-WcJImbAC.js → tunnel-Cgj-IGIl.js} +1 -1
  302. package/server/{types-BjaZ1oqH.js → types-BBNjPcqU.js} +1 -1
  303. package/server/{types-DqeBMmJN.js → types-hraoaQIp.js} +1 -1
  304. package/server/{uat-train-BpLnp7Cx.js → uat-train-CuEn0t9M.js} +28 -28
  305. package/server/{uat-train-Wismge7h.js → uat-train-cKfM-_WW.js} +1 -1
  306. package/server/{validation-BA4e5EGm.js → validation-B5JxoPUS.js} +259 -9
  307. package/server/{validation-CUWamZ4X.js → validation-CIi6pnI2.js} +1 -1
  308. package/server/{verification-artifact-Dr_0g9nb.js → verification-artifact-BcnIbigL.js} +1 -1
  309. package/server/{verification-artifact-CrbI4tJE.js → verification-artifact-C-lIHfUa.js} +1 -1
  310. package/server/{verification-runner-gAzh3cVD.js → verification-runner-Br0S_Ous.js} +103 -37
  311. package/server/{verification-runner-Dcksl_P-.js → verification-runner-CDj4lD4t.js} +1 -1
  312. package/server/{vtt-parser-3VZKsmSm.js → vtt-parser-DKpNNW5i.js} +1 -1
  313. package/server/{work-agent-prompt-ULdcANl5.js → work-agent-prompt-Yb2bd3Fq.js} +16 -15
  314. package/server/{workflows-B8ROFlfw.js → workflows-C9WmILql.js} +39 -77
  315. package/server/workflows-D90rMOya.js +2 -0
  316. package/server/{workspace-DhTDA8nB.js → workspace-BVl4rihN.js} +3 -3
  317. package/server/{workspace-DSjUJaJN.js → workspace-DuUdndHe.js} +1 -1
  318. package/server/{workspace-config-BAAsAv-o.js → workspace-config-cEGcO6UT.js} +1 -1
  319. package/server/{workspace-manager-CcujONCR.js → workspace-manager-ZTdJAy9M.js} +1 -1
  320. package/server/{workspace-manager-DsN52IMG.js → workspace-manager-hLUv3ADC.js} +23 -16
  321. package/server/{workspace-metadata-DIL5_U4c.js → workspace-metadata-CskwzzhL.js} +2 -2
  322. package/server/{workspace-metadata-CftOpNLs.js → workspace-metadata-DNpMixRq.js} +1 -1
  323. package/server/{workspaces-Dmlh1YXm.js → workspaces-hWvy9eKs.js} +276 -110
  324. package/sync-sources/agents/pan-inspect-agent.md +1 -1
  325. package/sync-sources/agents/pan-merge-agent.md +1 -1
  326. package/sync-sources/agents/pan-planning-agent.md +4 -4
  327. package/sync-sources/agents/pan-work-agent.md +1 -1
  328. package/sync-sources/dev-skills/pan-commit/SKILL.md +1 -1
  329. package/sync-sources/dev-skills/test-specialist-workflow/SKILL.md +1 -1
  330. package/sync-sources/hooks/record-cost-event.js +363 -71
  331. package/sync-sources/hooks/session-start-hook +7 -0
  332. package/sync-sources/hooks/work-agent-stop-hook +1 -1
  333. package/sync-sources/rules/per-bead-durability.md +1 -1
  334. package/sync-sources/rules/prd-authoring.md +1 -1
  335. package/sync-sources/skills/feature-work/SKILL.md +1 -1
  336. package/sync-sources/skills/pan/SKILL.md +2 -2
  337. package/sync-sources/skills/pan-admin-config/SKILL.md +1 -0
  338. package/sync-sources/skills/pan-approve/SKILL.md +1 -1
  339. package/sync-sources/skills/pan-close/SKILL.md +1 -1
  340. package/sync-sources/skills/pan-doctor/SKILL.md +1 -1
  341. package/sync-sources/skills/pan-new-project/SKILL.md +9 -11
  342. package/sync-sources/skills/pan-oversee/SKILL.md +5 -5
  343. package/sync-sources/skills/pan-plan/SKILL.md +6 -6
  344. package/sync-sources/skills/pan-quickstart/SKILL.md +1 -1
  345. package/sync-sources/skills/pan-recap/SKILL.md +2 -2
  346. package/sync-sources/skills/pan-review/SKILL.md +1 -1
  347. package/sync-sources/skills/pan-start/SKILL.md +26 -3
  348. package/sync-sources/skills/pan-swarm/SKILL.md +1 -1
  349. package/sync-sources/skills/pan-sync/SKILL.md +1 -1
  350. package/sync-sources/skills/pan-task/SKILL.md +2 -2
  351. package/sync-sources/skills/pan-wipe/SKILL.md +2 -2
  352. package/sync-sources/skills/pipeline-list/SKILL.md +1 -1
  353. package/sync-sources/skills/pipeline-status/SKILL.md +2 -2
  354. package/sync-sources/skills/plan/SKILL.md +11 -11
  355. package/sync-sources/skills/write-vbrief/SKILL.md +7 -282
  356. package/sync-sources/skills/write-xbrief/SKILL.md +295 -0
  357. package/sync-sources/templates/claude-md/sections/warnings.md +1 -1
  358. package/server/agent-state-BV_6RHnO.js +0 -3
  359. package/server/agents-Czz6R57Z.js +0 -3
  360. package/server/cli-ChErG518.js +0 -3
  361. package/server/codex-BBeZ8c3s.js +0 -3
  362. package/server/deacon-swarm-uudlSCLM.js +0 -2
  363. package/server/dist-BEDL2alY.js +0 -3
  364. package/server/forge-DbhJyH6u.js +0 -2
  365. package/server/git-utils-Bkxzr1Xf.js +0 -129
  366. package/server/hume-BrA1tUuk.js +0 -3
  367. package/server/inspect-agent-CyXNo9fM.js +0 -2
  368. package/server/lifecycle-io-CUpsxG0p.js +0 -3
  369. package/server/merge-ops-BpTtuO8x.js +0 -2
  370. package/server/projects-IRHJIPYC.js +0 -3
  371. package/server/providers-BqCdTryq.js +0 -3
  372. package/server/public/assets/index-C6NLz_1S.css +0 -1
  373. package/server/public/assets/mermaid-GHXKKRXX-BNwFoQsf.js +0 -1
  374. package/server/rally-DGimSRBQ.js +0 -3
  375. package/server/reap-terminal-sessions-C1mfzoZo.js +0 -3
  376. package/server/record-update-RviRDSNs.js +0 -168
  377. package/server/record-us0YECMO.js +0 -3
  378. package/server/resume-OyN3dEXE.js +0 -3
  379. package/server/review-status-DXeqFpk5.js +0 -3
  380. package/server/settings-BaPXXJsT.js +0 -2
  381. package/server/specialists-C6WkeKFK.js +0 -3
  382. package/server/specs-BsNcum0h.js +0 -3
  383. package/server/state-migrate-_zJJ6XKE.js +0 -362
  384. package/server/supervisor-Qy1QecAs.js +0 -2
  385. package/server/tmux-HQLgwo_C.js +0 -3
  386. package/server/token-util-Cg-QnowA.js +0 -3
  387. package/server/workflows-C5c-RPsY.js +0 -2
@@ -1,23 +1,22 @@
1
- import { At as init_record, Bt as writeCloseOutDodGate, Lt as resolveProjectForIssue, Nt as readIssueRecord, Rr as OVERDECK_HOME, cr as extractPrefixSync, jt as markRecordPipelineClosedOutSync, kt as getProjectConfigFromWorkspacePath, lr as init_issue_id, sr as extractNumberSync, ti as init_paths } from "./config-yaml-Ciyp2mYe.js";
2
- import { c as init_review_status, o as getReviewStatus } from "./review-status-CCgPVK1h.js";
3
- import { i as listRunningAgents, s as init_agents } from "./queries-B5hl7lMQ.js";
4
- import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-D9Z3tYSa.js";
5
- import { f as init_config, s as getDashboardApiUrlSync } from "./config-CrduXs4a.js";
6
- import { i as loadCloisterConfig, r as init_config$1 } from "./config-G1TOMJZA.js";
7
- import { r as getAutoCloseOutCanonicalState, t as pruneStoppedAgentsForIssue } from "./agent-gc-D6PUckBB.js";
8
- import { i as findWorkspacePath, o as init_archive_planning, t as archivePlanning } from "./archive-planning-BOnwJq8M.js";
9
- import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed, t as getLinearApiKey } from "./types-BjaZ1oqH.js";
10
- import { t as closeIssue } from "./close-issue-8F6uawYj.js";
11
- import { o as init_pull_requests, r as fetchIssuePullRequest, t as fetchCommitCheckRuns } from "./pull-requests-CjjPj7v6.js";
12
- import { n as acceptFlagFor, t as DOD_ROWS } from "./dod-BLphkhjs.js";
13
- import { t as teardownWorkspace } from "./teardown-workspace-D-5yMyit.js";
1
+ import { Dt as getProjectConfigFromWorkspacePath, Ft as resolveProjectForIssue, Jn as extractPrefixSync, Lt as writeCloseOutDodGate, Ot as init_record, Vr as init_paths, Yn as init_issue_id, jt as readIssueRecord, kt as markRecordPipelineClosedOutSync, qn as extractNumberSync, wr as OVERDECK_HOME } from "./config-yaml-DvyMuOle.js";
2
+ import { l as init_review_status, s as getReviewStatus } from "./review-status-A7quS5KJ.js";
3
+ import { b as init_agents, i as listRunningAgents } from "./queries-6d7Cdtm7.js";
4
+ import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-B0pmAz0a.js";
5
+ import { f as init_config, s as getDashboardApiUrlSync } from "./config-CCvjQf27.js";
6
+ import { i as loadCloisterConfig, r as init_config$1 } from "./config-DjLOdbgT.js";
7
+ import { r as getAutoCloseOutCanonicalState, t as pruneStoppedAgentsForIssue } from "./agent-gc-BV1q_2EV.js";
8
+ import { i as findWorkspacePath, o as init_archive_planning, t as archivePlanning } from "./archive-planning-DYrYojxl.js";
9
+ import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed, t as getLinearApiKey } from "./types-BBNjPcqU.js";
10
+ import { t as closeIssue } from "./close-issue-Dn_4c4G8.js";
11
+ import { o as init_pull_requests, r as fetchIssuePullRequest, t as fetchCommitCheckRuns } from "./pull-requests-CXIhdCYD.js";
12
+ import { n as acceptFlagFor, t as DOD_ROWS } from "./dod-BrSfUHm0.js";
13
+ import { t as teardownWorkspace } from "./teardown-workspace-CEgauF4U.js";
14
14
  import { resolve } from "node:path";
15
15
  import { Effect } from "effect";
16
16
  import { existsSync } from "fs";
17
17
  import { join as join$1 } from "path";
18
18
  import { userInfo } from "node:os";
19
- import { stat } from "node:fs/promises";
20
- import { copyFile, readFile as readFile$1, writeFile as writeFile$1 } from "fs/promises";
19
+ import { copyFile, readFile, writeFile } from "fs/promises";
21
20
  import { execFile } from "node:child_process";
22
21
  import { promisify } from "node:util";
23
22
  import { exec as exec$1 } from "child_process";
@@ -98,32 +97,7 @@ const defaultDeployRowDeps = {
98
97
  } catch {
99
98
  return false;
100
99
  }
101
- },
102
- serverStartedAt: async (port) => {
103
- const { stdout: pidOutput } = await execFileAsync("lsof", [
104
- "-ti",
105
- `tcp:${port}`,
106
- "-sTCP:LISTEN"
107
- ], {
108
- encoding: "utf-8",
109
- timeout: 1e4
110
- });
111
- const pid = pidOutput.trim().split("\n")[0];
112
- if (!pid) throw new Error(`no dashboard process owns port ${port}`);
113
- const { stdout } = await execFileAsync("ps", [
114
- "-o",
115
- "lstart=",
116
- "-p",
117
- pid
118
- ], {
119
- encoding: "utf-8",
120
- timeout: 1e4
121
- });
122
- const startedAt = new Date(stdout.trim());
123
- if (Number.isNaN(startedAt.getTime())) throw new Error(`could not parse dashboard process start time: ${stdout.trim()}`);
124
- return startedAt;
125
- },
126
- distMtime: async (repoRoot) => new Date((await stat(resolve(repoRoot, "dist/dashboard/server.js"))).mtime)
100
+ }
127
101
  };
128
102
  const defaultDeps = {
129
103
  getReviewStatus: (issueId) => Effect.runPromise(getReviewStatus(issueId)),
@@ -248,25 +222,13 @@ async function checkDeployRow(ctx, merge, deps = defaultDeployRowDeps) {
248
222
  const repoRoot = typeof health.repoRoot === "string" ? health.repoRoot : "";
249
223
  if (!repoRoot) return result("deploy", "miss", `dashboard at ${baseUrl} did not report repoRoot`);
250
224
  if (resolve(repoRoot) !== resolve(ctx.projectPath)) return result("deploy", "skip", `live dashboard serves ${repoRoot}, not this project — deploy semantics undefined for ${ctx.projectPath}`);
225
+ const buildCommit = typeof health.buildCommit === "string" && health.buildCommit.trim() ? health.buildCommit : void 0;
226
+ if (!buildCommit) return result("deploy", "miss", `dashboard at ${baseUrl} did not report buildCommit; live deployment cannot be proven`);
227
+ if (!merge.mergeCommit) return result("deploy", "miss", "cannot resolve merge commit; live deployment cannot be proven");
251
228
  try {
252
- let version = {};
253
- try {
254
- version = await deps.readJson(`${baseUrl}/api/version`);
255
- } catch {}
256
- const buildCommit = typeof version.buildCommit === "string" ? version.buildCommit : typeof version.commit === "string" ? version.commit : void 0;
257
- if (buildCommit && merge.mergeCommit) {
258
- const contains = await deps.commitContains(repoRoot, merge.mergeCommit, buildCommit);
259
- const observed = `build commit ${buildCommit.slice(0, 8)} ${contains ? "contains" : "does not contain"} merge ${merge.mergeCommit.slice(0, 8)}`;
260
- return result("deploy", contains ? "pass" : "miss", observed);
261
- }
262
- if (!merge.mergedAt) return result("deploy", "miss", "cannot resolve merge time for best-effort deploy check");
263
- const mergedAt = new Date(merge.mergedAt);
264
- if (Number.isNaN(mergedAt.getTime())) return result("deploy", "miss", `cannot parse merge time ${merge.mergedAt}`);
265
- const port = Number(new URL(baseUrl).port || (new URL(baseUrl).protocol === "https:" ? 443 : 80));
266
- const [startedAt, builtAt] = await Promise.all([deps.serverStartedAt(port), deps.distMtime(repoRoot)]);
267
- const fresh = startedAt > mergedAt && builtAt > mergedAt;
268
- const observed = `best-effort — build commit not exposed (PAN-2713): server started ${startedAt.toISOString()}, dist built ${builtAt.toISOString()}, merge ${mergedAt.toISOString()}`;
269
- return result("deploy", fresh ? "pass" : "miss", observed);
229
+ const contains = await deps.commitContains(repoRoot, merge.mergeCommit, buildCommit);
230
+ const observed = `build commit ${buildCommit.slice(0, 8)} ${contains ? "contains" : "does not contain"} merge ${merge.mergeCommit.slice(0, 8)}`;
231
+ return result("deploy", contains ? "pass" : "miss", observed);
270
232
  } catch (error) {
271
233
  return result("deploy", "miss", `deploy evidence unavailable: ${error instanceof Error ? error.message : String(error)}`);
272
234
  }
@@ -390,7 +352,7 @@ function close(ctx, opts = {}) {
390
352
  *
391
353
  * 1. Verify branch merged (hard fail if not — must pass before any cleanup)
392
354
  * 2. Move PRD + archive workspace artifacts (hard fail if archiving fails)
393
- * 3. Mark vBRIEF completed
355
+ * 3. Mark xBRIEF completed
394
356
  * 4. Clean up workspace (tmux, TLDR, Docker, worktree)
395
357
  * 5. Clean up agent state
396
358
  * 6. Close issue on tracker
@@ -424,10 +386,10 @@ function closeOut(ctx, opts = {}) {
424
386
  allSteps.push(stepFailed("close-out:abort", "Stopped — archiving failed, workspace preserved"));
425
387
  return buildResult("close-out", ctx.issueId, allSteps, start, dodGate);
426
388
  }
427
- const vbriefStep = yield* Effect.promise(() => completeVBriefStep(ctx));
428
- allSteps.push(vbriefStep);
429
- if (!vbriefStep.success && !vbriefStep.skipped) {
430
- allSteps.push(stepFailed("close-out:abort", "Stopped — vBRIEF completion failed, workspace preserved"));
389
+ const xbriefStep = yield* Effect.promise(() => completeXBriefStep(ctx));
390
+ allSteps.push(xbriefStep);
391
+ if (!xbriefStep.success && !xbriefStep.skipped) {
392
+ allSteps.push(stepFailed("close-out:abort", "Stopped — xBRIEF completion failed, workspace preserved"));
431
393
  return buildResult("close-out", ctx.issueId, allSteps, start, dodGate);
432
394
  }
433
395
  const closeOutConfig = (yield* Effect.promise(() => Effect.runPromise(loadCloisterConfig()))).close_out;
@@ -577,19 +539,19 @@ function resetToTodo(ctx, opts = {}) {
577
539
  function cancelIssueWorkflow(ctx, opts = {}) {
578
540
  return destructiveResetWorkflow("cancel", ctx, opts, resetIssueToCanceled, "Canceling issue", "Issue moved to Canceled");
579
541
  }
580
- async function completeVBriefStep(ctx) {
542
+ async function completeXBriefStep(ctx) {
581
543
  const step = "close-out:vbrief-completed";
582
544
  try {
583
- const { transitionVBriefOnMain } = await import("./lifecycle-io-CUpsxG0p.js");
584
- const result = await Effect.runPromise(transitionVBriefOnMain(ctx.projectPath, ctx.issueId, "completed", "completed", `scope: complete ${ctx.issueId.toUpperCase()} vBRIEF`));
585
- const details = [result.moved ? "Updated vBRIEF lifecycle to completed" : "vBRIEF lifecycle already completed", result.statusUpdated ? "Updated plan.status to completed" : "plan.status already completed"];
586
- if (result.committed) details.push("Committed vBRIEF completion on main");
545
+ const { transitionXBriefOnMain } = await import("./lifecycle-io-Bsnr2K4F.js");
546
+ const result = await Effect.runPromise(transitionXBriefOnMain(ctx.projectPath, ctx.issueId, "completed", "completed", `scope: complete ${ctx.issueId.toUpperCase()} xBRIEF`));
547
+ const details = [result.moved ? "Updated xBRIEF lifecycle to completed" : "xBRIEF lifecycle already completed", result.statusUpdated ? "Updated plan.status to completed" : "plan.status already completed"];
548
+ if (result.committed) details.push("Committed xBRIEF completion on main");
587
549
  return stepOk(step, details);
588
550
  } catch (err) {
589
551
  const cause = err.cause ?? err;
590
552
  const message = cause instanceof Error ? cause.message : String(cause);
591
- if (message.includes("No vBRIEF found")) return stepSkipped(step, [`No vBRIEF found for ${ctx.issueId}`]);
592
- return stepFailed(step, `vBRIEF completion failed: ${message}`);
553
+ if (message.includes("No xBRIEF found")) return stepSkipped(step, [`No xBRIEF found for ${ctx.issueId}`]);
554
+ return stepFailed(step, `xBRIEF completion failed: ${message}`);
593
555
  }
594
556
  }
595
557
  async function verifyBranchMergedImpl(ctx) {
@@ -597,7 +559,7 @@ async function verifyBranchMergedImpl(ctx) {
597
559
  const branchName = `feature/${ctx.issueId.toLowerCase()}`;
598
560
  try {
599
561
  try {
600
- const { loadReviewStatuses } = await import("./review-status-DXeqFpk5.js");
562
+ const { loadReviewStatuses } = await import("./review-status-C6n6-9f_.js");
601
563
  if (loadReviewStatuses()[ctx.issueId.toUpperCase()]?.mergeStatus === "merged") return stepOk(step, ["Merge specialist confirmed merge completed"]);
602
564
  } catch {}
603
565
  const { stdout: branchExists } = await execAsync(`git branch --list "${branchName}" 2>/dev/null || true`, {
@@ -821,7 +783,7 @@ async function resetIssueToTodoImpl(ctx) {
821
783
  */
822
784
  async function resetPostMergeStateForIssue(issueId) {
823
785
  try {
824
- const { resetPostMergeState } = await import("./merge-agent-CnORPiri.js");
786
+ const { resetPostMergeState } = await import("./merge-agent-BQM3a8z5.js");
825
787
  resetPostMergeState(issueId);
826
788
  resetPostMergeState(issueId.toUpperCase());
827
789
  } catch {
@@ -837,18 +799,18 @@ function clearReviewStatusStep(issueId) {
837
799
  async function clearReviewStatusStepImpl(issueId) {
838
800
  const step = "clear-review-status";
839
801
  try {
840
- const { clearReviewStatus } = await import("./review-status-DXeqFpk5.js");
802
+ const { clearReviewStatus } = await import("./review-status-C6n6-9f_.js");
841
803
  clearReviewStatus(issueId.toUpperCase());
842
804
  return stepOk(step, ["Review status cleared"]);
843
805
  } catch {
844
806
  try {
845
807
  const statusFile = join$1(OVERDECK_HOME, "review-status.json");
846
808
  if (existsSync(statusFile)) {
847
- const data = JSON.parse(await readFile$1(statusFile, "utf-8"));
809
+ const data = JSON.parse(await readFile(statusFile, "utf-8"));
848
810
  const upperKey = issueId.toUpperCase();
849
811
  if (data[upperKey]) {
850
812
  delete data[upperKey];
851
- await writeFile$1(statusFile, JSON.stringify(data, null, 2));
813
+ await writeFile(statusFile, JSON.stringify(data, null, 2));
852
814
  }
853
815
  }
854
816
  return stepOk(step, ["Review status cleared (direct)"]);
@@ -904,4 +866,4 @@ async function resetIssueToCanceledImpl(ctx) {
904
866
  //#endregion
905
867
  export { deepWipe as a, closeOut as i, cancelIssueWorkflow as n, resetToTodo as o, close as r, verifyBranchMergedImpl as s, approve as t };
906
868
 
907
- //# sourceMappingURL=workflows-B8ROFlfw.js.map
869
+ //# sourceMappingURL=workflows-C9WmILql.js.map
@@ -0,0 +1,2 @@
1
+ import { a as deepWipe, i as closeOut } from "./workflows-C9WmILql.js";
2
+ export { closeOut, deepWipe };
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Or as init_errors, vr as FsError } from "./config-yaml-Ciyp2mYe.js";
3
- import { i as init_settings, t as areMemoryObservationsEnabled } from "./settings-DP2OYLXL.js";
2
+ import { ir as FsError, mr as init_errors } from "./config-yaml-DvyMuOle.js";
3
+ import { i as init_settings, t as areMemoryObservationsEnabled } from "./settings-BZ5m1UCl.js";
4
4
  import { Effect } from "effect";
5
5
  import { existsSync } from "fs";
6
6
  import { join } from "path";
@@ -238,4 +238,4 @@ var init_workspace = __esmMin((() => {
238
238
  //#endregion
239
239
  export { readCavemanVariant as a, injectMemoryHookSettings as i, init_workspace as n, injectCavemanSettings as r, determineCavemanVariant as t };
240
240
 
241
- //# sourceMappingURL=workspace-DhTDA8nB.js.map
241
+ //# sourceMappingURL=workspace-BVl4rihN.js.map
@@ -1,3 +1,3 @@
1
- import { i as injectMemoryHookSettings, n as init_workspace, r as injectCavemanSettings, t as determineCavemanVariant } from "./workspace-DhTDA8nB.js";
1
+ import { i as injectMemoryHookSettings, n as init_workspace, r as injectCavemanSettings, t as determineCavemanVariant } from "./workspace-BVl4rihN.js";
2
2
  init_workspace();
3
3
  export { determineCavemanVariant, injectCavemanSettings, injectMemoryHookSettings };
@@ -25,4 +25,4 @@ var init_workspace_config = __esmMin((() => {}));
25
25
  //#endregion
26
26
  export { init_workspace_config as n, replacePlaceholdersSync as r, getDefaultWorkspaceConfigSync as t };
27
27
 
28
- //# sourceMappingURL=workspace-config-BAAsAv-o.js.map
28
+ //# sourceMappingURL=workspace-config-cEGcO6UT.js.map
@@ -1,3 +1,3 @@
1
- import { a as removeWorkspace, d as copyOverdeckSettingsToWorkspaceSync, i as preTrustDirectory, o as stopWorkspaceDocker, r as init_workspace_manager, s as preTrustDirectorySync, t as createWorkspace } from "./workspace-manager-DsN52IMG.js";
1
+ import { a as removeWorkspace, d as copyOverdeckSettingsToWorkspaceSync, i as preTrustDirectory, o as stopWorkspaceDocker, r as init_workspace_manager, s as preTrustDirectorySync, t as createWorkspace } from "./workspace-manager-hLUv3ADC.js";
2
2
  init_workspace_manager();
3
3
  export { copyOverdeckSettingsToWorkspaceSync, createWorkspace, preTrustDirectory, preTrustDirectorySync, removeWorkspace, stopWorkspaceDocker };
@@ -1,12 +1,12 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Mr as CACHE_AGENTS_DIR, Nr as CACHE_RULES_DIR, Or as init_errors, Wr as SKILLS_DIR, f as loadConfigSync, t as init_config_yaml, ti as init_paths, vr as FsError, wr as ProcessSpawnError } from "./config-yaml-Ciyp2mYe.js";
3
- import { a as PAN_DIRNAME, c as PAN_SESSIONS_FILENAME, i as PAN_CONTINUE_FILENAME, n as PAN_CONTEXT_FILENAME, s as PAN_FEEDBACK_DIRNAME } from "./types-DqeBMmJN.js";
4
- import { t as init_pan_dir } from "./pan-dir-Rw17YjT1.js";
5
- import { n as init_workspace_config, r as replacePlaceholdersSync, t as getDefaultWorkspaceConfigSync } from "./workspace-config-BAAsAv-o.js";
6
- import { n as init_tunnel, r as removeTunnelIngress, t as addTunnelIngress } from "./tunnel-DTng1rfQ.js";
7
- import { i as init_hume, n as createHumeConfig, r as deleteHumeConfig } from "./hume-DSJt5eA_.js";
8
- import { a as renderDevcontainerSync, i as processTemplatesSync, n as createWorkspacePlaceholdersSync, o as sanitizeComposeFileSync, r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-D8ylupco.js";
9
- import { n as init_docker, r as stopWorkspaceDockerPromise, t as getContainersReferencingWorkspacePathPromise } from "./docker-ClwPQaba.js";
2
+ import { Ar as SKILLS_DIR, Vr as init_paths, f as loadConfigSync, ir as FsError, mr as init_errors, t as init_config_yaml, ur as ProcessSpawnError, vr as CACHE_AGENTS_DIR, yr as CACHE_RULES_DIR } from "./config-yaml-DvyMuOle.js";
3
+ import { a as PAN_DIRNAME, c as PAN_SESSIONS_FILENAME, i as PAN_CONTINUE_FILENAME, n as PAN_CONTEXT_FILENAME, s as PAN_FEEDBACK_DIRNAME } from "./types-hraoaQIp.js";
4
+ import { t as init_pan_dir } from "./pan-dir-DeVUgwA7.js";
5
+ import { n as init_workspace_config, r as replacePlaceholdersSync, t as getDefaultWorkspaceConfigSync } from "./workspace-config-cEGcO6UT.js";
6
+ import { n as init_tunnel, r as removeTunnelIngress, t as addTunnelIngress } from "./tunnel-B2vxjx_b.js";
7
+ import { i as init_hume, n as createHumeConfig, r as deleteHumeConfig } from "./hume-BEq0bUDg.js";
8
+ import { a as renderDevcontainerSync, i as processTemplatesSync, n as createWorkspacePlaceholdersSync, o as sanitizeComposeFileSync, r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-CtUgrVKW.js";
9
+ import { n as init_docker, r as stopWorkspaceDockerPromise, t as getContainersReferencingWorkspacePathPromise } from "./docker-BK7HIcBj.js";
10
10
  import { Effect } from "effect";
11
11
  import { copyFileSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, symlinkSync, unlinkSync, writeFileSync } from "fs";
12
12
  import { basename, dirname, extname, join, relative, resolve } from "path";
@@ -826,13 +826,20 @@ function ensurePolyrepoWorkspaceGitignoreSync(workspacePath, repos) {
826
826
  const entry = `${repo.name}/`;
827
827
  if (!normalizedLines.includes(entry) && !normalizedLines.includes(repo.name)) added.push(entry);
828
828
  }
829
- if (added.length === 0 && removed.length === 0) return {
829
+ const addRuntimeEntry = !normalizedLines.includes(".overdeck/") && !normalizedLines.includes(".overdeck");
830
+ if (added.length === 0 && !addRuntimeEntry && removed.length === 0) return {
830
831
  added,
831
832
  removed
832
833
  };
833
834
  if (content && !content.endsWith("\n")) content += "\n";
834
- if (!normalizedLines.some((l) => l.includes("Polyrepo") || l.includes("polyrepo"))) content += "\n# Polyrepo sub-repositories\n";
835
- content += added.join("\n") + "\n";
835
+ if (added.length > 0) {
836
+ if (!normalizedLines.some((l) => l.includes("Polyrepo") || l.includes("polyrepo"))) content += "\n# Polyrepo sub-repositories\n";
837
+ content += added.join("\n") + "\n";
838
+ }
839
+ if (addRuntimeEntry) {
840
+ content += "\n# Overdeck workspace runtime (PAN-2541: durable state lives on overdeck-state)\n.overdeck/\n";
841
+ added.push(".overdeck/");
842
+ }
836
843
  writeFileSync(gitignorePath, content, "utf-8");
837
844
  return {
838
845
  added,
@@ -1061,7 +1068,7 @@ async function createWorkspacePromise(options) {
1061
1068
  await execAsync$1(`cp -r "${mainTldrDir}" "${workspaceTldrDir}"`);
1062
1069
  result.steps.push("Copied TLDR index from main branch");
1063
1070
  }
1064
- const { getTldrDaemonServiceSync } = await import("./tldr-daemon-BJA7TkqS.js");
1071
+ const { getTldrDaemonServiceSync } = await import("./tldr-daemon-DL566HbH.js");
1065
1072
  const tldrService = getTldrDaemonServiceSync(workspacePath, venvPath);
1066
1073
  await tldrService.start(true);
1067
1074
  result.steps.push("Started TLDR daemon");
@@ -1182,7 +1189,7 @@ async function createWorkspacePromise(options) {
1182
1189
  result.steps.push("Pre-trusted workspace in Claude Code");
1183
1190
  } catch {}
1184
1191
  try {
1185
- const { determineCavemanVariant, injectCavemanSettings } = await import("./workspace-DSjUJaJN.js");
1192
+ const { determineCavemanVariant, injectCavemanSettings } = await import("./workspace-DuUdndHe.js");
1186
1193
  const cavemanConfig = loadConfigSync().config.caveman;
1187
1194
  const variant = determineCavemanVariant(cavemanConfig);
1188
1195
  await Effect.runPromise(injectCavemanSettings(workspacePath, variant));
@@ -1198,7 +1205,7 @@ async function createWorkspacePromise(options) {
1198
1205
  result.steps.push(`Overdeck settings copy skipped: ${settingsErr instanceof Error ? settingsErr.message : String(settingsErr)}`);
1199
1206
  }
1200
1207
  try {
1201
- const { injectMemoryHookSettings } = await import("./workspace-DSjUJaJN.js");
1208
+ const { injectMemoryHookSettings } = await import("./workspace-DuUdndHe.js");
1202
1209
  await injectMemoryHookSettings(workspacePath);
1203
1210
  result.steps.push("Injected memory hooks into .claude/settings.json");
1204
1211
  } catch (memoryHookErr) {
@@ -1250,7 +1257,7 @@ async function removeWorkspacePromise(options) {
1250
1257
  }
1251
1258
  const venvPath = join(workspacePath, ".venv");
1252
1259
  if (existsSync(venvPath)) try {
1253
- const { getTldrDaemonServiceSync } = await import("./tldr-daemon-BJA7TkqS.js");
1260
+ const { getTldrDaemonServiceSync } = await import("./tldr-daemon-DL566HbH.js");
1254
1261
  await getTldrDaemonServiceSync(workspacePath, venvPath).stop();
1255
1262
  result.steps.push("Stopped TLDR daemon");
1256
1263
  } catch (error) {
@@ -1372,4 +1379,4 @@ var init_workspace_manager = __esmMin((() => {
1372
1379
  //#endregion
1373
1380
  export { removeWorkspace as a, relocateVenvScripts as c, copyOverdeckSettingsToWorkspaceSync as d, ensurePanGitignoreSync as f, preTrustDirectory as i, detectPlatform as l, getContainersReferencingWorkspacePath as n, stopWorkspaceDocker as o, init_workspace_manager as r, preTrustDirectorySync as s, createWorkspace as t, init_platform as u };
1374
1381
 
1375
- //# sourceMappingURL=workspace-manager-DsN52IMG.js.map
1382
+ //# sourceMappingURL=workspace-manager-hLUv3ADC.js.map
@@ -1,5 +1,5 @@
1
1
  import { i as __require, o as __toESM } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Or as init_errors, mr as require_dist } from "./config-yaml-Ciyp2mYe.js";
2
+ import { er as require_dist, mr as init_errors } from "./config-yaml-DvyMuOle.js";
3
3
  import "effect";
4
4
  import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "fs";
5
5
  import { join } from "path";
@@ -70,4 +70,4 @@ function deleteWorkspaceMetadataSync(issueId) {
70
70
  //#endregion
71
71
  export { loadWorkspaceMetadataSync as a, listWorkspaceMetadataSync as i, deleteWorkspaceMetadataSync as n, saveWorkspaceMetadataSync as o, findRemoteWorkspaceMetadataSync as r, WORKSPACES_DIR as t };
72
72
 
73
- //# sourceMappingURL=workspace-metadata-DIL5_U4c.js.map
73
+ //# sourceMappingURL=workspace-metadata-CskwzzhL.js.map
@@ -1,2 +1,2 @@
1
- import { n as deleteWorkspaceMetadataSync } from "./workspace-metadata-DIL5_U4c.js";
1
+ import { n as deleteWorkspaceMetadataSync } from "./workspace-metadata-CskwzzhL.js";
2
2
  export { deleteWorkspaceMetadataSync };