@overdeck/desktop 0.45.18 → 0.45.19

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 (268) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-aQFKQf-J.js → acceptance-criteria-DQqRIuQ-.js} +2 -2
  3. package/server/{advancing-selfheal-DgwQgm4D.js → advancing-selfheal-BYidNkmp.js} +5 -5
  4. package/server/{agent-gc-kpzxqT7P.js → agent-gc-ClNQLl_V.js} +3 -3
  5. package/server/{agent-state-C_6TG-Ad.js → agent-state-BMrpX7kU.js} +1 -1
  6. package/server/{agent-state-service-nUD3qfob.js → agent-state-service-BpAKmodj.js} +4 -4
  7. package/server/{agent-state-service-BUfovFfB.js → agent-state-service-CC9NMIWn.js} +1 -1
  8. package/server/{agents-BHBxr8c9.js → agents--ljN-wVY.js} +4 -4
  9. package/server/{agents-BA15AQqo.js → agents-DAUyr_Z1.js} +1 -1
  10. package/server/{archive-planning-D-QsBufn.js → archive-planning-2w8WQaeJ.js} +1 -1
  11. package/server/{archive-planning-CzCW9Ifl.js → archive-planning-BW3te5Vw.js} +3 -3
  12. package/server/{artifact-index-jobs-qqa51B2Z.js → artifact-index-jobs-DFO3eceF.js} +2 -2
  13. package/server/{backlog-auto-trigger-B7Bi0bvY.js → backlog-auto-trigger-DECBMxLq.js} +2 -2
  14. package/server/{briefing-freshness-DuxIE1yr.js → briefing-freshness-B1delh4l.js} +2 -2
  15. package/server/{checkpoint-manager-DixkLus7.js → checkpoint-manager-CjLY6A4r.js} +1 -1
  16. package/server/{checkpoint-manager-DF6hb9Jw.js → checkpoint-manager-D6_71Rpb.js} +2 -2
  17. package/server/checkpoint-worker.js +1 -1
  18. package/server/{checkpoints-BiviJqei.js → checkpoints-BYrLxVle.js} +2 -2
  19. package/server/{checkpoints-B1Z42tJE.js → checkpoints-xSuv4v4I.js} +1 -1
  20. package/server/{claude-hooks-provision-BeMGi4ty.js → claude-hooks-provision-DL6yfJB_.js} +1 -1
  21. package/server/{claude-hooks-provision-Du_PkMsp.js → claude-hooks-provision-DvfVZbbT.js} +2 -2
  22. package/server/{claude-permissions-BB6agcOZ.js → claude-permissions-CcncrTNF.js} +2 -2
  23. package/server/{claude-settings-overlay-CAq2oFSK.js → claude-settings-overlay-1IfYetv2.js} +2 -2
  24. package/server/{claude-settings-overlay-DUWWLd6M.js → claude-settings-overlay-Ca3LXjAC.js} +1 -1
  25. package/server/cli-BxZHwgRK.js +3 -0
  26. package/server/{cli-C33xPZNm.js → cli-DGZWYXio.js} +9 -9
  27. package/server/{cliproxy-CGBA1GzA.js → cliproxy-Dw42Xy3t.js} +2 -2
  28. package/server/{cliproxy-BQX1TL6N.js → cliproxy-DziJLbfo.js} +1 -1
  29. package/server/{close-issue-DNv8npc1.js → close-issue-DEGjxifn.js} +4 -4
  30. package/server/{closed-issue-reaper-LoMnnjtJ.js → closed-issue-reaper-BsJ3JqQy.js} +9 -9
  31. package/server/{closed-issue-reaper-DrqgBJlr.js → closed-issue-reaper-CNr7X4MB.js} +1 -1
  32. package/server/{codex-DxLivxri.js → codex-C8OlW-dN.js} +1 -1
  33. package/server/{codex-sgWVCGUd.js → codex-D5RyWzNL.js} +4 -4
  34. package/server/{codex-parser-DboQnEXN.js → codex-parser-BRxvUkk8.js} +2 -2
  35. package/server/{config-6MCHOZ2N.js → config-CQ2u44iP.js} +1 -1
  36. package/server/{config-DfaUXr6r.js → config-Cntj_tFu.js} +2 -2
  37. package/server/{config-yaml-CqaAyn8y.js → config-yaml-BQs6GbD_.js} +2 -1
  38. package/server/{conflict-gate-BubJprtD.js → conflict-gate-BE6JdfkO.js} +1 -1
  39. package/server/{conflict-gate-BF_zhcmb.js → conflict-gate-DdfwKgy0.js} +3 -3
  40. package/server/{context-layers-BFrxfl0l.js → context-layers-DFucrVVG.js} +3 -3
  41. package/server/{context-layers-DWL_8HhY.js → context-layers-DO0Eyq2E.js} +2 -2
  42. package/server/{control-settings-BguNQ1F_.js → control-settings-bxOCLsuE.js} +4 -4
  43. package/server/{conversation-compaction-DxSXl0pT.js → conversation-compaction-Dq6MfZdL.js} +8 -8
  44. package/server/{conversation-compaction-CRKAf2qP.js → conversation-compaction-lSlUb-cU.js} +1 -1
  45. package/server/{conversation-service-DzuY9qoH.js → conversation-service-BVt4MQ1_.js} +1 -1
  46. package/server/{conversation-service-mFVFdDQK.js → conversation-service-TZsQjkjT.js} +4 -4
  47. package/server/{conversations-BX5aD-6F.js → conversations-CxOWHNzv.js} +4 -4
  48. package/server/{conversations-BajHQ60c.js → conversations-DaF6elGK.js} +1 -1
  49. package/server/{cost-DuZ5vlv-.js → cost-Dlh0IEiv.js} +3 -3
  50. package/server/{cost-BoqD1Pxz.js → cost-oinpUqvE.js} +2 -2
  51. package/server/{cost-sync-BYnmnMkY.js → cost-sync-CVIAsrhB.js} +3 -3
  52. package/server/{dag-C6kYyF17.js → dag-ClFr7Bah.js} +2 -2
  53. package/server/dashboard-db-worker.js +6 -6
  54. package/server/{deacon-CwCiNuEZ.js → deacon-B8ygB3e8.js} +3 -3
  55. package/server/{deacon-Dru5onpk.js → deacon-D2-xTesT.js} +98 -98
  56. package/server/deacon-swarm-1vPLuj_l.js +2 -0
  57. package/server/{deacon-swarm-BPmBmSoU.js → deacon-swarm-yWKQhxiX.js} +12 -12
  58. package/server/deacon.js +8 -8
  59. package/server/{devcontainer-renderer-BqGNCzvN.js → devcontainer-renderer-xPhZHCrx.js} +2 -2
  60. package/server/{docker-CNjXS72x.js → docker-DPEglAwA.js} +2 -2
  61. package/server/{ensure-devcontainer-5e9xOve4.js → ensure-devcontainer-SzSvEdKq.js} +3 -3
  62. package/server/{ensure-devcontainer-C6gyUQdE.js → ensure-devcontainer-wU3ym1b5.js} +1 -1
  63. package/server/{event-store-D9UhQyMS.js → event-store-BZoXexYS.js} +1 -1
  64. package/server/{event-store-KZnWUKWh.js → event-store-D4s6eQ6o.js} +3 -3
  65. package/server/{events-BYbvqZky.js → events-Bn-wdUBF.js} +1 -1
  66. package/server/{events-2eFUPdqz.js → events-D1hMLl2a.js} +3 -3
  67. package/server/{factory-BtaRsHFC.js → factory-ltWnu0V_.js} +4 -4
  68. package/server/{feature-registry-population-Ca2UaV0U.js → feature-registry-population-xj-J1Wm7.js} +4 -4
  69. package/server/{feature-registry-storage-DaP-bQxO.js → feature-registry-storage-CQZukiLm.js} +2 -2
  70. package/server/{features-DqvaoQoa.js → features-Dyqi6N8f.js} +2 -2
  71. package/server/{feedback-target-BblmMe9P.js → feedback-target-Ba0zhSYI.js} +1 -1
  72. package/server/{feedback-target-BXWdOiYI.js → feedback-target-Chd5dm-Q.js} +7 -7
  73. package/server/{feedback-writer-CULeOOY4.js → feedback-writer-BtaoJGl2.js} +1 -1
  74. package/server/{feedback-writer-Dn8o9ZyE.js → feedback-writer-BujzReaQ.js} +4 -4
  75. package/server/{flywheel-CqkO3cDj.js → flywheel-FTInS73X.js} +10 -10
  76. package/server/{flywheel-BUWdcfhq.js → flywheel-bTImiVrk.js} +1 -1
  77. package/server/{flywheel-merge-order-VtjUweEb.js → flywheel-merge-order-DuenRJLZ.js} +6 -6
  78. package/server/{flywheel-merge-order-LDzQDwSg.js → flywheel-merge-order-O5Zu8iPw.js} +1 -1
  79. package/server/{flywheel-D9r1mw2U.js → flywheel-rmYbW-lh.js} +12 -12
  80. package/server/{forge-wEollMCi.js → forge-OWm99lie.js} +2 -2
  81. package/server/forge-x5lszTd0.js +2 -0
  82. package/server/{fts-db-Bgzn2RO7.js → fts-db-BRfS5ukG.js} +2 -2
  83. package/server/{fts-operations-Bj8yutnR.js → fts-operations-L5sNLoHl.js} +2 -2
  84. package/server/{git-utils-q8jNoBts.js → git-utils-BIEzv2Zp.js} +1 -1
  85. package/server/{git-utils-GxlL0tmt.js → git-utils-CP-bg-aM.js} +2 -2
  86. package/server/{github-app-tUbb8Ldr.js → github-app-CRUIvHuM.js} +2 -2
  87. package/server/{github-app-BrYwK_Gb.js → github-app-Dtn4ib6M.js} +1 -1
  88. package/server/{github-client-BwBU41jK.js → github-client-CWEFlCqL.js} +2 -2
  89. package/server/{github-client-D6CNsftm.js → github-client-DSVv6wX8.js} +1 -1
  90. package/server/{github-pr-lookup-BS5PqkJb.js → github-pr-lookup-D6CS9vtG.js} +2 -2
  91. package/server/{harness-resolve-Dx8hUsvC.js → harness-resolve-ScD6rV47.js} +3 -3
  92. package/server/{health-events-B0mj6Iae.js → health-events-DbcJmYmd.js} +1 -1
  93. package/server/{health-events-2DLp-5Xp.js → health-events-Dm1Vcvqe.js} +2 -2
  94. package/server/{hooks-BDcQJDUe.js → hooks-B6gaI6Kg.js} +1 -1
  95. package/server/{hooks-BS_JrvYP.js → hooks-VXuCnzCv.js} +2 -2
  96. package/server/{idle-stack-reaper-C1ymihno.js → idle-stack-reaper-Gv32ZCrQ.js} +1 -1
  97. package/server/{idle-stack-reaper-BCITXNW5.js → idle-stack-reaper-po700Lfg.js} +2 -2
  98. package/server/{infra-_Kx1m9pm.js → infra-DYwIXlK5.js} +4 -4
  99. package/server/{injection-Bvhyg_MV.js → injection-CTfFnpsG.js} +1 -1
  100. package/server/{injection-CCaYkofq.js → injection-DPsUoCJp.js} +7 -7
  101. package/server/inspect-agent-B25IP-0O.js +2 -0
  102. package/server/{inspect-agent-BqyZ4pCo.js → inspect-agent-CLkwfLRx.js} +9 -9
  103. package/server/{internal-token-Cl-1IxaE.js → internal-token--50JhWP7.js} +2 -2
  104. package/server/{internal-token-D-t28de5.js → internal-token-BOgxXMGy.js} +1 -1
  105. package/server/{io-DkC4sFSy.js → io-Cv9xQTks.js} +2 -2
  106. package/server/{issue-closed-Cpl4VDUM.js → issue-closed-CyqtoFUj.js} +7 -7
  107. package/server/{issue-lifecycle-YNTy3OT3.js → issue-lifecycle-Cm7ydBGK.js} +1 -1
  108. package/server/{issue-lifecycle-CFR8TJ22.js → issue-lifecycle-DR6n40bh.js} +20 -20
  109. package/server/{issue-service-singleton-D81mCts_.js → issue-service-singleton--LQ5c2zT.js} +1 -1
  110. package/server/{issue-service-singleton-ldvUUXi3.js → issue-service-singleton-DKKPneH4.js} +8 -8
  111. package/server/{issues-DIEHt9sq.js → issues-Cr-BLFLO.js} +2 -2
  112. package/server/{jsonl-parser-Cd5jIqh7.js → jsonl-parser-Bp_xCkX4.js} +3 -3
  113. package/server/{label-cleanup-Btny6Gyo.js → label-cleanup-BbLy2FZe.js} +2 -2
  114. package/server/{launcher-generator-BXLM9f4b.js → launcher-generator-C-FU4PNT.js} +4 -4
  115. package/server/{layers-gCJlK62m.js → layers-C-6lBDUE.js} +2 -2
  116. package/server/{lifecycle-D7aQUnTO.js → lifecycle-Bmw8yU_A.js} +5 -5
  117. package/server/{lifecycle-io-DQBF-GHO.js → lifecycle-io-B150XprC.js} +1 -1
  118. package/server/{lifecycle-io-FfPUtz-y.js → lifecycle-io-Dcu-_ktz.js} +4 -4
  119. package/server/{linear-client-CDH2D6Qy.js → linear-client-BHjs0luk.js} +2 -2
  120. package/server/{linear-client-WrYrUIAH.js → linear-client-s65LNmlG.js} +1 -1
  121. package/server/memory-fts-worker.js +1 -1
  122. package/server/{merge-Dervs4BF.js → merge-CM8swd2V.js} +1 -1
  123. package/server/{merge-BsDgUxFz.js → merge-CS0b-E3u.js} +3 -3
  124. package/server/{merge-agent-D6DNhe9j.js → merge-agent-Bu1hw9cz.js} +26 -26
  125. package/server/{merge-agent-DMQTJMP0.js → merge-agent-D6LRIW63.js} +1 -1
  126. package/server/{merge-blockers-WWWi6Ur2.js → merge-blockers-Dt43hJiW.js} +2 -2
  127. package/server/merge-ops-DwYi3U_x.js +2 -0
  128. package/server/{merge-rebase-Czth9ggm.js → merge-rebase-B3vQcTq1.js} +2 -2
  129. package/server/{merge-set-vuE3MEVt.js → merge-set-BMEGEKQg.js} +1 -1
  130. package/server/{merge-set-DNc4zBqd.js → merge-set-Pe3spe8k.js} +3 -3
  131. package/server/{merge-sync-B9nHdUGx.js → merge-sync-CpxFRIQ7.js} +1 -1
  132. package/server/{merge-sync-B2KSk54U.js → merge-sync-STpg1hk3.js} +2 -2
  133. package/server/{merge-train-DJgr81tF.js → merge-train-DLw2hDk0.js} +3 -3
  134. package/server/{merge-train-deps-B2OWS0k9.js → merge-train-deps-BlCGLqwy.js} +4 -4
  135. package/server/{merge-verification-BBIXUEqa.js → merge-verification-C4WMP40D.js} +4 -4
  136. package/server/node_modules/.package-lock.json +1 -1
  137. package/server/{orphan-proposed-reconciler-DbTmT7qy.js → orphan-proposed-reconciler-eetUXmmt.js} +1 -1
  138. package/server/{orphan-proposed-reconciler-B8H41C4a.js → orphan-proposed-reconciler-k9eydM1E.js} +9 -9
  139. package/server/package-lock.json +2 -2
  140. package/server/package.json +1 -1
  141. package/server/{pan-dir-BTw4MdSe.js → pan-dir-D3vABXMs.js} +3 -3
  142. package/server/{paths-Btkc8mzp.js → paths-DIoslfsu.js} +2 -2
  143. package/server/{pipeline-notifier-3frIvSi3.js → pipeline-notifier-Bgidcelx.js} +1 -1
  144. package/server/{pipeline-notifier-DTd19f18.js → pipeline-notifier-CuBONomU.js} +2 -2
  145. package/server/{project-pipelines-B95fcAek.js → project-pipelines-B9b_JVTS.js} +2 -2
  146. package/server/{projects-Dc9aoVoG.js → projects-DxMUi2eI.js} +1 -1
  147. package/server/{prompts-CIVmjHxn.js → prompts-CY1xnHS-.js} +2 -2
  148. package/server/{providers-BLLk5IIb.js → providers-B7BNcK_j.js} +1 -1
  149. package/server/{providers-C-yWibCk.js → providers-CAlK2If5.js} +7 -7
  150. package/server/{pull-requests-D7AL5woD.js → pull-requests-Cs4VLxiY.js} +1 -1
  151. package/server/{pull-requests-NDDNtqNq.js → pull-requests-CxfrQiWX.js} +3 -3
  152. package/server/{queries-C0LCGG21.js → queries-srgusoi8.js} +59 -59
  153. package/server/{rally-4oKvnxLG.js → rally-AKkjuGdi.js} +3 -3
  154. package/server/rally-BOza5j3_.js +3 -0
  155. package/server/{rally-api-41tT6ikZ.js → rally-api-BGxATnyr.js} +2 -2
  156. package/server/{rally-api-BsaQ8Vnz.js → rally-api-Dbqw1YW9.js} +1 -1
  157. package/server/{rally-client-b5PT1x5L.js → rally-client-B1U5ewpO.js} +1 -1
  158. package/server/{rally-client-Bo4hNcCZ.js → rally-client-D8h73ei_.js} +4 -4
  159. package/server/{rebuild-stack-Ddv6W017.js → rebuild-stack-BYdtwS6f.js} +5 -5
  160. package/server/{rebuild-stack-C7JPUom6.js → rebuild-stack-Dsm9WjKv.js} +1 -1
  161. package/server/{reconstruct-cache-Gqhm---K.js → reconstruct-cache-D7oM1lNv.js} +6 -6
  162. package/server/{record-DLOqfbkI.js → record-BeXdn9Ue.js} +1 -1
  163. package/server/{record-update-BltEmPge.js → record-update-Cb_pPM-F.js} +2 -2
  164. package/server/{record-update-CDp7aTaT.js → record-update-KFiISAmu.js} +1 -1
  165. package/server/{recovery-trip-Cn7KJVkS.js → recovery-trip-DwbsONZf.js} +2 -2
  166. package/server/{release-engine-BYzmIBf9.js → release-engine-CAai5W0V.js} +5 -5
  167. package/server/{release-set-7pnxFOWR.js → release-set-vNEAfyDH.js} +3 -3
  168. package/server/{remote-Cvu4CSDk.js → remote-8HlOfuF1.js} +3 -3
  169. package/server/{remote-rN0ecjHE.js → remote-RQMKOL_R.js} +3 -3
  170. package/server/{remote-agents-C2C6z9tj.js → remote-agents-C4a4DdTj.js} +6 -6
  171. package/server/{remote-agents-DYY5fFpd.js → remote-agents-_Z1SAaSK.js} +1 -1
  172. package/server/{remote-completion-2Kb4IDg_.js → remote-completion-CH3igKY8.js} +12 -12
  173. package/server/resume-Cr34JAXO.js +3 -0
  174. package/server/{review-agent-BZvk0N5G.js → review-agent-CQ7oRh_G.js} +22 -22
  175. package/server/{review-agent-CpSHLzed.js → review-agent-CUVj54v0.js} +1 -1
  176. package/server/{review-artifacts-PCo53YMn.js → review-artifacts-CC3yGv7o.js} +5 -5
  177. package/server/{review-context-M7QtJlJq.js → review-context-BuxaAgAd.js} +7 -7
  178. package/server/{review-monitor-BLC5mTTg.js → review-monitor-uogOppaW.js} +2 -2
  179. package/server/{review-status-77N3PoZr.js → review-status-BoJdyvUQ.js} +1 -1
  180. package/server/{review-status-DANr0t-v.js → review-status-By86XA6Z.js} +23 -21
  181. package/server/{review-status-enrichment-DwOg4UfL.js → review-status-enrichment-CRQAO27G.js} +3 -3
  182. package/server/{review-status-sync-Bd08OOFA.js → review-status-sync-BI4WhUkF.js} +1 -1
  183. package/server/{review-status-sync-BjTUJ5fx.js → review-status-sync-DUQmrLkK.js} +2 -2
  184. package/server/{review-verdict-feedback-CBf-J_wS.js → review-verdict-feedback-BNcGkBRD.js} +6 -6
  185. package/server/{review-verdict-feedback-BsFLjN_6.js → review-verdict-feedback-CWz9_9Kp.js} +1 -1
  186. package/server/{rollup-DTCCdEy4.js → rollup-B-K6PCbm.js} +1 -1
  187. package/server/{rollup-Bu0f2EyN.js → rollup-CqiFgtBp.js} +7 -7
  188. package/server/{scanner-BlZ2vB7j.js → scanner-BZmDUjyD.js} +7 -7
  189. package/server/{sequence-io-ylyDtz2J.js → sequence-io-BuUx1ZAY.js} +4 -4
  190. package/server/{sequencer-agent-DsWQ-87H.js → sequencer-agent-2uWOA_BC.js} +5 -5
  191. package/server/server.js +155 -153
  192. package/server/{service-CLVBC_1Y.js → service-COB19Uhm.js} +45 -45
  193. package/server/{session-fork-DlEIAhRy.js → session-fork-D18TscUZ.js} +2 -2
  194. package/server/{session-history-bnOFKMwf.js → session-history-DbWnzfo-.js} +2 -2
  195. package/server/settings-C3w2std9.js +2 -0
  196. package/server/{settings-Cqa-8nyj.js → settings-CFEdfovT.js} +2 -2
  197. package/server/{settings-gJrdLZy2.js → settings-DNPAf2X_.js} +3 -3
  198. package/server/{shadow-engineering-fq1YEKV3.js → shadow-engineering-D8xTtraU.js} +2 -2
  199. package/server/{shadow-state-RptE9Cau.js → shadow-state-CTgub0ME.js} +2 -2
  200. package/server/{shadow-state-BqeFAygK.js → shadow-state-fRDYhcyx.js} +1 -1
  201. package/server/{shadow-utils-BMWr5tRT.js → shadow-utils-DqMLnRgQ.js} +2 -2
  202. package/server/{smart-compaction-DldUel4B.js → smart-compaction-CL6yaFpc.js} +1 -1
  203. package/server/{smart-compaction-CmoXpjeU.js → smart-compaction-CsJDKM-N.js} +5 -5
  204. package/server/{spawn-planning-session-DT2tSMxo.js → spawn-planning-session-C_wIQ-Zg.js} +1 -1
  205. package/server/{spawn-planning-session-CoS6LTc6.js → spawn-planning-session-D0-NlNK1.js} +13 -13
  206. package/server/{specialist-context-CspI4Eog.js → specialist-context-DXj5Itg8.js} +5 -5
  207. package/server/{specialist-handoff-logger-Duz9RGvk.js → specialist-handoff-logger-BFH-IB0n.js} +2 -2
  208. package/server/{specialist-logs-DtSkPJZK.js → specialist-logs-B-rldhNg.js} +3 -3
  209. package/server/{specialists-Dax7tqXC.js → specialists-C6-b3YZb.js} +81 -81
  210. package/server/{specialists-CywEMwxk.js → specialists-CI_eqHAz.js} +1 -1
  211. package/server/{specialists-GF42OOqd.js → specialists-Dp8ABxVh.js} +18 -18
  212. package/server/{specialists-D9-dMUtI.js → specialists-Hq3EojmD.js} +1 -1
  213. package/server/specs-DPGNVh51.js +3 -0
  214. package/server/{stack-health-BsEVrJZ6.js → stack-health-Bxt-oGE6.js} +1 -1
  215. package/server/{stack-health-C-SnpRHh.js → stack-health-FtNYSTCS.js} +2 -2
  216. package/server/{stale-task-claims-vTxmRzLi.js → stale-task-claims-DnCHCATD.js} +4 -4
  217. package/server/{state-home-Bur1y4oH.js → state-home-BzzKVh_C.js} +2 -2
  218. package/server/{state-migrate-D3VveYfO.js → state-migrate-BS4IybIS.js} +3 -3
  219. package/server/{stuck-remediation-CaFYYTQW.js → stuck-remediation-CTNT4LUC.js} +1 -1
  220. package/server/{stuck-remediation-B699-p8v.js → stuck-remediation-DbwhGg3g.js} +15 -15
  221. package/server/{summary-fork-BxnF8Xh0.js → summary-fork-CloCB8dV.js} +2 -2
  222. package/server/{summary-fork-COqYpVa3.js → summary-fork-DaCs0tCq.js} +8 -8
  223. package/server/supervisor/{paths-Bk6hJRH9.js → paths-C1yU0jq4.js} +2 -1
  224. package/server/supervisor/pty-supervisor.js +2 -2
  225. package/server/supervisor/{pty-token-BZS5GYdG.js → pty-token-CSryb8Mb.js} +2 -2
  226. package/server/{supervisor-liMgIPDF.js → supervisor-CRED6PD6.js} +2 -2
  227. package/server/supervisor-DHwuClN_.js +2 -0
  228. package/server/{swarm-readiness-sXB1vhzo.js → swarm-readiness-CEOrP9rE.js} +3 -3
  229. package/server/{teardown-workspace-DvzqnmUF.js → teardown-workspace-Ckn7HGhp.js} +12 -12
  230. package/server/{test-agent-queue-hAU1Ah08.js → test-agent-queue-C8lE8r2j.js} +5 -5
  231. package/server/{tldr-daemon-DhGwd88s.js → tldr-daemon-BE5rqR90.js} +1 -1
  232. package/server/{tldr-daemon-Bam7Xhoo.js → tldr-daemon-CGwDr28O.js} +2 -2
  233. package/server/{tmux-U55cNGFG.js → tmux-C3X2XmV0.js} +2 -2
  234. package/server/{tmux-C-rgxRDA.js → tmux-DNaD06Gc.js} +1 -1
  235. package/server/{tracker-config-OkdbaUCm.js → tracker-config-5Cabf1MU.js} +2 -2
  236. package/server/{tracker-utils-CghXMF3q.js → tracker-utils-Cl-Eaqrv.js} +2 -2
  237. package/server/{tracker-utils-DdzUiPNU.js → tracker-utils-FexeJhyf.js} +1 -1
  238. package/server/{tunnel-DjlzgTl3.js → tunnel-D4px7sKc.js} +1 -1
  239. package/server/{tunnel-D1YxesBL.js → tunnel-KId6Z59z.js} +2 -2
  240. package/server/{uat-train-CqN34zFx.js → uat-train-B16skN7L.js} +23 -23
  241. package/server/{uat-train-CaaWs9Rp.js → uat-train-BBMrnecu.js} +1 -1
  242. package/server/{validation-DpTNakM6.js → validation-Zc4kAmqa.js} +1 -1
  243. package/server/{validation-4-z2Cw4z.js → validation-xAD7y5vW.js} +3 -3
  244. package/server/{verification-runner-BjHN80pJ.js → verification-runner-32y8NRfL.js} +13 -13
  245. package/server/{verification-runner-ShYu5Ph3.js → verification-runner-DAat1p1u.js} +1 -1
  246. package/server/{work-agent-prompt-BiJ43Der.js → work-agent-prompt-S3Fe1kpV.js} +9 -9
  247. package/server/{workflows-DkTotz_m.js → workflows-BNvk5gbE.js} +12 -12
  248. package/server/workflows-Cw2-a_hn.js +2 -0
  249. package/server/{workspace-CuN0ev4Z.js → workspace-BhUnCpcq.js} +3 -3
  250. package/server/{workspace-DQ4vVivd.js → workspace-C-gP6JAz.js} +1 -1
  251. package/server/{workspace-manager-Beeo2aKF.js → workspace-manager-BKiMmb0c.js} +10 -10
  252. package/server/{workspace-manager-B1mYn0lN.js → workspace-manager-DD6PDqV8.js} +1 -1
  253. package/server/{workspace-metadata-BZC5BmoP.js → workspace-metadata-Cnq0snrf.js} +2 -2
  254. package/server/{workspace-metadata-Cy7_ZACL.js → workspace-metadata-D5gNR61G.js} +1 -1
  255. package/server/{workspaces-CGuzW1Ia.js → workspaces-DiAwBsb9.js} +91 -91
  256. package/sync-sources/hooks/record-cost-event.js +1 -1
  257. package/sync-sources/hooks/record-cost-event.js.map +1 -1
  258. package/server/cli-BFgrSWKV.js +0 -3
  259. package/server/deacon-swarm-CKyGJng1.js +0 -2
  260. package/server/forge-DJy3Zx4s.js +0 -2
  261. package/server/inspect-agent-DCJQm9Wu.js +0 -2
  262. package/server/merge-ops-h9OCnIVz.js +0 -2
  263. package/server/rally-DF5a3ioP.js +0 -3
  264. package/server/resume-BFLl-yLn.js +0 -3
  265. package/server/settings-CP3GGon2.js +0 -2
  266. package/server/specs-VwcFtEDi.js +0 -3
  267. package/server/supervisor-eWAAmXKu.js +0 -2
  268. package/server/workflows-B4C3lY9E.js +0 -2
