@overdeck/desktop 0.46.0 → 0.47.1

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 (388) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +4 -1
  2. package/package.json +1 -1
  3. package/server/{acceptance-criteria-CCwFGICj.js → acceptance-criteria-Cd7ZGZCq.js} +2 -2
  4. package/server/{advancing-selfheal-De1L-Sb4.js → advancing-selfheal-DieFp3qi.js} +6 -6
  5. package/server/{agent-gc-CBULruzm.js → agent-gc-BMcgTDl7.js} +5 -5
  6. package/server/{agent-state-VQk8fY9F.js → agent-state-DyZJia9f.js} +1 -1
  7. package/server/{agent-state-service-BlnSkRFA.js → agent-state-service-BOzQhLjU.js} +15 -9
  8. package/server/agent-state-service-DFO6qvHp.js +2 -0
  9. package/server/agent-state-source-Ca_zCaII.js +21 -0
  10. package/server/{agents-C5rWYhb6.js → agents-CtACUuVG.js} +23 -16
  11. package/server/{agents-BKKkxKgK.js → agents-Dnn4XgdB.js} +1 -1
  12. package/server/archive-planning-BHCd_eL5.js +2 -0
  13. package/server/{archive-planning-C0lAbNB_.js → archive-planning-Binfb99i.js} +10 -6
  14. package/server/{artifact-index-jobs-ug6ZxIP5.js → artifact-index-jobs-Jn7BGOtV.js} +2 -2
  15. package/server/{assemble-DnffNpOo.js → assemble-DsqK9OAq.js} +2 -2
  16. package/server/{tmux-dedup-DbN6MGzM.js → auto-spawn-consent-BooqhC3L.js} +262 -13
  17. package/server/{backlog-auto-trigger-Dh-i9PQf.js → backlog-auto-trigger-BADGPxov.js} +3 -3
  18. package/server/{behavior-CfIg6pKp.js → behavior-B7biGtFT.js} +2 -2
  19. package/server/boot-reconciled-stop-events-bQUzU8ns.js +44 -0
  20. package/server/{bridge-pool-patrol-CUFmjVDN.js → bridge-pool-patrol-DsPj6F7t.js} +1 -1
  21. package/server/{briefing-freshness-DHmCSLar.js → briefing-freshness-CUerZqWd.js} +2 -2
  22. package/server/{build-info-CuFfxZxp.js → build-info-D0q_i8WM.js} +3 -3
  23. package/server/{build-info-BP160gU7.js → build-info-Du74MKiP.js} +1 -1
  24. package/server/{checkpoint-manager-Dxh0FYsv.js → checkpoint-manager-Cu-R5Uzg.js} +1 -1
  25. package/server/{checkpoint-manager-DEWD82qK.js → checkpoint-manager-R5tnaxEY.js} +2 -2
  26. package/server/checkpoint-worker.js +1 -1
  27. package/server/{checkpoints-CZvbtLnr.js → checkpoints-DYtLu-PB.js} +2 -2
  28. package/server/{checkpoints-DMTgXuLG.js → checkpoints-wF84ubZ8.js} +1 -1
  29. package/server/{claude-hooks-provision-fvy4RD2b.js → claude-hooks-provision-DXI3Wqlm.js} +2 -2
  30. package/server/{claude-hooks-provision-CN-xo-do.js → claude-hooks-provision-UKxCeOyj.js} +1 -1
  31. package/server/{claude-permissions-CN0cSCPp.js → claude-permissions-DYVLnX9t.js} +2 -2
  32. package/server/{claude-settings-overlay-CJn35FHQ.js → claude-settings-overlay-DsbpIq2d.js} +2 -2
  33. package/server/{claude-settings-overlay-Dabi9slj.js → claude-settings-overlay-DxP2F_gY.js} +1 -1
  34. package/server/cli-D6mRfUE6.js +3 -0
  35. package/server/{cli-oCWYA1pE.js → cli-DzRKxxP_.js} +9 -9
  36. package/server/{cliproxy-C8mB3KuB.js → cliproxy-CG4meRFc.js} +2 -2
  37. package/server/{cliproxy-PGwTX_o8.js → cliproxy-Cwzw39yN.js} +1 -1
  38. package/server/{close-issue-D5MF5GqF.js → close-issue-BX1bATJy.js} +5 -5
  39. package/server/{closed-issue-reaper-CJ24u0Zt.js → closed-issue-reaper-DvnTSN6a.js} +1 -1
  40. package/server/{closed-issue-reaper-Cltx86x5.js → closed-issue-reaper-hLt0W86J.js} +62 -12
  41. package/server/{codex-Drlf5Xhf.js → codex-BYwi1uyW.js} +6 -6
  42. package/server/{codex-parser-DpB89Vqa.js → codex-parser-Poyz29GE.js} +2 -2
  43. package/server/{codex-BdEsUFWh.js → codex-rnJN3v3_.js} +1 -1
  44. package/server/{compaction-continuation-K2AxQX4H.js → compaction-continuation-DtMfHN0f.js} +3 -3
  45. package/server/{config-Dr3pW6w6.js → config-CX4vk1CV.js} +2 -2
  46. package/server/{config-DV-grfQc.js → config-R793W0yA.js} +1 -1
  47. package/server/{config-B2IMcBxx.js → config-ktAVnp4s.js} +2 -2
  48. package/server/{config-yaml-CmOPzmBb.js → config-yaml-CxdwhAIA.js} +10 -2
  49. package/server/{conflict-gate-B9cN3SBi.js → conflict-gate-BNv6UolH.js} +59 -13
  50. package/server/conflict-gate-BSTlwCtF.js +3 -0
  51. package/server/{context-layers-D6LZo3l1.js → context-layers-DCdaGsRG.js} +2 -2
  52. package/server/{context-layers-dR5YxHYB.js → context-layers-DlWsDiRF.js} +3 -3
  53. package/server/{control-settings-C7DUehE1.js → control-settings-qYYHrIqy.js} +13 -6
  54. package/server/{conversation-compaction-Dj4FAKoZ.js → conversation-compaction-BxUKObHb.js} +1 -1
  55. package/server/{conversation-compaction-BoqdDXWF.js → conversation-compaction-CXQrN3I_.js} +8 -8
  56. package/server/{conversation-service-BCxl4f8Z.js → conversation-service-CDnQ3ayN.js} +1 -1
  57. package/server/{conversation-service-5aCnq1zR.js → conversation-service-CZiUE8Uw.js} +8 -7
  58. package/server/{conversations-BUpYsOZg.js → conversations-D7lR670u.js} +4 -4
  59. package/server/{conversations-C34dyIb9.js → conversations-DXl5YTf4.js} +1 -1
  60. package/server/{cost-Bgcub5kW.js → cost-Aat8HfO_.js} +2 -2
  61. package/server/{cost-CvxRrucd.js → cost-CWvN9FP2.js} +3 -3
  62. package/server/{cost-sync-Dv3LUaNW.js → cost-sync-DiUBXwl6.js} +3 -3
  63. package/server/{dag-ombYYt4s.js → dag-5QlmH0oC.js} +2 -2
  64. package/server/{dangerous-git-ops-BcJPC5Rr.js → dangerous-git-ops-DWX6Og8c.js} +1 -1
  65. package/server/dashboard-db-worker.js +7 -7
  66. package/server/{deacon-hi9KLPLT.js → deacon-B1LD5cJU.js} +741 -211
  67. package/server/{deacon-DrXqT9LQ.js → deacon-PW_bg4uL.js} +3 -3
  68. package/server/{deacon-nudge-log-BNBebzeL.js → deacon-nudge-log-DPHsO14z.js} +3 -3
  69. package/server/{deacon-pending-lifecycle-Cpk0k7Hi.js → deacon-pending-lifecycle-2ZflPxgo.js} +3 -3
  70. package/server/deacon-swarm-BkKR7SXu.js +2 -0
  71. package/server/{deacon-swarm-DBxUaO-A.js → deacon-swarm-DwGUgSVp.js} +15 -14
  72. package/server/deacon.js +8 -8
  73. package/server/{dead-end-trip-CQcP70ND.js → dead-end-trip-B06RFIr2.js} +3 -3
  74. package/server/{delivery-Da0zEMY4.js → delivery-C2M73sBg.js} +1 -1
  75. package/server/{deploy-patrol-Df-Tmaq0.js → deploy-patrol-BNjeCL8u.js} +8 -8
  76. package/server/{deploy-queue-UjKGYsDe.js → deploy-queue-CKT_Ia9p.js} +2 -2
  77. package/server/{deploy-queue-9SrhZR63.js → deploy-queue-DMMYhFC8.js} +1 -1
  78. package/server/{deploy-window-rpqpWqHA.js → deploy-window-DC8lze3d.js} +6 -6
  79. package/server/{deploy-window-jOiPRHL0.js → deploy-window-D_AimdNN.js} +1 -1
  80. package/server/{dev-supervisor-CC46Ig8q.js → dev-supervisor-C4F0vbno.js} +2 -2
  81. package/server/{devcontainer-renderer-68CSCRnu.js → devcontainer-renderer-66sqMQIi.js} +3 -3
  82. package/server/{dist-CJy72uEg.js → dist-C5FT9lTG.js} +1 -1
  83. package/server/dist-qcf9gAP0.js +3 -0
  84. package/server/{dist-src-Bik83hFi.js → dist-src-B-AlGWSl.js} +1 -1
  85. package/server/{docker-BMVTSFL5.js → docker-BxrFhTZ_.js} +1 -1
  86. package/server/{docker-Dam7mbIB.js → docker-CoAT8R0J.js} +2 -2
  87. package/server/{dod-Dar-yheg.js → dod-Bg6wsKTV.js} +26 -5
  88. package/server/durable-review-pipeline-D_DcfIGP.js +3 -0
  89. package/server/{durable-review-pipeline-CGZ5QBxh.js → durable-review-pipeline-HkAgnx0L.js} +5 -2
  90. package/server/{ensure-devcontainer-C98V8yW-.js → ensure-devcontainer-Bg5HJAcO.js} +1 -1
  91. package/server/{ensure-devcontainer-B057YA81.js → ensure-devcontainer-DTxChVuA.js} +4 -4
  92. package/server/{esm-shims-Br9BPdkR.js → esm-shims-CaBWIR7f.js} +1 -1
  93. package/server/{event-store-ELqkVOn0.js → event-store-5UKzh9Jf.js} +1 -1
  94. package/server/{event-store-zY5MJHgF.js → event-store-CrHcVC5_.js} +3 -3
  95. package/server/{events-D6pyqhzM.js → events-ChEFB7Jp.js} +1 -1
  96. package/server/{events-D9PR1IC0.js → events-DhRN-6vM.js} +3 -3
  97. package/server/{factory-CRoOpGsF.js → factory-BezSPaTd.js} +5 -5
  98. package/server/{feature-registry-population--YUXU999.js → feature-registry-population-DhswNiXx.js} +4 -4
  99. package/server/{feature-registry-storage-BORBTo0y.js → feature-registry-storage-CUVNpAso.js} +2 -2
  100. package/server/{features--nFkJY8v.js → features-B2CfNPFw.js} +2 -2
  101. package/server/{feedback-target-C0ZzyHvU.js → feedback-target-CMrEAoeA.js} +1 -1
  102. package/server/{feedback-target-Dt9BsapX.js → feedback-target-VBr9gKgX.js} +18 -7
  103. package/server/{feedback-writer-D1fm-5Z8.js → feedback-writer-CY91ckuw.js} +1 -1
  104. package/server/{feedback-writer-BG0RUZiu.js → feedback-writer-xpFgU632.js} +5 -5
  105. package/server/{flywheel-BiT3odRb.js → flywheel-CTVY3yCG.js} +38 -19
  106. package/server/{flywheel-CLVB55Be.js → flywheel-DQqsSm7P.js} +14 -14
  107. package/server/{flywheel-BekukH4i.js → flywheel-DsICCjTR.js} +1 -1
  108. package/server/{flywheel-merge-order-BKw9o6ku.js → flywheel-merge-order-C-TI4JGu.js} +1 -1
  109. package/server/{flywheel-merge-order-BJv1DZz1.js → flywheel-merge-order-CMGz-imq.js} +7 -7
  110. package/server/forge-D647IMNa.js +3 -0
  111. package/server/{forge-CZbSg6Ds.js → forge-RTNqJe6a.js} +2 -2
  112. package/server/{from-D_4_dk7i.js → from-DxGcivc9.js} +1 -1
  113. package/server/fs-lock-Bre3sGoz.js +130 -0
  114. package/server/{fts-db-BeOomFa-.js → fts-db-wROfFfje.js} +2 -2
  115. package/server/{fts-operations-BdewJ_g9.js → fts-operations-BuTdlZFA.js} +2 -2
  116. package/server/{git-utils-CI6cwyyC.js → git-utils-CedsVume.js} +1 -1
  117. package/server/{git-utils-ameCgDdy.js → git-utils-DtdoEXJk.js} +4 -4
  118. package/server/{github-app-DtAsvwzK.js → github-app-DIE8BkHI.js} +1 -1
  119. package/server/{github-app-CQ1Lo6LA.js → github-app-gVnZcP9B.js} +2 -2
  120. package/server/{github-client-BfyDxuRN.js → github-client-BrAC6ELh.js} +3 -3
  121. package/server/{github-client-Cj0yl_07.js → github-client-CBOkvBUl.js} +1 -1
  122. package/server/{github-pr-lookup-BDq6Wznz.js → github-pr-lookup-CgMULTPf.js} +2 -2
  123. package/server/{harness-binary-DqkftwTb.js → harness-binary-CnBHpd57.js} +2 -2
  124. package/server/{harness-resolve-CqMqM1Mb.js → harness-resolve-BVj6sI8m.js} +4 -4
  125. package/server/{health-events-CazRxJUS.js → health-events-BBWO_Dh9.js} +2 -2
  126. package/server/{health-events-_xfTaOUs.js → health-events-Der6bOkm.js} +1 -1
  127. package/server/{hooks-BnJsxlSq.js → hooks-BJNal-bs.js} +1 -1
  128. package/server/{hooks-BO3QT1sn.js → hooks-BOavco-e.js} +2 -2
  129. package/server/{hume-CDYJxqx-.js → hume-DBocJFkA.js} +2 -2
  130. package/server/hume-DtWN8oV5.js +3 -0
  131. package/server/{idle-stack-reaper-BYqERdkE.js → idle-stack-reaper-CyGxXOfC.js} +1 -1
  132. package/server/{idle-stack-reaper-CnGx_PO_.js → idle-stack-reaper-DQFh8rDh.js} +2 -2
  133. package/server/{in-flight-guard-Bq3epG58.js → in-flight-guard-nXEKoxI7.js} +1 -1
  134. package/server/{infra-BjuxvjdS.js → infra-BDQDRopn.js} +15 -4
  135. package/server/{injection-UCf8EsjX.js → injection-CCopdUKz.js} +7 -7
  136. package/server/{injection-DZxlV2al.js → injection-DfFFEMKL.js} +1 -1
  137. package/server/inspect-agent-CPqXI81t.js +2 -0
  138. package/server/{inspect-agent-6kylZnrm.js → inspect-agent-FCDlNT_i.js} +12 -12
  139. package/server/{internal-token-DvMTQSOS.js → internal-token-BG6yQKNL.js} +2 -2
  140. package/server/{internal-token-M9omeXM1.js → internal-token-BJZa40Ld.js} +1 -1
  141. package/server/{io-VHvc0Ssp.js → io-C0NV7y6C.js} +4 -4
  142. package/server/{issue-closed-B6KJkmHZ.js → issue-closed-CNNGbhWm.js} +8 -8
  143. package/server/{issue-lifecycle-C4Zj0WmE.js → issue-lifecycle-BXfzxFCD.js} +29 -23
  144. package/server/{issue-lifecycle-9gk3fnXN.js → issue-lifecycle-DSH0GpWC.js} +1 -1
  145. package/server/{issue-service-singleton-DmCh7EHj.js → issue-service-singleton-F3A5VP6M.js} +10 -10
  146. package/server/{issue-service-singleton-PMx8F1jr.js → issue-service-singleton-lwFJ4dHk.js} +1 -1
  147. package/server/{issues-CgnQ1OGQ.js → issues-DA-U_MpR.js} +2 -2
  148. package/server/{jsonl-parser-DJOH_O-w.js → jsonl-parser-BXiGANOh.js} +3 -3
  149. package/server/{label-cleanup-Dv7AV_R1.js → label-cleanup-BnxRk0Eo.js} +3 -3
  150. package/server/{lifecycle-CTdOWYMi.js → lifecycle-DOgGnpIv.js} +2 -2
  151. package/server/{lifecycle-DDN8ApVY.js → lifecycle-Di48-w4x.js} +6 -6
  152. package/server/{lifecycle-io-D-lGdzK3.js → lifecycle-io-1XSeczTr.js} +5 -5
  153. package/server/{lifecycle-io-D_zTLvP1.js → lifecycle-io-eVG6v_8-.js} +1 -1
  154. package/server/{linear-client-BQU36QqE.js → linear-client-CYZRrcjp.js} +3 -3
  155. package/server/{linear-client-CY4O_Tu3.js → linear-client-CvGo9n7M.js} +1 -1
  156. package/server/{linear-mcp-auth-BnU4TYfY.js → linear-mcp-auth-Cp0XaP96.js} +5 -5
  157. package/server/{linear-mcp-auth-NYBq_oHZ.js → linear-mcp-auth-DoJnjdPZ.js} +1 -1
  158. package/server/memory-fts-worker.js +1 -1
  159. package/server/{merge-Bpx4jjht.js → merge-DO14mOr3.js} +3 -3
  160. package/server/{merge-idOG--29.js → merge-ZF99ig6A.js} +1 -1
  161. package/server/{merge-agent-DrXa1CpW.js → merge-agent-C1-9zbP_.js} +1 -1
  162. package/server/{merge-agent-DdMVSV2Y.js → merge-agent-gpiRkcvj.js} +31 -31
  163. package/server/{merge-batch-C5q1c1GX.js → merge-batch-C11ocNkO.js} +1 -1
  164. package/server/{merge-completeness-BMm8tMyZ.js → merge-completeness-BUzPZy0E.js} +4 -4
  165. package/server/{merge-completeness-D0ljXbk3.js → merge-completeness-CghMbyX7.js} +1 -1
  166. package/server/merge-ops-7QqziXAh.js +2 -0
  167. package/server/merge-rebase-B4pgzvQJ.js +2 -0
  168. package/server/{merge-rebase-xLnMlw5h.js → merge-rebase-iwlUzZjr.js} +2 -2
  169. package/server/{merge-set-DzsOTBg5.js → merge-set-BymrheTj.js} +1 -1
  170. package/server/{merge-set-DH7ot3yz.js → merge-set-Dbnx4chw.js} +4 -4
  171. package/server/{merge-sync-CQ-LgZ1_.js → merge-sync-CM978zez.js} +7 -4
  172. package/server/merge-sync-CqEtqjI2.js +3 -0
  173. package/server/{merge-train-DTEMyIu4.js → merge-train-DvLcAn1G.js} +4 -4
  174. package/server/{merge-train-deps-CNPJzepw.js → merge-train-deps-Cl_kcRbO.js} +21 -15
  175. package/server/{merge-verification-x3JO8Dtz.js → merge-verification-c9Y9mllw.js} +6 -6
  176. package/server/{merged-docker-cleanup-worker-CTpC27Bs.js → merged-docker-cleanup-worker-CGiDOdv8.js} +3 -3
  177. package/server/{merged-docker-cleanup-worker-Cdi9apm-.js → merged-docker-cleanup-worker-DgsLOx3E.js} +1 -1
  178. package/server/{multipart-parser-IMSBfePV.js → multipart-parser-D0twwRjz.js} +2 -2
  179. package/server/{no-resume-mode-C5ULAXwO.js → no-resume-mode-DZvP0M_S.js} +1 -1
  180. package/server/node_modules/.package-lock.json +4 -4
  181. package/server/node_modules/@types/node/README.md +1 -1
  182. package/server/node_modules/@types/node/crypto.d.ts +1 -1
  183. package/server/node_modules/@types/node/package.json +2 -2
  184. package/server/{orphan-proposed-reconciler-CWmOdM9-.js → orphan-proposed-reconciler-6r2OEfYd.js} +1 -1
  185. package/server/{orphan-proposed-reconciler-Dg6U4ADZ.js → orphan-proposed-reconciler-DtQP6oE_.js} +230 -31
  186. package/server/package-lock.json +5 -5
  187. package/server/package.json +1 -1
  188. package/server/{pan-dir-ubraCiUg.js → pan-dir-DAOb1V2-.js} +4 -4
  189. package/server/{paths-cXmOwSbh.js → paths-DuATV5iE.js} +2 -2
  190. package/server/{pending-lifecycle-claim-DEteYdS9.js → pending-lifecycle-claim-DQUHIDfX.js} +2 -2
  191. package/server/persistent-logger-CBj016pT.js +57 -0
  192. package/server/{pickup-D8xtG1J2.js → pickup-zXZl5lQI.js} +4 -3
  193. package/server/{pipeline-membership-CrAPLYtf.js → pipeline-membership-B2yUcBz7.js} +1 -1
  194. package/server/{pipeline-membership-BGSvkT2M.js → pipeline-membership-DHOXmvba.js} +1 -1
  195. package/server/{pipeline-membership-gather-CET40frr.js → pipeline-membership-gather-BIcJ-N0W.js} +114 -9
  196. package/server/{pipeline-membership-gather-DTfcgxLl.js → pipeline-membership-gather-OkLXuvxR.js} +1 -1
  197. package/server/{pipeline-notifier-ImNXknf0.js → pipeline-notifier-BmwrVKsO.js} +1 -1
  198. package/server/{pipeline-notifier-BuQ0e4hF.js → pipeline-notifier-CxMes51i.js} +2 -2
  199. package/server/{post-merge-lifecycle-worker-DbO10pum.js → post-merge-lifecycle-worker-3u_rA4R0.js} +3 -3
  200. package/server/{project-pipelines-Bim6bThI.js → project-pipelines-C3SPFJ38.js} +2 -2
  201. package/server/{project-repos-C0nuoBGv.js → project-repos-BOpBzkO6.js} +2 -2
  202. package/server/{project-repos-CRE6Ykow.js → project-repos-BgW4lcIa.js} +1 -1
  203. package/server/{projects-B03Wr-xc.js → projects-_n3Zui6K.js} +1 -1
  204. package/server/{prompts-BEx08AIu.js → prompts-B0TtboFm.js} +2 -2
  205. package/server/{providers-D7IluJe0.js → providers-BI1mOBQ4.js} +1 -1
  206. package/server/{providers-evXhiQeg.js → providers-O2smCvSz.js} +7 -7
  207. package/server/public/assets/{chunk-BO2N2NFS-D1s4-Sqp.js → chunk-BO2N2NFS-D_pGACYN.js} +4 -4
  208. package/server/public/assets/{diagram-OG6HWLK6-1gdMoSF7.js → diagram-OG6HWLK6-BO6fe3hH.js} +1 -1
  209. package/server/public/assets/{dist-DqDRYW6P.js → dist-5zingMiA.js} +3 -3
  210. package/server/public/assets/{dist-CxAOHbil.js → dist-CVxhbI2E.js} +1 -1
  211. package/server/public/assets/{ganttDiagram-6RSMTGT7-BYex-Ec7.js → ganttDiagram-6RSMTGT7-Bgj4A7kp.js} +1 -1
  212. package/server/public/assets/{highlighted-body-OFNGDK62-DlVkiG0S.js → highlighted-body-OFNGDK62-DNPK7_cm.js} +1 -1
  213. package/server/public/assets/{index-K0hAYCgV.js → index-DEpY-D1O.js} +148 -148
  214. package/server/public/assets/index-Ddkcz3WT.css +1 -0
  215. package/server/public/assets/{linear-B4cuEFmO.js → linear-BB0jQT16.js} +1 -1
  216. package/server/public/assets/mermaid-GHXKKRXX-BzPfaQJ1.js +1 -0
  217. package/server/public/assets/{pieDiagram-4H26LBE5-CBHNBIJQ.js → pieDiagram-4H26LBE5-DeGIzzpZ.js} +1 -1
  218. package/server/public/assets/{prod-CN2nHBvX.js → prod-XBLvikex.js} +4 -4
  219. package/server/public/assets/{quadrantDiagram-W4KKPZXB-Bom87VOQ.js → quadrantDiagram-W4KKPZXB-BV9SLeWz.js} +1 -1
  220. package/server/public/assets/{sankeyDiagram-5OEKKPKP-UrBeyLxk.js → sankeyDiagram-5OEKKPKP-Dwja0gj8.js} +1 -1
  221. package/server/public/assets/{xychartDiagram-2RQKCTM6-DhkbrIxR.js → xychartDiagram-2RQKCTM6-DCB4qvfw.js} +1 -1
  222. package/server/public/index.html +2 -2
  223. package/server/{pull-requests-DHWiKxo7.js → pull-requests-BonZ4WVG.js} +3 -3
  224. package/server/{pull-requests-Cv7LxzUN.js → pull-requests-DNcJUVWA.js} +1 -1
  225. package/server/{queries-DHJm7bTd.js → queries-DCX27GRr.js} +266 -155
  226. package/server/{rally-B71M9f4o.js → rally-Cxe7lKYX.js} +3 -3
  227. package/server/{rally-api-D5uXN08-.js → rally-api-Cp50exEi.js} +1 -1
  228. package/server/{rally-api-Dkqmok65.js → rally-api-CzkKenoi.js} +2 -2
  229. package/server/{rally-client-CxsA6ExK.js → rally-client-Bu3Cekkw.js} +1 -1
  230. package/server/{rally-client-Bfqm6XI4.js → rally-client-CyBBEDHu.js} +5 -5
  231. package/server/rally-x6ztTQo4.js +3 -0
  232. package/server/{reap-terminal-sessions-CvmwaqKv.js → reap-terminal-sessions-CtAhr6L0.js} +2 -2
  233. package/server/{reap-terminal-sessions-BQ23nriz.js → reap-terminal-sessions-DvFqQUnq.js} +2 -2
  234. package/server/{rebuild-stack-qeRqHZxH.js → rebuild-stack-BKYpIPDL.js} +2 -2
  235. package/server/{rebuild-stack-0EEYReVZ.js → rebuild-stack-hCQtprWC.js} +7 -7
  236. package/server/{reconstruct-cache-BbYFsqLa.js → reconstruct-cache-CF2avArx.js} +9 -8
  237. package/server/{record-CtroO946.js → record-BTwWhtBb.js} +1 -1
  238. package/server/{record-update-Z0QCxmMp.js → record-update-DaOKS7Wb.js} +5 -128
  239. package/server/{record-update-DH6dLJID.js → record-update-DhI7eySG.js} +1 -1
  240. package/server/{recovery-trip-eJe26h-f.js → recovery-trip-D-wM9EfB.js} +2 -2
  241. package/server/{release-engine-lPUp-MTd.js → release-engine-_eO3VFth.js} +5 -5
  242. package/server/{release-set-BwGeyZKX.js → release-set-vxgZwwZV.js} +3 -3
  243. package/server/{remote-BCd02Es1.js → remote-BienmcrZ.js} +3 -3
  244. package/server/{remote-CVGUhXMV.js → remote-CVPCc7Vy.js} +3 -3
  245. package/server/{remote-agents-C1bssi41.js → remote-agents-kwsEZvXu.js} +1 -1
  246. package/server/{remote-agents-C_VxssLU.js → remote-agents-kxraOCGT.js} +17 -8
  247. package/server/{remote-completion-DAB0P706.js → remote-completion-BtmZ42aP.js} +13 -13
  248. package/server/resume-DXIIfJNk.js +3 -0
  249. package/server/{review-agent-CHhI66UP.js → review-agent-CIRr0yYt.js} +31 -29
  250. package/server/{review-agent-CD4RCI0Y.js → review-agent-UpAM4DmT.js} +1 -1
  251. package/server/{review-artifacts-DSMRIfuJ.js → review-artifacts-BCODM9ww.js} +5 -5
  252. package/server/{review-context-oFuBbiEE.js → review-context-BBsNrDri.js} +9 -9
  253. package/server/{review-convoy-liveness-CpzrcJ5F.js → review-convoy-liveness-l06_LYCt.js} +2 -2
  254. package/server/review-status-CacDM78F.js +3 -0
  255. package/server/{review-status-yljtTd-q.js → review-status-CwhA9wmd.js} +329 -110
  256. package/server/{review-status-emit-CUExtHd5.js → review-status-emit-BPJwYcRy.js} +3 -3
  257. package/server/{review-status-enrichment-QV_hQkgS.js → review-status-enrichment-DvyZAbGR.js} +3 -3
  258. package/server/{review-status-source-ylw5QZUR.js → review-status-source-B70ekARK.js} +1 -1
  259. package/server/{review-status-source-CpvJnvnQ.js → review-status-source-DWnFE0b6.js} +1 -1
  260. package/server/{review-status-sync-NaWvI9Xf.js → review-status-sync-B0IS6Beh.js} +1 -1
  261. package/server/{review-status-sync-483sujRo.js → review-status-sync-h2CJX6ju.js} +11 -6
  262. package/server/{review-verdict-feedback-BPDn4li_.js → review-verdict-feedback-qRohbFG2.js} +1 -1
  263. package/server/{review-verdict-feedback-CELeUinh.js → review-verdict-feedback-yrrmgps_.js} +91 -15
  264. package/server/{rollup-DTNvelz9.js → rollup-CUoav0Op.js} +8 -8
  265. package/server/{rollup-DYZfq1c4.js → rollup-DxCjJaAM.js} +1 -1
  266. package/server/{scanner-CV35oSn4.js → scanner-ChURu_b-.js} +7 -7
  267. package/server/{sequence-io-DF_8iuhV.js → sequence-io-D9ITDxzq.js} +4 -4
  268. package/server/{sequencer-agent-B2WeCtGi.js → sequencer-agent-m7gmaakW.js} +7 -6
  269. package/server/server.js +435 -418
  270. package/server/{service-Br9rpBNA.js → service-BzFG0Us_.js} +88 -59
  271. package/server/{session-fork-D0LY152N.js → session-fork-KBq4HIHF.js} +2 -2
  272. package/server/{session-history-BUyK29eq.js → session-history-C_EMhIIF.js} +7 -55
  273. package/server/settings-9jSGHBPY.js +2 -0
  274. package/server/{settings-Bse1Pdcj.js → settings-BLbcDqUp.js} +3 -3
  275. package/server/{settings-CvVGqNEs.js → settings-DejgzzLs.js} +2 -2
  276. package/server/{shadow-engineering-BWLa8ODz.js → shadow-engineering-D8R9I8Yl.js} +3 -3
  277. package/server/{shadow-state-FV6PHfEW.js → shadow-state-C0Af4clN.js} +1 -1
  278. package/server/{shadow-state-B4fpKxOO.js → shadow-state-fzIqIMDD.js} +2 -2
  279. package/server/{shadow-utils-D7asqxOZ.js → shadow-utils-Ugca_9ND.js} +2 -2
  280. package/server/{ship-log-xplJ8t75.js → ship-log-VAv-lHrF.js} +1 -1
  281. package/server/{smart-compaction-D3U_79f-.js → smart-compaction-B2Xu5XEb.js} +7 -7
  282. package/server/{smart-compaction-CPp2Ykf6.js → smart-compaction-BcYY_Suf.js} +1 -1
  283. package/server/{spawn-planning-session-DGfZ5B8D.js → spawn-planning-session-DhCoBPct.js} +38 -50
  284. package/server/spawn-planning-session-Dsv-350T.js +3 -0
  285. package/server/{specialist-completion-Br48eiDP.js → specialist-completion-z6v3ZqJE.js} +1 -1
  286. package/server/{specialist-context-cVbGnTa3.js → specialist-context-CrA5azkJ.js} +5 -5
  287. package/server/{specialist-handoff-logger-DK-GTz4s.js → specialist-handoff-logger-CmpZYJMB.js} +2 -2
  288. package/server/{specialist-logs-Cl5-hqT8.js → specialist-logs-BorrIu0x.js} +3 -3
  289. package/server/{specialists-CNfYO3G2.js → specialists-2yLmqph9.js} +298 -180
  290. package/server/{specialists-Tdezg_6N.js → specialists-CH6ah6D-.js} +1 -1
  291. package/server/{specialists-Cicieuzu.js → specialists-Dfx9_Wzb.js} +18 -18
  292. package/server/{specialists-JHsdU3pA.js → specialists-ZdrifiKx.js} +1 -1
  293. package/server/specs-DKV3jIEs.js +3 -0
  294. package/server/{src-Ck028hjO.js → src-B2e5rGu2.js} +6 -6
  295. package/server/{src-CRmCHlma.js → src-B948bGVR.js} +57 -13
  296. package/server/{src-UWcGe0Ix.js → src-Dm_NV7f6.js} +3 -3
  297. package/server/{stack-health-DqSqx0zv.js → stack-health-Bf2WdG4E.js} +2 -2
  298. package/server/{stack-health-CJLMrLBl.js → stack-health-CoWAhA99.js} +1 -1
  299. package/server/{stale-task-claims-CYFOUNlT.js → stale-task-claims-D1Ll8fI5.js} +5 -4
  300. package/server/{staleness-D47CUJok.js → staleness-45qZ_a60.js} +1 -1
  301. package/server/{staleness-BQ-0gMYK.js → staleness-CuED1Psm.js} +1 -1
  302. package/server/{state-home-BYV7qZTW.js → state-home-B4EWfIxF.js} +2 -2
  303. package/server/{state-mapping-BVldLhBf.js → state-mapping-BEONzr8P.js} +1 -1
  304. package/server/{state-migrate-CvvBtS0Y.js → state-migrate-Cd8BH33U.js} +4 -4
  305. package/server/{stuck-remediation-Wt0UVvu1.js → stuck-remediation-ChcooZuk.js} +1 -1
  306. package/server/{stuck-remediation-mkLC6G_t.js → stuck-remediation-DmY5UJLg.js} +24 -23
  307. package/server/{substrate-bug-weights-service-XfLAKnmK.js → substrate-bug-weights-service-BvTWrFUz.js} +3 -3
  308. package/server/{summary-fork-CD7GOts0.js → summary-fork--Jr8duYh.js} +2 -2
  309. package/server/{summary-fork-xiXBnWG9.js → summary-fork-Ct514_Jl.js} +8 -8
  310. package/server/supervisor/{injection-budget-B5SbvDx2.js → injection-budget-B3UyEONL.js} +1 -1
  311. package/server/supervisor/{paths-K3noE4N_.js → paths-BBOnCYlO.js} +10 -2
  312. package/server/supervisor/pty-supervisor.js +4 -4
  313. package/server/supervisor/{pty-token-B7lp0ElT.js → pty-token-CWRffcCa.js} +3 -3
  314. package/server/{supervisor-DL788vos.js → supervisor-B7BHGcNA.js} +3 -3
  315. package/server/supervisor-CyR_mW5B.js +2 -0
  316. package/server/{swarm-readiness-BV14DF5N.js → swarm-readiness-MNE5O8hn.js} +3 -3
  317. package/server/{system-prerequisites-pdWG6ZQs.js → system-prerequisites-Cin9ZgDx.js} +2 -2
  318. package/server/{teardown-workspace-l2F4_zim.js → teardown-workspace-CvBpvc85.js} +15 -15
  319. package/server/{test-agent-queue-qakFIIGz.js → test-agent-queue-DmSIqays.js} +8 -7
  320. package/server/{test-verdict-Gw-btEfb.js → test-verdict-BieVDAV1.js} +1 -1
  321. package/server/{test-verdict-BJYDggMm.js → test-verdict-Cy2jJGTe.js} +1 -1
  322. package/server/{tldr-daemon-BKOYB616.js → tldr-daemon-Ca0eovh3.js} +1 -1
  323. package/server/{tldr-daemon-CBaWkV9k.js → tldr-daemon-IOssGwg7.js} +2 -2
  324. package/server/{tmux-B1Wbxz5o.js → tmux-CfDHob9M.js} +174 -4
  325. package/server/{tmux-DQ6jB76i.js → tmux-Ctk6RV5l.js} +1 -1
  326. package/server/{token-Cxbk023d.js → token-B10VFNOD.js} +2 -2
  327. package/server/{token-util-CLq2MmQt.js → token-util-CZ8WPtdk.js} +1 -1
  328. package/server/token-util-CrfQ2FKf.js +3 -0
  329. package/server/{tracker-config-DZ8Zn2nQ.js → tracker-config-CHbrjg6m.js} +2 -2
  330. package/server/{tracker-utils-L0FKtjq2.js → tracker-utils-DZZq_C0R.js} +2 -2
  331. package/server/{traefik-connect-bNX6jKkb.js → traefik-connect-GHomyBaD.js} +1 -1
  332. package/server/{tunnel-BAm1XgjG.js → tunnel-Bdyb-sNq.js} +3 -3
  333. package/server/{tunnel-CjSnHdTc.js → tunnel-Dz7y434T.js} +1 -1
  334. package/server/{typed-errors-BHhE85Ul.js → typed-errors-BR_RmPS_.js} +1 -1
  335. package/server/{typed-errors-2BTMxkZq.js → typed-errors-Bn_2WRU7.js} +1 -1
  336. package/server/{types-hraoaQIp.js → types-D2ETIB8T.js} +1 -1
  337. package/server/{types-q67TYYg5.js → types-Dh6RI5Vj.js} +1 -1
  338. package/server/{uat-promote-verification-CKB9ZrKC.js → uat-promote-verification-DyvQXvIn.js} +5 -5
  339. package/server/{uat-train-D5UjcyAa.js → uat-train-Dv0Bxer7.js} +0 -0
  340. package/server/{uat-train-Cu-4nvbf.js → uat-train-diX_7shd.js} +1 -1
  341. package/server/{validate-Cxsx5Uz1.js → validate-606KcYZC.js} +3 -3
  342. package/server/{validation-DEaTZafj.js → validation-Cf7aaV5A.js} +1 -1
  343. package/server/{validation-VZgJxmqc.js → validation-CnrDul1x.js} +4 -4
  344. package/server/{verification-artifact-g3yuxQDL.js → verification-artifact-D4b-bio9.js} +1 -1
  345. package/server/{verification-artifact-C85cRTc_.js → verification-artifact-GOaj8u2s.js} +1 -1
  346. package/server/{verification-runner-KDZIsBj4.js → verification-runner-B5MVxDvU.js} +19 -19
  347. package/server/{verification-runner-DlZI8yhw.js → verification-runner-DiPaUP-C.js} +1 -1
  348. package/server/{vtt-parser-Jr94BF3Y.js → vtt-parser-CMU5EZ5R.js} +1 -1
  349. package/server/{work-agent-prompt-C-vuP3_J.js → work-agent-prompt-Csb3fbVR.js} +9 -9
  350. package/server/{workflows-D0oip4eV.js → workflows-D87ajwV6.js} +113 -43
  351. package/server/workflows-DN6NyVGd.js +2 -0
  352. package/server/{workspace-BqFg__wH.js → workspace-AIOM7n00.js} +1 -1
  353. package/server/{workspace-anchor-drift-B4gMRHl4.js → workspace-anchor-drift-19cJ1bH5.js} +1 -1
  354. package/server/{workspace-anchor-drift-CZKofakh.js → workspace-anchor-drift-C3mK5wNI.js} +4 -4
  355. package/server/{workspace-config-B123aZl-.js → workspace-config-CJ7RqQiP.js} +1 -1
  356. package/server/{workspace-C0fH3aek.js → workspace-iD8oULqu.js} +3 -3
  357. package/server/{workspace-manager-CDTKjjdU.js → workspace-manager-B38rFWA1.js} +1 -1
  358. package/server/{workspace-manager-CwO-Hek7.js → workspace-manager-CXfrw4rR.js} +13 -13
  359. package/server/{workspace-metadata-D4M8BM4W.js → workspace-metadata-BuMRco5P.js} +1 -1
  360. package/server/{workspace-metadata-CQv00QwK.js → workspace-metadata-eHSj_NsP.js} +2 -2
  361. package/server/{workspaces-j1e_6aAT.js → workspaces-DbtMX2TM.js} +136 -113
  362. package/sync-sources/skills/pan-merge/SKILL.md +7 -5
  363. package/sync-sources/skills/pan-release/SKILL.md +57 -0
  364. package/server/agent-state-service-hZpxIw1E.js +0 -2
  365. package/server/archive-planning-0FJ6Xd3b.js +0 -2
  366. package/server/cli-DmXETsw-.js +0 -3
  367. package/server/conflict-gate-Dh754uyA.js +0 -3
  368. package/server/deacon-swarm-I2JfX5Tg.js +0 -2
  369. package/server/dist-DSlxIU1H.js +0 -3
  370. package/server/durable-review-pipeline-jpgCJZFp.js +0 -3
  371. package/server/forge-DK3blQb_.js +0 -3
  372. package/server/hume-Dq--7rOQ.js +0 -3
  373. package/server/inspect-agent-BVwDrVrz.js +0 -2
  374. package/server/label-reconciler--F85rufp.js +0 -113
  375. package/server/merge-ops-DdpTiEMt.js +0 -2
  376. package/server/merge-rebase-DGQpYJU3.js +0 -2
  377. package/server/merge-sync-Ca7F5JnQ.js +0 -3
  378. package/server/public/assets/index-Cc7cnFC4.css +0 -1
  379. package/server/public/assets/mermaid-GHXKKRXX-DyDHFXHV.js +0 -1
  380. package/server/rally-YDjU513q.js +0 -3
  381. package/server/resume-u9byntrq.js +0 -3
  382. package/server/review-status-BZH8h-6W.js +0 -3
  383. package/server/settings-CdvIF84R.js +0 -2
  384. package/server/spawn-planning-session-1nFi3gfk.js +0 -2
  385. package/server/specs-Bt7WJDoC.js +0 -3
  386. package/server/supervisor-UWiQNK-y.js +0 -2
  387. package/server/token-util-zlz9U0ki.js +0 -3
  388. package/server/workflows-CHrx_hcW.js +0 -2
