@overdeck/desktop 0.45.21 → 0.45.22

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 (344) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-CJIFA8Vg.js → acceptance-criteria-BH7ac_1G.js} +2 -2
  3. package/server/{advancing-selfheal-CPOBO5ZS.js → advancing-selfheal-cSvXNZLZ.js} +6 -6
  4. package/server/{agent-gc-D6PUckBB.js → agent-gc-Dj2gncak.js} +4 -4
  5. package/server/{agent-state-BV_6RHnO.js → agent-state-Co5Sy2Fw.js} +1 -1
  6. package/server/{agent-state-service-DHwemt96.js → agent-state-service-CsQ07Pxe.js} +1 -1
  7. package/server/{agent-state-service-6MFQqnFy.js → agent-state-service-DistflNn.js} +5 -5
  8. package/server/{agents-DbrHWunF.js → agents-DXdHmRTC.js} +4 -4
  9. package/server/{agents-Czz6R57Z.js → agents-DyHKlq1I.js} +1 -1
  10. package/server/{archive-planning-BOnwJq8M.js → archive-planning-BvDuWNMo.js} +5 -5
  11. package/server/{archive-planning-MPpvQJL4.js → archive-planning-Cp_DC1j-.js} +1 -1
  12. package/server/{artifact-index-jobs-BOoySTKD.js → artifact-index-jobs-CDBFL4OU.js} +2 -2
  13. package/server/{backlog-auto-trigger-BUaFI44J.js → backlog-auto-trigger-DmA1IbYf.js} +3 -3
  14. package/server/{behavior-Dg-D8eBG.js → behavior-CGj16clS.js} +2 -2
  15. package/server/{briefing-freshness-OouGbJ7d.js → briefing-freshness-C12WgkaB.js} +2 -2
  16. package/server/{build-info-Cv6CI7Gu.js → build-info-BRpqQvNd.js} +1 -1
  17. package/server/{build-info-27NlbKhV.js → build-info-NU3KbXYw.js} +3 -3
  18. package/server/{checkpoint-manager-D64fCC4p.js → checkpoint-manager-CTPjAmtH.js} +2 -2
  19. package/server/{checkpoint-manager-C7mFCY_E.js → checkpoint-manager-rOgT98WY.js} +1 -1
  20. package/server/checkpoint-worker.js +1 -1
  21. package/server/{checkpoints-DwZqT2qQ.js → checkpoints-B5jFNi2G.js} +1 -1
  22. package/server/{checkpoints-Vh-J15ge.js → checkpoints-BJum14fs.js} +2 -2
  23. package/server/{claude-hooks-provision-CS5W_dhI.js → claude-hooks-provision-BhwWK-TQ.js} +1 -1
  24. package/server/{claude-hooks-provision-BVLGfHrv.js → claude-hooks-provision-D7p5WcKZ.js} +2 -2
  25. package/server/{claude-permissions-C2OrLYKL.js → claude-permissions-nSFKH78M.js} +2 -2
  26. package/server/{claude-settings-overlay-DX-fMFpC.js → claude-settings-overlay-BI_UIke0.js} +2 -2
  27. package/server/{claude-settings-overlay-DWXjafJh.js → claude-settings-overlay-DHBwjS1X.js} +1 -1
  28. package/server/cli-BRORS9qY.js +3 -0
  29. package/server/{cli-mvpEOb3w.js → cli-CbKNkFE5.js} +9 -9
  30. package/server/{cliproxy-Dvsr4ZkW.js → cliproxy-Brf_5MuG.js} +2 -2
  31. package/server/{cliproxy-7g1nObvB.js → cliproxy-bONZDBbC.js} +1 -1
  32. package/server/{close-issue-8F6uawYj.js → close-issue-CxReRxIc.js} +5 -5
  33. package/server/{closed-issue-reaper-BaYQYF6w.js → closed-issue-reaper-CQ3kqha7.js} +9 -9
  34. package/server/{closed-issue-reaper-BhV-r-tC.js → closed-issue-reaper-DXP2Xyv3.js} +1 -1
  35. package/server/{codex-D_UBEOwL.js → codex-CbmztVcc.js} +9 -6
  36. package/server/{codex-BBeZ8c3s.js → codex-DNyiQDKW.js} +1 -1
  37. package/server/{codex-parser-BTzlOZiV.js → codex-parser-jl8AeAmB.js} +2 -2
  38. package/server/{config-nAB_F-Gp.js → config-BJKocXKd.js} +1 -1
  39. package/server/{config-G1TOMJZA.js → config-DeTsoZdR.js} +2 -2
  40. package/server/{config-CrduXs4a.js → config-q4Gvd8dq.js} +2 -2
  41. package/server/{config-yaml-Ciyp2mYe.js → config-yaml-ig8Nwtiw.js} +124 -27
  42. package/server/{conflict-gate-BLUNMs1i.js → conflict-gate-CFqPVxEg.js} +3 -3
  43. package/server/{conflict-gate-BKalpcjL.js → conflict-gate-CHU9K1vU.js} +1 -1
  44. package/server/{context-layers-Cg9ZgVfx.js → context-layers-15gDOk20.js} +3 -3
  45. package/server/{context-layers-YNpf6Q_I.js → context-layers-DlQKkHH2.js} +2 -2
  46. package/server/{control-settings-D_79A6gp.js → control-settings-D_odMIaC.js} +4 -4
  47. package/server/{conversation-compaction-DiuZbIUB.js → conversation-compaction-B6YSRLda.js} +8 -8
  48. package/server/{conversation-compaction-CMIeWW4_.js → conversation-compaction-CN4-5YYt.js} +1 -1
  49. package/server/{conversation-service-DQybSPUK.js → conversation-service-C3avRVEr.js} +6 -6
  50. package/server/{conversation-service-CWk8mEym.js → conversation-service-Dq33SYEj.js} +1 -1
  51. package/server/{conversations-BJ-t3BRm.js → conversations-H9if0bCQ.js} +1 -1
  52. package/server/{conversations-BUgGvqVL.js → conversations-bYpM9-kZ.js} +4 -4
  53. package/server/{cost-Drm7qeD5.js → cost-Codk1pc2.js} +2 -2
  54. package/server/{cost-sync-DzHP6zaR.js → cost-sync-D_cre6WM.js} +3 -3
  55. package/server/{cost-jJ2cgDcG.js → cost-wH46-WsJ.js} +3 -3
  56. package/server/{dag-DIji6O2b.js → dag-CJpgf9A3.js} +2 -2
  57. package/server/{dangerous-git-ops-BebB-61h.js → dangerous-git-ops-D6AF-Hg_.js} +1 -1
  58. package/server/dashboard-db-worker.js +7 -7
  59. package/server/{deacon-pleYrvIm.js → deacon-B8HbQdqU.js} +3 -3
  60. package/server/{deacon-1s7bM5zn.js → deacon-CkT_kznS.js} +1377 -407
  61. package/server/{deacon-nudge-log-C5VCKtyi.js → deacon-nudge-log-D6K9K-rE.js} +3 -3
  62. package/server/{deacon-swarm-DmA3rJ7k.js → deacon-swarm-BryRr6AO.js} +13 -13
  63. package/server/deacon-swarm-CV54eNmU.js +2 -0
  64. package/server/deacon.js +8 -8
  65. package/server/{deploy-patrol-DmM6F-yw.js → deploy-patrol-1IrZxicY.js} +6 -6
  66. package/server/{deploy-window-ClLq1RYf.js → deploy-window-7ZYHh7Zp.js} +1 -1
  67. package/server/{deploy-window-jw4S_Y-c.js → deploy-window-wDf4UgHt.js} +6 -6
  68. package/server/{dev-supervisor-Do2Stz49.js → dev-supervisor-C7p9kEpc.js} +2 -2
  69. package/server/{devcontainer-renderer-D8ylupco.js → devcontainer-renderer-CNmQy0pL.js} +3 -3
  70. package/server/{dist-yfR7G1BL.js → dist-D-Ed5yVw.js} +1 -1
  71. package/server/dist-j64RzSrQ.js +3 -0
  72. package/server/{docker-ClwPQaba.js → docker-BCZ89M9X.js} +2 -2
  73. package/server/{dod-BLphkhjs.js → dod-DbJLYcHv.js} +1 -1
  74. package/server/{ensure-devcontainer-BA3bICoY.js → ensure-devcontainer-Cs6W9Yzj.js} +1 -1
  75. package/server/{ensure-devcontainer-CFpQatOc.js → ensure-devcontainer-V5JWaAva.js} +4 -4
  76. package/server/{esm-shims-BZw-fTQ6.js → esm-shims-dTeNdq7X.js} +1 -1
  77. package/server/{event-store-DABarGNz.js → event-store-CpBGsO6_.js} +1 -1
  78. package/server/{event-store-BVnON3vf.js → event-store-TnWdydfB.js} +3 -3
  79. package/server/{events-CmERlnwn.js → events-DSUdR-04.js} +3 -3
  80. package/server/{events-LGeUehYW.js → events-Dsuv6qyB.js} +1 -1
  81. package/server/{factory-CQNprtHe.js → factory-BMrK4TrE.js} +4 -4
  82. package/server/{feature-registry-population-D9Z3tYSa.js → feature-registry-population-B-CI9hgE.js} +4 -4
  83. package/server/{feature-registry-storage-BWymOgXE.js → feature-registry-storage-B972ph_A.js} +2 -2
  84. package/server/{features--fOza5g5.js → features-Bc-Bmiye.js} +2 -2
  85. package/server/{feedback-target-Dn9vfPpz.js → feedback-target-DS6NUuSs.js} +1 -1
  86. package/server/{feedback-target-Dqik2WTe.js → feedback-target-DZ-iAnAa.js} +7 -7
  87. package/server/{feedback-writer-Wlq5-qgS.js → feedback-writer-BXP6g75N.js} +4 -4
  88. package/server/{feedback-writer-DDQNV8uc.js → feedback-writer-Bx5z11mF.js} +1 -1
  89. package/server/{flywheel-DPUc8r3V.js → flywheel-6WHU4O7A.js} +14 -14
  90. package/server/{flywheel-1Wd8WDlh.js → flywheel-COR0mbRI.js} +12 -12
  91. package/server/{flywheel-Q-38YhZG.js → flywheel-Ctr5uuvo.js} +1 -1
  92. package/server/{flywheel-merge-order-CeBuX0EJ.js → flywheel-merge-order-CNKAY489.js} +1 -1
  93. package/server/{flywheel-merge-order-4SqOXFAr.js → flywheel-merge-order-CTgHeg-W.js} +7 -7
  94. package/server/forge-B0_opi-V.js +2 -0
  95. package/server/{forge-DBbDpiYc.js → forge-B1S_KZv4.js} +2 -2
  96. package/server/{from-hh6vTBGl.js → from-DpwQ-sc3.js} +1 -1
  97. package/server/{fts-db-6ponMie2.js → fts-db-DmAcuCkV.js} +2 -2
  98. package/server/{fts-operations-KIRK165y.js → fts-operations-7d_RkmWp.js} +2 -2
  99. package/server/git-utils-Cc3FHDKd.js +198 -0
  100. package/server/{git-utils-DmF5xkj8.js → git-utils-CsKGnzFA.js} +1 -1
  101. package/server/{github-app-B3yfECo8.js → github-app-CDPtGF7J.js} +2 -2
  102. package/server/{github-app-CeSVFL6C.js → github-app-CU14oYzP.js} +1 -1
  103. package/server/{github-client-4A6FgA8O.js → github-client-CwBZZ3t7.js} +1 -1
  104. package/server/{github-client-Dslipypz.js → github-client-XjTJbBm7.js} +2 -2
  105. package/server/{github-pr-lookup-DBP0YHMr.js → github-pr-lookup-CFGeVhqv.js} +2 -2
  106. package/server/harness-binary-B2CTcD84.js +106 -0
  107. package/server/{harness-resolve-BGpO-OVM.js → harness-resolve-D5FVQTmy.js} +9 -15
  108. package/server/{health-events-CnwV_SSz.js → health-events-C1whmd58.js} +1 -1
  109. package/server/{health-events-CZGZ5I-A.js → health-events-DREeevle.js} +2 -2
  110. package/server/{hooks-DvX33gY_.js → hooks-B-HItBiS.js} +1 -1
  111. package/server/{hooks-CoNscX84.js → hooks-yxRsjk-z.js} +2 -2
  112. package/server/hume-BmhvfVbV.js +3 -0
  113. package/server/{hume-DSJt5eA_.js → hume-Dz_OymXE.js} +2 -2
  114. package/server/{idle-stack-reaper-5DVRoY6P.js → idle-stack-reaper-DrCv0OAG.js} +1 -1
  115. package/server/{idle-stack-reaper-BfL8HqYy.js → idle-stack-reaper-Yf34xXxY.js} +2 -2
  116. package/server/{in-flight-guard-tVGiI5ee.js → in-flight-guard-BoWm66Kh.js} +2 -2
  117. package/server/{infra-DN2wSxle.js → infra-D4iNWMA5.js} +4 -4
  118. package/server/{injection-DK9zh_HL.js → injection-BVNa4MQW.js} +1 -1
  119. package/server/{injection-DtlT8Akv.js → injection-D7T75Pye.js} +7 -7
  120. package/server/{inspect-agent-DKByUS_F.js → inspect-agent-BXCgNeZ4.js} +13 -9
  121. package/server/inspect-agent-Dq0z1k3H.js +2 -0
  122. package/server/{internal-token-7bYL5v6K.js → internal-token-C9DdEOKY.js} +1 -1
  123. package/server/{internal-token-DhfFiwW7.js → internal-token-CXsfxslp.js} +2 -2
  124. package/server/{io-BiM-7Zsx.js → io-DQR9PMgS.js} +3 -3
  125. package/server/{issue-closed-Dfw3QDyZ.js → issue-closed-DtmJM0D0.js} +7 -7
  126. package/server/{issue-lifecycle-ytsEdDlK.js → issue-lifecycle-8PSS9Anq.js} +1 -1
  127. package/server/{issue-lifecycle-B7HZWnTA.js → issue-lifecycle-CeyW_HoD.js} +21 -21
  128. package/server/{issue-service-singleton-D5EB5eYr.js → issue-service-singleton-DBZabEl7.js} +1 -1
  129. package/server/{issue-service-singleton-CPESc4Or.js → issue-service-singleton-D_RVYBuL.js} +8 -8
  130. package/server/{issues-XYtFMxrH.js → issues-pDW9VUNz.js} +2 -2
  131. package/server/{jsonl-parser-DJV2eZUP.js → jsonl-parser-C3HVNR5d.js} +3 -3
  132. package/server/{label-cleanup-CJ4m8iRU.js → label-cleanup-DPwiZlWo.js} +3 -3
  133. package/server/{label-reconciler-CNf3Ylm3.js → label-reconciler-Df1ZduPH.js} +4 -4
  134. package/server/{launcher-generator-5DJRiovn.js → launcher-generator-COgR2By1.js} +6 -6
  135. package/server/{layers-cZx7ibtV.js → layers-Cp1To4L8.js} +2 -2
  136. package/server/{lifecycle-CE7619Xw.js → lifecycle-CtPDcZ9u.js} +6 -6
  137. package/server/{lifecycle-io-CUpsxG0p.js → lifecycle-io-DmY2qwCn.js} +1 -1
  138. package/server/{lifecycle-io-DMurK4oM.js → lifecycle-io-taIb0PoH.js} +4 -4
  139. package/server/{linear-client-BLyN-NiP.js → linear-client-DsFkIxee.js} +2 -2
  140. package/server/{linear-client-Bj1l4FOA.js → linear-client-YwZMDIwQ.js} +1 -1
  141. package/server/memory-fts-worker.js +1 -1
  142. package/server/{merge-CwX2_AWm.js → merge-BwsyNRJV.js} +1 -1
  143. package/server/{merge-hSC2BENe.js → merge-C1t-bspg.js} +3 -3
  144. package/server/{merge-agent-CnORPiri.js → merge-agent-B-SnXOoc.js} +1 -1
  145. package/server/{merge-agent-DnBsms_V.js → merge-agent-DDiIjzk-.js} +369 -213
  146. package/server/{merge-batch-C2w2U2eK.js → merge-batch-Byt-QnEl.js} +1 -1
  147. package/server/{merge-blockers-DhRgh76x.js → merge-blockers-BYjeXrVN.js} +2 -2
  148. package/server/merge-ops-DwWCkSgo.js +2 -0
  149. package/server/{merge-rebase-CE-ZyOMY.js → merge-rebase-Cm6fXaZN.js} +2 -2
  150. package/server/{merge-set-DHkzPCJU.js → merge-set-6LEglm6o.js} +1 -1
  151. package/server/{merge-set-D7YNU1ZB.js → merge-set-DiISXcC-.js} +3 -3
  152. package/server/{merge-sync-CpGA9Kg7.js → merge-sync-B95_4in_.js} +1 -1
  153. package/server/{merge-sync-De1FYva5.js → merge-sync-Do8_q32h.js} +2 -2
  154. package/server/{merge-train-SvkRJZ-k.js → merge-train-CKana8EH.js} +3 -3
  155. package/server/{merge-train-deps-CECJTElu.js → merge-train-deps-BgmqwIfA.js} +4 -4
  156. package/server/{merge-verification-B3meGcXF.js → merge-verification-CqnUzGEK.js} +4 -4
  157. package/server/{multipart-parser-ByTMgYV5.js → multipart-parser-tdOQDJ3o.js} +2 -2
  158. package/server/{no-resume-mode-BnInAFKs.js → no-resume-mode-BWOSZjWd.js} +1 -1
  159. package/server/node_modules/.package-lock.json +5 -5
  160. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/README.md +3 -3
  161. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.d.ts.map +1 -1
  162. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js +2 -2
  163. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js.map +1 -1
  164. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +5 -5
  165. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeChildProcessSpawner.ts +6 -8
  166. package/server/{orphan-proposed-reconciler-CAfuWTA1.js → orphan-proposed-reconciler-DSvsJ5M7.js} +1 -1
  167. package/server/{orphan-proposed-reconciler-AxAGUouN.js → orphan-proposed-reconciler-xklgvNA7.js} +19 -12
  168. package/server/package-lock.json +6 -6
  169. package/server/package.json +1 -1
  170. package/server/{pan-dir-Rw17YjT1.js → pan-dir-DOcf6ug3.js} +4 -4
  171. package/server/{paths-FP8v3lTz.js → paths-DooHpt9p.js} +2 -2
  172. package/server/{pickup-xi3KTLaJ.js → pickup-CaskQ7j6.js} +2 -2
  173. package/server/{pipeline-membership-BtKMNY7v.js → pipeline-membership-1LGRjo-k.js} +11 -8
  174. package/server/{pipeline-notifier-BM2HLF7B.js → pipeline-notifier-B6FVsYF9.js} +2 -2
  175. package/server/{pipeline-notifier-dQ-U4NSb.js → pipeline-notifier-CZsrU_nj.js} +1 -1
  176. package/server/{project-pipelines-B59NfN44.js → project-pipelines-CtNG_rvs.js} +2 -2
  177. package/server/projects-BKkwpH6q.js +3 -0
  178. package/server/{prompts-CbqaVjbe.js → prompts-EvhMeeHG.js} +2 -2
  179. package/server/{providers-d3pwXGVE.js → providers-BDDPULlp.js} +7 -7
  180. package/server/providers-DNSQqy2V.js +3 -0
  181. package/server/public/assets/{chunk-BO2N2NFS-BxYSL7J-.js → chunk-BO2N2NFS-sym_ufXe.js} +4 -4
  182. package/server/public/assets/{diagram-OG6HWLK6-C_F9Q2as.js → diagram-OG6HWLK6-CQJPBNBu.js} +1 -1
  183. package/server/public/assets/{dist-DQNg4CiF.js → dist-Bio7THQU.js} +1 -1
  184. package/server/public/assets/{dist-CLSlc6cV.js → dist-DukGS2YZ.js} +3 -3
  185. package/server/public/assets/{ganttDiagram-6RSMTGT7-Cq0my-0C.js → ganttDiagram-6RSMTGT7-D4lWwte3.js} +1 -1
  186. package/server/public/assets/{highlighted-body-OFNGDK62-eZC03dGh.js → highlighted-body-OFNGDK62-CaLboCt5.js} +1 -1
  187. package/server/public/assets/{index-C6NLz_1S.css → index-Bdc4V9ba.css} +1 -1
  188. package/server/public/assets/{index-SLYGA8AQ.js → index-Bwejq-5s.js} +147 -145
  189. package/server/public/assets/{linear-6Fi3qnGg.js → linear-qUWmMZ-c.js} +1 -1
  190. package/server/public/assets/mermaid-GHXKKRXX-B5v_r7cI.js +1 -0
  191. package/server/public/assets/{pieDiagram-4H26LBE5-Dpmc6xsv.js → pieDiagram-4H26LBE5-C4zYulEm.js} +1 -1
  192. package/server/public/assets/{prod-ojHllFvN.js → prod-C8VtLuWC.js} +4 -4
  193. package/server/public/assets/{quadrantDiagram-W4KKPZXB-Ulr9gON5.js → quadrantDiagram-W4KKPZXB-qP04zyZC.js} +1 -1
  194. package/server/public/assets/{sankeyDiagram-5OEKKPKP-CwdHGXfL.js → sankeyDiagram-5OEKKPKP-eMPTX_cG.js} +1 -1
  195. package/server/public/assets/{xychartDiagram-2RQKCTM6-r-bEDzJh.js → xychartDiagram-2RQKCTM6-Dme1PIt6.js} +1 -1
  196. package/server/public/index.html +54 -10
  197. package/server/{pull-requests-CjjPj7v6.js → pull-requests-8z2N1UOV.js} +3 -3
  198. package/server/{pull-requests-D3N6HQzI.js → pull-requests-By_BteaL.js} +1 -1
  199. package/server/{queries-B5hl7lMQ.js → queries-ZABd5aXP.js} +95 -71
  200. package/server/rally-OSJXdiHK.js +3 -0
  201. package/server/{rally-api-DGaFz5L5.js → rally-api-DqKqIMNR.js} +2 -2
  202. package/server/{rally-api-CKr0O4DJ.js → rally-api-xHazRk0d.js} +1 -1
  203. package/server/{rally-client-Cqf6EX_r.js → rally-client-CGWEHaPd.js} +1 -1
  204. package/server/{rally-client-SVbjGvqj.js → rally-client-COYz1vYR.js} +4 -4
  205. package/server/{rally-Dp0Gb1DN.js → rally-i_goYmiA.js} +3 -3
  206. package/server/reap-terminal-sessions-CaMkFOIH.js +4 -0
  207. package/server/{reap-terminal-sessions-CjqRAGw7.js → reap-terminal-sessions-DG9eiMVz.js} +11 -28
  208. package/server/{rebuild-stack-DjdpALr1.js → rebuild-stack-CKjJAI8L.js} +1 -1
  209. package/server/{rebuild-stack-DHqCLvLX.js → rebuild-stack-JUm0jqYP.js} +6 -6
  210. package/server/{reconstruct-cache-BqrCQt0o.js → reconstruct-cache-wU79aCee.js} +6 -6
  211. package/server/record-rwK-nKv_.js +3 -0
  212. package/server/{record-update-RviRDSNs.js → record-update-Crz74r-6.js} +2 -2
  213. package/server/{record-update-BlB8mpKO.js → record-update-D3N6WMFR.js} +1 -1
  214. package/server/{recovery-trip-l1Hsi37x.js → recovery-trip-DkzJSej9.js} +2 -2
  215. package/server/{release-engine-CSI4K6Oj.js → release-engine-DMINVN8S.js} +5 -5
  216. package/server/{release-set-BywwggrE.js → release-set-DeUSOEHy.js} +3 -3
  217. package/server/{remote-DYziAkiZ.js → remote-Dr5kGYSZ.js} +3 -3
  218. package/server/{remote-agents-CZ2rc8I0.js → remote-agents-Ct_WOyke.js} +6 -6
  219. package/server/{remote-agents-BNORDWAX.js → remote-agents-D6O_zETW.js} +1 -1
  220. package/server/{remote-cnoeuDWn.js → remote-b-c5bOce.js} +3 -3
  221. package/server/{remote-completion-W67FNQ-A.js → remote-completion-Dca3hAaa.js} +13 -13
  222. package/server/resume-wZZsWtzz.js +3 -0
  223. package/server/{review-agent-CSswH985.js → review-agent-CCum8sGe.js} +1 -1
  224. package/server/{review-agent-CqSqSHkU.js → review-agent-CThvgK2r.js} +23 -23
  225. package/server/{review-artifacts-BBgnd5df.js → review-artifacts-CXywD0F2.js} +5 -5
  226. package/server/{review-context-Ctp9BdNJ.js → review-context-OYfKUprb.js} +8 -8
  227. package/server/{review-status-DXeqFpk5.js → review-status-Bnh-rdkY.js} +1 -1
  228. package/server/{review-status-CCgPVK1h.js → review-status-DFRjDFef.js} +21 -37
  229. package/server/{review-status-enrichment-DtDRGpst.js → review-status-enrichment-crNAtIpL.js} +3 -3
  230. package/server/review-status-source-CxuEjLGg.js +39 -0
  231. package/server/{review-status-sync-C792ksoJ.js → review-status-sync-D60PJWNL.js} +1 -1
  232. package/server/{review-status-sync-jnLgd04F.js → review-status-sync-DpAMD_WO.js} +2 -2
  233. package/server/{review-verdict-feedback-CMsIpTpy.js → review-verdict-feedback-CpUZl5aE.js} +7 -7
  234. package/server/{review-verdict-feedback-D5lW0o3k.js → review-verdict-feedback-JImjut0z.js} +1 -1
  235. package/server/{rollup-B3kQmNpl.js → rollup-CZ02qgxk.js} +1 -1
  236. package/server/{rollup-CLj_AK9f.js → rollup-SyuF09e4.js} +8 -8
  237. package/server/{scanner-C4NeC4FE.js → scanner-Br0Z5S6R.js} +7 -7
  238. package/server/{sequence-io-Ce-6grIY.js → sequence-io-fxU0DlwW.js} +4 -4
  239. package/server/{sequencer-agent-Bpz0yGmG.js → sequencer-agent-B5YC5XVP.js} +5 -5
  240. package/server/server.js +583 -387
  241. package/server/{service-CqAY8Kmk.js → service-Bagb90KZ.js} +150 -47
  242. package/server/{session-fork-uNo4rMRA.js → session-fork-BqQxd-V6.js} +2 -2
  243. package/server/{session-history-DUehL3KN.js → session-history-XdS0JKp3.js} +4 -4
  244. package/server/{settings-DP2OYLXL.js → settings-BNbocWOg.js} +3 -3
  245. package/server/settings-BlUsVaUc.js +2 -0
  246. package/server/{settings-D9grjmaP.js → settings-uLc6DEYI.js} +2 -2
  247. package/server/{shadow-engineering-Bi_oIMtF.js → shadow-engineering-D4X_s3fA.js} +3 -3
  248. package/server/{shadow-state-a_ztFBJe.js → shadow-state-C_NkP-sa.js} +2 -2
  249. package/server/{shadow-state-CDxEuPlE.js → shadow-state-CbvsN3qG.js} +1 -1
  250. package/server/{shadow-utils-CyOg6_Xq.js → shadow-utils-CYMRPeRT.js} +2 -2
  251. package/server/{ship-log-DDcueaIR.js → ship-log-__QtAFXG.js} +1 -1
  252. package/server/{smart-compaction--Oj65Uov.js → smart-compaction-CLZOWin1.js} +7 -7
  253. package/server/{smart-compaction-C1_VVLEd.js → smart-compaction-jdMkG1vo.js} +1 -1
  254. package/server/{spawn-planning-session-LFtK2QCE.js → spawn-planning-session-8D6mE033.js} +1 -1
  255. package/server/{spawn-planning-session-AiUSsBnH.js → spawn-planning-session-D5OXo8pT.js} +19 -15
  256. package/server/{specialist-completion-qOgqdqXH.js → specialist-completion-CqmduO92.js} +1 -1
  257. package/server/{specialist-context-gjj8Z4Ii.js → specialist-context-CJ-QjFR-.js} +5 -5
  258. package/server/{specialist-handoff-logger-BsBNvVZv.js → specialist-handoff-logger-Dnjlwt7g.js} +2 -2
  259. package/server/{specialist-logs-CSLtvPx6.js → specialist-logs-CQnKzuZs.js} +3 -3
  260. package/server/{specialists-DAegTvRt.js → specialists-Bg9v4z3F.js} +122 -94
  261. package/server/{specialists-CYRwELzc.js → specialists-CwZHb5cb.js} +18 -18
  262. package/server/{specialists-D0VBf8g_.js → specialists-D0gGXMZx.js} +1 -1
  263. package/server/{specialists-C6WkeKFK.js → specialists-Dqe6_HE5.js} +1 -1
  264. package/server/specs-BhOKBzqk.js +3 -0
  265. package/server/{src-OLoJhUiJ.js → src-BMMoA_ba.js} +6 -6
  266. package/server/{src-BqTcrfO_.js → src-Bqdtd6po.js} +3 -3
  267. package/server/{src-Dpq1yFIl.js → src-k039WVYY.js} +337 -4
  268. package/server/{stack-health-I713ELld.js → stack-health-Bd06frFn.js} +1 -1
  269. package/server/{stack-health-DV_f-lK0.js → stack-health-C-ifC7b0.js} +2 -2
  270. package/server/{stale-task-claims-CQSKZVq0.js → stale-task-claims-L7pJkQFL.js} +4 -4
  271. package/server/{staleness-BbsGxmF2.js → staleness-BID1BKdr.js} +1 -1
  272. package/server/{staleness-zGp4P1hd.js → staleness-_Tr-GwdA.js} +1 -1
  273. package/server/{state-home-DixkE-up.js → state-home-CONQvZR0.js} +36 -23
  274. package/server/state-migrate-BeBW0KXA.js +478 -0
  275. package/server/{stuck-remediation-BWkK_O7A.js → stuck-remediation-CKnIryGT.js} +20 -18
  276. package/server/{stuck-remediation-CTPRC2S5.js → stuck-remediation-CsGD5Ksb.js} +1 -1
  277. package/server/{substrate-bug-weights-service-DXd0ID83.js → substrate-bug-weights-service-CpIZILj9.js} +3 -3
  278. package/server/{summary-fork-CdLn8Chr.js → summary-fork-agEMsPSo.js} +2 -2
  279. package/server/{summary-fork-f3DpgjXh.js → summary-fork-bX6ax6X7.js} +8 -8
  280. package/server/supervisor-COVHrBTg.js +2 -0
  281. package/server/{supervisor-Ch8CDuoF.js → supervisor-Ctt4eRYz.js} +3 -3
  282. package/server/{swarm-readiness-C9P2iPap.js → swarm-readiness-DdmJVX7y.js} +3 -3
  283. package/server/{system-prerequisites-DkoQBn1q.js → system-prerequisites-DSXBvffY.js} +24 -44
  284. package/server/{teardown-workspace-D-5yMyit.js → teardown-workspace-DDCf5n-a.js} +15 -15
  285. package/server/{test-agent-queue-BwpUpu-o.js → test-agent-queue-BJZ9Nfcc.js} +6 -6
  286. package/server/{test-verdict-BRiSu7eW.js → test-verdict-Cp5tljlJ.js} +1 -1
  287. package/server/{test-verdict-BQ1yx7d4.js → test-verdict-D_-sXIz_.js} +1 -1
  288. package/server/{tldr-daemon-BJA7TkqS.js → tldr-daemon-B8_oT5gx.js} +1 -1
  289. package/server/{tldr-daemon-DjxP5g6Y.js → tldr-daemon-BQFmmFp0.js} +2 -2
  290. package/server/{tmux-HQLgwo_C.js → tmux-BAvtac_u.js} +1 -1
  291. package/server/{tmux-y1blSxks.js → tmux-L5LgvGLp.js} +2 -2
  292. package/server/{token-LUrbM9sU.js → token-BkQLy4yS.js} +2 -2
  293. package/server/token-util-BArZLN6w.js +3 -0
  294. package/server/{token-util-BZaDAQ8S.js → token-util-DI8sGlmF.js} +1 -1
  295. package/server/{tracker-config-DSFZBdXP.js → tracker-config-DdT-nUAM.js} +2 -2
  296. package/server/{tracker-utils-DiceZN3a.js → tracker-utils-CawsPSS2.js} +2 -2
  297. package/server/{tracker-utils-WtP_V-yn.js → tracker-utils-DV3h1FYG.js} +1 -1
  298. package/server/{traefik-connect-BXqfOP4-.js → traefik-connect-C6mJckNs.js} +1 -1
  299. package/server/{tunnel-WcJImbAC.js → tunnel-BIFl98rc.js} +1 -1
  300. package/server/{tunnel-DTng1rfQ.js → tunnel-IdK1iTHx.js} +3 -3
  301. package/server/{types-BjaZ1oqH.js → types-7-GnJn0t.js} +1 -1
  302. package/server/{types-DqeBMmJN.js → types-hraoaQIp.js} +1 -1
  303. package/server/{uat-train-Wismge7h.js → uat-train-0Ujk8GCv.js} +1 -1
  304. package/server/{uat-train-BpLnp7Cx.js → uat-train-j0cPeMSj.js} +25 -25
  305. package/server/{validation-BA4e5EGm.js → validation-CabEISJT.js} +4 -4
  306. package/server/{validation-CUWamZ4X.js → validation-DcAgXTQp.js} +1 -1
  307. package/server/{verification-artifact-Dr_0g9nb.js → verification-artifact-BuTA1QbL.js} +1 -1
  308. package/server/{verification-artifact-CrbI4tJE.js → verification-artifact-Ck1tefmz.js} +1 -1
  309. package/server/{verification-runner-Dcksl_P-.js → verification-runner-DlJezzef.js} +1 -1
  310. package/server/{verification-runner-gAzh3cVD.js → verification-runner-FiuAZ-H2.js} +15 -14
  311. package/server/{vtt-parser-3VZKsmSm.js → vtt-parser-BnRsYzcz.js} +1 -1
  312. package/server/{work-agent-prompt-ULdcANl5.js → work-agent-prompt-DLthEPAq.js} +12 -11
  313. package/server/{workflows-B8ROFlfw.js → workflows-BZNNYkGC.js} +18 -18
  314. package/server/workflows-C4mR0Reb.js +2 -0
  315. package/server/{workspace-DSjUJaJN.js → workspace-3IC-UkAi.js} +1 -1
  316. package/server/{workspace-DhTDA8nB.js → workspace-D9ppycdg.js} +3 -3
  317. package/server/{workspace-config-BAAsAv-o.js → workspace-config-Bigl_-Lk.js} +1 -1
  318. package/server/{workspace-manager-CcujONCR.js → workspace-manager-B1WOfKvB.js} +1 -1
  319. package/server/{workspace-manager-DsN52IMG.js → workspace-manager-ClkCIWTe.js} +13 -13
  320. package/server/{workspace-metadata-CftOpNLs.js → workspace-metadata-BE0efUv_.js} +1 -1
  321. package/server/{workspace-metadata-DIL5_U4c.js → workspace-metadata-tiSRIWJP.js} +2 -2
  322. package/server/{workspaces-Dmlh1YXm.js → workspaces-CFPcL0vl.js} +96 -96
  323. package/sync-sources/skills/pan-start/SKILL.md +23 -0
  324. package/server/cli-ChErG518.js +0 -3
  325. package/server/deacon-swarm-uudlSCLM.js +0 -2
  326. package/server/dist-BEDL2alY.js +0 -3
  327. package/server/forge-DbhJyH6u.js +0 -2
  328. package/server/git-utils-Bkxzr1Xf.js +0 -129
  329. package/server/hume-BrA1tUuk.js +0 -3
  330. package/server/inspect-agent-CyXNo9fM.js +0 -2
  331. package/server/merge-ops-BpTtuO8x.js +0 -2
  332. package/server/projects-IRHJIPYC.js +0 -3
  333. package/server/providers-BqCdTryq.js +0 -3
  334. package/server/public/assets/mermaid-GHXKKRXX-BNwFoQsf.js +0 -1
  335. package/server/rally-DGimSRBQ.js +0 -3
  336. package/server/reap-terminal-sessions-C1mfzoZo.js +0 -3
  337. package/server/record-us0YECMO.js +0 -3
  338. package/server/resume-OyN3dEXE.js +0 -3
  339. package/server/settings-BaPXXJsT.js +0 -2
  340. package/server/specs-BsNcum0h.js +0 -3
  341. package/server/state-migrate-_zJJ6XKE.js +0 -362
  342. package/server/supervisor-Qy1QecAs.js +0 -2
  343. package/server/token-util-Cg-QnowA.js +0 -3
  344. package/server/workflows-C5c-RPsY.js +0 -2