@@ -1,42 +1,42 @@
1
- import { Fn as init_projects, Jr as getOverdeckHome, Sr as init_errors, Vr as encodeClaudeProjectDir, Yr as init_paths, Z as resolveModel, ar as parseIssueIdSync, bn as extractTeamPrefix, cn as init_state_plane, fr as FsError, kn as getProjectSync, ln as isStatePlaneOnlyStatus, nr as extractPrefixSync, pr as GitError, qn as resolveProjectFromIssueSync, rr as init_issue_id, sr as resolveIssueIdSync, t as init_config_yaml, tr as extractNumberSync, wn as findProjectByTeamSync, zn as listProjectsSync } from "./config-yaml-CqaAyn8y.js";
2
- import { Q as getWorkAgentLifecycleStateSync, ct as getTrustedOrigins, ht as jsonResponse, n as _serverManagedMerges, pt as httpHandler, st as getHeaderFromMap, ut as normalizeOrigin } from "./specialists-Dax7tqXC.js";
1
+ import { Fn as init_projects, Jr as getOverdeckHome, Sr as init_errors, Vr as encodeClaudeProjectDir, Yr as init_paths, Z as resolveModel, ar as parseIssueIdSync, bn as extractTeamPrefix, cn as init_state_plane, fr as FsError, kn as getProjectSync, ln as isStatePlaneOnlyStatus, nr as extractPrefixSync, pr as GitError, qn as resolveProjectFromIssueSync, rr as init_issue_id, sr as resolveIssueIdSync, t as init_config_yaml, tr as extractNumberSync, wn as findProjectByTeamSync, zn as listProjectsSync } from "./config-yaml-BQs6GbD_.js";
2
+ import { Q as getWorkAgentLifecycleStateSync, ct as getTrustedOrigins, ht as jsonResponse, n as _serverManagedMerges, pt as httpHandler, st as getHeaderFromMap, ut as normalizeOrigin } from "./specialists-C6-b3YZb.js";
3
3
  import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-pcbf-e30.js";