@@ -1,49 +1,49 @@
1
- import { An as extractTeamPrefix, Er as GitError, Fr as init_errors, Gn as init_projects, Pn as findProjectByTeamSync, Tr as FsError, Yn as listProjectsSync, ar as resolveProjectFromIssueSync, br as resolveIssueIdSync, ci as init_paths, ei as encodeClaudeProjectDir, gn as isStatePlaneOnlyStatus, gr as init_issue_id, hn as init_state_plane, hr as extractPrefixSync, mr as extractNumberSync, si as getOverdeckHome, t as init_config_yaml, tt as resolveModel, vr as parseIssueIdSync, zn as getProjectSync } from "./config-yaml-CmOPzmBb.js";
2
- import { Et as httpHandler, Ot as jsonResponse, St as getHeaderFromMap, _t as rejectUnauthorizedDashboardRequest, it as getWorkAgentLifecycleStateSync, n as _serverManagedMerges, ot as spawnPanCli, yt as rejectUnsafeDashboardMutationRequest } from "./specialists-CNfYO3G2.js";
1
+ import { An as extractTeamPrefix, Er as GitError, Fr as init_errors, Gn as init_projects, Pn as findProjectByTeamSync, Tr as FsError, Yn as listProjectsSync, ar as resolveProjectFromIssueSync, br as resolveIssueIdSync, ci as getOverdeckHome, gn as isStatePlaneOnlyStatus, gr as init_issue_id, hn as init_state_plane, hr as extractPrefixSync, li as init_paths, mr as extractNumberSync, t as init_config_yaml, ti as encodeClaudeProjectDir, tt as resolveModel, vr as parseIssueIdSync, zn as getProjectSync } from "./config-yaml-CxdwhAIA.js";
2
+ import { At as jsonResponse, Ot as httpHandler, ct as spawnPanCli, n as _serverManagedMerges, nt as isInternalAgentRequest, ot as getWorkAgentLifecycleStateSync, rt as resolveRequestedStartedBy, wt as getHeaderFromMap, xt as rejectUnsafeDashboardMutationRequest, yt as rejectUnauthorizedDashboardRequest } from "./specialists-2yLmqph9.js";
3
3
  import { o as init_activity_logger, r as emitActivityEntrySync } from "./activity-logger-CyteR4JO.js";