@@ -1,44 +1,44 @@
1
- import { $n as resolveProjectFromIssueSync, Nn as getProjectSync, On as findProjectByTeamSync, Or as init_errors, Q as resolveModel, Un as listProjectsSync, cr as extractPrefixSync, dn as init_state_plane, dr as parseIssueIdSync, ei as getOverdeckHome, fn as isStatePlaneOnlyStatus, lr as init_issue_id, pr as resolveIssueIdSync, qr as encodeClaudeProjectDir, sr as extractNumberSync, t as init_config_yaml, ti as init_paths, vr as FsError, wn as extractTeamPrefix, yr as GitError, zn as init_projects } from "./config-yaml-Ciyp2mYe.js";
2
- import { d as rejectUnsafeDashboardMutationRequest, ht as getHeaderFromMap, it as getWorkAgentLifecycleStateSync, l as rejectUnauthorizedDashboardRequest, n as _serverManagedMerges, ot as spawnPanCli, xt as jsonResponse, yt as httpHandler } from "./specialists-DAegTvRt.js";
1
+ import { Dn as extractTeamPrefix, Hn as init_projects, In as getProjectSync, Kn as listProjectsSync, Sr as GitError, Xr as encodeClaudeProjectDir, dr as extractPrefixSync, fr as init_issue_id, gr as resolveIssueIdSync, hn as isStatePlaneOnlyStatus, ii as init_paths, jn as findProjectByTeamSync, jr as init_errors, mn as init_state_plane, mr as parseIssueIdSync, nr as resolveProjectFromIssueSync, ri as getOverdeckHome, t as init_config_yaml, tt as resolveModel, ur as extractNumberSync, xr as FsError } from "./config-yaml-ig8Nwtiw.js";
2
+ import { d as rejectUnsafeDashboardMutationRequest, ht as getHeaderFromMap, it as getWorkAgentLifecycleStateSync, l as rejectUnauthorizedDashboardRequest, n as _serverManagedMerges, ot as spawnPanCli, xt as jsonResponse, yt as httpHandler } from "./specialists-Bg9v4z3F.js";
3
3
  import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-DDlOIAML.js";