4
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-_Kx1m9pm.js";
5
- import { J as init_child_env, R as sessionExists, S as init_tmux, i as capturePane, k as listSessionNames, q as buildChildEnvWithoutTmuxSync } from "./tmux-U55cNGFG.js";
6
- 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-DANr0t-v.js";
7
- import { _ as init_queue_position, a as EventStoreService, g as findPositionInQueueSync, h as computeQueuePositionFromStatusSync, s as init_domain_services } from "./issue-lifecycle-CFR8TJ22.js";
8
- import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-BoqD1Pxz.js";
9
- import { L as messageAgent, Nn as getAgentState, Rt as transitionIssueToInReview, Y as spawnAgent, gr as saveAgentRuntimeState, i as listRunningAgents, mr as getAgentRuntimeStateSync, s as init_agents } from "./queries-C0LCGG21.js";
10
- import { f as CostWriter, l as CostDoorLive } from "./service-CLVBC_1Y.js";
11
- import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-OkdbaUCm.js";
12
- import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-CghXMF3q.js";
13
- import { o as getInternalTokenSync, s as init_internal_token } from "./internal-token-Cl-1IxaE.js";
4
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-DYwIXlK5.js";
5
+ import { J as init_child_env, R as sessionExists, S as init_tmux, i as capturePane, k as listSessionNames, q as buildChildEnvWithoutTmuxSync } from "./tmux-C3X2XmV0.js";
6
+ 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-By86XA6Z.js";
7
+ import { _ as init_queue_position, a as EventStoreService, g as findPositionInQueueSync, h as computeQueuePositionFromStatusSync, s as init_domain_services } from "./issue-lifecycle-DR6n40bh.js";
8
+ import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-oinpUqvE.js";
9
+ import { L as messageAgent, Nn as getAgentState, Rt as transitionIssueToInReview, Y as spawnAgent, gr as saveAgentRuntimeState, i as listRunningAgents, mr as getAgentRuntimeStateSync, s as init_agents } from "./queries-srgusoi8.js";
10
+ import { f as CostWriter, l as CostDoorLive } from "./service-COB19Uhm.js";
11
+ import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-5Cabf1MU.js";
12
+ import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-Cl-Eaqrv.js";
13
+ import { o as getInternalTokenSync, s as init_internal_token } from "./internal-token--50JhWP7.js";
14
14
  import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME, p as init_types } from "./types-DOjWNv3Z.js";