4
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BjuxvjdS.js";
5
- import { H as sessionExists, M as listSessionNames, et as buildChildEnvWithoutTmuxSync, i as capturePane, tt as init_child_env, w as init_tmux } from "./tmux-B1Wbxz5o.js";
6
- import { a as init_event_store, n as getEventStore } from "./event-store-zY5MJHgF.js";
7
- import { S as setReviewStatusSync, b as setDeaconIgnored, f as init_review_status, g as markWorkspaceStuck, m as loadReviewStatuses, r as clearFeedbackDeliveryStuck, u as getReviewStatusSync, y as setAutoMerge } from "./review-status-yljtTd-q.js";
8
- import { _ as findPositionInQueueSync, a as EventStoreService, g as computeQueuePositionFromStatusSync, s as init_domain_services, v as init_queue_position } from "./issue-lifecycle-C4Zj0WmE.js";
9
- import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-Bgcub5kW.js";
10
- import { Ir as getAgentRuntimeStateSync, Qn as decideResumeGate, Rr as saveAgentRuntimeState, X as messageAgent, Zn as clearYieldForResumeSync, Zt as transitionIssueToInReview, _r as saveAgentStateSync, b as init_agents, er as getAgentResumeGateBlockReason, i as listRunningAgents, ir as init_agent_state, rr as getAgentStateSync, tr as getAgentState, ut as spawnAgent } from "./queries-DHJm7bTd.js";
11
- import { f as CostWriter, l as CostDoorLive } from "./service-Br9rpBNA.js";
12
- import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-DZ8Zn2nQ.js";
13
- import { n as resolveGitHubIssueSync, t as init_tracker_utils } from "./tracker-utils-L0FKtjq2.js";
14
- import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-DvMTQSOS.js";
15
- import { r as notifyPipelineSync, t as init_pipeline_notifier } from "./pipeline-notifier-BuQ0e4hF.js";
16
- import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME, p as init_types } from "./types-hraoaQIp.js";
17
- import { i as getAllActiveQueues, s as init_merge_sync } from "./merge-sync-CQ-LgZ1_.js";
18
- import { l as resolveWorkspaceRepoRootsSync, r as init_project_repos } from "./project-repos-C0nuoBGv.js";
19
- import { O as findXBriefByIssue, _ as XBRIEF_INSPECTION_POLICIES, c as mergeRecordStatusOverrides, g as serializeXBriefDocument, j as readXBriefDocument, k as init_xbrief_index, o as init_io, r as findPlan, s as isPlanningComplete, u as readPlan, v as init_types$1 } from "./io-VHvc0Ssp.js";
20
- import { it as findConversationForCostSessionSync, k as init_conversations } from "./conversations-BUpYsOZg.js";
21
- import { h as normalizeModelOverrideSync, m as init_model_validation } from "./tmux-dedup-DbN6MGzM.js";
22
- import { f as init_config, m as loadConfigSync$1 } from "./config-Dr3pW6w6.js";
23
- import { a as getWorkspaceStackHealth, n as collectDockerContainerLifecycleSnapshot, r as composeProjectNameForWorkspace, s as init_stack_health } from "./stack-health-DqSqx0zv.js";
24
- import { a as criticalPath, l as init_dag, t as actionableDoc } from "./dag-ombYYt4s.js";
25
- import { E as verifyAppCanMerge, M as withConcurrencyLimit, f as init_github_app, j as init_concurrency, m as isIntegrationPermissionError } from "./github-app-CQ1Lo6LA.js";
26
- import { a as readEventsFromLineSync, i as init_events, l as init_wal, o as readEventsSync, r as getLastEventMetadataSync, t as appendCostEventSync } from "./events-D9PR1IC0.js";
27
- import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-CwO-Hek7.js";
28
- import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-68CSCRnu.js";
29
- import { a as init_jsonl_parser, t as getActiveSessionModelSync } from "./jsonl-parser-DJOH_O-w.js";
30
- import { i as findWorkspacePath } from "./archive-planning-C0lAbNB_.js";
31
- import { n as init_merge_verification, t as handlePostRebaseVerificationDeferral } from "./merge-verification-x3JO8Dtz.js";
32
- import { r as init_in_flight_guard, t as createInFlightGuard } from "./in-flight-guard-Bq3epG58.js";
33
- import { a as loadWorkspaceMetadataSync, i as listWorkspaceMetadataSync } from "./workspace-metadata-CQv00QwK.js";
34
- import { n as enrichReviewStatusFromSessions } from "./review-status-enrichment-QV_hQkgS.js";
35
- import { n as generateDailySummary, r as init_cli } from "./cli-oCWYA1pE.js";
36
- import { a as getDiffStat, i as getDiffBase, o as init_review_context, r as getChangedFiles } from "./review-context-oFuBbiEE.js";
37
- import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-CBaWkV9k.js";
38
- 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-DdMVSV2Y.js";
39
- import { F as enqueueMerge, I as getAllActiveQueues$1, L as getCurrentMerge, P as dequeueMerge, z as markMergeProcessing } from "./merge-Bpx4jjht.js";
40
- import { t as rebaseFeatureBranch } from "./merge-rebase-xLnMlw5h.js";
41
- import { n as init_release_set, t as getReleaseSetSync } from "./release-set-BwGeyZKX.js";
42
- import { i as init_conflict_gate, r as getCachedConflictGateMergeability } from "./conflict-gate-B9cN3SBi.js";
43
- import { r as runVerificationForIssue } from "./verification-runner-KDZIsBj4.js";
44
- import { n as registerDurableReviewPipelineHandler, t as init_durable_review_pipeline } from "./durable-review-pipeline-CGZ5QBxh.js";
45
- import { t as teardownWorkspace } from "./teardown-workspace-l2F4_zim.js";
46
- import { t as init_rebuild_stack } from "./rebuild-stack-0EEYReVZ.js";
4
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BDQDRopn.js";
5
+ import { H as sessionExists, M as listSessionNames, at as buildChildEnvWithoutTmuxSync, i as capturePane, ot as init_child_env, w as init_tmux } from "./tmux-CfDHob9M.js";
6
+ import { a as init_event_store, n as getEventStore } from "./event-store-CrHcVC5_.js";
7
+ import { C as setReviewStatusSync, _ as markWorkspaceStuck, b as setAutoMerge, d as getReviewStatusSync, h as loadReviewStatuses, p as init_review_status, r as clearFeedbackDeliveryStuck, x as setDeaconIgnored } from "./review-status-CwhA9wmd.js";
8
+ import { _ as findPositionInQueueSync, a as EventStoreService, g as computeQueuePositionFromStatusSync, s as init_domain_services, v as init_queue_position } from "./issue-lifecycle-BXfzxFCD.js";
9
+ import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-Aat8HfO_.js";
10
+ import { Br as saveAgentRuntimeState, Qn as decideResumeGate, Rr as getAgentRuntimeStateSync, X as messageAgent, Zn as clearYieldForResumeSync, Zt as transitionIssueToInReview, _r as saveAgentStateSync, b as init_agents, er as getAgentResumeGateBlockReason, i as listRunningAgents, ir as init_agent_state, rr as getAgentStateSync, tr as getAgentState, ut as spawnAgent } from "./queries-DCX27GRr.js";
11
+ import { f as CostWriter, l as CostDoorLive } from "./service-BzFG0Us_.js";
12
+ import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-CHbrjg6m.js";
13
+ import { n as resolveGitHubIssueSync, t as init_tracker_utils } from "./tracker-utils-DZZq_C0R.js";
14
+ import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-BG6yQKNL.js";
15
+ import { r as notifyPipelineSync, t as init_pipeline_notifier } from "./pipeline-notifier-CxMes51i.js";
16
+ import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME, p as init_types } from "./types-D2ETIB8T.js";
17
+ import { a as getAllActiveQueues, c as init_merge_sync } from "./merge-sync-CM978zez.js";
18
+ import { l as resolveWorkspaceRepoRootsSync, r as init_project_repos } from "./project-repos-BOpBzkO6.js";
19
+ import { O as findXBriefByIssue, _ as XBRIEF_INSPECTION_POLICIES, c as mergeRecordStatusOverrides, g as serializeXBriefDocument, j as readXBriefDocument, k as init_xbrief_index, o as init_io, r as findPlan, s as isPlanningComplete, u as readPlan, v as init_types$1 } from "./io-C0NV7y6C.js";
20
+ import { it as findConversationForCostSessionSync, k as init_conversations } from "./conversations-D7lR670u.js";
21
+ import { E as normalizeModelOverrideSync, T as init_model_validation } from "./auto-spawn-consent-BooqhC3L.js";
22
+ import { f as init_config, m as loadConfigSync$1 } from "./config-CX4vk1CV.js";
23
+ import { a as getWorkspaceStackHealth, n as collectDockerContainerLifecycleSnapshot, r as composeProjectNameForWorkspace, s as init_stack_health } from "./stack-health-Bf2WdG4E.js";
24
+ import { a as criticalPath, l as init_dag, t as actionableDoc } from "./dag-5QlmH0oC.js";
25
+ import { E as verifyAppCanMerge, M as withConcurrencyLimit, f as init_github_app, j as init_concurrency, m as isIntegrationPermissionError } from "./github-app-gVnZcP9B.js";
26
+ import { a as readEventsFromLineSync, i as init_events, l as init_wal, o as readEventsSync, r as getLastEventMetadataSync, t as appendCostEventSync } from "./events-DhRN-6vM.js";
27
+ import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-CXfrw4rR.js";
28
+ import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-66sqMQIi.js";
29
+ import { a as init_jsonl_parser, t as getActiveSessionModelSync } from "./jsonl-parser-BXiGANOh.js";
30
+ import { i as findWorkspacePath } from "./archive-planning-Binfb99i.js";
31
+ import { n as init_merge_verification, t as handlePostRebaseVerificationDeferral } from "./merge-verification-c9Y9mllw.js";
32
+ import { i as init_conflict_gate, r as getCachedConflictGateMergeability } from "./conflict-gate-BNv6UolH.js";
33
+ import { r as init_in_flight_guard, t as createInFlightGuard } from "./in-flight-guard-nXEKoxI7.js";
34
+ import { a as loadWorkspaceMetadataSync, i as listWorkspaceMetadataSync } from "./workspace-metadata-eHSj_NsP.js";
35
+ import { n as enrichReviewStatusFromSessions } from "./review-status-enrichment-DvyZAbGR.js";
36
+ import { n as generateDailySummary, r as init_cli } from "./cli-DzRKxxP_.js";
37
+ import { a as getDiffStat, i as getDiffBase, o as init_review_context, r as getChangedFiles } from "./review-context-BBsNrDri.js";
38
+ import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-IOssGwg7.js";
39
+ 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-gpiRkcvj.js";
40
+ import { F as enqueueMerge, I as getAllActiveQueues$1, L as getCurrentMerge, P as dequeueMerge, z as markMergeProcessing } from "./merge-DO14mOr3.js";
41
+ import { t as rebaseFeatureBranch } from "./merge-rebase-iwlUzZjr.js";
42
+ import { n as init_release_set, t as getReleaseSetSync } from "./release-set-vxgZwwZV.js";
43
+ import { r as runVerificationForIssue } from "./verification-runner-B5MVxDvU.js";
44
+ import { n as init_durable_review_pipeline, r as registerDurableReviewPipelineHandler } from "./durable-review-pipeline-HkAgnx0L.js";
45
+ import { t as teardownWorkspace } from "./teardown-workspace-CvBpvc85.js";
46
+ import { t as init_rebuild_stack } from "./rebuild-stack-hCQtprWC.js";
47
47
  import { basename, dirname, join, resolve, sep } from "node:path";