4
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-DN2wSxle.js";
5
- import { V as sessionExists, X as buildChildEnvWithoutTmuxSync, Z as init_child_env, i as capturePane, j as listSessionNames, w as init_tmux } from "./tmux-y1blSxks.js";
6
- import { a as init_event_store, n as getEventStore } from "./event-store-BVnON3vf.js";
7
- import { _ as setDeaconIgnored, c as init_review_status, f as markWorkspaceStuck, g as setAutoMerge, s as getReviewStatusSync, u as loadReviewStatuses, y as setReviewStatusSync } from "./review-status-CCgPVK1h.js";
8
- import { _ as init_queue_position, a as EventStoreService, g as findPositionInQueueSync, h as computeQueuePositionFromStatusSync, s as init_domain_services } from "./issue-lifecycle-B7HZWnTA.js";
9
- import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-Drm7qeD5.js";
10
- import { L as messageAgent, Nt as transitionIssueToInReview, X as spawnAgent, fr as saveAgentRuntimeState, i as listRunningAgents, kn as getAgentState, s as init_agents, ur as getAgentRuntimeStateSync } from "./queries-B5hl7lMQ.js";
11
- import { f as CostWriter, l as CostDoorLive } from "./service-CqAY8Kmk.js";
12
- import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-DSFZBdXP.js";
13
- import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-DiceZN3a.js";
14
- import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-DhfFiwW7.js";
15
- import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME, p as init_types } from "./types-DqeBMmJN.js";
16
- import { o as init_merge_sync, r as getAllActiveQueues } from "./merge-sync-De1FYva5.js";
17
- import { A as init_vbrief_index, M as readVBriefDocument, _ as VBRIEF_INSPECTION_POLICIES, c as mergeRecordStatusOverrides, k as findVBriefByIssue, o as init_io, r as findPlan, s as isPlanningComplete, u as readPlan, v as init_types$1 } from "./io-BiM-7Zsx.js";
18
- import { it as findConversationForCostSessionSync, k as init_conversations } from "./conversations-BUgGvqVL.js";
19
- import { i as normalizeModelOverrideSync, r as init_model_validation } from "./launcher-generator-5DJRiovn.js";
20
- import { f as init_config, m as loadConfigSync$1 } from "./config-CrduXs4a.js";
21
- import { a as init_stack_health, i as getWorkspaceStackHealth, n as collectDockerContainerLifecycleSnapshot } from "./stack-health-DV_f-lK0.js";
22
- import { a as criticalPath, l as init_dag, t as actionableDoc } from "./dag-DIji6O2b.js";
23
- import { a as readEventsFromLineSync, i as init_events, l as init_wal, o as readEventsSync, r as getLastEventMetadataSync, t as appendCostEventSync } from "./events-CmERlnwn.js";
24
- import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-DsN52IMG.js";
25
- import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-D8ylupco.js";
26
- import { a as init_jsonl_parser, t as getActiveSessionModelSync } from "./jsonl-parser-DJV2eZUP.js";
27
- import { r as init_in_flight_guard, t as createInFlightGuard } from "./in-flight-guard-tVGiI5ee.js";
28
- import { i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-BOnwJq8M.js";
29
- import { E as verifyAppCanMerge, f as init_github_app, m as isIntegrationPermissionError } from "./github-app-B3yfECo8.js";
30
- import { a as loadWorkspaceMetadataSync, i as listWorkspaceMetadataSync } from "./workspace-metadata-DIL5_U4c.js";
31
- import { n as enrichReviewStatusFromSessions } from "./review-status-enrichment-DtDRGpst.js";
32
- import { n as generateDailySummary, r as init_cli } from "./cli-mvpEOb3w.js";
33
- import { a as getDiffStat, i as getDiffBase, o as init_review_context, r as getChangedFiles } from "./review-context-Ctp9BdNJ.js";
34
- import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-DjxP5g6Y.js";
35
- import { C as init_operations, S as gitPush, T as listGitOperationsSync, a as init_merge_agent, w as init_git_activity, x as MainDivergedError, y as syncMainIntoWorkspace } from "./merge-agent-DnBsms_V.js";
36
- import { F as enqueueMerge, I as getAllActiveQueues$1, L as getCurrentMerge, P as dequeueMerge, z as markMergeProcessing } from "./merge-hSC2BENe.js";
37
- import { n as init_release_set, t as getReleaseSetSync } from "./release-set-BywwggrE.js";
38
- import { i as init_conflict_gate, r as getCachedConflictGateMergeability } from "./conflict-gate-BLUNMs1i.js";
39
- import { r as runVerificationForIssue } from "./verification-runner-gAzh3cVD.js";
40
- import { t as teardownWorkspace } from "./teardown-workspace-D-5yMyit.js";
41
- import { n as init_rebuild_stack, t as composeProjectNameForWorkspace } from "./rebuild-stack-DHqCLvLX.js";
4
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-D4iNWMA5.js";
5
+ import { V as sessionExists, X as buildChildEnvWithoutTmuxSync, Z as init_child_env, i as capturePane, j as listSessionNames, w as init_tmux } from "./tmux-L5LgvGLp.js";
6
+ import { a as init_event_store, n as getEventStore } from "./event-store-TnWdydfB.js";
7
+ import { _ as setDeaconIgnored, c as init_review_status, f as markWorkspaceStuck, g as setAutoMerge, s as getReviewStatusSync, u as loadReviewStatuses, y as setReviewStatusSync } from "./review-status-DFRjDFef.js";
8
+ import { _ as init_queue_position, a as EventStoreService, g as findPositionInQueueSync, h as computeQueuePositionFromStatusSync, s as init_domain_services } from "./issue-lifecycle-CeyW_HoD.js";
9
+ import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-Codk1pc2.js";
10
+ import { L as messageAgent, Nt as transitionIssueToInReview, X as spawnAgent, fr as saveAgentRuntimeState, i as listRunningAgents, kn as getAgentState, s as init_agents, ur as getAgentRuntimeStateSync } from "./queries-ZABd5aXP.js";
11
+ import { f as CostWriter, l as CostDoorLive } from "./service-Bagb90KZ.js";
12
+ import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-DdT-nUAM.js";
13
+ import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-CawsPSS2.js";
14
+ import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-CXsfxslp.js";
15
+ import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME, p as init_types } from "./types-hraoaQIp.js";
16
+ import { o as init_merge_sync, r as getAllActiveQueues } from "./merge-sync-Do8_q32h.js";
17
+ import { A as init_vbrief_index, M as readVBriefDocument, _ as VBRIEF_INSPECTION_POLICIES, c as mergeRecordStatusOverrides, k as findVBriefByIssue, o as init_io, r as findPlan, s as isPlanningComplete, u as readPlan, v as init_types$1 } from "./io-DQR9PMgS.js";
18
+ import { it as findConversationForCostSessionSync, k as init_conversations } from "./conversations-bYpM9-kZ.js";
19
+ import { i as normalizeModelOverrideSync, r as init_model_validation } from "./launcher-generator-COgR2By1.js";
20
+ import { f as init_config, m as loadConfigSync$1 } from "./config-q4Gvd8dq.js";
21
+ import { a as init_stack_health, i as getWorkspaceStackHealth, n as collectDockerContainerLifecycleSnapshot } from "./stack-health-C-ifC7b0.js";
22
+ import { a as criticalPath, l as init_dag, t as actionableDoc } from "./dag-CJpgf9A3.js";
23
+ import { a as readEventsFromLineSync, i as init_events, l as init_wal, o as readEventsSync, r as getLastEventMetadataSync, t as appendCostEventSync } from "./events-DSUdR-04.js";
24
+ import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-ClkCIWTe.js";
25
+ import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-CNmQy0pL.js";
26
+ import { a as init_jsonl_parser, t as getActiveSessionModelSync } from "./jsonl-parser-C3HVNR5d.js";
27
+ import { r as init_in_flight_guard, t as createInFlightGuard } from "./in-flight-guard-BoWm66Kh.js";
28
+ import { i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-BvDuWNMo.js";
29
+ import { E as verifyAppCanMerge, f as init_github_app, m as isIntegrationPermissionError } from "./github-app-CDPtGF7J.js";
30
+ import { a as loadWorkspaceMetadataSync, i as listWorkspaceMetadataSync } from "./workspace-metadata-tiSRIWJP.js";
31
+ import { n as enrichReviewStatusFromSessions } from "./review-status-enrichment-crNAtIpL.js";
32
+ import { n as generateDailySummary, r as init_cli } from "./cli-CbKNkFE5.js";
33
+ import { a as getDiffStat, i as getDiffBase, o as init_review_context, r as getChangedFiles } from "./review-context-OYfKUprb.js";
34
+ import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-BQFmmFp0.js";
35
+ import { C as init_operations, S as gitPush, T as listGitOperationsSync, a as init_merge_agent, w as init_git_activity, x as MainDivergedError, y as syncMainIntoWorkspace } from "./merge-agent-DDiIjzk-.js";
36
+ import { F as enqueueMerge, I as getAllActiveQueues$1, L as getCurrentMerge, P as dequeueMerge, z as markMergeProcessing } from "./merge-C1t-bspg.js";
37
+ import { n as init_release_set, t as getReleaseSetSync } from "./release-set-DeUSOEHy.js";
38
+ import { i as init_conflict_gate, r as getCachedConflictGateMergeability } from "./conflict-gate-CFqPVxEg.js";
39
+ import { r as runVerificationForIssue } from "./verification-runner-FiuAZ-H2.js";
40
+ import { t as teardownWorkspace } from "./teardown-workspace-DDCf5n-a.js";
41
+ import { n as init_rebuild_stack, t as composeProjectNameForWorkspace } from "./rebuild-stack-JUm0jqYP.js";
42
42
  import { basename, dirname, join, resolve, sep } from "node:path";
43
43
  import { Effect, Layer, Option, Stream } from "effect";
44
44
  import { closeSync, existsSync, fstatSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, renameSync, writeFileSync } from "fs";
@@ -775,7 +775,7 @@ const postWorkspaceContainerActionRoute = HttpRouter.add("POST", "/api/workspace
775
775
  }
776
776
  if (!workspacePath) return jsonResponse({ error: `Workspace not found for ${issueId}` }, { status: 404 });
777
777
  if (!composeFile && ["start", "restart"].includes(action)) {
778
- const { ensureDevcontainerSync } = yield* Effect.promise(() => import("./ensure-devcontainer-BA3bICoY.js"));
778
+ const { ensureDevcontainerSync } = yield* Effect.promise(() => import("./ensure-devcontainer-Cs6W9Yzj.js"));
779
779
  if (ensureDevcontainerSync({
780
780
  workspacePath,
781
781
  issueId
@@ -2823,7 +2823,7 @@ async function reconcileGitHubMergeStatus(issueId, status) {
2823
2823
  const prRef = parseGitHubPullRequestUrl(status.prUrl);
2824
2824
  if (!prRef) return false;
2825
2825
  try {
2826
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-CeSVFL6C.js");
2826
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-CU14oYzP.js");
2827
2827
  if (!isGitHubAppConfigured()) return false;
2828
2828
  const prState = await Effect.runPromise(getPullRequestState(prRef.owner, prRef.repo, prRef.number));
2829
2829
  console.log(`[merge] reconcileGitHubMergeStatus: ${issueId} PR #${prRef.number} merged=${prState.merged} state=${prState.state}`);
@@ -3090,8 +3090,8 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3090
3090
  try {
3091
3091
  if (request.kind === "normal" && workspaceInfo.isRemote && workspaceInfo.vmName) {
3092
3092
  console.log(`[merge] Remote workspace detected for ${issueId}, using review artifact merge...`);
3093
- const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-DHkzPCJU.js");
3094
- const { getForgeAdapter } = await import("./forge-DbhJyH6u.js");
3093
+ const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-6LEglm6o.js");
3094
+ const { getForgeAdapter } = await import("./forge-B0_opi-V.js");
3095
3095
  const remotePrimaryRepo = (getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId))?.repos[0];
3096
3096
  const remoteTargetBranch = remotePrimaryRepo?.targetBranch || "main";
3097
3097
  const remoteForge = remotePrimaryRepo?.forge || "github";
@@ -3127,7 +3127,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3127
3127
  ...mergeCompletionStatus(request)
3128
3128
  });
3129
3129
  completePendingOperation(issueId, null);
3130
- const { postMergeLifecycle } = await import("./merge-agent-CnORPiri.js");
3130
+ const { postMergeLifecycle } = await import("./merge-agent-B-SnXOoc.js");
3131
3131
  await postMergeLifecycle(issueId, projectPath);
3132
3132
  return {
3133
3133
  success: true,
@@ -3164,10 +3164,10 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3164
3164
  const projectConfig = findProjectByTeamSync(issuePrefix);
3165
3165
  if (projectConfig?.workspace?.type === "polyrepo" && projectConfig?.workspace?.repos) {
3166
3166
  console.log(`[merge] Polyrepo detected for ${issueId}, coordinating merge set...`);
3167
- const { getMergeSetSync, ensureMergeSetForIssueSync, upsertMergeSetSync, withRepoStateSync } = await import("./merge-set-DHkzPCJU.js");
3168
- const { runQualityGates } = await import("./validation-CUWamZ4X.js");
3169
- const { getForgeAdapter } = await import("./forge-DbhJyH6u.js");
3170
- const { messageAgent } = await import("./agents-Czz6R57Z.js");
3167
+ const { getMergeSetSync, ensureMergeSetForIssueSync, upsertMergeSetSync, withRepoStateSync } = await import("./merge-set-6LEglm6o.js");
3168
+ const { runQualityGates } = await import("./validation-DcAgXTQp.js");
3169
+ const { getForgeAdapter } = await import("./forge-B0_opi-V.js");
3170
+ const { messageAgent } = await import("./agents-DyHKlq1I.js");
3171
3171
  let mergeSet = getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId);
3172
3172
  if (!mergeSet) {
3173
3173
  const error = `No merge set found for ${issueId}`;
@@ -3438,7 +3438,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3438
3438
  ...mergeCompletionStatus(request)
3439
3439
  });
3440
3440
  completePendingOperation(issueId, null);
3441
- const { postMergeLifecycle } = await import("./merge-agent-CnORPiri.js");
3441
+ const { postMergeLifecycle } = await import("./merge-agent-B-SnXOoc.js");
3442
3442
  advanceQueue();
3443
3443
  await postMergeLifecycle(issueId, projectPath);
3444
3444
  return {
@@ -3449,8 +3449,8 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3449
3449
  repos: mergeResults
3450
3450
  };
3451
3451
  }
3452
- const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-DHkzPCJU.js");
3453
- const { getForgeAdapter } = await import("./forge-DbhJyH6u.js");
3452
+ const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-6LEglm6o.js");
3453
+ const { getForgeAdapter } = await import("./forge-B0_opi-V.js");
3454
3454
  const primaryRepo = (getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId))?.repos[0];
3455
3455
  const targetBranch = primaryRepo?.targetBranch || "main";
3456
3456
  const primaryForge = primaryRepo?.forge || "github";
@@ -3492,7 +3492,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3492
3492
  };
3493
3493
  }
3494
3494
  if (githubPrRef) try {
3495
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-CeSVFL6C.js");
3495
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-CU14oYzP.js");
3496
3496
  if (isGitHubAppConfigured()) {
3497
3497
  const prState = await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number));
3498
3498
  if (prState.state !== "OPEN" && !prState.merged) {
@@ -3554,7 +3554,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3554
3554
  ...mergeCompletionStatus(request)
3555
3555
  });
3556
3556
  completePendingOperation(issueId, null);
3557
- const { postMergeLifecycle } = await import("./merge-agent-CnORPiri.js");
3557
+ const { postMergeLifecycle } = await import("./merge-agent-B-SnXOoc.js");
3558
3558
  await postMergeLifecycle(issueId, projectPath, branchName);
3559
3559
  return {
3560
3560
  success: true,
@@ -3568,13 +3568,13 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3568
3568
  } catch (prStateErr) {
3569
3569
  console.warn(`[merge] Pre-merge PR state check failed for ${issueId}: ${prStateErr.message} — proceeding (check is best-effort)`);
3570
3570
  }
3571
- const { postMergeLifecycle } = await import("./merge-agent-CnORPiri.js");
3571
+ const { postMergeLifecycle } = await import("./merge-agent-B-SnXOoc.js");
3572
3572
  const agentId = request.kind === "strike" ? request.recoveryTarget : `agent-${issueId.toLowerCase()}`;
3573
3573
  const rebaseMsg = request.kind === "strike" ? `STRIKE LANDING REQUEST: Rebase ${branchName} onto ${targetBranch}, resolve conflicts, run the full quality gates, push ${branchName}, then run pan strike-ready ${issueId} to persist the new HEAD. Do NOT merge or push main.` : `MERGE REQUESTED: The human has clicked MERGE for ${issueId}. Please rebase onto ${targetBranch} and push:\n\n1. git fetch origin ${targetBranch}\n2. git rebase origin/${targetBranch}\n3. If conflicts: resolve them, git add, git rebase --continue\n4. git push --force-with-lease\n\nAfter pushing, the server will handle verification and merge automatically. Do NOT run gh pr merge yourself.`;
3574
3574
  setReviewStatus(issueId, { mergeStep: "rebasing" });
3575
3575
  console.log(`[merge] Rebasing ${branchName} onto ${targetBranch} for ${issueId} (agent=${await Effect.runPromise(sessionExists(agentId)) ? "running" : "stopped"})...`);
3576
3576
  {
3577
- const { beginShipLog, appendShipLog } = await import("./ship-log-DDcueaIR.js");
3577
+ const { beginShipLog, appendShipLog } = await import("./ship-log-__QtAFXG.js");
3578
3578
  beginShipLog(issueId);
3579
3579
  appendShipLog(issueId, `Ship started: rebasing ${branchName} onto ${targetBranch}…`, "rebasing");
3580
3580
  }
@@ -3705,7 +3705,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3705
3705
  });