15
- import { o as init_merge_sync, r as getAllActiveQueues } from "./merge-sync-B2KSk54U.js";
16
- import { O as findVBriefByIssue, _ as VBRIEF_INSPECTION_POLICIES, c as mergeRecordStatusOverrides, j as readVBriefDocument, k as init_vbrief_index, o as init_io, r as findPlan, s as isPlanningComplete, u as readPlan, v as init_types$1 } from "./io-DkC4sFSy.js";
17
- import { it as findConversationForCostSessionSync, k as init_conversations } from "./conversations-BX5aD-6F.js";
18
- import { i as normalizeModelOverrideSync, r as init_model_validation } from "./launcher-generator-BXLM9f4b.js";
19
- import { f as init_config, m as loadConfigSync$1 } from "./config-DfaUXr6r.js";
20
- import { a as init_stack_health, i as getWorkspaceStackHealth, n as collectDockerContainerLifecycleSnapshot } from "./stack-health-C-SnpRHh.js";
21
- import { a as criticalPath, l as init_dag, t as actionableDoc } from "./dag-C6kYyF17.js";
22
- import { a as readEventsFromLineSync, i as init_events, l as init_wal, o as readEventsSync, r as getLastEventMetadataSync, t as appendCostEventSync } from "./events-2eFUPdqz.js";
23
- import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-Beeo2aKF.js";
24
- import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-BqGNCzvN.js";
25
- import { a as init_jsonl_parser, t as getActiveSessionModelSync } from "./jsonl-parser-Cd5jIqh7.js";
26
- import { i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-CzCW9Ifl.js";
27
- import { T as verifyAppCanMerge, f as init_github_app, m as isIntegrationPermissionError } from "./github-app-tUbb8Ldr.js";
28
- import { a as loadWorkspaceMetadataSync, i as listWorkspaceMetadataSync } from "./workspace-metadata-BZC5BmoP.js";
29
- import { n as enrichReviewStatusFromSessions } from "./review-status-enrichment-DwOg4UfL.js";
30
- import { n as generateDailySummary, r as init_cli } from "./cli-C33xPZNm.js";
31
- import { a as getDiffStat, i as getDiffBase, o as init_review_context, r as getChangedFiles } from "./review-context-M7QtJlJq.js";
32
- import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-Bam7Xhoo.js";
33
- 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-D6DNhe9j.js";
34
- import { F as enqueueMerge, I as getAllActiveQueues$1, L as getCurrentMerge, P as dequeueMerge, z as markMergeProcessing } from "./merge-BsDgUxFz.js";
35
- import { n as init_release_set, t as getReleaseSetSync } from "./release-set-7pnxFOWR.js";
36
- import { i as init_conflict_gate, r as getCachedConflictGateMergeability } from "./conflict-gate-BF_zhcmb.js";
37
- import { r as runVerificationForIssue } from "./verification-runner-BjHN80pJ.js";
38
- import { t as teardownWorkspace } from "./teardown-workspace-DvzqnmUF.js";
39
- import { n as init_rebuild_stack, t as composeProjectNameForWorkspace } from "./rebuild-stack-Ddv6W017.js";
15
+ import { o as init_merge_sync, r as getAllActiveQueues } from "./merge-sync-STpg1hk3.js";
16
+ import { O as findVBriefByIssue, _ as VBRIEF_INSPECTION_POLICIES, c as mergeRecordStatusOverrides, j as readVBriefDocument, k as init_vbrief_index, o as init_io, r as findPlan, s as isPlanningComplete, u as readPlan, v as init_types$1 } from "./io-Cv9xQTks.js";
17
+ import { it as findConversationForCostSessionSync, k as init_conversations } from "./conversations-CxOWHNzv.js";
18
+ import { i as normalizeModelOverrideSync, r as init_model_validation } from "./launcher-generator-C-FU4PNT.js";
19
+ import { f as init_config, m as loadConfigSync$1 } from "./config-Cntj_tFu.js";
20
+ import { a as init_stack_health, i as getWorkspaceStackHealth, n as collectDockerContainerLifecycleSnapshot } from "./stack-health-FtNYSTCS.js";
21
+ import { a as criticalPath, l as init_dag, t as actionableDoc } from "./dag-ClFr7Bah.js";
22
+ import { a as readEventsFromLineSync, i as init_events, l as init_wal, o as readEventsSync, r as getLastEventMetadataSync, t as appendCostEventSync } from "./events-D1hMLl2a.js";
23
+ import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-BKiMmb0c.js";
24
+ import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-xPhZHCrx.js";
25
+ import { a as init_jsonl_parser, t as getActiveSessionModelSync } from "./jsonl-parser-Bp_xCkX4.js";
26
+ import { i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-BW3te5Vw.js";
27
+ import { T as verifyAppCanMerge, f as init_github_app, m as isIntegrationPermissionError } from "./github-app-CRUIvHuM.js";
28
+ import { a as loadWorkspaceMetadataSync, i as listWorkspaceMetadataSync } from "./workspace-metadata-Cnq0snrf.js";
29
+ import { n as enrichReviewStatusFromSessions } from "./review-status-enrichment-CRQAO27G.js";
30
+ import { n as generateDailySummary, r as init_cli } from "./cli-DGZWYXio.js";
31
+ import { a as getDiffStat, i as getDiffBase, o as init_review_context, r as getChangedFiles } from "./review-context-BuxaAgAd.js";
32
+ import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-CGwDr28O.js";
33
+ 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-Bu1hw9cz.js";
34
+ import { F as enqueueMerge, I as getAllActiveQueues$1, L as getCurrentMerge, P as dequeueMerge, z as markMergeProcessing } from "./merge-CS0b-E3u.js";
35
+ import { n as init_release_set, t as getReleaseSetSync } from "./release-set-vNEAfyDH.js";
36
+ import { i as init_conflict_gate, r as getCachedConflictGateMergeability } from "./conflict-gate-DdfwKgy0.js";
37
+ import { r as runVerificationForIssue } from "./verification-runner-32y8NRfL.js";
38
+ import { t as teardownWorkspace } from "./teardown-workspace-Ckn7HGhp.js";
39
+ import { n as init_rebuild_stack, t as composeProjectNameForWorkspace } from "./rebuild-stack-BYdtwS6f.js";
40
40
  import { basename, dirname, join, resolve, sep } from "node:path";
41
41
  import { Effect, Layer, Option } from "effect";
42
42
  import { closeSync, existsSync, fstatSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, renameSync, writeFileSync } from "fs";
@@ -973,7 +973,7 @@ const postWorkspaceContainerActionRoute = HttpRouter.add("POST", "/api/workspace
973
973
  }
974
974
  if (!workspacePath) return jsonResponse({ error: `Workspace not found for ${issueId}` }, { status: 404 });
975
975
  if (!composeFile && ["start", "restart"].includes(action)) {
976
- const { ensureDevcontainerSync } = yield* Effect.promise(() => import("./ensure-devcontainer-C6gyUQdE.js"));
976
+ const { ensureDevcontainerSync } = yield* Effect.promise(() => import("./ensure-devcontainer-wU3ym1b5.js"));
977
977
  if (ensureDevcontainerSync({
978
978
  workspacePath,
979
979
  issueId
@@ -2592,7 +2592,7 @@ async function reconcileGitHubMergeStatus(issueId, status) {
2592
2592
  const prRef = parseGitHubPullRequestUrl(status.prUrl);
2593
2593
  if (!prRef) return false;
2594
2594
  try {
2595
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-BrYwK_Gb.js");
2595
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-Dtn4ib6M.js");
2596
2596
  if (!isGitHubAppConfigured()) return false;
2597
2597
  const prState = await Effect.runPromise(getPullRequestState(prRef.owner, prRef.repo, prRef.number));
2598
2598
  console.log(`[merge] reconcileGitHubMergeStatus: ${issueId} PR #${prRef.number} merged=${prState.merged} state=${prState.state}`);
@@ -2832,8 +2832,8 @@ async function triggerMerge(issueId) {
2832
2832
  try {
2833
2833
  if (workspaceInfo.isRemote && workspaceInfo.vmName) {
2834
2834
  console.log(`[merge] Remote workspace detected for ${issueId}, using review artifact merge...`);
2835
- const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-vuE3MEVt.js");
2836
- const { getForgeAdapter } = await import("./forge-DJy3Zx4s.js");
2835
+ const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-BMEGEKQg.js");
2836
+ const { getForgeAdapter } = await import("./forge-x5lszTd0.js");
2837
2837
  const remotePrimaryRepo = (getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId))?.repos[0];
2838
2838
  const remoteTargetBranch = remotePrimaryRepo?.targetBranch || "main";
2839
2839
  const remoteForge = remotePrimaryRepo?.forge || "github";
@@ -2868,7 +2868,7 @@ async function triggerMerge(issueId) {
2868
2868
  readyForMerge: false
2869
2869
  });
2870
2870
  completePendingOperation(issueId, null);
2871
- const { postMergeLifecycle } = await import("./merge-agent-DMQTJMP0.js");
2871
+ const { postMergeLifecycle } = await import("./merge-agent-D6LRIW63.js");
2872
2872
  await postMergeLifecycle(issueId, projectPath);
2873
2873
  return {
2874
2874
  success: true,
@@ -2905,10 +2905,10 @@ async function triggerMerge(issueId) {
2905
2905
  const projectConfig = findProjectByTeamSync(issuePrefix);
2906
2906
  if (projectConfig?.workspace?.type === "polyrepo" && projectConfig?.workspace?.repos) {
2907
2907
  console.log(`[merge] Polyrepo detected for ${issueId}, coordinating merge set...`);
2908
- const { getMergeSetSync, ensureMergeSetForIssueSync, upsertMergeSetSync, withRepoStateSync } = await import("./merge-set-vuE3MEVt.js");
2909
- const { runQualityGates } = await import("./validation-DpTNakM6.js");
2910
- const { getForgeAdapter } = await import("./forge-DJy3Zx4s.js");
2911
- const { messageAgent } = await import("./agents-BA15AQqo.js");
2908
+ const { getMergeSetSync, ensureMergeSetForIssueSync, upsertMergeSetSync, withRepoStateSync } = await import("./merge-set-BMEGEKQg.js");
2909
+ const { runQualityGates } = await import("./validation-Zc4kAmqa.js");
2910
+ const { getForgeAdapter } = await import("./forge-x5lszTd0.js");
2911
+ const { messageAgent } = await import("./agents-DAUyr_Z1.js");
2912
2912
  let mergeSet = getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId);
2913
2913
  if (!mergeSet) {
2914
2914
  const error = `No merge set found for ${issueId}`;
@@ -3178,7 +3178,7 @@ async function triggerMerge(issueId) {
3178
3178
  readyForMerge: false
3179
3179
  });
3180
3180
  completePendingOperation(issueId, null);
3181
- const { postMergeLifecycle } = await import("./merge-agent-DMQTJMP0.js");
3181
+ const { postMergeLifecycle } = await import("./merge-agent-D6LRIW63.js");
3182
3182
  advanceQueue();
3183
3183
  await postMergeLifecycle(issueId, projectPath);
3184
3184
  return {
@@ -3189,8 +3189,8 @@ async function triggerMerge(issueId) {
3189
3189
  repos: mergeResults
3190
3190
  };
3191
3191
  }
3192
- const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-vuE3MEVt.js");
3193
- const { getForgeAdapter } = await import("./forge-DJy3Zx4s.js");
3192
+ const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-BMEGEKQg.js");
3193
+ const { getForgeAdapter } = await import("./forge-x5lszTd0.js");
3194
3194
  const primaryRepo = (getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId))?.repos[0];
3195
3195
  const targetBranch = primaryRepo?.targetBranch || "main";
3196
3196
  const primaryForge = primaryRepo?.forge || "github";
@@ -3232,7 +3232,7 @@ async function triggerMerge(issueId) {
3232
3232
  };
3233
3233
  }
3234
3234
  if (githubPrRef) try {
3235
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-BrYwK_Gb.js");
3235
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-Dtn4ib6M.js");
3236
3236
  if (isGitHubAppConfigured()) {
3237
3237
  const prState = await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number));
3238
3238
  if (prState.state !== "OPEN" && !prState.merged) {
@@ -3293,7 +3293,7 @@ async function triggerMerge(issueId) {
3293
3293
  readyForMerge: false
3294
3294
  });
3295
3295
  completePendingOperation(issueId, null);
3296
- const { postMergeLifecycle } = await import("./merge-agent-DMQTJMP0.js");
3296
+ const { postMergeLifecycle } = await import("./merge-agent-D6LRIW63.js");
3297
3297
  await postMergeLifecycle(issueId, projectPath, branchName);
3298
3298
  return {
3299
3299
  success: true,
@@ -3307,7 +3307,7 @@ async function triggerMerge(issueId) {
3307
3307
  } catch (prStateErr) {
3308
3308
  console.warn(`[merge] Pre-merge PR state check failed for ${issueId}: ${prStateErr.message} — proceeding (check is best-effort)`);
3309
3309
  }
3310
- const { postMergeLifecycle } = await import("./merge-agent-DMQTJMP0.js");
3310
+ const { postMergeLifecycle } = await import("./merge-agent-D6LRIW63.js");
3311
3311
  const agentId = `agent-${issueId.toLowerCase()}`;
3312
3312
  const rebaseMsg = `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.`;
3313
3313
  setReviewStatus(issueId, { mergeStep: "rebasing" });
@@ -3441,7 +3441,7 @@ async function triggerMerge(issueId) {
3441
3441
  });
3442
3442
  let skipLocalVerification = false;
3443
3443
  if (primaryForge === "github" && artifactUrl) try {
3444
- const { parsePullRequestRef, getCiCheckRunsStatePromise, isGitHubAppConfigured } = await import("./github-app-BrYwK_Gb.js");
3444
+ const { parsePullRequestRef, getCiCheckRunsStatePromise, isGitHubAppConfigured } = await import("./github-app-Dtn4ib6M.js");
3445
3445
  if (isGitHubAppConfigured()) {
3446
3446
  const ref = parsePullRequestRef({ url: artifactUrl });
3447
3447
  if (ref) {
@@ -3467,7 +3467,7 @@ async function triggerMerge(issueId) {
3467
3467
  const verifyResult = skipLocalVerification ? { outcome: "passed" } : await (async () => {
3468
3468
  console.log(`[merge] Running post-rebase verification for ${issueId}...`);
3469
3469
  appendShipLog(issueId, "Running post-rebase verification (full quality-gate suite)…", "verifying");
3470
- const { runVerificationForIssue } = await import("./verification-runner-ShYu5Ph3.js");
3470
+ const { runVerificationForIssue } = await import("./verification-runner-DAat1p1u.js");
3471
3471
  return Effect.runPromise(runVerificationForIssue(issueId, workspacePath, { isRemote: false }, "merge-verify", {
3472
3472
  syncTargetBranch: false,
3473
3473
  onGateLog: (line) => appendShipLog(issueId, line, "verifying")
@@ -3500,7 +3500,7 @@ async function triggerMerge(issueId) {
3500
3500
  console.log(`[merge] Post-rebase verification ${verifyResult.outcome} for ${issueId}`);
3501
3501
  setReviewStatus(issueId, { mergeStep: "reporting-statuses" });
3502
3502
  try {
3503
- const { getPullRequestState, isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-BrYwK_Gb.js");
3503
+ const { getPullRequestState, isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-Dtn4ib6M.js");
3504
3504
  if (githubPrRef && isGitHubAppConfigured()) {
3505
3505
  const sha = (await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number))).headSha.trim();
3506
3506
  if (sha) {
@@ -3528,7 +3528,7 @@ async function triggerMerge(issueId) {
3528
3528
  } catch (prMergeErr) {
3529
3529
  console.error(`[merge] Review artifact merge threw for ${issueId}:`, prMergeErr);
3530
3530
  try {
3531
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-BrYwK_Gb.js");
3531
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-Dtn4ib6M.js");
3532
3532
  if (githubPrRef && isGitHubAppConfigured()) {
3533
3533
  artifactMerged = (await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number))).merged;
3534
3534
  if (artifactMerged) console.log(`[merge] Race-detected: PR #${githubPrRef.number} for ${issueId} was already merged despite thrown error; proceeding`);
@@ -3645,8 +3645,8 @@ const postForgeApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/forge
3645
3645
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
3646
3646
  if (!/^[A-Z]+-\d+$/i.test(issueId)) return jsonResponse({ error: "Invalid issue ID format" }, { status: 400 });
3647
3647
  return yield* Effect.promise(async () => {
3648
- const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-vuE3MEVt.js");
3649
- const { getForgeAdapter } = await import("./forge-DJy3Zx4s.js");
3648
+ const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-BMEGEKQg.js");
3649
+ const { getForgeAdapter } = await import("./forge-x5lszTd0.js");
3650
3650
  let mergeSet = getMergeSetSync(issueId);
3651
3651
  if (!mergeSet) return jsonResponse({ error: `No merge set found for ${issueId}` }, { status: 404 });
3652
3652
  const results = [];
@@ -3734,8 +3734,8 @@ const postForgeMergeRoute = HttpRouter.add("POST", "/api/issues/:issueId/forge-m
3734
3734
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
3735
3735
  if (!/^[A-Z]+-\d+$/i.test(issueId)) return jsonResponse({ error: "Invalid issue ID format" }, { status: 400 });
3736
3736
  return yield* Effect.promise(async () => {
3737
- const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-vuE3MEVt.js");
3738
- const { getForgeAdapter } = await import("./forge-DJy3Zx4s.js");
3737
+ const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-BMEGEKQg.js");
3738
+ const { getForgeAdapter } = await import("./forge-x5lszTd0.js");
3739
3739
  let mergeSet = getMergeSetSync(issueId);
3740
3740
  if (!mergeSet) return jsonResponse({ error: `No merge set found for ${issueId}` }, { status: 404 });
3741
3741
  const results = [];
@@ -3928,7 +3928,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
3928
3928
  console.log(`[approve] Starting role pipeline for ${issueId}...`);
3929
3929
  let reviewResult;
3930
3930
  try {
3931
- const { spawnReviewRoleForIssue } = await import("./review-agent-CpSHLzed.js");
3931
+ const { spawnReviewRoleForIssue } = await import("./review-agent-CUVj54v0.js");
3932
3932
  reviewResult = await Effect.runPromise(spawnReviewRoleForIssue({
3933
3933
  issueId,
3934
3934
  workspace: workspacePath,
@@ -3975,7 +3975,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
3975
3975
  }
3976
3976
  console.log(`[approve] Step 3/3: Running server-side rebase for ${issueId}...`);
3977
3977
  try {
3978
- const { rebaseFeatureBranch } = await import("./merge-rebase-Czth9ggm.js");
3978
+ const { rebaseFeatureBranch } = await import("./merge-rebase-B3vQcTq1.js");
3979
3979
  const workspacePathForRebase = join(projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
3980
3980
  const rebaseResult = await Effect.runPromise(rebaseFeatureBranch(workspacePathForRebase, branchName, "main", issueId));
3981
3981
  if (!rebaseResult.success) {
@@ -3995,7 +3995,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
3995
3995
  completePendingOperation(issueId, pushResult.error);
3996
3996
  return jsonResponse({ error: pushResult.error }, { status: pushResult.httpStatus });
3997
3997
  }
3998
- const { approve: lifecycleApprove } = await import("./lifecycle-D7aQUnTO.js");
3998
+ const { approve: lifecycleApprove } = await import("./lifecycle-Bmw8yU_A.js");
3999
3999
  const ghResolved = resolveGitHubIssueSync(issueId);
4000
4000
  const isGitHubIssueFlag = ghResolved.isGitHub;
4001
4001
  const lifecycleCtx = {
@@ -4029,7 +4029,7 @@ const getMergeQueueRoute = HttpRouter.add("GET", "/api/merge-queue", httpHandler
4029
4029
  })));
4030
4030
  const postInternalPipelineNotifyRoute = HttpRouter.add("POST", "/api/internal/pipeline/notify", httpHandler(Effect.gen(function* () {
4031
4031
  const request = yield* HttpServerRequest.HttpServerRequest;
4032
- const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-D-t28de5.js"));
4032
+ const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-BOgxXMGy.js"));
4033
4033
  const expected = getInternalTokenSync();
4034
4034
  if (!expected) return jsonResponse({
4035
4035
  ok: false,
@@ -4043,7 +4043,7 @@ const postInternalPipelineNotifyRoute = HttpRouter.add("POST", "/api/internal/pi
4043
4043
  }, 403);
4044
4044
  const event = yield* readJsonBody;
4045
4045
  const type = event.type;
4046
- const { notifyPipelineSync } = yield* Effect.promise(() => import("./pipeline-notifier-3frIvSi3.js"));
4046
+ const { notifyPipelineSync } = yield* Effect.promise(() => import("./pipeline-notifier-Bgidcelx.js"));
4047
4047
  switch (type) {
4048
4048
  case "status_changed": {
4049
4049
  const issueId = event.issueId;
@@ -4818,7 +4818,7 @@ const patchWorkspaceTieredExecutionRoute = HttpRouter.add("PATCH", "/api/workspa
4818
4818
  if (override !== "on" && override !== "off" && override !== null && override !== void 0) return jsonResponse({ error: "Invalid tiered-execution override" }, { status: 400 });
4819
4819
  const project = getProjectSync(extractPrefixSync(issueId) ?? issueId.split("-")[0]);
4820
4820
  if (!project) return jsonResponse({ error: "Project not found" }, { status: 404 });
4821
- yield* Effect.promise(() => import("./record-DLOqfbkI.js").then((m) => m.writeRecordTieredExecutionOverride(project, issueId, override)));
4821
+ yield* Effect.promise(() => import("./record-BeXdn9Ue.js").then((m) => m.writeRecordTieredExecutionOverride(project, issueId, override)));
4822
4822
  const projectPath = project.path;
4823
4823
  const location = yield* resolvePlanLocation(projectPath, issueId);
4824
4824
  if (!location) return jsonResponse({ error: "No vBRIEF plan found for this workspace" }, { status: 404 });
@@ -5253,7 +5253,7 @@ const postWorkspaceReviewRoute = HttpRouter.add("POST", "/api/review/:issueId/tr
5253
5253
  console.log(`Feature branch push note: ${errorMessage(pushErr)}`);
5254
5254
  }
5255
5255
  try {
5256
- const { createReviewArtifactsForIssue } = await import("./review-artifacts-PCo53YMn.js");
5256
+ const { createReviewArtifactsForIssue } = await import("./review-artifacts-CC3yGv7o.js");
5257
5257
  const artifactResult = await Effect.runPromise(createReviewArtifactsForIssue(issueId, workspacePath));
5258
5258
  const primaryArtifact = artifactResult.mergeSet?.repos.find((repo) => !!repo.artifactUrl);
5259
5259
  artifactResult.mergeSet?.repos.find((repo) => repo.mergeStatus !== "skipped")?.targetBranch;
@@ -5308,7 +5308,7 @@ const postWorkspaceReviewRoute = HttpRouter.add("POST", "/api/review/:issueId/tr
5308
5308
  } catch {}
5309
5309
  return;
5310
5310
  }
5311
- const { spawnReviewRoleForIssue } = await import("./review-agent-CpSHLzed.js");
5311
+ const { spawnReviewRoleForIssue } = await import("./review-agent-CUVj54v0.js");
5312
5312
  const prUrl = getReviewStatusSync(issueId)?.prUrl;
5313
5313
  const reviewResult = await Effect.runPromise(spawnReviewRoleForIssue({
5314
5314
  issueId,
@@ -5447,7 +5447,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
5447
5447
  console.log(`[request-review] Feature branch push note: ${errorMessage(pushErr)}`);
5448
5448
  }
5449
5449
  const prUrl = getReviewStatusSync(issueId)?.prUrl;
5450
- const { spawnReviewRoleForIssue } = await import("./review-agent-CpSHLzed.js");
5450
+ const { spawnReviewRoleForIssue } = await import("./review-agent-CUVj54v0.js");
5451
5451
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
5452
5452
  issueId,
5453
5453
  workspace: workspacePathRerun,
@@ -5497,7 +5497,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
5497
5497
  });
5498
5498
  } else {
5499
5499
  const workspacePath = join(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
5500
- const { spawnRun } = yield* Effect.promise(() => import("./agents-BA15AQqo.js"));
5500
+ const { spawnRun } = yield* Effect.promise(() => import("./agents-DAUyr_Z1.js"));
5501
5501
  try {
5502
5502
  const testRun = yield* Effect.promise(() => spawnRun(issueId, "test", { workspace: workspacePath }));
5503
5503
  setReviewStatus(issueId, { testStatus: "testing" });
@@ -5585,7 +5585,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
5585
5585
  autoRequeueCount: newCount
5586
5586
  }, { status: 500 });
5587
5587
  const result = yield* Effect.promise(async () => {
5588
- const { spawnReviewRoleForIssue } = await import("./review-agent-CpSHLzed.js");
5588
+ const { spawnReviewRoleForIssue } = await import("./review-agent-CUVj54v0.js");
5589
5589
  return await Effect.runPromise(spawnReviewRoleForIssue({
5590
5590
  issueId,
5591
5591
  workspace: workspacePath,
@@ -5898,7 +5898,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
5898
5898
  const result = processResetReviewPipeline(issueId, resetWorkspace.exists);
5899
5899
  if (result.httpStatus !== 200) return jsonResponse(result.body, { status: result.httpStatus });
5900
5900
  try {
5901
- const { resetPostMergeState } = yield* Effect.promise(() => import("./merge-agent-DMQTJMP0.js"));
5901
+ const { resetPostMergeState } = yield* Effect.promise(() => import("./merge-agent-D6LRIW63.js"));
5902
5902
  resetPostMergeState(issueId);
5903
5903
  } catch (err) {
5904
5904
  console.warn(`[reset-review] resetPostMergeState best-effort failed for ${issueId}:`, err);
@@ -5907,7 +5907,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
5907
5907
  const rerun = body?.rerun === true;
5908
5908
  if (rerun) try {
5909
5909
  yield* Effect.promise(async () => {
5910
- const { spawnReviewRoleForIssue } = await import("./review-agent-CpSHLzed.js");
5910
+ const { spawnReviewRoleForIssue } = await import("./review-agent-CUVj54v0.js");
5911
5911
  const dispatchArgs = buildReviewRedispatchArgs(issueId, resetWorkspace, workspaceInfo, resolved);
5912
5912
  if (dispatchArgs) {
5913
5913
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
@@ -5936,7 +5936,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
5936
5936
  const postWorkspaceReviewPurgeRoute = HttpRouter.add("POST", "/api/review/:issueId/purge", httpHandler(Effect.gen(function* () {
5937
5937
  const issueId = (yield* HttpRouter.params)["issueId"] ?? "";
5938
5938
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
5939
- const { purgeReviewAgentsForIssue } = yield* Effect.promise(() => import("./review-agent-CpSHLzed.js"));
5939
+ const { purgeReviewAgentsForIssue } = yield* Effect.promise(() => import("./review-agent-CUVj54v0.js"));
5940
5940
  const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
5941
5941
  const purge = yield* Effect.promise(() => purgeReviewAgentsForIssue(projectKey, issueId));
5942
5942
  const workspaceInfo = getWorkspaceInfoForIssue(issueId);
@@ -5966,8 +5966,8 @@ const postWorkspaceAbortReviewRoute = HttpRouter.add("POST", "/api/review/:issue
5966
5966
  success: false,
5967
5967
  error: "Workspace does not exist"
5968
5968
  }, { status: 400 });
5969
- const { resolveProjectFromIssueSync } = yield* Effect.promise(() => import("./projects-Dc9aoVoG.js"));
5970
- const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-CpSHLzed.js"));
5969
+ const { resolveProjectFromIssueSync } = yield* Effect.promise(() => import("./projects-DxMUi2eI.js"));
5970
+ const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-CUVj54v0.js"));
5971
5971
  const { killed, failed } = yield* killAllReviewerSessions(resolveProjectFromIssueSync(issueId)?.projectKey, issueId);
5972
5972
  setReviewStatus(issueId, {
5973
5973
  reviewStatus: "pending",
@@ -6039,8 +6039,8 @@ const getReviewConfigRoute = HttpRouter.add("GET", "/api/review/:issueId/config"
6039
6039
  const issueId = ((yield* HttpRouter.params)["issueId"] ?? "").toUpperCase();
6040
6040
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
6041
6041
  return jsonResponse(yield* Effect.promise(async () => {
6042
- const { readIssueRecordSync, resolveProjectForIssue } = await import("./record-DLOqfbkI.js");
6043
- const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-CpSHLzed.js");
6042
+ const { readIssueRecordSync, resolveProjectForIssue } = await import("./record-BeXdn9Ue.js");
6043
+ const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-CUVj54v0.js");
6044
6044
  const project = resolveProjectForIssue(issueId);
6045
6045
  const record = project ? readIssueRecordSync(project, issueId) : null;
6046
6046
  return {
@@ -6075,9 +6075,9 @@ const postReviewConfigRoute = HttpRouter.add("POST", "/api/review/:issueId/confi
6075
6075
  return jsonResponse({ error: error instanceof Error ? error.message : String(error) }, { status: 400 });
6076
6076
  }
6077
6077
  return jsonResponse(yield* Effect.promise(async () => {
6078
- const { resolveProjectForIssue } = await import("./record-DLOqfbkI.js");
6079
- const { updateIssueRecord } = await import("./record-update-CDp7aTaT.js");
6080
- const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-CpSHLzed.js");
6078
+ const { resolveProjectForIssue } = await import("./record-BeXdn9Ue.js");
6079
+ const { updateIssueRecord } = await import("./record-update-KFiISAmu.js");
6080
+ const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-CUVj54v0.js");
6081
6081
  const record = await updateIssueRecord(resolveProjectForIssue(issueId), issueId, (current) => {
6082
6082
  if (hasMode) if (body.reviewMode === null) delete current.reviewMode;
6083
6083
  else current.reviewMode = body.reviewMode;
@@ -6510,7 +6510,7 @@ async function readWorkspacePlanningMarkdown(issueId, fileName) {
6510
6510
  */
6511
6511
  async function readWorkspaceContinueFile(_projectPath, workspacePath, issueId) {
6512
6512
  try {
6513
- const { readRecordContinueViewSync, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-DLOqfbkI.js");
6513
+ const { readRecordContinueViewSync, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-BeXdn9Ue.js");
6514
6514
  const recordView = readRecordContinueViewSync(resolveProjectForIssue(issueId) ?? getProjectConfigFromWorkspacePath(workspacePath), issueId);
6515
6515
  return recordView ? JSON.stringify(recordView, null, 2) : null;
6516
6516
  } catch {
@@ -7269,7 +7269,7 @@ const getWorkspaceReviewStatusRoute = HttpRouter.add("GET", "/api/review/:issueI
7269
7269
  if (queuePosition === null) try {
7270
7270
  const resolved = resolveProjectFromIssueSync(issueId);
7271
7271
  if (resolved) {
7272
- const { getQueueForProject } = yield* Effect.promise(() => import("./merge-Dervs4BF.js"));
7272
+ const { getQueueForProject } = yield* Effect.promise(() => import("./merge-CM8swd2V.js"));
7273
7273
  const mergePos = findPositionInQueueSync(issueId, getQueueForProject(resolved.projectKey).map((e) => ({
7274
7274
  id: String(e.id),
7275
7275
  type: "task",
@@ -7307,7 +7307,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
7307
7307
  const workspaceInfo = getWorkspaceInfoForIssue(issueId);
7308
7308
  if (workspaceInfo.exists && workspaceInfo.localPath) {
7309
7309
  const localPath = workspaceInfo.localPath;
7310
- const { getWorkspaceGitInfo } = yield* Effect.promise(() => import("./git-utils-q8jNoBts.js"));
7310
+ const { getWorkspaceGitInfo } = yield* Effect.promise(() => import("./git-utils-BIEzv2Zp.js"));
7311
7311
  try {
7312
7312
  const gitInfo = yield* getWorkspaceGitInfo(localPath);
7313
7313
  if (gitInfo.HEAD) update.reviewedAtCommit = gitInfo.HEAD;
@@ -7322,7 +7322,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
7322
7322
  if (verificationStatus) update.verificationStatus = verificationStatus;
7323
7323
  if (readyForMerge !== void 0) update.readyForMerge = readyForMerge;
7324
7324
  const status = setReviewStatus(issueId, update);
7325
- const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-D9-dMUtI.js"));
7325
+ const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-Hq3EojmD.js"));
7326
7326
  const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
7327
7327
  if (reviewStatus && [
7328
7328
  "passed",
@@ -7340,7 +7340,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
7340
7340
  const agentId = `agent-${issueId.toLowerCase()}`;
7341
7341
  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.`;
7342
7342
  try {
7343
- const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-CULeOOY4.js"));
7343
+ const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-BtaoJGl2.js"));
7344
7344
  const wsInfo = getWorkspaceInfoForIssue(issueId);
7345
7345
  const fileResult = yield* Effect.promise(() => writeFeedbackFile({
7346
7346
  issueId,
@@ -7404,7 +7404,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
7404
7404
  const agentId = `agent-${issueId.toLowerCase()}`;
7405
7405
  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.`;
7406
7406
  try {
7407
- const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-CULeOOY4.js"));
7407
+ const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-BtaoJGl2.js"));
7408
7408
  const wsInfo = getWorkspaceInfoForIssue(issueId);
7409
7409
  const fileResult = yield* Effect.promise(() => writeFeedbackFile({
7410
7410
  issueId,
@@ -7437,14 +7437,14 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
7437
7437
  });
7438
7438
  yield* Effect.promise(async () => {
7439
7439
  try {
7440
- const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-Dc9aoVoG.js");
7440
+ const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-DxMUi2eI.js");
7441
7441
  const project = resolveProjectFromIssueSync(issueId);
7442
7442
  const repo = (project ? getProjectSync(project.projectKey) : null)?.github_repo;
7443
7443
  if (!repo || !repo.includes("/")) return;
7444
7444
  const [owner, name] = repo.split("/");
7445
7445
  const wsInfo = getWorkspaceInfoForIssue(issueId);
7446
7446
  if (!wsInfo?.localPath) return;
7447
- const { postOverdeckTestsStatus } = await import("./github-app-BrYwK_Gb.js");
7447
+ const { postOverdeckTestsStatus } = await import("./github-app-Dtn4ib6M.js");
7448
7448
  await postOverdeckTestsStatus(wsInfo.localPath, owner, name, "success", "Test specialist passed");
7449
7449
  } catch (err) {
7450
7450
  console.warn(`[review-status] Failed to post overdeck/tests for ${issueId}: ${err.message}`);
@@ -7486,7 +7486,7 @@ const postWorkspaceRefreshTokenRoute = HttpRouter.add("POST", "/api/workspaces/:
7486
7486
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
7487
7487
  const issueLower = issueId.toLowerCase();
7488
7488
  const workspacePath = join(getProjectPath(void 0, extractPrefixSync(issueId) ?? issueId.split("-")[0]), "workspaces", `feature-${issueLower}`);
7489
- const { refreshWorkspaceToken, isGitHubAppConfigured } = yield* Effect.promise(() => import("./github-app-BrYwK_Gb.js"));
7489
+ const { refreshWorkspaceToken, isGitHubAppConfigured } = yield* Effect.promise(() => import("./github-app-Dtn4ib6M.js"));
7490
7490
  if (!isGitHubAppConfigured()) return jsonResponse({
7491
7491
  success: false,
7492
7492
  error: "GitHub App not configured"
@@ -7501,4 +7501,4 @@ const workspacesRouteLayer = Layer.mergeAll(workspaceDataRouteLayer, postWorkspa
7501
7501
  //#endregion
7502
7502
  export { hasDashboardInternalToken as C, getWorkspacePathForIssue as D, rejectUnsafeDashboardMutationRequest as E, dashboardSessionCookieHeader as S, rejectUnauthorizedDashboardSessionMintRequest as T, syncCacheSync as _, pushApproveMain as a, resolveIssueHeadlineCost as b, triggerMerge as c, reconcile as d, reconcilePiTranscripts as f, rebuildCacheSync as g, getCostsForIssueSync as h, mergeOpsRouteLayer as i, resumeQueuedMerges as l, migrateAllSessionsSync as m, buildRichPRBody as n, reconcileGitHubMergeStatus as o, reclassifyUnknownCostEventsSync as p, isBranchAlreadyRebased as r, shouldBlockApproveForDirtyStatus as s, workspacesRouteLayer as t, syncWalFromAllProjects as u, processPendingFeedbackDeliveries as v, rejectUnauthorizedDashboardRequest as w, dashboardCsrfToken as x, getCachedRunningAgents as y };
7503
7503
 
7504
- //# sourceMappingURL=workspaces-CGuzW1Ia.js.map
7504
+ //# sourceMappingURL=workspaces-DiAwBsb9.js.map
@@ -13003,7 +13003,7 @@ const packageRoot = resolvePackageRootForDir(currentDir);
13003
13003
  * nothing in the repo layout signalled which dirs were sync sources.
13004
13004
  */
13005
13005
  const SYNC_SOURCES_ROOT = join(packageRoot, "sync-sources");
13006
- join(SYNC_SOURCES_ROOT, "skills"), join(SYNC_SOURCES_ROOT, "dev-skills"), join(SYNC_SOURCES_ROOT, "agents"), join(SYNC_SOURCES_ROOT, "rules"), join(SYNC_SOURCES_ROOT, "hooks"), join(SYNC_SOURCES_ROOT, "hooks", "git-hooks"), join(SYNC_SOURCES_ROOT, "templates"), join(SYNC_SOURCES_ROOT, "templates", "traefik"), join(SYNC_SOURCES_ROOT, "templates", "claude-md", "sections");
13006
+ join(SYNC_SOURCES_ROOT, "skills"), join(SYNC_SOURCES_ROOT, "dev-skills"), join(SYNC_SOURCES_ROOT, "agents"), join(SYNC_SOURCES_ROOT, "rules"), join(SYNC_SOURCES_ROOT, "hooks"), join(SYNC_SOURCES_ROOT, "hooks", "git-hooks"), join(SYNC_SOURCES_ROOT, "templates"), join(SYNC_SOURCES_ROOT, "plugins.json"), join(SYNC_SOURCES_ROOT, "templates", "traefik"), join(SYNC_SOURCES_ROOT, "templates", "claude-md", "sections");
13007
13007
  join(OVERDECK_HOME, "agent-definitions");
13008
13008
  join(OVERDECK_HOME, "rules");
13009
13009
  join(OVERDECK_HOME, ".manifest.json");