48
48
  import { Effect, Layer, Option, Stream } from "effect";
49
49
  import { closeSync, existsSync, fstatSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, renameSync, writeFileSync } from "fs";
@@ -102,7 +102,7 @@ async function captureInterestedAgent(state, agentId) {
102
102
  try {
103
103
  const remoteState = await readFile(join(homedir$1(), ".overdeck", "agents", agentId, "remote-state.json"), "utf-8").then((text) => JSON.parse(text)).catch(() => null);
104
104
  if (remoteState?.location === "remote" && remoteState?.vmName) {
105
- const { getRemoteAgentOutput } = await import("./remote-agents-C1bssi41.js");
105
+ const { getRemoteAgentOutput } = await import("./remote-agents-kwsEZvXu.js");
106
106
  stdout = await getRemoteAgentOutput(agentId, remoteState.vmName, 50);
107
107
  } else stdout = await Effect.runPromise(capturePane(agentId, 50));
108
108
  } catch {
@@ -345,7 +345,7 @@ async function processPendingFeedbackDeliveries(options) {
345
345
  const staleThresholdMs = options?.staleThresholdMs ?? STALE_THRESHOLD_MS;
346
346
  const now = options?.now ?? Date.now();
347
347
  const deliver = options?._deliver ?? messageAgent;
348
- const getAgentState = options?._getAgentState ?? ((agentId) => Effect.runPromise(getAgentState(agentId)));
348
+ const getAgentState$1 = options?._getAgentState ?? ((agentId) => Effect.runPromise(getAgentState(agentId)));
349
349
  const loadStatuses = options?._loadStatuses ?? loadReviewStatuses;
350
350
  const getStatus = options?._getStatus ?? getReviewStatusSync;
351
351
  if (!existsSync$1(filePath)) return;
@@ -360,7 +360,7 @@ async function processPendingFeedbackDeliveries(options) {
360
360
  const createdAt = Date.parse(delivery.createdAt);
361
361
  if (Number.isFinite(createdAt) && now - createdAt > staleThresholdMs) continue;
362
362
  if (!isDeliveryStillRelevant(delivery, statuses[delivery.issueId] ?? getStatus(delivery.issueId))) continue;
363
- if (!await getAgentState(delivery.agentId)) {
363
+ if (!await getAgentState$1(delivery.agentId)) {
364
364
  remaining.push(delivery);
365
365
  continue;
366
366
  }
@@ -936,7 +936,7 @@ const postWorkspaceContainerActionRoute = HttpRouter.add("POST", "/api/workspace
936
936
  }
937
937
  if (!workspacePath) return jsonResponse({ error: `Workspace not found for ${issueId}` }, { status: 404 });
938
938
  if (!composeFile && ["start", "restart"].includes(action)) {
939
- const { ensureDevcontainerSync } = yield* Effect.promise(() => import("./ensure-devcontainer-C98V8yW-.js"));
939
+ const { ensureDevcontainerSync } = yield* Effect.promise(() => import("./ensure-devcontainer-Bg5HJAcO.js"));
940
940
  if (ensureDevcontainerSync({
941
941
  workspacePath,
942
942
  issueId
@@ -2790,9 +2790,9 @@ function mergeVerificationOptions(request) {
2790
2790
  */
2791
2791
  async function recordCiGreenVerificationVerdict(issueId, workspacePath) {
2792
2792
  try {
2793
- const { snapshotWorkspaceHeadsPromise } = await import("./git-utils-CI6cwyyC.js");
2793
+ const { snapshotWorkspaceHeadsPromise } = await import("./git-utils-CedsVume.js");
2794
2794
  const verifiedAnchor = await snapshotWorkspaceHeadsPromise(issueId, workspacePath).catch(() => void 0);
2795
- const { setReviewStatusSync } = await import("./review-status-BZH8h-6W.js");
2795
+ const { setReviewStatusSync } = await import("./review-status-CacDM78F.js");
2796
2796
  setReviewStatusSync(issueId, {
2797
2797
  verificationStatus: "passed",
2798
2798
  verificationNotes: "merge-verify: CI green on the merged tip (PAN-2487 local-gate skip)",
@@ -2811,7 +2811,7 @@ async function recordCiGreenVerificationVerdict(issueId, workspacePath) {
2811
2811
  * the workspaces-route import cycle.
2812
2812
  */
2813
2813
  async function prepareWorkAgentForRebase(opts) {
2814
- const { appendShipLog } = await import("./ship-log-xplJ8t75.js");
2814
+ const { appendShipLog } = await import("./ship-log-VAv-lHrF.js");
2815
2815
  opts.setStatus({
2816
2816
  mergeStep: "preparing-work-agent",
2817
2817
  mergeNotes: `Preparing work agent ${opts.agentId} to rebase ${opts.scopeNote}…`
@@ -2970,7 +2970,8 @@ async function ensureAgentReadyForMerge(issueId, workspacePath, rebaseMsg, optio
2970
2970
  issueId,
2971
2971
  workspace: workspacePath,
2972
2972
  role: "work",
2973
- prompt: rebaseMsg
2973
+ prompt: rebaseMsg,
2974
+ startedBy: "merge-strike"
2974
2975
  })).id} and sent merge preparation request.`
2975
2976
  };
2976
2977
  }
@@ -3195,7 +3196,7 @@ async function reconcileGitHubMergeStatus(issueId, status) {
3195
3196
  const prRef = parseGitHubPullRequestUrl(status.prUrl);
3196
3197
  if (!prRef) return false;
3197
3198
  try {
3198
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-DtAsvwzK.js");
3199
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-DIE8BkHI.js");
3199
3200
  if (!isGitHubAppConfigured()) return false;
3200
3201
  const prState = await Effect.runPromise(getPullRequestState(prRef.owner, prRef.repo, prRef.number));
3201
3202
  console.log(`[merge] reconcileGitHubMergeStatus: ${issueId} PR #${prRef.number} merged=${prState.merged} state=${prState.state}`);
@@ -3465,8 +3466,8 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3465
3466
  try {
3466
3467
  if (request.kind === "normal" && workspaceInfo.isRemote && workspaceInfo.vmName) {
3467
3468
  console.log(`[merge] Remote workspace detected for ${issueId}, using review artifact merge...`);
3468
- const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-DzsOTBg5.js");
3469
- const { getForgeAdapter } = await import("./forge-DK3blQb_.js");
3469
+ const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-BymrheTj.js");
3470
+ const { getForgeAdapter } = await import("./forge-D647IMNa.js");
3470
3471
  const remotePrimaryRepo = (getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId))?.repos[0];
3471
3472
  const remoteTargetBranch = remotePrimaryRepo?.targetBranch || "main";
3472
3473
  const remoteForge = remotePrimaryRepo?.forge || "github";
@@ -3502,7 +3503,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3502
3503
  ...mergeCompletionStatus(request)
3503
3504
  });
3504
3505
  completePendingOperation(issueId, null);
3505
- const { postMergeLifecycle } = await import("./merge-agent-DrXa1CpW.js");
3506
+ const { postMergeLifecycle } = await import("./merge-agent-C1-9zbP_.js");
3506
3507
  await postMergeLifecycle(issueId, projectPath);
3507
3508
  return {
3508
3509
  success: true,
@@ -3547,11 +3548,11 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3547
3548
  }
3548
3549
  if (isPolyrepo && projectConfig?.workspace?.repos) {
3549
3550
  console.log(`[merge] Polyrepo detected for ${issueId}, coordinating merge set...`);
3550
- const { getMergeSetSync, ensureMergeSetForIssueSync, upsertMergeSetSync, withRepoStateSync } = await import("./merge-set-DzsOTBg5.js");
3551
- const { runQualityGates } = await import("./validation-DEaTZafj.js");
3552
- const { reconcileStrandedRepos } = await import("./merge-completeness-D0ljXbk3.js");
3553
- const { getForgeAdapter } = await import("./forge-DK3blQb_.js");
3554
- const { messageAgent } = await import("./agents-BKKkxKgK.js");
3551
+ const { getMergeSetSync, ensureMergeSetForIssueSync, upsertMergeSetSync, withRepoStateSync } = await import("./merge-set-BymrheTj.js");
3552
+ const { runQualityGates } = await import("./validation-Cf7aaV5A.js");
3553
+ const { reconcileStrandedRepos } = await import("./merge-completeness-CghMbyX7.js");
3554
+ const { getForgeAdapter } = await import("./forge-D647IMNa.js");
3555
+ const { messageAgent } = await import("./agents-Dnn4XgdB.js");
3555
3556
  let mergeSet = getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId);
3556
3557
  if (!mergeSet) {
3557
3558
  const error = `No merge set found for ${issueId}`;
@@ -3609,7 +3610,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3609
3610
  ...mergeCompletionStatus(request)
3610
3611
  });
3611
3612
  completePendingOperation(issueId, null);
3612
- const { postMergeLifecycle } = await import("./merge-agent-DrXa1CpW.js");
3613
+ const { postMergeLifecycle } = await import("./merge-agent-C1-9zbP_.js");
3613
3614
  advanceQueue();
3614
3615
  await postMergeLifecycle(issueId, projectPath);
3615
3616
  return {
@@ -3863,7 +3864,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3863
3864
  ...mergeCompletionStatus(request)
3864
3865
  });
3865
3866
  completePendingOperation(issueId, null);
3866
- const { postMergeLifecycle } = await import("./merge-agent-DrXa1CpW.js");
3867
+ const { postMergeLifecycle } = await import("./merge-agent-C1-9zbP_.js");
3867
3868
  advanceQueue();
3868
3869
  await postMergeLifecycle(issueId, projectPath);
3869
3870
  return {
@@ -3874,8 +3875,8 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3874
3875
  repos: mergeResults
3875
3876
  };
3876
3877
  }
3877
- const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-DzsOTBg5.js");
3878
- const { getForgeAdapter } = await import("./forge-DK3blQb_.js");
3878
+ const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-BymrheTj.js");
3879
+ const { getForgeAdapter } = await import("./forge-D647IMNa.js");
3879
3880
  const primaryRepo = (getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId))?.repos[0];
3880
3881
  const targetBranch = primaryRepo?.targetBranch || "main";
3881
3882
  const primaryForge = primaryRepo?.forge || "github";
@@ -3918,7 +3919,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3918
3919
  }
3919
3920
  let preMergePrState;
3920
3921
  if (githubPrRef) try {
3921
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-DtAsvwzK.js");
3922
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-DIE8BkHI.js");
3922
3923
  if (isGitHubAppConfigured()) {
3923
3924
  const prState = await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number));
3924
3925
  preMergePrState = prState;
@@ -3981,7 +3982,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3981
3982
  ...mergeCompletionStatus(request)
3982
3983
  });
3983
3984
  completePendingOperation(issueId, null);
3984
- const { postMergeLifecycle } = await import("./merge-agent-DrXa1CpW.js");
3985
+ const { postMergeLifecycle } = await import("./merge-agent-C1-9zbP_.js");
3985
3986
  await postMergeLifecycle(issueId, projectPath, branchName);
3986
3987
  return {
3987
3988
  success: true,
@@ -3995,8 +3996,8 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3995
3996
  } catch (prStateErr) {
3996
3997
  console.warn(`[merge] Pre-merge PR state check failed for ${issueId}: ${prStateErr.message} — proceeding (check is best-effort)`);
3997
3998
  }
3998
- const { postMergeLifecycle } = await import("./merge-agent-DrXa1CpW.js");
3999
- const { beginShipLog, appendShipLog } = await import("./ship-log-xplJ8t75.js");
3999
+ const { postMergeLifecycle } = await import("./merge-agent-C1-9zbP_.js");
4000
+ const { beginShipLog, appendShipLog } = await import("./ship-log-VAv-lHrF.js");
4000
4001
  let rebaseResult;
4001
4002
  if (preMergePrState?.mergeable === true && preMergePrState.mergeableState === "clean" && !preMergePrState.checksFailed && !preMergePrState.checksPending && !preMergePrState.draft && !preMergePrState.merged) {
4002
4003
  console.log(`[merge] PR is CLEAN — merging directly without rebase for ${issueId}`);
@@ -4105,7 +4106,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
4105
4106
  });
4106
4107
  let skipLocalVerification = false;
4107
4108
  if (primaryForge === "github" && artifactUrl) try {
4108
- const { parsePullRequestRef, getCiCheckRunsStatePromise, isGitHubAppConfigured } = await import("./github-app-DtAsvwzK.js");
4109
+ const { parsePullRequestRef, getCiCheckRunsStatePromise, isGitHubAppConfigured } = await import("./github-app-DIE8BkHI.js");
4109
4110
  if (isGitHubAppConfigured()) {
4110
4111
  const ref = parsePullRequestRef({ url: artifactUrl });
4111
4112
  if (ref) {
@@ -4130,7 +4131,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
4130
4131
  const verifyResult = skipLocalVerification ? { outcome: "passed" } : await (async () => {
4131
4132
  console.log(`[merge] Running post-rebase verification for ${issueId}...`);
4132
4133
  appendShipLog(issueId, "Running post-rebase verification (full quality-gate suite)…", "verifying");
4133
- const { runVerificationForIssue } = await import("./verification-runner-DlZI8yhw.js");
4134
+ const { runVerificationForIssue } = await import("./verification-runner-DiPaUP-C.js");
4134
4135
  return Effect.runPromise(runVerificationForIssue(issueId, workspacePath, { isRemote: false }, "merge-verify", {
4135
4136
  ...mergeVerificationOptions(request),
4136
4137
  onGateLog: (line) => appendShipLog(issueId, line, "verifying")
@@ -4175,7 +4176,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
4175
4176
  if (skipLocalVerification) await recordCiGreenVerificationVerdict(issueId, workspacePath);
4176
4177
  setReviewStatus(issueId, { mergeStep: "reporting-statuses" });
4177
4178
  try {
4178
- const { getPullRequestState, isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-DtAsvwzK.js");
4179
+ const { getPullRequestState, isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-DIE8BkHI.js");
4179
4180
  if (githubPrRef && isGitHubAppConfigured()) {
4180
4181
  const sha = (await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number))).headSha.trim();
4181
4182
  if (sha) {
@@ -4203,7 +4204,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
4203
4204
  } catch (prMergeErr) {
4204
4205
  console.error(`[merge] Review artifact merge threw for ${issueId}:`, prMergeErr);
4205
4206
  try {
4206
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-DtAsvwzK.js");
4207
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-DIE8BkHI.js");
4207
4208
  if (githubPrRef && isGitHubAppConfigured()) {
4208
4209
  artifactMerged = (await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number))).merged;
4209
4210
  if (artifactMerged) console.log(`[merge] Race-detected: PR #${githubPrRef.number} for ${issueId} was already merged despite thrown error; proceeding`);
@@ -4322,8 +4323,8 @@ const postForgeApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/forge
4322
4323
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
4323
4324
  if (!/^[A-Z]+-\d+$/i.test(issueId)) return jsonResponse({ error: "Invalid issue ID format" }, { status: 400 });
4324
4325
  return yield* Effect.promise(async () => {
4325
- const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-DzsOTBg5.js");
4326
- const { getForgeAdapter } = await import("./forge-DK3blQb_.js");
4326
+ const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-BymrheTj.js");
4327
+ const { getForgeAdapter } = await import("./forge-D647IMNa.js");
4327
4328
  let mergeSet = getMergeSetSync(issueId);
4328
4329
  if (!mergeSet) return jsonResponse({ error: `No merge set found for ${issueId}` }, { status: 404 });
4329
4330
  const results = [];
@@ -4411,9 +4412,9 @@ const postForgeMergeRoute = HttpRouter.add("POST", "/api/issues/:issueId/forge-m
4411
4412
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
4412
4413
  if (!/^[A-Z]+-\d+$/i.test(issueId)) return jsonResponse({ error: "Invalid issue ID format" }, { status: 400 });
4413
4414
  return yield* Effect.promise(async () => {
4414
- const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-DzsOTBg5.js");
4415
- const { getForgeAdapter } = await import("./forge-DK3blQb_.js");
4416
- const { assessRepoMergeCompleteness } = await import("./merge-completeness-D0ljXbk3.js");
4415
+ const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-BymrheTj.js");
4416
+ const { getForgeAdapter } = await import("./forge-D647IMNa.js");
4417
+ const { assessRepoMergeCompleteness } = await import("./merge-completeness-CghMbyX7.js");
4417
4418
  let mergeSet = getMergeSetSync(issueId);
4418
4419
  if (!mergeSet) return jsonResponse({ error: `No merge set found for ${issueId}` }, { status: 404 });
4419
4420
  const results = [];
@@ -4616,7 +4617,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
4616
4617
  console.log(`[approve] Starting role pipeline for ${issueId}...`);
4617
4618
  let reviewResult;
4618
4619
  try {
4619
- const { spawnReviewRoleForIssue } = await import("./review-agent-CD4RCI0Y.js");
4620
+ const { spawnReviewRoleForIssue } = await import("./review-agent-UpAM4DmT.js");
4620
4621
  reviewResult = await Effect.runPromise(spawnReviewRoleForIssue({
4621
4622
  issueId,
4622
4623
  workspace: workspacePath,
@@ -4663,7 +4664,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
4663
4664
  }
4664
4665
  console.log(`[approve] Step 3/3: Running server-side rebase for ${issueId}...`);
4665
4666
  try {
4666
- const { rebaseFeatureBranch } = await import("./merge-rebase-DGQpYJU3.js");
4667
+ const { rebaseFeatureBranch } = await import("./merge-rebase-B4pgzvQJ.js");
4667
4668
  const workspacePathForRebase = join(projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
4668
4669
  const rebaseResult = await Effect.runPromise(rebaseFeatureBranch(workspacePathForRebase, branchName, "main", issueId));
4669
4670
  if (!rebaseResult.success) {
@@ -4683,7 +4684,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
4683
4684
  completePendingOperation(issueId, pushResult.error);
4684
4685
  return jsonResponse({ error: pushResult.error }, { status: pushResult.httpStatus });
4685
4686
  }
4686
- const { approve: lifecycleApprove } = await import("./lifecycle-DDN8ApVY.js");
4687
+ const { approve: lifecycleApprove } = await import("./lifecycle-Di48-w4x.js");
4687
4688
  const ghResolved = resolveGitHubIssueSync(issueId);
4688
4689
  const isGitHubIssueFlag = ghResolved.isGitHub;
4689
4690
  const lifecycleCtx = {
@@ -4717,7 +4718,7 @@ const getMergeQueueRoute = HttpRouter.add("GET", "/api/merge-queue", httpHandler
4717
4718
  })));
4718
4719
  const postInternalPipelineNotifyRoute = HttpRouter.add("POST", "/api/internal/pipeline/notify", httpHandler(Effect.gen(function* () {
4719
4720
  const request = yield* HttpServerRequest.HttpServerRequest;
4720
- const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-M9omeXM1.js"));
4721
+ const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-BJZa40Ld.js"));
4721
4722
  const expected = getInternalTokenSync();
4722
4723
  if (!expected) return jsonResponse({
4723
4724
  ok: false,
@@ -4731,7 +4732,7 @@ const postInternalPipelineNotifyRoute = HttpRouter.add("POST", "/api/internal/pi
4731
4732
  }, 403);
4732
4733
  const event = yield* readJsonBody;
4733
4734
  const type = event.type;
4734
- const { notifyPipelineSync } = yield* Effect.promise(() => import("./pipeline-notifier-ImNXknf0.js"));
4735
+ const { notifyPipelineSync } = yield* Effect.promise(() => import("./pipeline-notifier-BmwrVKsO.js"));
4735
4736
  switch (type) {
4736
4737
  case "status_changed": {
4737
4738
  const issueId = event.issueId;
@@ -5506,7 +5507,7 @@ const patchWorkspaceTieredExecutionRoute = HttpRouter.add("PATCH", "/api/workspa
5506
5507
  if (override !== "on" && override !== "off" && override !== null && override !== void 0) return jsonResponse({ error: "Invalid tiered-execution override" }, { status: 400 });
5507
5508
  const project = getProjectSync(extractPrefixSync(issueId) ?? issueId.split("-")[0]);
5508
5509
  if (!project) return jsonResponse({ error: "Project not found" }, { status: 404 });
5509
- yield* Effect.promise(() => import("./record-CtroO946.js").then((m) => m.writeRecordTieredExecutionOverride(project, issueId, override)));
5510
+ yield* Effect.promise(() => import("./record-BTwWhtBb.js").then((m) => m.writeRecordTieredExecutionOverride(project, issueId, override)));
5510
5511
  const projectPath = project.path;
5511
5512
  const location = yield* resolvePlanLocation(projectPath, issueId);
5512
5513
  if (!location) return jsonResponse({ error: "No xBRIEF plan found for this workspace" }, { status: 404 });
@@ -6123,7 +6124,7 @@ const postWorkspaceReviewRoute = HttpRouter.add("POST", "/api/review/:issueId/tr
6123
6124
  console.log(`Feature branch push note: ${errorMessage(pushErr)}`);
6124
6125
  }
6125
6126
  try {
6126
- const { createReviewArtifactsForIssue } = await import("./review-artifacts-DSMRIfuJ.js");
6127
+ const { createReviewArtifactsForIssue } = await import("./review-artifacts-BCODM9ww.js");
6127
6128
  const artifactResult = await Effect.runPromise(createReviewArtifactsForIssue(issueId, workspacePath));
6128
6129
  const primaryArtifact = artifactResult.mergeSet?.repos.find((repo) => !!repo.artifactUrl);
6129
6130
  artifactResult.mergeSet?.repos.find((repo) => repo.mergeStatus !== "skipped")?.targetBranch;
@@ -6183,7 +6184,7 @@ const postWorkspaceReviewRoute = HttpRouter.add("POST", "/api/review/:issueId/tr
6183
6184
  completePendingOperation(issueId, verifyOutcome.reason);
6184
6185
  return;
6185
6186
  }
6186
- const { spawnReviewRoleForIssue } = await import("./review-agent-CD4RCI0Y.js");
6187
+ const { spawnReviewRoleForIssue } = await import("./review-agent-UpAM4DmT.js");
6187
6188
  const prUrl = getReviewStatusSync(issueId)?.prUrl;
6188
6189
  const reviewResult = await Effect.runPromise(spawnReviewRoleForIssue({
6189
6190
  issueId,
@@ -6319,7 +6320,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
6319
6320
  console.log(`[request-review] Feature branch push note: ${errorMessage(pushErr)}`);
6320
6321
  }
6321
6322
  const prUrl = getReviewStatusSync(issueId)?.prUrl;
6322
- const { spawnReviewRoleForIssue } = await import("./review-agent-CD4RCI0Y.js");
6323
+ const { spawnReviewRoleForIssue } = await import("./review-agent-UpAM4DmT.js");
6323
6324
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
6324
6325
  issueId,
6325
6326
  workspace: workspacePathRerun,
@@ -6369,7 +6370,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
6369
6370
  });
6370
6371
  } else {
6371
6372
  const workspacePath = join(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
6372
- const { spawnRun } = yield* Effect.promise(() => import("./agents-BKKkxKgK.js"));
6373
+ const { spawnRun } = yield* Effect.promise(() => import("./agents-Dnn4XgdB.js"));
6373
6374
  try {
6374
6375
  const testRun = yield* Effect.promise(() => spawnRun(issueId, "test", { workspace: workspacePath }));
6375
6376
  setReviewStatus(issueId, { testStatus: "testing" });
@@ -6484,7 +6485,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
6484
6485
  testStatus: "pending",
6485
6486
  reviewNotes
6486
6487
  });
6487
- const { spawnReviewRoleForIssue } = await import("./review-agent-CD4RCI0Y.js");
6488
+ const { spawnReviewRoleForIssue } = await import("./review-agent-UpAM4DmT.js");
6488
6489
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
6489
6490
  issueId,
6490
6491
  workspace: workspacePath,
@@ -6759,7 +6760,8 @@ function processUnstickRequest(issueId, workspaceExists, currentStatus, gitRepai
6759
6760
  stuckDetails: void 0,
6760
6761
  reviewedAtCommit: void 0,
6761
6762
  reviewRetryCount: 0,
6762
- recoveryStartedAt: void 0
6763
+ recoveryStartedAt: void 0,
6764
+ ...currentStatus.stuckReason === "review-not-converging" && { reviewCycleHistory: void 0 }
6763
6765
  });
6764
6766
  console.log(`[unstick] Cleared stuck flag and reset lifecycle for ${issueId} (was: ${currentStatus.stuckReason ?? "unknown"})`);
6765
6767
  return {
@@ -6819,7 +6821,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
6819
6821
  const result = processResetReviewPipeline(issueId, resetWorkspace.exists);
6820
6822
  if (result.httpStatus !== 200) return jsonResponse(result.body, { status: result.httpStatus });
6821
6823
  try {
6822
- const { resetPostMergeState } = yield* Effect.promise(() => import("./merge-agent-DrXa1CpW.js"));
6824
+ const { resetPostMergeState } = yield* Effect.promise(() => import("./merge-agent-C1-9zbP_.js"));
6823
6825
  resetPostMergeState(issueId);
6824
6826
  } catch (err) {
6825
6827
  console.warn(`[reset-review] resetPostMergeState best-effort failed for ${issueId}:`, err);
@@ -6828,7 +6830,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
6828
6830
  const rerun = body?.rerun === true;
6829
6831
  if (rerun) try {
6830
6832
  yield* Effect.promise(async () => {
6831
- const { spawnReviewRoleForIssue } = await import("./review-agent-CD4RCI0Y.js");
6833
+ const { spawnReviewRoleForIssue } = await import("./review-agent-UpAM4DmT.js");
6832
6834
  const dispatchArgs = buildReviewRedispatchArgs(issueId, resetWorkspace, workspaceInfo, resolved);
6833
6835
  if (dispatchArgs) {
6834
6836
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
@@ -6863,7 +6865,7 @@ const postReviewResyncRoute = HttpRouter.add("POST", "/api/review/:issueId/resyn
6863
6865
  const postWorkspaceReviewPurgeRoute = HttpRouter.add("POST", "/api/review/:issueId/purge", httpHandler(Effect.gen(function* () {
6864
6866
  const issueId = (yield* HttpRouter.params)["issueId"] ?? "";
6865
6867
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
6866
- const { purgeReviewAgentsForIssue } = yield* Effect.promise(() => import("./review-agent-CD4RCI0Y.js"));
6868
+ const { purgeReviewAgentsForIssue } = yield* Effect.promise(() => import("./review-agent-UpAM4DmT.js"));
6867
6869
  const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
6868
6870
  const purge = yield* Effect.promise(() => purgeReviewAgentsForIssue(projectKey, issueId));
6869
6871
  const workspaceInfo = getWorkspaceInfoForIssue(issueId);
@@ -6893,8 +6895,8 @@ const postWorkspaceAbortReviewRoute = HttpRouter.add("POST", "/api/review/:issue
6893
6895
  success: false,
6894
6896
  error: "Workspace does not exist"
6895
6897
  }, { status: 400 });
6896
- const { resolveProjectFromIssueSync } = yield* Effect.promise(() => import("./projects-B03Wr-xc.js"));
6897
- const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-CD4RCI0Y.js"));
6898
+ const { resolveProjectFromIssueSync } = yield* Effect.promise(() => import("./projects-_n3Zui6K.js"));
6899
+ const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-UpAM4DmT.js"));
6898
6900
  const { killed, failed } = yield* killAllReviewerSessions(resolveProjectFromIssueSync(issueId)?.projectKey, issueId);
6899
6901
  setReviewStatus(issueId, {
6900
6902
  reviewStatus: "pending",
@@ -6966,8 +6968,8 @@ const getReviewConfigRoute = HttpRouter.add("GET", "/api/review/:issueId/config"
6966
6968
  const issueId = ((yield* HttpRouter.params)["issueId"] ?? "").toUpperCase();
6967
6969
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
6968
6970
  return jsonResponse(yield* Effect.promise(async () => {
6969
- const { readIssueRecordSync, resolveProjectForIssue } = await import("./record-CtroO946.js");
6970
- const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-CD4RCI0Y.js");
6971
+ const { readIssueRecordSync, resolveProjectForIssue } = await import("./record-BTwWhtBb.js");
6972
+ const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-UpAM4DmT.js");
6971
6973
  const project = resolveProjectForIssue(issueId);
6972
6974
  const record = project ? readIssueRecordSync(project, issueId) : null;
6973
6975
  return {
@@ -7002,9 +7004,9 @@ const postReviewConfigRoute = HttpRouter.add("POST", "/api/review/:issueId/confi
7002
7004
  return jsonResponse({ error: error instanceof Error ? error.message : String(error) }, { status: 400 });
7003
7005
  }
7004
7006
  return jsonResponse(yield* Effect.promise(async () => {
7005
- const { resolveProjectForIssue } = await import("./record-CtroO946.js");
7006
- const { updateIssueRecord } = await import("./record-update-DH6dLJID.js");
7007
- const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-CD4RCI0Y.js");
7007
+ const { resolveProjectForIssue } = await import("./record-BTwWhtBb.js");
7008
+ const { updateIssueRecord } = await import("./record-update-DhI7eySG.js");
7009
+ const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-UpAM4DmT.js");
7008
7010
  const record = await updateIssueRecord(resolveProjectForIssue(issueId), issueId, (current) => {
7009
7011
  if (hasMode) if (body.reviewMode === null) delete current.reviewMode;
7010
7012
  else current.reviewMode = body.reviewMode;
@@ -7437,7 +7439,7 @@ async function readWorkspacePlanningMarkdown(issueId, fileName) {
7437
7439
  */
7438
7440
  async function readWorkspaceContinueFile(_projectPath, workspacePath, issueId) {
7439
7441
  try {
7440
- const { readRecordContinueViewSync, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-CtroO946.js");
7442
+ const { readRecordContinueViewSync, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-BTwWhtBb.js");
7441
7443
  const recordView = readRecordContinueViewSync(resolveProjectForIssue(issueId) ?? getProjectConfigFromWorkspacePath(workspacePath), issueId);
7442
7444
  return recordView ? JSON.stringify(recordView, null, 2) : null;
7443
7445
  } catch {
@@ -7635,7 +7637,11 @@ function spawnPanCommand(args, description, cwd, options) {
7635
7637
  "ignore",
7636
7638
  "pipe",
7637
7639
  "pipe"
7638
- ]
7640
+ ],
7641
+ env: {
7642
+ ...process.env,
7643
+ ...options?.env
7644
+ }
7639
7645
  });
7640
7646
  attachPanOutputStreams(child, activityId);
7641
7647
  child.on("close", (code) => {
@@ -7654,7 +7660,11 @@ function spawnPanCommand(args, description, cwd, options) {
7654
7660
  "ignore",
7655
7661
  "pipe",
7656
7662
  "pipe"
7657
- ]
7663
+ ],
7664
+ env: {
7665
+ ...process.env,
7666
+ ...options?.env
7667
+ }
7658
7668
  });
7659
7669
  attachPanOutputStreams(next, activityId);
7660
7670
  next.on("close", (nextCode) => finalize(nextCode, `pan ${chain.args.join(" ")}`));
@@ -7952,7 +7962,16 @@ const postWorkspaceRebuildRoute = HttpRouter.add("POST", "/api/workspaces/:issue
7952
7962
  });
7953
7963
  })));
7954
7964
  const postWorkspaceRebuildAndStartRoute = HttpRouter.add("POST", "/api/workspaces/:issueId/rebuild-and-start", httpHandler(Effect.gen(function* () {
7965
+ const request = yield* HttpServerRequest.HttpServerRequest;
7955
7966
  const issueId = (yield* HttpRouter.params)["issueId"] ?? "";
7967
+ const body = yield* readJsonBody;
7968
+ const internalRequest = yield* Effect.promise(() => isInternalAgentRequest(request));
7969
+ let startedBy;
7970
+ try {
7971
+ startedBy = resolveRequestedStartedBy(body?.startedBy, internalRequest);
7972
+ } catch (error) {
7973
+ return jsonResponse({ error: error instanceof Error ? error.message : String(error) }, { status: 400 });
7974
+ }
7956
7975
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
7957
7976
  const projectPath = getProjectPath(void 0, extractPrefixSync(issueId) ?? issueId.split("-")[0]);
7958
7977
  const activityId = spawnPanCommand([
@@ -7965,6 +7984,10 @@ const postWorkspaceRebuildAndStartRoute = HttpRouter.add("POST", "/api/workspace
7965
7984
  chainOnSuccess: {
7966
7985
  args: ["start", issueId],
7967
7986
  phaseLabel: `Stack rebuilt — starting agent for ${issueId.toUpperCase()}`
7987
+ },
7988
+ env: {
7989
+ OVERDECK_AGENT_STARTED_BY: startedBy,
7990
+ OVERDECK_AUTO_SPAWN_CONSENT_REQUIRED: internalRequest && body?.autoSpawnConsentRequired === true ? "1" : "0"
7968
7991
  }
7969
7992
  });
7970
7993
  return jsonResponse({
@@ -8196,7 +8219,7 @@ const getWorkspaceReviewStatusRoute = HttpRouter.add("GET", "/api/review/:issueI
8196
8219
  if (queuePosition === null) try {
8197
8220
  const resolved = resolveProjectFromIssueSync(issueId);
8198
8221
  if (resolved) {
8199
- const { getQueueForProject } = yield* Effect.promise(() => import("./merge-idOG--29.js"));
8222
+ const { getQueueForProject } = yield* Effect.promise(() => import("./merge-ZF99ig6A.js"));
8200
8223
  const mergePos = findPositionInQueueSync(issueId, getQueueForProject(resolved.projectKey).map((e) => ({
8201
8224
  id: String(e.id),
8202
8225
  type: "task",
@@ -8234,7 +8257,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
8234
8257
  const workspaceInfo = getWorkspaceInfoForIssue(issueId);
8235
8258
  if (workspaceInfo.exists && workspaceInfo.localPath) {
8236
8259
  const localPath = workspaceInfo.localPath;
8237
- const { snapshotWorkspaceHeadsPromise } = yield* Effect.promise(() => import("./git-utils-CI6cwyyC.js"));
8260
+ const { snapshotWorkspaceHeadsPromise } = yield* Effect.promise(() => import("./git-utils-CedsVume.js"));
8238
8261
  try {
8239
8262
  const headAnchor = yield* Effect.promise(() => snapshotWorkspaceHeadsPromise(issueId, localPath));
8240
8263
  if (headAnchor) update.reviewedAtCommit = headAnchor;
@@ -8249,7 +8272,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
8249
8272
  if (verificationStatus) update.verificationStatus = verificationStatus;
8250
8273
  if (readyForMerge !== void 0) update.readyForMerge = readyForMerge;
8251
8274
  const status = setReviewStatus(issueId, update);
8252
- const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-Tdezg_6N.js"));
8275
+ const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-CH6ah6D-.js"));
8253
8276
  const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
8254
8277
  if (reviewStatus && [
8255
8278
  "passed",
@@ -8267,7 +8290,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
8267
8290
  const agentId = `agent-${issueId.toLowerCase()}`;
8268
8291
  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.`;
8269
8292
  try {
8270
- const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-D1fm-5Z8.js"));
8293
+ const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-CY91ckuw.js"));
8271
8294
  const wsInfo = getWorkspaceInfoForIssue(issueId);
8272
8295
  const fileResult = yield* Effect.promise(() => writeFeedbackFile({
8273
8296
  issueId,
@@ -8331,7 +8354,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
8331
8354
  const agentId = `agent-${issueId.toLowerCase()}`;
8332
8355
  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.`;
8333
8356
  try {
8334
- const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-D1fm-5Z8.js"));
8357
+ const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-CY91ckuw.js"));
8335
8358
  const wsInfo = getWorkspaceInfoForIssue(issueId);
8336
8359
  const fileResult = yield* Effect.promise(() => writeFeedbackFile({
8337
8360
  issueId,
@@ -8364,14 +8387,14 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
8364
8387
  });
8365
8388
  yield* Effect.promise(async () => {
8366
8389
  try {
8367
- const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-B03Wr-xc.js");
8390
+ const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-_n3Zui6K.js");
8368
8391
  const project = resolveProjectFromIssueSync(issueId);
8369
8392
  const repo = (project ? getProjectSync(project.projectKey) : null)?.github_repo;
8370
8393
  if (!repo || !repo.includes("/")) return;
8371
8394
  const [owner, name] = repo.split("/");
8372
8395
  const wsInfo = getWorkspaceInfoForIssue(issueId);
8373
8396
  if (!wsInfo?.localPath) return;
8374
- const { postOverdeckTestsStatus } = await import("./github-app-DtAsvwzK.js");
8397
+ const { postOverdeckTestsStatus } = await import("./github-app-DIE8BkHI.js");
8375
8398
  await postOverdeckTestsStatus(wsInfo.localPath, owner, name, "success", "Test specialist passed");
8376
8399
  } catch (err) {
8377
8400
  console.warn(`[review-status] Failed to post overdeck/tests for ${issueId}: ${err.message}`);
@@ -8413,7 +8436,7 @@ const postWorkspaceRefreshTokenRoute = HttpRouter.add("POST", "/api/workspaces/:
8413
8436
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
8414
8437
  const issueLower = issueId.toLowerCase();
8415
8438
  const workspacePath = join(getProjectPath(void 0, extractPrefixSync(issueId) ?? issueId.split("-")[0]), "workspaces", `feature-${issueLower}`);
8416
- const { refreshWorkspaceToken, isGitHubAppConfigured } = yield* Effect.promise(() => import("./github-app-DtAsvwzK.js"));
8439
+ const { refreshWorkspaceToken, isGitHubAppConfigured } = yield* Effect.promise(() => import("./github-app-DIE8BkHI.js"));
8417
8440
  if (!isGitHubAppConfigured()) return jsonResponse({
8418
8441
  success: false,
8419
8442
  error: "GitHub App not configured"
@@ -8428,4 +8451,4 @@ const workspacesRouteLayer = Layer.mergeAll(workspaceDataRouteLayer, postWorkspa
8428
8451
  //#endregion
8429
8452
  export { getWorkspacePathForIssue as C, stopAgentOutputService as E, resolveIssueHeadlineCost as S, startAgentOutputService as T, 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, retainAgentOutputInterest as w, getCachedRunningAgents as x, syncCacheSync as y };
8430
8453
 
8431
- //# sourceMappingURL=workspaces-j1e_6aAT.js.map
8454
+ //# sourceMappingURL=workspaces-DbtMX2TM.js.map