3706
3706
  let skipLocalVerification = false;
3707
3707
  if (primaryForge === "github" && artifactUrl) try {
3708
- const { parsePullRequestRef, getCiCheckRunsStatePromise, isGitHubAppConfigured } = await import("./github-app-CeSVFL6C.js");
3708
+ const { parsePullRequestRef, getCiCheckRunsStatePromise, isGitHubAppConfigured } = await import("./github-app-CU14oYzP.js");
3709
3709
  if (isGitHubAppConfigured()) {
3710
3710
  const ref = parsePullRequestRef({ url: artifactUrl });
3711
3711
  if (ref) {
@@ -3726,12 +3726,12 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3726
3726
  } catch (ciErr) {
3727
3727
  console.warn(`[merge] CI-state check failed (${ciErr.message?.slice(0, 120)}) — falling back to local verification for ${issueId}`);
3728
3728
  }
3729
- const { appendShipLog } = await import("./ship-log-DDcueaIR.js");
3729
+ const { appendShipLog } = await import("./ship-log-__QtAFXG.js");
3730
3730
  if (skipLocalVerification) appendShipLog(issueId, "✓ Local verification skipped — CI already green on this exact commit", "verifying");
3731
3731
  const verifyResult = skipLocalVerification ? { outcome: "passed" } : await (async () => {
3732
3732
  console.log(`[merge] Running post-rebase verification for ${issueId}...`);
3733
3733
  appendShipLog(issueId, "Running post-rebase verification (full quality-gate suite)…", "verifying");
3734
- const { runVerificationForIssue } = await import("./verification-runner-Dcksl_P-.js");
3734
+ const { runVerificationForIssue } = await import("./verification-runner-DlJezzef.js");
3735
3735
  return Effect.runPromise(runVerificationForIssue(issueId, workspacePath, { isRemote: false }, "merge-verify", {
3736
3736
  syncTargetBranch: false,
3737
3737
  onGateLog: (line) => appendShipLog(issueId, line, "verifying")
@@ -3764,7 +3764,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3764
3764
  console.log(`[merge] Post-rebase verification ${verifyResult.outcome} for ${issueId}`);
3765
3765
  setReviewStatus(issueId, { mergeStep: "reporting-statuses" });
3766
3766
  try {
3767
- const { getPullRequestState, isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-CeSVFL6C.js");
3767
+ const { getPullRequestState, isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-CU14oYzP.js");
3768
3768
  if (githubPrRef && isGitHubAppConfigured()) {
3769
3769
  const sha = (await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number))).headSha.trim();
3770
3770
  if (sha) {
@@ -3792,7 +3792,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3792
3792
  } catch (prMergeErr) {
3793
3793
  console.error(`[merge] Review artifact merge threw for ${issueId}:`, prMergeErr);
3794
3794
  try {
3795
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-CeSVFL6C.js");
3795
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-CU14oYzP.js");
3796
3796
  if (githubPrRef && isGitHubAppConfigured()) {
3797
3797
  artifactMerged = (await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number))).merged;
3798
3798
  if (artifactMerged) console.log(`[merge] Race-detected: PR #${githubPrRef.number} for ${issueId} was already merged despite thrown error; proceeding`);
@@ -3911,8 +3911,8 @@ const postForgeApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/forge
3911
3911
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
3912
3912
  if (!/^[A-Z]+-\d+$/i.test(issueId)) return jsonResponse({ error: "Invalid issue ID format" }, { status: 400 });
3913
3913
  return yield* Effect.promise(async () => {
3914
- const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-DHkzPCJU.js");
3915
- const { getForgeAdapter } = await import("./forge-DbhJyH6u.js");
3914
+ const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-6LEglm6o.js");
3915
+ const { getForgeAdapter } = await import("./forge-B0_opi-V.js");
3916
3916
  let mergeSet = getMergeSetSync(issueId);
3917
3917
  if (!mergeSet) return jsonResponse({ error: `No merge set found for ${issueId}` }, { status: 404 });
3918
3918
  const results = [];
@@ -4000,8 +4000,8 @@ const postForgeMergeRoute = HttpRouter.add("POST", "/api/issues/:issueId/forge-m
4000
4000
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
4001
4001
  if (!/^[A-Z]+-\d+$/i.test(issueId)) return jsonResponse({ error: "Invalid issue ID format" }, { status: 400 });
4002
4002
  return yield* Effect.promise(async () => {
4003
- const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-DHkzPCJU.js");
4004
- const { getForgeAdapter } = await import("./forge-DbhJyH6u.js");
4003
+ const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-6LEglm6o.js");
4004
+ const { getForgeAdapter } = await import("./forge-B0_opi-V.js");
4005
4005
  let mergeSet = getMergeSetSync(issueId);
4006
4006
  if (!mergeSet) return jsonResponse({ error: `No merge set found for ${issueId}` }, { status: 404 });
4007
4007
  const results = [];
@@ -4194,7 +4194,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
4194
4194
  console.log(`[approve] Starting role pipeline for ${issueId}...`);
4195
4195
  let reviewResult;
4196
4196
  try {
4197
- const { spawnReviewRoleForIssue } = await import("./review-agent-CSswH985.js");
4197
+ const { spawnReviewRoleForIssue } = await import("./review-agent-CCum8sGe.js");
4198
4198
  reviewResult = await Effect.runPromise(spawnReviewRoleForIssue({
4199
4199
  issueId,
4200
4200
  workspace: workspacePath,
@@ -4241,7 +4241,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
4241
4241
  }
4242
4242
  console.log(`[approve] Step 3/3: Running server-side rebase for ${issueId}...`);
4243
4243
  try {
4244
- const { rebaseFeatureBranch } = await import("./merge-rebase-CE-ZyOMY.js");
4244
+ const { rebaseFeatureBranch } = await import("./merge-rebase-Cm6fXaZN.js");
4245
4245
  const workspacePathForRebase = join(projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
4246
4246
  const rebaseResult = await Effect.runPromise(rebaseFeatureBranch(workspacePathForRebase, branchName, "main", issueId));
4247
4247
  if (!rebaseResult.success) {
@@ -4261,7 +4261,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
4261
4261
  completePendingOperation(issueId, pushResult.error);
4262
4262
  return jsonResponse({ error: pushResult.error }, { status: pushResult.httpStatus });
4263
4263
  }
4264
- const { approve: lifecycleApprove } = await import("./lifecycle-CE7619Xw.js");
4264
+ const { approve: lifecycleApprove } = await import("./lifecycle-CtPDcZ9u.js");
4265
4265
  const ghResolved = resolveGitHubIssueSync(issueId);
4266
4266
  const isGitHubIssueFlag = ghResolved.isGitHub;
4267
4267
  const lifecycleCtx = {
@@ -4295,7 +4295,7 @@ const getMergeQueueRoute = HttpRouter.add("GET", "/api/merge-queue", httpHandler
4295
4295
  })));
4296
4296
  const postInternalPipelineNotifyRoute = HttpRouter.add("POST", "/api/internal/pipeline/notify", httpHandler(Effect.gen(function* () {
4297
4297
  const request = yield* HttpServerRequest.HttpServerRequest;
4298
- const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-7bYL5v6K.js"));
4298
+ const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-C9DdEOKY.js"));
4299
4299
  const expected = getInternalTokenSync();
4300
4300
  if (!expected) return jsonResponse({
4301
4301
  ok: false,
@@ -4309,7 +4309,7 @@ const postInternalPipelineNotifyRoute = HttpRouter.add("POST", "/api/internal/pi
4309
4309
  }, 403);
4310
4310
  const event = yield* readJsonBody;
4311
4311
  const type = event.type;
4312
- const { notifyPipelineSync } = yield* Effect.promise(() => import("./pipeline-notifier-dQ-U4NSb.js"));
4312
+ const { notifyPipelineSync } = yield* Effect.promise(() => import("./pipeline-notifier-CZsrU_nj.js"));
4313
4313
  switch (type) {
4314
4314
  case "status_changed": {
4315
4315
  const issueId = event.issueId;
@@ -5084,7 +5084,7 @@ const patchWorkspaceTieredExecutionRoute = HttpRouter.add("PATCH", "/api/workspa
5084
5084
  if (override !== "on" && override !== "off" && override !== null && override !== void 0) return jsonResponse({ error: "Invalid tiered-execution override" }, { status: 400 });
5085
5085
  const project = getProjectSync(extractPrefixSync(issueId) ?? issueId.split("-")[0]);
5086
5086
  if (!project) return jsonResponse({ error: "Project not found" }, { status: 404 });
5087
- yield* Effect.promise(() => import("./record-us0YECMO.js").then((m) => m.writeRecordTieredExecutionOverride(project, issueId, override)));
5087
+ yield* Effect.promise(() => import("./record-rwK-nKv_.js").then((m) => m.writeRecordTieredExecutionOverride(project, issueId, override)));
5088
5088
  const projectPath = project.path;
5089
5089
  const location = yield* resolvePlanLocation(projectPath, issueId);
5090
5090
  if (!location) return jsonResponse({ error: "No vBRIEF plan found for this workspace" }, { status: 404 });
@@ -5550,7 +5550,7 @@ const postWorkspaceReviewRoute = HttpRouter.add("POST", "/api/review/:issueId/tr
5550
5550
  console.log(`Feature branch push note: ${errorMessage(pushErr)}`);
5551
5551
  }
5552
5552
  try {
5553
- const { createReviewArtifactsForIssue } = await import("./review-artifacts-BBgnd5df.js");
5553
+ const { createReviewArtifactsForIssue } = await import("./review-artifacts-CXywD0F2.js");
5554
5554
  const artifactResult = await Effect.runPromise(createReviewArtifactsForIssue(issueId, workspacePath));
5555
5555
  const primaryArtifact = artifactResult.mergeSet?.repos.find((repo) => !!repo.artifactUrl);
5556
5556
  artifactResult.mergeSet?.repos.find((repo) => repo.mergeStatus !== "skipped")?.targetBranch;
@@ -5605,7 +5605,7 @@ const postWorkspaceReviewRoute = HttpRouter.add("POST", "/api/review/:issueId/tr
5605
5605
  } catch {}
5606
5606
  return;
5607
5607
  }
5608
- const { spawnReviewRoleForIssue } = await import("./review-agent-CSswH985.js");
5608
+ const { spawnReviewRoleForIssue } = await import("./review-agent-CCum8sGe.js");
5609
5609
  const prUrl = getReviewStatusSync(issueId)?.prUrl;
5610
5610
  const reviewResult = await Effect.runPromise(spawnReviewRoleForIssue({
5611
5611
  issueId,
@@ -5744,7 +5744,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
5744
5744
  console.log(`[request-review] Feature branch push note: ${errorMessage(pushErr)}`);
5745
5745
  }
5746
5746
  const prUrl = getReviewStatusSync(issueId)?.prUrl;
5747
- const { spawnReviewRoleForIssue } = await import("./review-agent-CSswH985.js");
5747
+ const { spawnReviewRoleForIssue } = await import("./review-agent-CCum8sGe.js");
5748
5748
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
5749
5749
  issueId,
5750
5750
  workspace: workspacePathRerun,
@@ -5794,7 +5794,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
5794
5794
  });
5795
5795
  } else {
5796
5796
  const workspacePath = join(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
5797
- const { spawnRun } = yield* Effect.promise(() => import("./agents-Czz6R57Z.js"));
5797
+ const { spawnRun } = yield* Effect.promise(() => import("./agents-DyHKlq1I.js"));
5798
5798
  try {
5799
5799
  const testRun = yield* Effect.promise(() => spawnRun(issueId, "test", { workspace: workspacePath }));
5800
5800
  setReviewStatus(issueId, { testStatus: "testing" });
@@ -5904,7 +5904,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
5904
5904
  testStatus: "pending",
5905
5905
  reviewNotes
5906
5906
  });
5907
- const { spawnReviewRoleForIssue } = await import("./review-agent-CSswH985.js");
5907
+ const { spawnReviewRoleForIssue } = await import("./review-agent-CCum8sGe.js");
5908
5908
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
5909
5909
  issueId,
5910
5910
  workspace: workspacePath,
@@ -6213,7 +6213,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
6213
6213
  const result = processResetReviewPipeline(issueId, resetWorkspace.exists);
6214
6214
  if (result.httpStatus !== 200) return jsonResponse(result.body, { status: result.httpStatus });
6215
6215
  try {
6216
- const { resetPostMergeState } = yield* Effect.promise(() => import("./merge-agent-CnORPiri.js"));
6216
+ const { resetPostMergeState } = yield* Effect.promise(() => import("./merge-agent-B-SnXOoc.js"));
6217
6217
  resetPostMergeState(issueId);
6218
6218
  } catch (err) {
6219
6219
  console.warn(`[reset-review] resetPostMergeState best-effort failed for ${issueId}:`, err);
@@ -6222,7 +6222,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
6222
6222
  const rerun = body?.rerun === true;
6223
6223
  if (rerun) try {
6224
6224
  yield* Effect.promise(async () => {
6225
- const { spawnReviewRoleForIssue } = await import("./review-agent-CSswH985.js");
6225
+ const { spawnReviewRoleForIssue } = await import("./review-agent-CCum8sGe.js");
6226
6226
  const dispatchArgs = buildReviewRedispatchArgs(issueId, resetWorkspace, workspaceInfo, resolved);
6227
6227
  if (dispatchArgs) {
6228
6228
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
@@ -6251,7 +6251,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
6251
6251
  const postWorkspaceReviewPurgeRoute = HttpRouter.add("POST", "/api/review/:issueId/purge", httpHandler(Effect.gen(function* () {
6252
6252
  const issueId = (yield* HttpRouter.params)["issueId"] ?? "";
6253
6253
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
6254
- const { purgeReviewAgentsForIssue } = yield* Effect.promise(() => import("./review-agent-CSswH985.js"));
6254
+ const { purgeReviewAgentsForIssue } = yield* Effect.promise(() => import("./review-agent-CCum8sGe.js"));
6255
6255
  const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
6256
6256
  const purge = yield* Effect.promise(() => purgeReviewAgentsForIssue(projectKey, issueId));
6257
6257
  const workspaceInfo = getWorkspaceInfoForIssue(issueId);
@@ -6281,8 +6281,8 @@ const postWorkspaceAbortReviewRoute = HttpRouter.add("POST", "/api/review/:issue
6281
6281
  success: false,
6282
6282
  error: "Workspace does not exist"
6283
6283
  }, { status: 400 });
6284
- const { resolveProjectFromIssueSync } = yield* Effect.promise(() => import("./projects-IRHJIPYC.js"));
6285
- const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-CSswH985.js"));
6284
+ const { resolveProjectFromIssueSync } = yield* Effect.promise(() => import("./projects-BKkwpH6q.js"));
6285
+ const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-CCum8sGe.js"));
6286
6286
  const { killed, failed } = yield* killAllReviewerSessions(resolveProjectFromIssueSync(issueId)?.projectKey, issueId);
6287
6287
  setReviewStatus(issueId, {
6288
6288
  reviewStatus: "pending",
@@ -6354,8 +6354,8 @@ const getReviewConfigRoute = HttpRouter.add("GET", "/api/review/:issueId/config"
6354
6354
  const issueId = ((yield* HttpRouter.params)["issueId"] ?? "").toUpperCase();
6355
6355
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
6356
6356
  return jsonResponse(yield* Effect.promise(async () => {
6357
- const { readIssueRecordSync, resolveProjectForIssue } = await import("./record-us0YECMO.js");
6358
- const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-CSswH985.js");
6357
+ const { readIssueRecordSync, resolveProjectForIssue } = await import("./record-rwK-nKv_.js");
6358
+ const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-CCum8sGe.js");
6359
6359
  const project = resolveProjectForIssue(issueId);
6360
6360
  const record = project ? readIssueRecordSync(project, issueId) : null;
6361
6361
  return {
@@ -6390,9 +6390,9 @@ const postReviewConfigRoute = HttpRouter.add("POST", "/api/review/:issueId/confi
6390
6390
  return jsonResponse({ error: error instanceof Error ? error.message : String(error) }, { status: 400 });
6391
6391
  }
6392
6392
  return jsonResponse(yield* Effect.promise(async () => {
6393
- const { resolveProjectForIssue } = await import("./record-us0YECMO.js");
6394
- const { updateIssueRecord } = await import("./record-update-BlB8mpKO.js");
6395
- const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-CSswH985.js");
6393
+ const { resolveProjectForIssue } = await import("./record-rwK-nKv_.js");
6394
+ const { updateIssueRecord } = await import("./record-update-D3N6WMFR.js");
6395
+ const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-CCum8sGe.js");
6396
6396
  const record = await updateIssueRecord(resolveProjectForIssue(issueId), issueId, (current) => {
6397
6397
  if (hasMode) if (body.reviewMode === null) delete current.reviewMode;
6398
6398
  else current.reviewMode = body.reviewMode;
@@ -6825,7 +6825,7 @@ async function readWorkspacePlanningMarkdown(issueId, fileName) {
6825
6825
  */
6826
6826
  async function readWorkspaceContinueFile(_projectPath, workspacePath, issueId) {
6827
6827
  try {
6828
- const { readRecordContinueViewSync, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-us0YECMO.js");
6828
+ const { readRecordContinueViewSync, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-rwK-nKv_.js");
6829
6829
  const recordView = readRecordContinueViewSync(resolveProjectForIssue(issueId) ?? getProjectConfigFromWorkspacePath(workspacePath), issueId);
6830
6830
  return recordView ? JSON.stringify(recordView, null, 2) : null;
6831
6831
  } catch {
@@ -7584,7 +7584,7 @@ const getWorkspaceReviewStatusRoute = HttpRouter.add("GET", "/api/review/:issueI
7584
7584
  if (queuePosition === null) try {
7585
7585
  const resolved = resolveProjectFromIssueSync(issueId);
7586
7586
  if (resolved) {
7587
- const { getQueueForProject } = yield* Effect.promise(() => import("./merge-CwX2_AWm.js"));
7587
+ const { getQueueForProject } = yield* Effect.promise(() => import("./merge-BwsyNRJV.js"));
7588
7588
  const mergePos = findPositionInQueueSync(issueId, getQueueForProject(resolved.projectKey).map((e) => ({
7589
7589
  id: String(e.id),
7590
7590
  type: "task",
@@ -7622,7 +7622,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
7622
7622
  const workspaceInfo = getWorkspaceInfoForIssue(issueId);
7623
7623
  if (workspaceInfo.exists && workspaceInfo.localPath) {
7624
7624
  const localPath = workspaceInfo.localPath;
7625
- const { getWorkspaceGitInfo } = yield* Effect.promise(() => import("./git-utils-DmF5xkj8.js"));
7625
+ const { getWorkspaceGitInfo } = yield* Effect.promise(() => import("./git-utils-CsKGnzFA.js"));
7626
7626
  try {
7627
7627
  const gitInfo = yield* getWorkspaceGitInfo(localPath);
7628
7628
  if (gitInfo.HEAD) update.reviewedAtCommit = gitInfo.HEAD;
@@ -7637,7 +7637,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
7637
7637
  if (verificationStatus) update.verificationStatus = verificationStatus;
7638
7638
  if (readyForMerge !== void 0) update.readyForMerge = readyForMerge;
7639
7639
  const status = setReviewStatus(issueId, update);
7640
- const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-C6WkeKFK.js"));
7640
+ const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-Dqe6_HE5.js"));
7641
7641
  const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
7642
7642
  if (reviewStatus && [
7643
7643
  "passed",
@@ -7655,7 +7655,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
7655
7655
  const agentId = `agent-${issueId.toLowerCase()}`;
7656
7656
  const feedbackBody = `CODE REVIEW ${reviewStatus.toUpperCase()} for ${issueId}:\n\n${reviewNotes}\n\n## REQUIRED: Fix ALL issues above, then invoke the /rebase-and-submit skill\n\n1. Read each blocking issue carefully\n2. Fix the code for EVERY issue listed\n3. Run tests locally to verify your fixes\n4. Commit every change\n5. Invoke the /rebase-and-submit skill for ${issueId} — this is an atomic task that runs pan done (which handles rebase + push + re-submit internally)\n\nDo NOT stop between steps. Do NOT run git push manually — the skill handles it. Do NOT stop until pan done has completed successfully.`;
7657
7657
  try {
7658
- const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-DDQNV8uc.js"));
7658
+ const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-Bx5z11mF.js"));
7659
7659
  const wsInfo = getWorkspaceInfoForIssue(issueId);
7660
7660
  const fileResult = yield* Effect.promise(() => writeFeedbackFile({
7661
7661
  issueId,
@@ -7719,7 +7719,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
7719
7719
  const agentId = `agent-${issueId.toLowerCase()}`;
7720
7720
  const feedbackBody = `TESTS FAILED for ${issueId}:\n\n${testNotes}\n\n## REQUIRED: Fix ALL test failures, then invoke the /rebase-and-submit skill\n\n1. Read each test failure carefully\n2. Fix the code causing EVERY failure\n3. Run the test suite locally to verify your fixes pass\n4. Commit every change\n5. Invoke the /rebase-and-submit skill for ${issueId} — this is an atomic task that runs pan done (which handles rebase + push + re-submit internally)\n\nDo NOT stop between steps. Do NOT run git push manually — the skill handles it. Do NOT stop until pan done has completed successfully.`;
7721
7721
  try {
7722
- const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-DDQNV8uc.js"));
7722
+ const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-Bx5z11mF.js"));
7723
7723
  const wsInfo = getWorkspaceInfoForIssue(issueId);
7724
7724
  const fileResult = yield* Effect.promise(() => writeFeedbackFile({
7725
7725
  issueId,
@@ -7752,14 +7752,14 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
7752
7752
  });
7753
7753
  yield* Effect.promise(async () => {
7754
7754
  try {
7755
- const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-IRHJIPYC.js");
7755
+ const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-BKkwpH6q.js");
7756
7756
  const project = resolveProjectFromIssueSync(issueId);
7757
7757
  const repo = (project ? getProjectSync(project.projectKey) : null)?.github_repo;
7758
7758
  if (!repo || !repo.includes("/")) return;
7759
7759
  const [owner, name] = repo.split("/");
7760
7760
  const wsInfo = getWorkspaceInfoForIssue(issueId);
7761
7761
  if (!wsInfo?.localPath) return;
7762
- const { postOverdeckTestsStatus } = await import("./github-app-CeSVFL6C.js");
7762
+ const { postOverdeckTestsStatus } = await import("./github-app-CU14oYzP.js");
7763
7763
  await postOverdeckTestsStatus(wsInfo.localPath, owner, name, "success", "Test specialist passed");
7764
7764
  } catch (err) {
7765
7765
  console.warn(`[review-status] Failed to post overdeck/tests for ${issueId}: ${err.message}`);
@@ -7801,7 +7801,7 @@ const postWorkspaceRefreshTokenRoute = HttpRouter.add("POST", "/api/workspaces/:
7801
7801
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
7802
7802
  const issueLower = issueId.toLowerCase();
7803
7803
  const workspacePath = join(getProjectPath(void 0, extractPrefixSync(issueId) ?? issueId.split("-")[0]), "workspaces", `feature-${issueLower}`);
7804
- const { refreshWorkspaceToken, isGitHubAppConfigured } = yield* Effect.promise(() => import("./github-app-CeSVFL6C.js"));
7804
+ const { refreshWorkspaceToken, isGitHubAppConfigured } = yield* Effect.promise(() => import("./github-app-CU14oYzP.js"));
7805
7805
  if (!isGitHubAppConfigured()) return jsonResponse({
7806
7806
  success: false,
7807
7807
  error: "GitHub App not configured"
@@ -7816,4 +7816,4 @@ const workspacesRouteLayer = Layer.mergeAll(workspaceDataRouteLayer, postWorkspa
7816
7816
  //#endregion
7817
7817
  export { getWorkspacePathForIssue as C, resolveIssueHeadlineCost as S, getCostsForIssueSync as _, pushApproveMain as a, processPendingFeedbackDeliveries as b, triggerMerge as c, resumeQueuedMerges as d, syncWalFromAllProjects as f, migrateAllSessionsSync as g, reclassifyUnknownCostEventsSync as h, mergeOpsRouteLayer as i, internalEventsRouteLayer as l, reconcilePiTranscripts as m, buildRichPRBody as n, reconcileGitHubMergeStatus as o, reconcile as p, isBranchAlreadyRebased as r, shouldBlockApproveForDirtyStatus as s, workspacesRouteLayer as t, eventsRouteLayer as u, rebuildCacheSync as v, getCachedRunningAgents as x, syncCacheSync as y };
7818
7818
 
7819
- //# sourceMappingURL=workspaces-Dmlh1YXm.js.map
7819
+ //# sourceMappingURL=workspaces-CFPcL0vl.js.map
@@ -78,6 +78,29 @@ different model, where the existing session can't resume under different provide
78
78
  `--fresh` is non-destructive: it clears only the resume pointer, never the JSONL transcript,
79
79
  and refuses while the agent is still running (stop it first with `pan kill <id>`).
80
80
 
81
+ ## Slow or hanging workspace prep
82
+
83
+ Workspace preparation bounds its slow external phases with these default budgets:
84
+
85
+ | Phase | Budget | Timeout behavior |
86
+ | --- | ---: | --- |
87
+ | `state-reconcile` | 60s | Fail fast |
88
+ | `sync-main` | 240s | Warn and continue to spawn |
89
+ | `tracker-context` | 60s | Warn, use empty tracker context, and continue to spawn |
90
+ | `spawn` | 600s | Fail fast |
91
+
92
+ Ora spinner text updates render only on a TTY, so non-interactive callers receive plain
93
+ progress lines and a heartbeat every 15 seconds while a phase is still running:
94
+
95
+ ```text
96
+ [prep] still running: sync-main (45s elapsed)
97
+ ```
98
+
99
+ A fail-fast timeout exits with the step name and budget. A degraded timeout warns and keeps
100
+ preparation moving toward agent spawn. Supervisors that invoke `pan start` non-interactively
101
+ should allow an outer budget of at least 300 seconds under load; RUN-35 completed after earlier
102
+ 120-second and 200-second supervisors timed out while workspace preparation was still making progress.
103
+
81
104
  ## When to Use
82
105
 
83
106
  - Starting work on a new issue
@@ -1,3 +0,0 @@
1
- import { r as init_cli, t as createResetMarker } from "./cli-mvpEOb3w.js";
2
- init_cli();
3
- export { createResetMarker };
@@ -1,2 +0,0 @@
1
- import { r as coordinateSwarmSlots } from "./deacon-swarm-DmA3rJ7k.js";
2
- export { coordinateSwarmSlots };
@@ -1,3 +0,0 @@
1
- import { t as require_dist } from "./dist-yfR7G1BL.js";
2
- export default require_dist();
3
- export {};
@@ -1,2 +0,0 @@
1
- import { n as getForgeAdapter } from "./forge-DBbDpiYc.js";
2
- export { getForgeAdapter };