@overdeck/desktop 0.65.0 → 0.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-BgED6Izb.js → acceptance-criteria-CNfqZWHE.js} +1 -1
  3. package/server/activity-CElPNdhJ.js +2 -0
  4. package/server/{activity-CVRFYPg-.js → activity-h2Q-pMa7.js} +4 -4
  5. package/server/{agent-pane-io-8U_dsHCf.js → agent-pane-io-CXPX0Kq3.js} +43 -5
  6. package/server/agent-pane-io-H-50g3Ze.js +2 -0
  7. package/server/{agent-state-service-CZjmcB3_.js → agent-state-service-CJB8_8Bp.js} +2 -2
  8. package/server/{agent-state-service-hbWznp6M.js → agent-state-service-Cs_Z_oHX.js} +1 -1
  9. package/server/{agent-status-events-HU33uOJc.js → agent-status-events-DfYAcfpo.js} +1 -1
  10. package/server/{agents-DfEYd_I0.js → agents-C9oho7kE.js} +3 -3
  11. package/server/{agents-CKFhKqJp.js → agents-DebP6rx9.js} +56 -46
  12. package/server/{agents-DNkpVGda.js → agents-dwMmsEQT.js} +2 -2
  13. package/server/archive-planning-DflA6GM1.js +2 -0
  14. package/server/{archive-planning-BvwP8nTs.js → archive-planning-vbycG6oX.js} +2 -2
  15. package/server/{artifact-index-jobs-CFe2p3St.js → artifact-index-jobs-C73RHIUN.js} +1 -1
  16. package/server/{auto-merge-eligibility-De2WgmQS.js → auto-merge-eligibility-f1D8TwAj.js} +1 -1
  17. package/server/{auto-merge-eligibility-DmUQEAws.js → auto-merge-eligibility-is6bTkrA.js} +1 -1
  18. package/server/{auto-spawn-consent-DRgQbl8k.js → auto-spawn-consent-BxXl-3y7.js} +2 -2
  19. package/server/{backend-inventory-CjCALqY9.js → backend-inventory-DsbeKiYY.js} +2 -2
  20. package/server/{backend-inventory-HZnm8K3m.js → backend-inventory-tUXKfgL_.js} +1 -1
  21. package/server/{backlog-auto-trigger-BZ9HqOh5.js → backlog-auto-trigger-EIBVGK3_.js} +2 -2
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-BiGSCyKD.js → checkpoints-C-xh-Mv0.js} +1 -1
  24. package/server/{checkpoints-DEk_xKPI.js → checkpoints-SNuYbtl9.js} +1 -1
  25. package/server/{claude-hooks-provision-DOMp0nce.js → claude-hooks-provision-BGL61BFy.js} +1 -1
  26. package/server/{claude-hooks-provision-Cx-iNW3h.js → claude-hooks-provision-D60ldmh3.js} +1 -1
  27. package/server/{claude-settings-overlay-DX8SS3mU.js → claude-settings-overlay-BKk6aPyn.js} +1 -1
  28. package/server/{claude-settings-overlay-tccrSYWh.js → claude-settings-overlay-Z1wvGWrM.js} +1 -1
  29. package/server/{cli-BOQWA-ux.js → cli-CfYEyYsr.js} +3 -3
  30. package/server/cli-DHZ5Ecrt.js +2 -0
  31. package/server/{closed-issue-reaper-g1xev2lv.js → closed-issue-reaper-DkGIkI3v.js} +1 -1
  32. package/server/{closed-issue-reaper-DnaFCYJk.js → closed-issue-reaper-tjnA5V8Z.js} +3 -3
  33. package/server/{codex-BE1w7ARL.js → codex-BrY7aOvP.js} +2 -2
  34. package/server/{codex-CVOd_JEs.js → codex-vuXHqT53.js} +1 -1
  35. package/server/{conflict-gate-Domf8Fvr.js → conflict-gate-CPbG8VXI.js} +2 -2
  36. package/server/{constants-ZsF6FhcR.js → constants-DEItMRn6.js} +1 -1
  37. package/server/{conversation-compaction-Dm4_bCqZ.js → conversation-compaction-BLDpoKfB.js} +5 -5
  38. package/server/{conversation-compaction-sKyT07L1.js → conversation-compaction-D1aR4ytx.js} +1 -1
  39. package/server/{conversation-delivery-Dn6b4mUU.js → conversation-delivery-C0Q7Ew-t.js} +17 -17
  40. package/server/{conversation-liveness-DJzPiGPO.js → conversation-liveness-DO3e-N73.js} +1 -1
  41. package/server/{conversation-liveness-Cq4TNxqa.js → conversation-liveness-g3nFofTZ.js} +2 -2
  42. package/server/{conversation-pull-requests-Bu30dOQv.js → conversation-pull-requests-VQwME1F1.js} +1 -1
  43. package/server/{conversation-reads-CGepvSWx.js → conversation-reads-0fCsCPQe.js} +8 -8
  44. package/server/{conversation-reads-D-UfsYqf.js → conversation-reads-lMO8cWqw.js} +1 -1
  45. package/server/{conversation-runtime-DA_Famk_.js → conversation-runtime-Bh4Wj05k.js} +1 -1
  46. package/server/{conversations-search-CDvHCyYe.js → conversations-search-CS0COdna.js} +1 -1
  47. package/server/{cpu-psi-BN99YdGz.js → cpu-psi-DvzVl1bx.js} +1 -1
  48. package/server/{daemon-BX8hAPTC.js → daemon-DMVuHx-i.js} +2 -2
  49. package/server/daemon-d62dV_pO.js +2 -0
  50. package/server/{dag-DC0niH7i.js → dag-PPL-MAx0.js} +1 -1
  51. package/server/{dangerous-git-ops-GKdOQbOe.js → dangerous-git-ops-BcSMn_cv.js} +1 -1
  52. package/server/dashboard-db-worker.js +4 -4
  53. package/server/{deacon-swarm-record-4FGgybnL.js → deacon-swarm-record-BenMf1-5.js} +1 -1
  54. package/server/deacon.js +4 -4
  55. package/server/{derived-issue-state-BtoFumna.js → derived-issue-state-BaGJkxQq.js} +2 -2
  56. package/server/{derived-issue-state-DnKs1TXS.js → derived-issue-state-BqhN4lOl.js} +1 -1
  57. package/server/{derived-issue-state-CCHbqKjW.js → derived-issue-state-CmvMPi-R.js} +4 -4
  58. package/server/{derived-issue-state-QLhfZgf5.js → derived-issue-state-Dz7ti1og.js} +2 -2
  59. package/server/{dist-B5cmD5rC.js → dist-B-6_eqmp.js} +1 -1
  60. package/server/dist-rCsp8VVx.js +3 -0
  61. package/server/{dod-C6qNQ8O3.js → dod-BJP9kMFG.js} +1 -1
  62. package/server/{done-preflight-Bu3KGCAV.js → done-preflight-ZQMI79O0.js} +1 -1
  63. package/server/{done-preflight-BvmOQ64R.js → done-preflight-oy6Tja5C.js} +1 -1
  64. package/server/{ensure-devcontainer-HQ3fQD5V.js → ensure-devcontainer-CollbMTo.js} +2 -2
  65. package/server/ensure-devcontainer-bvZTPcBb.js +2 -0
  66. package/server/evict-LT5Wbo6F.js +2 -0
  67. package/server/{evict-Dhzce_bB.js → evict-l0JJZ11s.js} +2 -2
  68. package/server/{feedback-target-C6lpafxM.js → feedback-target-B0XBJvkz.js} +1 -1
  69. package/server/{feedback-target-DmQ249DE.js → feedback-target-BYLtF8vX.js} +3 -3
  70. package/server/{feedback-writer-pF7pA9Ei.js → feedback-writer-XmR1ZtVC.js} +1 -1
  71. package/server/{feedback-writer-DSEPHMwz.js → feedback-writer-g9cmlhQU.js} +1 -1
  72. package/server/{flywheel-Ib4Qp5x6.js → flywheel-C-t-XYUt.js} +3 -3
  73. package/server/{flywheel-merge-order-BjbLhtpF.js → flywheel-merge-order-qRslbYK3.js} +2 -2
  74. package/server/{format-QXO0qqJo.js → format-3trt48Iz.js} +1 -1
  75. package/server/{from-ufsGrQUf.js → from-Cdjxc_Sy.js} +1 -1
  76. package/server/{generation-ship-a14Tkc5B.js → generation-ship-BTyy05vO.js} +1 -1
  77. package/server/{harness-binary-DtPw6bEJ.js → harness-binary-BaN9N-sG.js} +2 -2
  78. package/server/harness-binary-DFBkr1Wg.js +2 -0
  79. package/server/{harness-resolve-BfOivkUY.js → harness-resolve-CimEYcpG.js} +4 -4
  80. package/server/{harness-resolve-PDc4GGnM.js → harness-resolve-DclBRYRh.js} +1 -1
  81. package/server/{herdr-agent-terminals-ffj8Zg3X.js → herdr-agent-terminals-Dm4HnKF7.js} +1 -1
  82. package/server/infer-tracker-BJR_ATzw.js +2 -0
  83. package/server/infer-tracker-CwOO7_gU.js +237 -0
  84. package/server/{issue-lifecycle-BlE7L0r7.js → issue-lifecycle-CmbQlAqW.js} +8 -8
  85. package/server/{issue-lifecycle-Y8IGkADf.js → issue-lifecycle-Dt9AFW70.js} +1 -1
  86. package/server/{issue-pause-9vXZZkOc.js → issue-pause-kvPBItCx.js} +5 -5
  87. package/server/{issue-service-singleton-DxTRf-RV.js → issue-service-singleton-BbERjqoV.js} +1 -1
  88. package/server/{issue-service-singleton-QPDr49TB.js → issue-service-singleton-DwYi9Oie.js} +3 -3
  89. package/server/{kimi-code-AcOc8X0U.js → kimi-code-DNNwP6FT.js} +1 -1
  90. package/server/{label-cleanup-CIoPmmbd.js → label-cleanup-C7weaJlZ.js} +2 -2
  91. package/server/{launch-DSEY_mt2.js → launch-DF_WD2-a.js} +10 -7
  92. package/server/{launch-DCAI36Nq.js → launch-DlClnoCc.js} +1 -1
  93. package/server/{launcher-generator-BofB3FX_.js → launcher-generator-COHAIhyH.js} +2 -2
  94. package/server/{legacy-tldr-cleanup-DJX9V9s4.js → legacy-tldr-cleanup-RqGuveuz.js} +1 -1
  95. package/server/{lifecycle-BT3aegwk.js → lifecycle-BHcU1hPs.js} +4 -4
  96. package/server/{linear-mcp-auth-ChV8Aqu4.js → linear-mcp-auth-C0qzNK0H.js} +1 -1
  97. package/server/{linear-mcp-auth-COqdLkXb.js → linear-mcp-auth-JIDCfEz0.js} +3 -3
  98. package/server/{memory-governor-BQg4GOEF.js → memory-governor-C3T769G6.js} +6 -6
  99. package/server/{merge-BS-9EAg0.js → merge-DaJul9Xt.js} +1 -1
  100. package/server/{merge-agent-CVjeg02H.js → merge-agent-C2UtoeTe.js} +1 -1
  101. package/server/{merge-agent-CkEA7spe.js → merge-agent-CCs-JQhC.js} +10 -10
  102. package/server/{merge-batch-CSWibuAl.js → merge-batch-BBxSLbaz.js} +1 -1
  103. package/server/merge-gate-3O9zdlWW.js +2 -0
  104. package/server/{merge-gate-LOtvWv5K.js → merge-gate-D5zTeaC0.js} +2 -2
  105. package/server/merge-ops-BP9-OIjU.js +2 -0
  106. package/server/{merge-ready-set-C0enElWu.js → merge-ready-set-C5TMtdGy.js} +1 -1
  107. package/server/{merge-ready-set-8yRGoXfN.js → merge-ready-set-DlKHumrb.js} +2 -2
  108. package/server/{merge-train-ClvHbVeP.js → merge-train-BOKRD6nt.js} +1 -1
  109. package/server/{merge-train-CfvTn1fw.js → merge-train-Cx7vXfxi.js} +2 -2
  110. package/server/{merge-train-Cee9LY5p.js → merge-train-Dg5cr8mS.js} +19 -19
  111. package/server/{merge-train-deps-BCvx9OJh.js → merge-train-deps-D1MTGotL.js} +3 -3
  112. package/server/messaging-Cbhf7pAu.js +2 -0
  113. package/server/{multipart-parser-Divdcrf4.js → multipart-parser-fgcPeL-R.js} +2 -2
  114. package/server/node_modules/.package-lock.json +1 -1
  115. package/server/package-lock.json +2 -2
  116. package/server/package.json +1 -1
  117. package/server/{pipeline-BxDHIXwk.js → pipeline-CZPx_h0w.js} +1 -1
  118. package/server/pipeline-membership-BbdiZQ2g.js +171 -0
  119. package/server/pipeline-membership-LZVPTNzz.js +2 -0
  120. package/server/{policy-context-De_w57FT.js → policy-context-CYqNhQra.js} +1 -1
  121. package/server/{policy-context-DlF2pBlT.js → policy-context-CebkQTkr.js} +2 -2
  122. package/server/{preemption-BseBG1Lx.js → preemption-D15-OfS-.js} +3 -3
  123. package/server/{prerequisites-report-D4DsEecP.js → prerequisites-report-BpRfGeIQ.js} +3 -3
  124. package/server/{project-pipelines-BV_6EeMm.js → project-pipelines-C0eawMQd.js} +1 -1
  125. package/server/{project-resource-refresh-queue-Dsha4mgg.js → project-resource-refresh-queue-DmNcMWIW.js} +1 -1
  126. package/server/{project-resource-refresh-queue-BD7xaiwB.js → project-resource-refresh-queue-Dx1QPkGs.js} +13 -173
  127. package/server/public/assets/{abnfDiagram-VCTEODGH-a5JXGj2O.js → abnfDiagram-VCTEODGH-Bkh8Qhhf.js} +1 -1
  128. package/server/public/assets/{ar-SA-G6X2FPQ2-DfwESDRS.js → ar-SA-G6X2FPQ2-Duv-fSqg.js} +1 -1
  129. package/server/public/assets/{architectureDiagram-5GKGNRK7-CNqDlS6j.js → architectureDiagram-5GKGNRK7-vm7gsvBp.js} +1 -1
  130. package/server/public/assets/{az-AZ-76LH7QW2-DcXSBniP.js → az-AZ-76LH7QW2-CqalVsAI.js} +1 -1
  131. package/server/public/assets/{bg-BG-XCXSNQG7-C9L0gaeE.js → bg-BG-XCXSNQG7-KojQTSIf.js} +1 -1
  132. package/server/public/assets/{bn-BD-2XOGV67Q-B53MN52O.js → bn-BD-2XOGV67Q-CGLJg39W.js} +1 -1
  133. package/server/public/assets/{ca-ES-6MX7JW3Y-BTZPNvIz.js → ca-ES-6MX7JW3Y-BG9DUCtc.js} +1 -1
  134. package/server/public/assets/{chunk-EIO257PC-S1ZezR1y.js → chunk-EIO257PC-vUssjuTB.js} +1 -1
  135. package/server/public/assets/{chunk-IMKFNOWR-CFhbID1F.js → chunk-IMKFNOWR-Dy5lrR0k.js} +1 -1
  136. package/server/public/assets/{chunk-SHT3W25Y-vRJiIXR_.js → chunk-SHT3W25Y-B1Ej75VE.js} +1 -1
  137. package/server/public/assets/{chunk-SVP7TREG-D-Pw_X2t.js → chunk-SVP7TREG-BBLmHGKS.js} +1 -1
  138. package/server/public/assets/{chunk-TICWLB2K-DzeVkrx_.js → chunk-TICWLB2K-BYF1_eFX.js} +1 -1
  139. package/server/public/assets/{classDiagram-ZZMXUADV-BYD5DQer.js → classDiagram-ZZMXUADV-BFooIsVI.js} +1 -1
  140. package/server/public/assets/{classDiagram-v2-VYDZK3BY-BYD5DQer.js → classDiagram-v2-VYDZK3BY-BFooIsVI.js} +1 -1
  141. package/server/public/assets/{cs-CZ-2BRQDIVT-CNtIRKDO.js → cs-CZ-2BRQDIVT-B7KdIXZX.js} +1 -1
  142. package/server/public/assets/{cynefinDiagram-5FMLGOSQ-BdxptoBH.js → cynefinDiagram-5FMLGOSQ-B74BPf3L.js} +1 -1
  143. package/server/public/assets/{da-DK-5WZEPLOC-CFH9B_XA.js → da-DK-5WZEPLOC-D4z-FQo3.js} +1 -1
  144. package/server/public/assets/{dagre-GXQ25YYZ-8A4ks-g0.js → dagre-GXQ25YYZ-CzGQ9RBh.js} +1 -1
  145. package/server/public/assets/{de-DE-XR44H4JA-SSAwqM2T.js → de-DE-XR44H4JA-BLHcSSpk.js} +1 -1
  146. package/server/public/assets/{diagram-S7CK7UJ4-BiEABFvq.js → diagram-S7CK7UJ4-BLVIehtN.js} +1 -1
  147. package/server/public/assets/{diagram-UQ7AKVKN-CbAQm8rt.js → diagram-UQ7AKVKN-CWBxQLwX.js} +1 -1
  148. package/server/public/assets/{diagram-VX7I27RA-CX6cTJ6m.js → diagram-VX7I27RA-D-nhHjqI.js} +1 -1
  149. package/server/public/assets/{diagram-Z3DM3KII-CUJMn-73.js → diagram-Z3DM3KII-t-PkDqPd.js} +1 -1
  150. package/server/public/assets/{dist-DB46JHIp.js → dist-7NqkUyWp.js} +4 -4
  151. package/server/public/assets/{ebnfDiagram-PWID7BFC-vIgmpIpC.js → ebnfDiagram-PWID7BFC-BqLhIpq3.js} +1 -1
  152. package/server/public/assets/{el-GR-BZB4AONW-CEWaQ14U.js → el-GR-BZB4AONW-CpB4PJtL.js} +1 -1
  153. package/server/public/assets/{en-B4ZKOASM-DPbmc81o.js → en-B4ZKOASM-BokeIfhD.js} +1 -1
  154. package/server/public/assets/{erDiagram-RLTQ6QDP-Bx76fbpv.js → erDiagram-RLTQ6QDP-CwsmK2oF.js} +1 -1
  155. package/server/public/assets/{es-ES-U4NZUMDT-D98PwSTw.js → es-ES-U4NZUMDT-7pdvQy8R.js} +1 -1
  156. package/server/public/assets/{eu-ES-A7QVB2H4-Covb8Ol-.js → eu-ES-A7QVB2H4-BvMoCige.js} +1 -1
  157. package/server/public/assets/{fa-IR-HGAKTJCU-Dtd-fEqq.js → fa-IR-HGAKTJCU-oqb9ngcA.js} +1 -1
  158. package/server/public/assets/{fi-FI-Z5N7JZ37-hfxveRFy.js → fi-FI-Z5N7JZ37-BWCKhxHc.js} +1 -1
  159. package/server/public/assets/{flowDiagram-HODETNUW-DfUL9mV5.js → flowDiagram-HODETNUW-BFLMpZi8.js} +1 -1
  160. package/server/public/assets/{fr-FR-RHASNOE6-SFarC5-9.js → fr-FR-RHASNOE6-lIqYd1Kh.js} +1 -1
  161. package/server/public/assets/{ganttDiagram-EL5Y4UJY-BWhqn10r.js → ganttDiagram-EL5Y4UJY-_hCoOnvJ.js} +1 -1
  162. package/server/public/assets/{gl-ES-HMX3MZ6V-B5E2hTiL.js → gl-ES-HMX3MZ6V-BuMMBxGa.js} +1 -1
  163. package/server/public/assets/{he-IL-6SHJWFNN-CtPUdyTg.js → he-IL-6SHJWFNN-CASskgj6.js} +1 -1
  164. package/server/public/assets/{hi-IN-IWLTKZ5I-Dno5smSQ.js → hi-IN-IWLTKZ5I-V8xvo9N_.js} +1 -1
  165. package/server/public/assets/{hu-HU-A5ZG7DT2-6fM9o4Vm.js → hu-HU-A5ZG7DT2-Dwz2tW9D.js} +1 -1
  166. package/server/public/assets/{id-ID-SAP4L64H-DqHxJ0od.js → id-ID-SAP4L64H-CsAKnonA.js} +1 -1
  167. package/server/public/assets/image-GAAHSSAO-DlRrB5ro.js +1 -0
  168. package/server/public/assets/{index-BAHYSdai.js → index-uxuGUUZm.js} +9 -9
  169. package/server/public/assets/{infoDiagram-27XIBGKW-B6REiikV.js → infoDiagram-27XIBGKW-Bq35vHxL.js} +1 -1
  170. package/server/public/assets/{ishikawaDiagram-5VMMS53U-CJ4FcDTi.js → ishikawaDiagram-5VMMS53U-BP8VkFPc.js} +1 -1
  171. package/server/public/assets/{it-IT-JPQ66NNP-COf0Mlpu.js → it-IT-JPQ66NNP-yPqYjuhl.js} +1 -1
  172. package/server/public/assets/{ja-JP-DBVTYXUO-CnmSZoYJ.js → ja-JP-DBVTYXUO-SIGkDKhH.js} +1 -1
  173. package/server/public/assets/{kaa-6HZHGXH3-psdaC7_Y.js → kaa-6HZHGXH3-DxnCb5Kc.js} +1 -1
  174. package/server/public/assets/{kab-KAB-ZGHBKWFO-DHcsec5D.js → kab-KAB-ZGHBKWFO-CVCxey_p.js} +1 -1
  175. package/server/public/assets/{kanban-definition-UXKFOSKX-CWOzrzwB.js → kanban-definition-UXKFOSKX-Cj2TVfn0.js} +1 -1
  176. package/server/public/assets/{kk-KZ-P5N5QNE5-ChxI9E6E.js → kk-KZ-P5N5QNE5-M9YAeME3.js} +1 -1
  177. package/server/public/assets/{km-KH-HSX4SM5Z-B75b52bE.js → km-KH-HSX4SM5Z-D3AhWnhV.js} +1 -1
  178. package/server/public/assets/{ko-KR-MTYHY66A-DS6CvLDO.js → ko-KR-MTYHY66A-Or_gIXhD.js} +1 -1
  179. package/server/public/assets/{ku-TR-6OUDTVRD-BS6Z0LpR.js → ku-TR-6OUDTVRD-DzxrabDk.js} +1 -1
  180. package/server/public/assets/{linear-DI0By7Db.js → linear-gEGsxSj1.js} +1 -1
  181. package/server/public/assets/{lt-LT-XHIRWOB4-DB6tYnhK.js → lt-LT-XHIRWOB4-_nyDG8BQ.js} +1 -1
  182. package/server/public/assets/{lv-LV-5QDEKY6T-Gz9wx9bk.js → lv-LV-5QDEKY6T-BuFYWU7T.js} +1 -1
  183. package/server/public/assets/{mindmap-definition-YA3MSWOX-CoXi3FPw.js → mindmap-definition-YA3MSWOX-D1eSwBX7.js} +1 -1
  184. package/server/public/assets/{mr-IN-CRQNXWMA-DmdIEQlN.js → mr-IN-CRQNXWMA-DYDxiULS.js} +1 -1
  185. package/server/public/assets/{my-MM-5M5IBNSE-CEZvJNBx.js → my-MM-5M5IBNSE-CESrtCUE.js} +1 -1
  186. package/server/public/assets/{nb-NO-T6EIAALU-CE-qhpnk.js → nb-NO-T6EIAALU-D89JFLrD.js} +1 -1
  187. package/server/public/assets/{nl-NL-IS3SIHDZ-CKhfMYRs.js → nl-NL-IS3SIHDZ-B5fTIJ0f.js} +1 -1
  188. package/server/public/assets/{nn-NO-6E72VCQL-_Q0hO_YM.js → nn-NO-6E72VCQL-BlZxpLDl.js} +1 -1
  189. package/server/public/assets/{oc-FR-POXYY2M6-BP_GWpdw.js → oc-FR-POXYY2M6-c2a5nnpF.js} +1 -1
  190. package/server/public/assets/{pa-IN-N4M65BXN-ImDjqKw6.js → pa-IN-N4M65BXN-DV1xiyB6.js} +1 -1
  191. package/server/public/assets/{pegDiagram-XKGWAZYB-D1tXITHn.js → pegDiagram-XKGWAZYB-BVNV8u8v.js} +1 -1
  192. package/server/public/assets/percentages-BXMCSKIN-CCSzzLCW.js +1 -0
  193. package/server/public/assets/{pieDiagram-E7YTZNPT-DNCuFpai.js → pieDiagram-E7YTZNPT-DgQFaD11.js} +1 -1
  194. package/server/public/assets/{pl-PL-T2D74RX3-yCxLpvKz.js → pl-PL-T2D74RX3-BYEPnwpR.js} +1 -1
  195. package/server/public/assets/{prod-DsNBMWxO.js → prod-DWloE-Tf.js} +7 -7
  196. package/server/public/assets/{pt-BR-5N22H2LF-CqNEOY9w.js → pt-BR-5N22H2LF-VzuifI42.js} +1 -1
  197. package/server/public/assets/{pt-PT-UZXXM6DQ-DBw4f0lS.js → pt-PT-UZXXM6DQ-Grmv30e9.js} +1 -1
  198. package/server/public/assets/{quadrantDiagram-AXDQQJYC-Bci1oSYb.js → quadrantDiagram-AXDQQJYC-431IKFV-.js} +1 -1
  199. package/server/public/assets/{railroadDiagram-O6MQD6OU-ikFAVJUY.js → railroadDiagram-O6MQD6OU-Borx2fG3.js} +1 -1
  200. package/server/public/assets/{requirementDiagram-BXWQKSXE-DKTszgVJ.js → requirementDiagram-BXWQKSXE-B_ifxbXC.js} +1 -1
  201. package/server/public/assets/{ro-RO-JPDTUUEW-BqgARQks.js → ro-RO-JPDTUUEW-BCcW97bo.js} +1 -1
  202. package/server/public/assets/{ru-RU-B4JR7IUQ-Q6Ic_n8I.js → ru-RU-B4JR7IUQ-jud8t1VI.js} +1 -1
  203. package/server/public/assets/{sankeyDiagram-P5KCCOFB-DWatmen5.js → sankeyDiagram-P5KCCOFB-BLpv-ZD0.js} +1 -1
  204. package/server/public/assets/{sequenceDiagram-WJ2MYXX4-J7gSm17h.js → sequenceDiagram-WJ2MYXX4-DAtQj3zB.js} +1 -1
  205. package/server/public/assets/{si-LK-N5RQ5JYF-ZVr3vkVm.js → si-LK-N5RQ5JYF-CslAaa-5.js} +1 -1
  206. package/server/public/assets/{sk-SK-C5VTKIMK-BSQsNJSS.js → sk-SK-C5VTKIMK-C9NvC7DU.js} +1 -1
  207. package/server/public/assets/{sl-SI-NN7IZMDC-CP8Z1otw.js → sl-SI-NN7IZMDC-Cy3n7hfM.js} +1 -1
  208. package/server/public/assets/{stateDiagram-D77RDMKH-yMPWEYtq.js → stateDiagram-D77RDMKH-oH2hEoN4.js} +1 -1
  209. package/server/public/assets/{stateDiagram-v2-MP3YSRHH-F5EGnPR_.js → stateDiagram-v2-MP3YSRHH-CIbAgOVy.js} +1 -1
  210. package/server/public/assets/subset-shared.chunk-Dba6DKdi.js +1 -0
  211. package/server/public/assets/{subset-worker.chunk-LpMaC50m.js → subset-worker.chunk-D5tg61BR.js} +1 -1
  212. package/server/public/assets/{sv-SE-XGPEYMSR-D8mOTDra.js → sv-SE-XGPEYMSR-DYf-SlR7.js} +1 -1
  213. package/server/public/assets/{swimlanes-42K2YHIH-JPQx_4qn.js → swimlanes-42K2YHIH-Do3SoYnq.js} +1 -1
  214. package/server/public/assets/{swimlanesDiagram-VR7AAH4N-CtNlg2el.js → swimlanesDiagram-VR7AAH4N-BYc814ml.js} +1 -1
  215. package/server/public/assets/{ta-IN-2NMHFXQM-ih9dhd8j.js → ta-IN-2NMHFXQM-iGF2eo5t.js} +1 -1
  216. package/server/public/assets/{th-TH-HPSO5L25-BhmRG3ne.js → th-TH-HPSO5L25-CGfN7mnR.js} +1 -1
  217. package/server/public/assets/{timeline-definition-24CTP7MA-lLCs5kg1.js → timeline-definition-24CTP7MA-DUI_xi15.js} +1 -1
  218. package/server/public/assets/{tr-TR-DEFEU3FU-B5teU_eL.js → tr-TR-DEFEU3FU-C1btuwU_.js} +1 -1
  219. package/server/public/assets/{uk-UA-QMV73CPH-CsUaR7s6.js → uk-UA-QMV73CPH-DLoTLQOx.js} +1 -1
  220. package/server/public/assets/{vennDiagram-4TSXK5OY-CsO1kQiW.js → vennDiagram-4TSXK5OY-DioINyLf.js} +1 -1
  221. package/server/public/assets/{vi-VN-M7AON7JQ-qfVnGZto.js → vi-VN-M7AON7JQ-CBwbwrm4.js} +1 -1
  222. package/server/public/assets/{wardleyDiagram-VM6X3IG4-C2ajkJrW.js → wardleyDiagram-VM6X3IG4-gd0gikXq.js} +1 -1
  223. package/server/public/assets/{xychartDiagram-S5SC5T6Z-oJOShKfW.js → xychartDiagram-S5SC5T6Z-Bx86zaAl.js} +1 -1
  224. package/server/public/assets/{zh-CN-LNUGB5OW-vDDEdkjv.js → zh-CN-LNUGB5OW-BcRNKoOf.js} +1 -1
  225. package/server/public/assets/{zh-HK-E62DVLB3-Fcvngm0F.js → zh-HK-E62DVLB3-Cu_ESPq6.js} +1 -1
  226. package/server/public/assets/{zh-TW-RAJ6MFWO-BCuionzc.js → zh-TW-RAJ6MFWO-CHnOC09j.js} +1 -1
  227. package/server/public/index.html +1 -1
  228. package/server/queries-qqOXiaNr.js +2 -0
  229. package/server/{ready-timeout-failure-C45bsjI2.js → ready-timeout-failure-BwzL5OKo.js} +2 -2
  230. package/server/{rebuild-stack-uaOTI93a.js → rebuild-stack-BtpTM6VR.js} +3 -3
  231. package/server/rebuild-stack-FjChJ9yi.js +3 -0
  232. package/server/{release-engine-C5d610mi.js → release-engine-Y29fEWE7.js} +2 -2
  233. package/server/{release-set-BFsZCA0J.js → release-set-BacZ1N_f.js} +1 -1
  234. package/server/{remote-xutkDygz.js → remote-BUaz6B3t.js} +2 -2
  235. package/server/{remote-qoNG2iir.js → remote-Day75qqe.js} +2 -2
  236. package/server/{remote-agents-CJYoW12q.js → remote-agents-BlqgB9dc.js} +1 -1
  237. package/server/{remote-agents-9UKtOTeT.js → remote-agents-D6G8Z0T_.js} +3 -3
  238. package/server/{requirements-tNHrKKgl.js → requirements-DM6TvCsN.js} +1 -1
  239. package/server/{requirements-COv0qjkH.js → requirements-GXRVCopE.js} +1 -1
  240. package/server/{resolver-Did8ZX_j.js → resolver-D6SskqKx.js} +1 -1
  241. package/server/{resolver-CAP4HecA.js → resolver-TNBoD1Lh.js} +2 -2
  242. package/server/resume-BvqNBf96.js +2 -0
  243. package/server/{review-agent-C6_zRhE-.js → review-agent-BS5R2OP1.js} +17 -17
  244. package/server/{review-agent-CTNzg6ag.js → review-agent-D7b3qt2U.js} +2 -2
  245. package/server/{review-artifacts-DFXkCDKn.js → review-artifacts-CwnJeObv.js} +2 -2
  246. package/server/{review-context-2LAh97tE.js → review-context-BXW1m3vK.js} +1 -1
  247. package/server/{review-convoy-BE7hwRKU.js → review-convoy-7EL6lofH.js} +9 -9
  248. package/server/{review-convoy-D4ddjcsE.js → review-convoy-BNYVD3y4.js} +1 -1
  249. package/server/{review-monitor-BRSWLITW.js → review-monitor-BoxMGLwm.js} +1 -1
  250. package/server/{review-request-route-fgWQMyrT.js → review-request-route-CMR7xtJK.js} +2 -2
  251. package/server/{review-rounds-wYEYRB2e.js → review-rounds-BrPtQK9g.js} +1 -1
  252. package/server/{review-rounds-C8S_nYSs.js → review-rounds-CcXAeFDu.js} +1 -1
  253. package/server/{review-synthesis-recovery-DKnQIwwI.js → review-synthesis-recovery-BVuPGjZM.js} +7 -7
  254. package/server/{review-verdict-feedback-CGHG6ZkU.js → review-verdict-feedback-Blt-Rdbt.js} +5 -5
  255. package/server/{rollup-Bm6X7jIb.js → rollup-8hDNviZE.js} +2 -2
  256. package/server/{rollup-C9m7LkEy.js → rollup-Cf7vF55-.js} +1 -1
  257. package/server/{runtime-command-D0JVmWKZ.js → runtime-command-0C3oTZGN.js} +5 -5
  258. package/server/runtime-command-D91mhWSL.js +2 -0
  259. package/server/runtimes-B7zJfZXo.js +6 -0
  260. package/server/{runtimes-DUvSjnkK.js → runtimes-CiPufB1e.js} +9 -9
  261. package/server/{sequencer-agent-BGwo_hJY.js → sequencer-agent-C_RaZl3z.js} +4 -4
  262. package/server/server.js +164 -249
  263. package/server/{service-DKHnfIwb.js → service-Bn8Zn0WW.js} +36 -36
  264. package/server/{session-fork-CaUxe-sI.js → session-fork-CKpcJBY3.js} +1 -1
  265. package/server/{settings-5VVqbwVL.js → settings-DNxbkedU.js} +1 -1
  266. package/server/settings-DeJQpBJZ.js +2 -0
  267. package/server/{ship-log-CfuRUZaI.js → ship-log-DhPEIcrG.js} +1 -1
  268. package/server/{ship-log-CRk1pL0V.js → ship-log-Di-_dljC.js} +1 -1
  269. package/server/{smart-compaction-BA2YGYS7.js → smart-compaction-CVIjvKaC.js} +2 -2
  270. package/server/{smart-compaction-ni-rHctf.js → smart-compaction-mz6E9fph.js} +1 -1
  271. package/server/{spawn-planning-session-Dp2FsjWk.js → spawn-planning-session-D9vDkQVz.js} +2 -2
  272. package/server/{spawn-planning-session-38jno6va.js → spawn-planning-session-DEr2g-vN.js} +9 -9
  273. package/server/{specialist-completion-DfoJQPHz.js → specialist-completion-ThQ5mCYp.js} +1 -1
  274. package/server/{specialists-DCUqID3m.js → specialists--u4Nwkwy.js} +1 -1
  275. package/server/{specialists-DPjE2JBt.js → specialists-BsiHHXL7.js} +51 -51
  276. package/server/{specialists-Dhqnld3A.js → specialists-C5WxILVV.js} +9 -9
  277. package/server/{specialists-BOMH7wlq.js → specialists-ChpiIuS7.js} +1 -1
  278. package/server/{src-DEWY9s_G.js → src-Bjf3_TJI.js} +7 -7
  279. package/server/{src-CUtp-SJF.js → src-Dc_h_m1_.js} +3 -3
  280. package/server/{strike-completion-OPcaVqFd.js → strike-completion-CIQA9E-C.js} +2 -2
  281. package/server/strike-completion-PiFiEtoo.js +2 -0
  282. package/server/{subagents-DNw4YyMa.js → subagents-P7wfucdb.js} +2 -2
  283. package/server/{substrate-stats-DuuksQHp.js → substrate-stats-0PCKLsMv.js} +18 -18
  284. package/server/summary-fork--LXvyQuT.js +3 -0
  285. package/server/{summary-fork-BfuGi-S2.js → summary-fork-DQGtPP_x.js} +5 -5
  286. package/server/supervisor-DRm9uLsZ.js +2 -0
  287. package/server/{supervisor-CWskvoz3.js → supervisor-De-GYL91.js} +1 -1
  288. package/server/{sync-startup-gate-Cz-taE5H.js → sync-startup-gate-BfacT-bh.js} +1 -1
  289. package/server/{system-health-service-7C9fafx7.js → system-health-service-CjdWgKic.js} +3 -3
  290. package/server/{system-health-service-SB_Kjxqf.js → system-health-service-Cqpct_Qo.js} +1 -1
  291. package/server/{system-prerequisites-N5usDkOl.js → system-prerequisites-Caf37eBm.js} +2 -2
  292. package/server/{system-prerequisites-CJzu1FQH.js → system-prerequisites-G9se0Lms.js} +1 -1
  293. package/server/{teardown-workspace-BOnPHDQi.js → teardown-workspace-Dvwa4r5M.js} +7 -7
  294. package/server/termination-DYiDx_bB.js +2 -0
  295. package/server/{test-agent-queue-D3koTErW.js → test-agent-queue-BZ57BL-z.js} +3 -3
  296. package/server/{test-verdict-DcQHIB36.js → test-verdict-DoCOnudE.js} +1 -1
  297. package/server/{test-verdict-D5MJ__S5.js → test-verdict-XI4egwYk.js} +1 -1
  298. package/server/{token-BXOsGOq0.js → token-BVSQ0ZbH.js} +1 -1
  299. package/server/{transcript-turn-DxkkFudJ.js → transcript-turn-yL1_qVmT.js} +1 -1
  300. package/server/{types-D4H9A_IK.js → types-8Bdo_m9Z.js} +1 -1
  301. package/server/{uat-train-qJFsN-X4.js → uat-train-BI6lNv6X.js} +11 -11
  302. package/server/{uat-train-C3g4eTwu.js → uat-train-BqMuW417.js} +1 -1
  303. package/server/{validation-BX4n3p5b.js → validation-B0CMIi5c.js} +2 -2
  304. package/server/{validation-C1j7--xs.js → validation-UgpT2GVW.js} +1 -1
  305. package/server/{verification-escalation-BOuG6ixX.js → verification-escalation-8_JfF7-z.js} +3 -3
  306. package/server/{verification-escalation-C76ZbMod.js → verification-escalation-DAjaXHwo.js} +1 -1
  307. package/server/{verification-runner-BMtIaVjU.js → verification-runner-D0DG7ixm.js} +10 -10
  308. package/server/{verification-runner-C-sxcxTO.js → verification-runner-D8-ijYmm.js} +2 -2
  309. package/server/{vtt-parser-DSX4wASE.js → vtt-parser-uNggfu87.js} +1 -1
  310. package/server/{work-agent-prompt-p9ir8Hid.js → work-agent-prompt-BNUi27LZ.js} +2 -2
  311. package/server/workflows-Dr-Yo76E.js +2 -0
  312. package/server/{workflows-DzA62y5W.js → workflows-kIv_z7zJ.js} +8 -8
  313. package/server/{workspace-manager-Nljndsty.js → workspace-manager-D0auAuId.js} +2 -2
  314. package/server/{workspace-manager-yEOe-AK7.js → workspace-manager-t2ylzCn0.js} +2 -2
  315. package/server/{workspaces-DVWUbrua.js → workspaces-C7sOgLNZ.js} +42 -42
  316. package/server/{worktree-ops-BvwkJJ--.js → worktree-ops-Cenxxhk2.js} +1 -1
  317. package/server/{worktree-ops-DzDaxzI6.js → worktree-ops-D_IXGBtP.js} +8 -8
  318. package/server/activity-H6Jf6jYF.js +0 -2
  319. package/server/agent-pane-io-BmNbvGUo.js +0 -2
  320. package/server/archive-planning-BJck5ngN.js +0 -2
  321. package/server/cli-DVDU4QF2.js +0 -2
  322. package/server/daemon-CWmWlc4E.js +0 -2
  323. package/server/dist-BGSAS-U9.js +0 -3
  324. package/server/ensure-devcontainer-C_OTsIz6.js +0 -2
  325. package/server/evict-CgFggY65.js +0 -2
  326. package/server/harness-binary-CF3OHJwR.js +0 -2
  327. package/server/merge-gate-Bq6XDCW9.js +0 -2
  328. package/server/merge-ops-C2DJ5UJh.js +0 -2
  329. package/server/messaging-CKpa4quh.js +0 -2
  330. package/server/public/assets/image-GAAHSSAO-CFdI_QVJ.js +0 -1
  331. package/server/public/assets/percentages-BXMCSKIN-BzJ4SOUv.js +0 -1
  332. package/server/public/assets/subset-shared.chunk-Crnl6u-o.js +0 -1
  333. package/server/queries-XNzQnDjP.js +0 -2
  334. package/server/rebuild-stack-CJBh6Pa6.js +0 -3
  335. package/server/resume-BRxpAyj3.js +0 -2
  336. package/server/runtime-command-BkQQs0N2.js +0 -2
  337. package/server/runtimes-D68npgJJ.js +0 -6
  338. package/server/settings-CFLNK2bY.js +0 -2
  339. package/server/strike-completion-DyPF_uhD.js +0 -2
  340. package/server/summary-fork-Dm46AXqo.js +0 -3
  341. package/server/supervisor-daYV0xlI.js +0 -2
  342. package/server/termination-DTOwIt3S.js +0 -2
  343. package/server/workflows-Dp8qhcha.js +0 -2
  344. /package/server/{merge-rebase-Cf3Dr76u.js → merge-rebase-D1nUZmH_.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { d as getProjectSync, p as init_projects, w as resolveProjectFromIssueSync } from "./projects-CvLJPQjr.js";
2
2
  import { i as renderDevcontainer } from "./devcontainer-renderer-D6-4M4Z9.js";
3
- import { i as stepSkipped, n as stepFailed, r as stepOk } from "./types-D4H9A_IK.js";
3
+ import { i as stepSkipped, n as stepFailed, r as stepOk } from "./types-8Bdo_m9Z.js";
4
4
  import { existsSync } from "fs";
5
5
  import { basename, join } from "path";
6
6
  //#region ../../lib/workspace/ensure-devcontainer.ts
@@ -99,4 +99,4 @@ function pathLeaf(p) {
99
99
  //#endregion
100
100
  export { ensureDevcontainer as t };
101
101
 
102
- //# sourceMappingURL=ensure-devcontainer-HQ3fQD5V.js.map
102
+ //# sourceMappingURL=ensure-devcontainer-CollbMTo.js.map
@@ -0,0 +1,2 @@
1
+ import { t as ensureDevcontainer } from "./ensure-devcontainer-CollbMTo.js";
2
+ export { ensureDevcontainer };
@@ -0,0 +1,2 @@
1
+ import { u as scanEligible } from "./evict-l0JJZ11s.js";
2
+ export { scanEligible };
@@ -2,7 +2,7 @@ import { ci as init_paths, si as getOverdeckHome } from "./config-yaml-IYiKufOR.
2
2
  import { t as claudeProjectDir } from "./claude-code-D1t9sdHM.js";
3
3
  import { t as findSecretMatches } from "./secret-redaction-3Sf-Mq8_.js";
4
4
  import { t as removeTranscriptFile } from "./transcript-deletion-door-CXDQAdUg.js";
5
- import { A as vaultDir, D as withFileLock, E as setOwnedTail, S as listOwned, _ as checkContinuity, b as tailOf, c as encryptRef, g as splitIntoChunks, h as refName, k as readVaultConfig, l as isTombstone, o as encodeChunk, p as readSessionRecord, r as decodeChunk, s as encodeWipParts, v as lineHash, x as getOwned, y as splitSettleableLines } from "./format-QXO0qqJo.js";
5
+ import { A as vaultDir, D as withFileLock, E as setOwnedTail, S as listOwned, _ as checkContinuity, b as tailOf, c as encryptRef, g as splitIntoChunks, h as refName, k as readVaultConfig, l as isTombstone, o as encodeChunk, p as readSessionRecord, r as decodeChunk, s as encodeWipParts, v as lineHash, x as getOwned, y as splitSettleableLines } from "./format-3trt48Iz.js";
6
6
  import { basename, dirname, extname, isAbsolute, join, relative, resolve, sep } from "node:path";
7
7
  import { homedir, hostname, tmpdir } from "node:os";
8
8
  import { copyFile, link, mkdir, mkdtemp, readFile, rename, rm, stat, unlink, writeFile } from "node:fs/promises";
@@ -1766,4 +1766,4 @@ async function confirmEviction(fingerprint, options) {
1766
1766
  //#endregion
1767
1767
  export { assertRefName as A, writeMaterialization as C, VaultOfflineError as D, VAULT_FORMAT_MARKER_FILE as E, objectRelativePath as M, ensureEnvironmentIdentity as N, assertDistinctRefNames as O, planMaterialization as S, VAULT_FORMAT_MARKER as T, isPathUnder as _, confirmEviction as a, nativeFileContent as b, readEvictionBatch as c, writeEvictionBatch as d, settle as f, runWipGit as g, latestWipEntry as h, clearBatch as i, assertSlotName as j, assertNotSlotName as k, reofferEntry as l, buildWipCommit as m, batchFingerprint as n, declineEntry as o, WipGitError as p, checkEligibility as r, evictionBatchPath as s, EVICTION_BATCH_FILENAME as t, scanEligible as u, compareCwdState as v, KEYWRAP_OBJECT_NAME as w, planCodexMaterialization as x, readCwdState as y };
1768
1768
 
1769
- //# sourceMappingURL=evict-Dhzce_bB.js.map
1769
+ //# sourceMappingURL=evict-l0JJZ11s.js.map
@@ -1,2 +1,2 @@
1
- import { n as surfaceIssueFeedbackNeedsYou } from "./feedback-target-DmQ249DE.js";
1
+ import { n as surfaceIssueFeedbackNeedsYou } from "./feedback-target-BYLtF8vX.js";
2
2
  export { surfaceIssueFeedbackNeedsYou };
@@ -4,7 +4,7 @@ import { N as init_agent_state_source, P as readFeedbackAgentStates } from "./ag
4
4
  import { p as init_projects, w as resolveProjectFromIssueSync } from "./projects-CvLJPQjr.js";
5
5
  import { a as init_continue, r as getReadableWorkspacePanPaths } from "./continue-1NfoMIyq.js";
6
6
  import { i as isAlive, o as isConfirmedDead, r as init_liveness } from "./liveness-tAwIFT67.js";
7
- import { t as readSwarmSlotAssignments } from "./deacon-swarm-record-4FGgybnL.js";
7
+ import { t as readSwarmSlotAssignments } from "./deacon-swarm-record-BenMf1-5.js";
8
8
  import { Effect } from "effect";
9
9
  import { existsSync } from "fs";
10
10
  import { join } from "path";
@@ -177,7 +177,7 @@ async function resurrectAgentForFeedback(agentId, issueId, workspacePath, keepPa
177
177
  console.warn(`[feedback-target] ${agentId} is gated (troubled=${state.troubled === true}, failures=${state.consecutiveFailures ?? 0}) — clearing for one resurrection attempt to deliver ${issueId} feedback; failure tracking re-trips the gate on another crash`);
178
178
  await Effect.runPromise(clearAgentTroubled(agentId));
179
179
  }
180
- const { resumeAgent } = await import("./resume-BRxpAyj3.js");
180
+ const { resumeAgent } = await import("./resume-BvqNBf96.js");
181
181
  const result = await resumeAgent(agentId);
182
182
  if (!result.success) {
183
183
  console.warn(`[feedback-target] Failed to resume ${agentId} for ${issueId} feedback: ${result.error}; trying the start path`);
@@ -217,4 +217,4 @@ async function surfaceIssueFeedbackNeedsYou(issueId, reason, details = {}) {
217
217
  //#endregion
218
218
  export { surfaceIssueFeedbackNeedsYou as n, resolveIssueFeedbackTarget as t };
219
219
 
220
- //# sourceMappingURL=feedback-target-DmQ249DE.js.map
220
+ //# sourceMappingURL=feedback-target-BYLtF8vX.js.map
@@ -1,2 +1,2 @@
1
- import { n as writeFeedbackFile, t as clearFeedbackFiles } from "./feedback-writer-DSEPHMwz.js";
1
+ import { n as writeFeedbackFile, t as clearFeedbackFiles } from "./feedback-writer-g9cmlhQU.js";
2
2
  export { clearFeedbackFiles, writeFeedbackFile };
@@ -129,4 +129,4 @@ async function writeFeedbackFile(opts) {
129
129
  //#endregion
130
130
  export { writeFeedbackFile as n, clearFeedbackFiles as t };
131
131
 
132
- //# sourceMappingURL=feedback-writer-DSEPHMwz.js.map
132
+ //# sourceMappingURL=feedback-writer-g9cmlhQU.js.map
@@ -1,5 +1,5 @@
1
- import { t as FLYWHEEL_CONVERSATION_SESSION } from "./constants-ZsF6FhcR.js";
2
- import { o as startFlywheel, u as FlywheelAlreadyRunning } from "./substrate-stats-DuuksQHp.js";
1
+ import { t as FLYWHEEL_CONVERSATION_SESSION } from "./constants-DEItMRn6.js";
2
+ import { o as startFlywheel, u as FlywheelAlreadyRunning } from "./substrate-stats-0PCKLsMv.js";
3
3
  //#region ../../cli/commands/flywheel.ts
4
4
  /**
5
5
  * `pan orders start <book>` — the order book is an input to the flywheel, so
@@ -18,4 +18,4 @@ async function startFlywheelRun(options = {}) {
18
18
  //#endregion
19
19
  export { startFlywheelRun };
20
20
 
21
- //# sourceMappingURL=flywheel-Ib4Qp5x6.js.map
21
+ //# sourceMappingURL=flywheel-C-t-XYUt.js.map
@@ -1,6 +1,6 @@
1
1
  import { a as findProjectByPath, p as init_projects, u as getProjectSwarmHotspots } from "./projects-CvLJPQjr.js";
2
2
  import { r as resolveGitHubIssue, t as init_tracker_utils } from "./tracker-utils-vzr-2-12.js";
3
- import { n as compileGlob } from "./dag-DC0niH7i.js";
3
+ import { n as compileGlob } from "./dag-PPL-MAx0.js";
4
4
  import { Effect } from "effect";
5
5
  import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
6
6
  //#region ../../lib/flywheel-merge-order.ts
@@ -328,4 +328,4 @@ const computePolyrepoMergeQueueFromCandidates = (candidates, reposByIssue, proje
328
328
  //#endregion
329
329
  export { computeMergeQueueFromCandidates, computePolyrepoMergeQueueFromCandidates, resolveMergeQueuePrUrl };
330
330
 
331
- //# sourceMappingURL=flywheel-merge-order-BjbLhtpF.js.map
331
+ //# sourceMappingURL=flywheel-merge-order-qRslbYK3.js.map
@@ -582,4 +582,4 @@ function isTombstone(value) {
582
582
  //#endregion
583
583
  export { vaultDir as A, readListCache as C, withFileLock as D, setOwnedTail as E, VAULT_OFF_MESSAGE as O, listOwned as S, replaceListCache as T, checkContinuity as _, decryptRef as a, tailOf as b, encryptRef as c, parseKeyRing as d, readMachineRecord as f, splitIntoChunks as g, refName as h, decodeWipParts as i, writeVaultConfig as j, readVaultConfig as k, isTombstone as l, readVaultHeader as m, VaultAuthenticationError as n, encodeChunk as o, readSessionRecord as p, decodeChunk as r, encodeWipParts as s, HEADER_REF_NAME as t, newVaultHeader as u, lineHash as v, readLocalIndex as w, getOwned as x, splitSettleableLines as y };
584
584
 
585
- //# sourceMappingURL=format-QXO0qqJo.js.map
585
+ //# sourceMappingURL=format-3trt48Iz.js.map
@@ -3841,4 +3841,4 @@ var init_from = __esmMin((() => {
3841
3841
  //#endregion
3842
3842
  export { File as a, init_esm_min as i, FormData as n, Blob as o, formDataToBlob as r, init_fetch_blob as s, init_from as t };
3843
3843
 
3844
- //# sourceMappingURL=from-ufsGrQUf.js.map
3844
+ //# sourceMappingURL=from-Cdjxc_Sy.js.map
@@ -907,4 +907,4 @@ async function shipPromotedBatch(args, deps = defaultPromotedBatchDeps) {
907
907
  //#endregion
908
908
  export { ShipPromotedBatchError, shipPromotedBatch };
909
909
 
910
- //# sourceMappingURL=generation-ship-a14Tkc5B.js.map
910
+ //# sourceMappingURL=generation-ship-BTyy05vO.js.map
@@ -211,7 +211,7 @@ async function prepareHarnessLaunch(harness, options) {
211
211
  const { model, ...resolution } = options ?? {};
212
212
  const binaryPath = await requireHarnessBinary(harness, resolution);
213
213
  if (harness === "claude-code") {
214
- const { assertClaudeCodeSupportsModel } = await import("./requirements-tNHrKKgl.js");
214
+ const { assertClaudeCodeSupportsModel } = await import("./requirements-DM6TvCsN.js");
215
215
  await assertClaudeCodeSupportsModel(binaryPath, model);
216
216
  }
217
217
  return {
@@ -222,4 +222,4 @@ async function prepareHarnessLaunch(harness, options) {
222
222
  //#endregion
223
223
  export { prepareHarnessLaunch as a, resolveHarnessBinary as c, isWindowsInteropPath as i, resolveHarnessBinaryDetailed as l, harnessBinaryName as n, requireHarnessBinary as o, harnessPathExport as r, resolveExecutableDetailed as s, configuredHarnessBinaryPath as t };
224
224
 
225
- //# sourceMappingURL=harness-binary-DtPw6bEJ.js.map
225
+ //# sourceMappingURL=harness-binary-BaN9N-sG.js.map
@@ -0,0 +1,2 @@
1
+ import { c as resolveHarnessBinary } from "./harness-binary-BaN9N-sG.js";
2
+ export { resolveHarnessBinary };
@@ -1,6 +1,6 @@
1
1
  import { Mt as init_providers, Ot as getBuiltInDefaultHarness, _t as canUseHarness, jt as getProviderForModel, m as loadConfigSync, t as init_config_yaml, vt as canUseModelWithAuth, yt as init_harness_policy } from "./config-yaml-IYiKufOR.js";
2
- import { c as resolveHarnessBinary, n as harnessBinaryName, t as configuredHarnessBinaryPath } from "./harness-binary-DtPw6bEJ.js";
3
- import { t as resolveCodexPolicyContext } from "./policy-context-DlF2pBlT.js";
2
+ import { c as resolveHarnessBinary, n as harnessBinaryName, t as configuredHarnessBinaryPath } from "./harness-binary-BaN9N-sG.js";
3
+ import { t as resolveCodexPolicyContext } from "./policy-context-CebkQTkr.js";
4
4
  //#region ../../lib/harness-resolve.ts
5
5
  init_harness_policy();
6
6
  init_providers();
@@ -19,7 +19,7 @@ var HarnessResolutionError = class extends Error {
19
19
  }
20
20
  };
21
21
  async function getProviderAuthModeForModel(model) {
22
- const { getProviderAuthMode } = await import("./agents-DfEYd_I0.js");
22
+ const { getProviderAuthMode } = await import("./agents-C9oho7kE.js");
23
23
  return getProviderAuthMode(model);
24
24
  }
25
25
  function assertHarnessProviderSupported(harness, provider) {
@@ -76,4 +76,4 @@ async function resolveHarness(input) {
76
76
  //#endregion
77
77
  export { resolveHarness as n, resetHarnessResolveCachesForTests as t };
78
78
 
79
- //# sourceMappingURL=harness-resolve-BfOivkUY.js.map
79
+ //# sourceMappingURL=harness-resolve-CimEYcpG.js.map
@@ -1,2 +1,2 @@
1
- import { n as resolveHarness, t as resetHarnessResolveCachesForTests } from "./harness-resolve-BfOivkUY.js";
1
+ import { n as resolveHarness, t as resetHarnessResolveCachesForTests } from "./harness-resolve-CimEYcpG.js";
2
2
  export { resetHarnessResolveCachesForTests, resolveHarness };
@@ -50,4 +50,4 @@ __esmMin((() => {
50
50
  }))();
51
51
  export { findHerdrAgentTerminals };
52
52
 
53
- //# sourceMappingURL=herdr-agent-terminals-ffj8Zg3X.js.map
53
+ //# sourceMappingURL=herdr-agent-terminals-Dm4HnKF7.js.map
@@ -0,0 +1,2 @@
1
+ import { r as inferMissingProjectTrackers } from "./infer-tracker-CwOO7_gU.js";
2
+ export { inferMissingProjectTrackers };
@@ -0,0 +1,237 @@
1
+ import { M as updateProjectsConfigAsync, g as listProjectsAsync, p as init_projects } from "./projects-CvLJPQjr.js";
2
+ import { n as tryResolveProjectTrackerType, t as init_project_tracker_type } from "./project-tracker-type-BZBJgHlr.js";
3
+ import { execFile } from "child_process";
4
+ import { promisify } from "util";
5
+ //#region ../../lib/projects/repo-url.ts
6
+ init_projects();
7
+ init_project_tracker_type();
8
+ /** Schemes we are willing to hand to `git clone` from a dashboard request. */
9
+ const SUPPORTED_SCHEMES = new Set([
10
+ "https:",
11
+ "http:",
12
+ "ssh:"
13
+ ]);
14
+ /** Control characters and NUL, which have no business in a URL we spawn with. */
15
+ const CONTROL_CHARS = /[\u0000-\u001f\u007f]/;
16
+ /**
17
+ * `user@host:path/repo.git` — SCP syntax, not a URL.
18
+ *
19
+ * The host group excludes `:` and `/` so a scheme URL can never reach here, and
20
+ * the path must be non-empty. Any user is accepted, not just `git`: deploy keys
21
+ * routinely use another account.
22
+ */
23
+ const SCP_SOURCE = /^([^\s@/:]+)@([^\s@/:]+):(.+)$/;
24
+ /** Bare `owner/repo`, the only form we are allowed to invent a URL for. */
25
+ const GITHUB_SHORTHAND = /^([A-Za-z0-9._-]+)\/([A-Za-z0-9._-]+)$/;
26
+ /** Detect provider by host name. */
27
+ function providerForHostname(hostname) {
28
+ const host = hostname.toLowerCase();
29
+ if (host === "github.com" || host === "www.github.com") return "github";
30
+ if (host === "gitlab.com" || host === "www.gitlab.com") return "gitlab";
31
+ return null;
32
+ }
33
+ /**
34
+ * Strip the decoration that is metadata-only: surrounding slashes and one
35
+ * trailing `.git`. Exactly one, so `repo.git.git` keeps its odd-but-real name.
36
+ */
37
+ function normalizeRepoPath(rawPath) {
38
+ return rawPath.replace(/^\/+/, "").replace(/\/+$/, "").replace(/\.git$/, "");
39
+ }
40
+ /**
41
+ * The last path segment, decoded, or null when it cannot safely name a folder.
42
+ *
43
+ * Decoding matters because `%2F` and `%2E%2E` survive the segment split and
44
+ * would otherwise become a path separator or a traversal in a directory name.
45
+ */
46
+ function folderNameFor(repoPath) {
47
+ const segments = repoPath.split("/").filter(Boolean);
48
+ const last = segments[segments.length - 1];
49
+ if (!last) return null;
50
+ let decoded;
51
+ try {
52
+ decoded = decodeURIComponent(last);
53
+ } catch {
54
+ return null;
55
+ }
56
+ if (!decoded || decoded === "." || decoded === "..") return null;
57
+ if (decoded.includes("/") || decoded.includes("\\")) return null;
58
+ if (CONTROL_CHARS.test(decoded)) return null;
59
+ return decoded;
60
+ }
61
+ /** A repo path is usable when it names at least one non-empty, non-dot segment. */
62
+ function isUsableRepoPath(repoPath) {
63
+ const segments = repoPath.split("/").filter(Boolean);
64
+ if (segments.length === 0) return false;
65
+ const last = segments[segments.length - 1];
66
+ return last !== "." && last !== "..";
67
+ }
68
+ /** Parse an explicit scheme URL (`https://…`, `ssh://…`). */
69
+ function parseSchemeSource(source) {
70
+ let url;
71
+ try {
72
+ url = new URL(source);
73
+ } catch {
74
+ return null;
75
+ }
76
+ if (!SUPPORTED_SCHEMES.has(url.protocol)) return null;
77
+ if (!url.hostname) return null;
78
+ const repoPath = normalizeRepoPath(url.pathname);
79
+ if (!isUsableRepoPath(repoPath)) return null;
80
+ return {
81
+ hostname: url.hostname,
82
+ repoPath
83
+ };
84
+ }
85
+ /** Parse SCP syntax (`git@github.com:acme/private.git`). */
86
+ function parseScpSource(source) {
87
+ const match = SCP_SOURCE.exec(source);
88
+ if (!match) return null;
89
+ const hostname = match[2];
90
+ const repoPath = normalizeRepoPath(match[3]);
91
+ if (!isUsableRepoPath(repoPath)) return null;
92
+ return {
93
+ hostname,
94
+ repoPath
95
+ };
96
+ }
97
+ /**
98
+ * Parse a repository source into a transport URL plus best-effort metadata.
99
+ *
100
+ * Returns null when the input cannot become a clone source at all, which the
101
+ * caller renders as a `url-invalid` finding against the field.
102
+ */
103
+ function parseRepoUrl(raw) {
104
+ const source = raw.trim();
105
+ if (!source) return null;
106
+ if (CONTROL_CHARS.test(source)) return null;
107
+ if (source.startsWith("-")) return null;
108
+ const shorthand = GITHUB_SHORTHAND.exec(source);
109
+ if (shorthand) {
110
+ const owner = shorthand[1];
111
+ const repo = normalizeRepoPath(shorthand[2]);
112
+ if (!repo || repo === "." || repo === "..") return null;
113
+ return {
114
+ provider: "github",
115
+ slug: `${owner}/${repo}`,
116
+ folderName: repo,
117
+ cloneUrl: `https://github.com/${owner}/${repo}.git`
118
+ };
119
+ }
120
+ const parts = parseSchemeSource(source) ?? parseScpSource(source);
121
+ if (!parts) return null;
122
+ const provider = providerForHostname(parts.hostname);
123
+ if (provider && parts.repoPath.split("/").filter(Boolean).length < 2) return null;
124
+ return {
125
+ provider,
126
+ slug: provider ? parts.repoPath : null,
127
+ folderName: folderNameFor(parts.repoPath),
128
+ cloneUrl: source
129
+ };
130
+ }
131
+ //#endregion
132
+ //#region ../../lib/projects/infer-tracker.ts
133
+ /**
134
+ * Infer a project's tracker from its git origin remote.
135
+ *
136
+ * A project registered without `tracker`, `github_repo`, `issue_prefix`,
137
+ * `rally_project` or `gitlab_repo` resolves no tracker, so pipeline membership
138
+ * skips it and the Issues panel lists nothing. When the project's origin is a
139
+ * GitHub repository, Overdeck writes `github_repo: owner/repo` itself rather
140
+ * than asking the operator to edit projects.yaml. Callers: dashboard boot,
141
+ * `pan sync`, `finishProjectSetup`, and context-layer project discovery.
142
+ *
143
+ * `tryResolveProjectTrackerType` stays pure and sync; this module is the async
144
+ * side that reads git and writes the config.
145
+ */
146
+ const execFileAsync = promisify(execFile);
147
+ const ORIGIN_READ_TIMEOUT_MS = 5e3;
148
+ /** A `github.com` host followed by the SSH (`:`) or URL (`/`) separator. */
149
+ const GITHUB_HOST = /(^|[@/])(www\.)?github\.com[:/]/i;
150
+ /**
151
+ * The `owner/repo` slug of a GitHub remote URL, or null for any other remote.
152
+ *
153
+ * Accepts SSH (`git@github.com:o/r.git`, `ssh://git@github.com/o/r`) and HTTPS
154
+ * (`https://github.com/o/r.git`). The explicit host check matters: the shared
155
+ * parser reads a bare `a/b` as GitHub shorthand, and a remote like `../repo` is
156
+ * a filesystem path, not a GitHub repository.
157
+ */
158
+ function githubRepoFromRemoteUrl(url) {
159
+ const trimmed = url.trim();
160
+ if (!GITHUB_HOST.test(trimmed)) return null;
161
+ const parsed = parseRepoUrl(trimmed);
162
+ if (!parsed || parsed.provider !== "github" || !parsed.slug) return null;
163
+ return parsed.slug;
164
+ }
165
+ async function readOriginUrl(path) {
166
+ try {
167
+ const { stdout } = await execFileAsync("git", [
168
+ "-C",
169
+ path,
170
+ "remote",
171
+ "get-url",
172
+ "origin"
173
+ ], { timeout: ORIGIN_READ_TIMEOUT_MS });
174
+ return stdout.trim() || null;
175
+ } catch {
176
+ return null;
177
+ }
178
+ }
179
+ async function writeGithubRepo(key, githubRepo) {
180
+ return updateProjectsConfigAsync((config) => {
181
+ const project = config.projects[key];
182
+ if (!project || tryResolveProjectTrackerType(project) !== null) return {
183
+ config,
184
+ result: false,
185
+ changed: false
186
+ };
187
+ config.projects[key] = {
188
+ ...project,
189
+ github_repo: githubRepo
190
+ };
191
+ return {
192
+ config,
193
+ result: true,
194
+ changed: true
195
+ };
196
+ });
197
+ }
198
+ const defaultInferProjectTrackerDeps = {
199
+ readOriginUrl,
200
+ writeGithubRepo
201
+ };
202
+ /**
203
+ * For a project that resolves no tracker, detect a GitHub origin and record it
204
+ * as `github_repo`. Returns the slug it wrote, or null when it changed nothing
205
+ * (tracker already resolvable, multi-repo root, no origin, non-GitHub origin).
206
+ */
207
+ async function inferProjectGithubRepo(key, project, deps = defaultInferProjectTrackerDeps) {
208
+ if (tryResolveProjectTrackerType(project) !== null) return null;
209
+ if (project.workspace?.type === "polyrepo") return null;
210
+ const originUrl = await deps.readOriginUrl(project.path);
211
+ if (!originUrl) return null;
212
+ const githubRepo = githubRepoFromRemoteUrl(originUrl);
213
+ if (!githubRepo) return null;
214
+ return await deps.writeGithubRepo(key, githubRepo) ? githubRepo : null;
215
+ }
216
+ /**
217
+ * Run `inferProjectGithubRepo` over every registered project that resolves no
218
+ * tracker. Sequential: each write takes the projects.yaml lock anyway.
219
+ */
220
+ async function inferMissingProjectTrackers(deps = defaultInferProjectTrackerDeps, listProjects = listProjectsAsync) {
221
+ const configured = [];
222
+ for (const { key, config } of await listProjects()) {
223
+ if (tryResolveProjectTrackerType(config) !== null) continue;
224
+ const githubRepo = await inferProjectGithubRepo(key, config, deps);
225
+ if (githubRepo) configured.push({
226
+ key,
227
+ name: config.name ?? key,
228
+ path: config.path,
229
+ githubRepo
230
+ });
231
+ }
232
+ return configured;
233
+ }
234
+ //#endregion
235
+ export { parseRepoUrl as a, inferProjectGithubRepo as i, githubRepoFromRemoteUrl as n, inferMissingProjectTrackers as r, defaultInferProjectTrackerDeps as t };
236
+
237
+ //# sourceMappingURL=infer-tracker-CwOO7_gU.js.map
@@ -6,7 +6,7 @@ import { a as init_event_store, i as initEventStore } from "./event-store-C2bwt7
6
6
  import { f as resolveStatusFile, i as init_paths } from "./paths-UQlhEw_i.js";
7
7
  import { o as init_feature_registry_storage, s as listFeatureRegistryEntries } from "./pipeline-agent-reader-Dq_UQbJ0.js";
8
8
  import { _ as listProjectsSync, p as init_projects } from "./projects-CvLJPQjr.js";
9
- import { t as AgentsResolver } from "./agents-DNkpVGda.js";
9
+ import { t as AgentsResolver } from "./agents-dwMmsEQT.js";
10
10
  import { i as resolveSessionContextBriefingPath } from "./briefing-freshness-DGGAxLgu.js";
11
11
  import { n as resolveDefaultBranchHead, t as projectCiGhApi } from "./project-ci-github-BayNFfOs.js";
12
12
  import { m as listCheckpoints, o as diffCheckpointFiles, p as isCheckpointTargetDisabled, t as captureCheckpoint } from "./checkpoint-manager-dExYj5iP.js";
@@ -14,7 +14,7 @@ import { r as LinearClientOptionalLive, t as LinearClient } from "./linear-clien
14
14
  import { r as GitHubClientOptionalLive, t as GitHubClient } from "./github-client-Cal2eOrK.js";
15
15
  import { r as RallyClientOptionalLive, t as RallyClient } from "./rally-client-CPk3PfRQ.js";
16
16
  import { i as resolveTrackerType, r as resolveGitHubIssue, t as init_tracker_utils } from "./tracker-utils-vzr-2-12.js";
17
- import { n as init_issue_service_singleton, t as getSharedIssueService } from "./issue-service-singleton-QPDr49TB.js";
17
+ import { n as init_issue_service_singleton, t as getSharedIssueService } from "./issue-service-singleton-DwYi9Oie.js";
18
18
  import { dirname } from "node:path";
19
19
  import { Context, Effect, Layer, Option, Queue, Stream } from "effect";
20
20
  import { basename as basename$1, dirname as dirname$1, join as join$1, resolve as resolve$1 } from "path";
@@ -349,7 +349,7 @@ const ReadModelServiceLive = Layer.effect(ReadModelService, Effect.gen(function*
349
349
  };
350
350
  const getSnapshot = Effect.gen(function* () {
351
351
  try {
352
- const { getSharedIssueService } = yield* Effect.promise(() => import("./issue-service-singleton-DxTRf-RV.js"));
352
+ const { getSharedIssueService } = yield* Effect.promise(() => import("./issue-service-singleton-BbERjqoV.js"));
353
353
  const currentIssues = cleanIssues(getSharedIssueService().getIssues());
354
354
  if (currentIssues.length > 0 || state.issuesRaw.length === 0) state = {
355
355
  ...state,
@@ -359,7 +359,7 @@ const ReadModelServiceLive = Layer.effect(ReadModelService, Effect.gen(function*
359
359
  console.error("[ReadModel] Failed to refresh issues for snapshot:", err);
360
360
  }
361
361
  try {
362
- const [{ getSharedIssueService }, { getBackendPanes, isBackendInventoryDegraded }] = yield* Effect.promise(() => Promise.all([import("./issue-service-singleton-DxTRf-RV.js"), import("./backend-inventory-HZnm8K3m.js")]));
362
+ const [{ getSharedIssueService }, { getBackendPanes, isBackendInventoryDegraded }] = yield* Effect.promise(() => Promise.all([import("./issue-service-singleton-BbERjqoV.js"), import("./backend-inventory-tUXKfgL_.js")]));
363
363
  const derivedIssueStateByIssueId = {};
364
364
  for (const derived of getSharedIssueService().listDerivedStates()) derivedIssueStateByIssueId[derived.issueId] = derived;
365
365
  const backendPanesById = {};
@@ -470,7 +470,7 @@ const ReadModelServiceLive = Layer.effect(ReadModelService, Effect.gen(function*
470
470
  }
471
471
  })();
472
472
  try {
473
- const { getSharedIssueService } = yield* Effect.promise(() => import("./issue-service-singleton-DxTRf-RV.js"));
473
+ const { getSharedIssueService } = yield* Effect.promise(() => import("./issue-service-singleton-BbERjqoV.js"));
474
474
  const issueService = getSharedIssueService();
475
475
  const mergeT0 = performance.now();
476
476
  const currentIssues = cleanIssues(issueService.getIssues());
@@ -512,7 +512,7 @@ const ReadModelServiceLive = Layer.effect(ReadModelService, Effect.gen(function*
512
512
  payload: delta
513
513
  });
514
514
  } catch {}
515
- import("./backlog-auto-trigger-BZ9HqOh5.js").then(({ triggerDebouncedIncrementalPass }) => {
515
+ import("./backlog-auto-trigger-EIBVGK3_.js").then(({ triggerDebouncedIncrementalPass }) => {
516
516
  triggerDebouncedIncrementalPass(process.cwd());
517
517
  }).catch(() => {});
518
518
  });
@@ -536,7 +536,7 @@ const ReadModelServiceLive = Layer.effect(ReadModelService, Effect.gen(function*
536
536
  });
537
537
  yield* Effect.promise(async () => {
538
538
  try {
539
- const inventory = await import("./backend-inventory-HZnm8K3m.js");
539
+ const inventory = await import("./backend-inventory-tUXKfgL_.js");
540
540
  inventory.onBackendPanesChanged(({ changed, removed }) => {
541
541
  const next = { ...state.backendPanesById };
542
542
  for (const pane of changed) next[pane.id] = pane;
@@ -1646,4 +1646,4 @@ const IssueLifecycleWithClientLive = IssueLifecycleLive.pipe(Layer.provide(Linea
1646
1646
  //#endregion
1647
1647
  export { EventStoreServiceLive as a, ReadModelServiceLive as c, toAgentStatus as d, toRole as f, EventStoreService as i, activityEntriesFromStoredEvents as l, IssueLifecycleLive as n, startProjectCiRefillAfterProjectionReady as o, IssueLifecycleWithClientLive as r, ReadModelService as s, IssueLifecycle as t, toAgentResolution as u };
1648
1648
 
1649
- //# sourceMappingURL=issue-lifecycle-BlE7L0r7.js.map
1649
+ //# sourceMappingURL=issue-lifecycle-CmbQlAqW.js.map
@@ -1,2 +1,2 @@
1
- import { n as IssueLifecycleLive, r as IssueLifecycleWithClientLive, t as IssueLifecycle } from "./issue-lifecycle-BlE7L0r7.js";
1
+ import { n as IssueLifecycleLive, r as IssueLifecycleWithClientLive, t as IssueLifecycle } from "./issue-lifecycle-CmbQlAqW.js";
2
2
  export { IssueLifecycle, IssueLifecycleLive, IssueLifecycleWithClientLive };
@@ -63,10 +63,10 @@ async function stopIssueSpecialistAgents(issueId, roles = SPECIALIST_ROLES) {
63
63
  let closeIssuePanes;
64
64
  let stopAgent;
65
65
  try {
66
- const { listAgentStates } = await import("./queries-XNzQnDjP.js");
66
+ const { listAgentStates } = await import("./queries-qqOXiaNr.js");
67
67
  ({isAlive} = await import("./liveness-BYz_qdjp.js"));
68
- ({closeIssuePanes} = await import("./launch-DCAI36Nq.js"));
69
- ({stopAgent} = await import("./termination-DTOwIt3S.js"));
68
+ ({closeIssuePanes} = await import("./launch-DlClnoCc.js"));
69
+ ({stopAgent} = await import("./termination-DYiDx_bB.js"));
70
70
  agents = listAgentStates();
71
71
  } catch (err) {
72
72
  sweep.unknown.push({
@@ -194,7 +194,7 @@ function reviewRequestOutcomeFromRoute(ok, status, body) {
194
194
  };
195
195
  }
196
196
  async function dispatchTestDefault(issueId, workspace) {
197
- const { dispatchTestAgentAndNotify } = await import("./test-agent-queue-D3koTErW.js");
197
+ const { dispatchTestAgentAndNotify } = await import("./test-agent-queue-BZ57BL-z.js");
198
198
  const result = await Effect.runPromise(dispatchTestAgentAndNotify(issueId, workspace, `feature/${issueId.toLowerCase()}`));
199
199
  return result.delivered ? { dispatched: true } : {
200
200
  dispatched: false,
@@ -255,4 +255,4 @@ function describeSweepProblems(sweep) {
255
255
  //#endregion
256
256
  export { reviewRequestOutcomeFromRoute as a, restartIssueAfterUnpause as i, describeUnpauseRestartProblems as n, haltIssueSpecialistsForPause as r, describeSweepProblems as t };
257
257
 
258
- //# sourceMappingURL=issue-pause-9vXZZkOc.js.map
258
+ //# sourceMappingURL=issue-pause-kvPBItCx.js.map
@@ -1,3 +1,3 @@
1
- import { a as startSharedIssueService, n as init_issue_service_singleton, r as isSharedIssueServiceStarted, t as getSharedIssueService } from "./issue-service-singleton-QPDr49TB.js";
1
+ import { a as startSharedIssueService, n as init_issue_service_singleton, r as isSharedIssueServiceStarted, t as getSharedIssueService } from "./issue-service-singleton-DwYi9Oie.js";
2
2
  init_issue_service_singleton();
3
3
  export { getSharedIssueService, isSharedIssueServiceStarted, startSharedIssueService };
@@ -4,8 +4,8 @@ import { n as openDatabase, t as init_driver } from "./driver-CdxC1Wqp.js";
4
4
  import { p as init_projects, w as resolveProjectFromIssueSync } from "./projects-CvLJPQjr.js";
5
5
  import { m as withGitHubCaller, p as init_caller_context } from "./pause-gate-D_9Vdcz5.js";
6
6
  import { n as findPlan, o as init_io, p as readWorkspacePlan } from "./io-hEUwWRo5.js";
7
- import { h as loadIssueStatesForProject, s as init_derived_issue_state } from "./derived-issue-state-QLhfZgf5.js";
8
- import { f as init_backend_inventory, l as getBackendPanes } from "./backend-inventory-CjCALqY9.js";
7
+ import { h as loadIssueStatesForProject, s as init_derived_issue_state } from "./derived-issue-state-Dz7ti1og.js";
8
+ import { f as init_backend_inventory, l as getBackendPanes } from "./backend-inventory-DsbeKiYY.js";
9
9
  import { a as init_tracker_config, n as getLinearApiKey, o as validateRallyConfig, r as getRallyConfig, t as getGitHubConfig } from "./tracker-config-CSqqOWAc.js";
10
10
  import { a as recordOctokitFailure, i as patRestPauseDelayMs, o as recordOctokitPage, r as init_rest_meter } from "./rest-meter-9NPF5TBI.js";
11
11
  import { i as resolveTrackerType, r as resolveGitHubIssue, t as init_tracker_utils } from "./tracker-utils-vzr-2-12.js";
@@ -1897,4 +1897,4 @@ var init_issue_service_singleton = __esmMin((() => {
1897
1897
  //#endregion
1898
1898
  export { startSharedIssueService as a, issue_service_singleton_exports as i, init_issue_service_singleton as n, init_issue_title_fallback as o, isSharedIssueServiceStarted as r, resolveMissingIssueTitles as s, getSharedIssueService as t };
1899
1899
 
1900
- //# sourceMappingURL=issue-service-singleton-QPDr49TB.js.map
1900
+ //# sourceMappingURL=issue-service-singleton-DwYi9Oie.js.map
@@ -1,2 +1,2 @@
1
- import { B as recordKimiSessionCapture, H as withKimiSessionCaptureLock, V as waitForNewKimiSessionAsync } from "./agents-CKFhKqJp.js";
1
+ import { B as recordKimiSessionCapture, H as withKimiSessionCaptureLock, V as waitForNewKimiSessionAsync } from "./agents-DebP6rx9.js";
2
2
  export { recordKimiSessionCapture, waitForNewKimiSessionAsync, withKimiSessionCaptureLock };
@@ -1,5 +1,5 @@
1
1
  import { n as extractPrefix, r as init_issue_id, t as extractNumber } from "./issue-id-BDTO4wUV.js";
2
- import { i as stepSkipped, n as stepFailed, r as stepOk, t as getLinearApiKey } from "./types-D4H9A_IK.js";
2
+ import { i as stepSkipped, n as stepFailed, r as stepOk, t as getLinearApiKey } from "./types-8Bdo_m9Z.js";
3
3
  import { Effect } from "effect";
4
4
  import { exec } from "child_process";
5
5
  import { promisify } from "util";
@@ -101,4 +101,4 @@ async function cleanupLabelsLinear(ctx, apiKey) {
101
101
  //#endregion
102
102
  export { cleanupMergedLabels };
103
103
 
104
- //# sourceMappingURL=label-cleanup-CIoPmmbd.js.map
104
+ //# sourceMappingURL=label-cleanup-C7weaJlZ.js.map
@@ -283,17 +283,20 @@ async function closeBackendPane(pane) {
283
283
  await Effect.runPromise(resolve(pane.backend).close(pane)).catch(() => {});
284
284
  }
285
285
  /**
286
- * Mark an issue pane's cwd trusted in Claude Code before the launch (PAN-3905).
286
+ * Mark a Claude Code pane's cwd trusted before the launch (PAN-3905).
287
287
  * Only workspace creation used to do this, so an agent launched into a
288
288
  * workspace some other path made (the planner, a slot or item worktree, a
289
289
  * resume into an older workspace) stopped at Claude Code's trust dialog and
290
- * died with `ready-signal-timeout`. Idempotent; a failure is non-fatal, as it
291
- * is in `createWorkspace`: the agent still starts and the prompt is visible.
290
+ * died with `ready-signal-timeout`. Conversations are included: their cwd is
291
+ * the operator's explicit choice, and an untrusted one left the pane at the
292
+ * dialog, where Herdr refuses the first message with `agent_blocked`.
293
+ * Idempotent; a failure is non-fatal, as it is in `createWorkspace`: the agent
294
+ * still starts and the prompt is visible.
292
295
  */
293
296
  async function preTrustClaudeCodeCwd(request) {
294
- if (!request.issueId || request.tokens.harness !== "claude-code") return;
297
+ if (request.tokens.harness !== "claude-code") return;
295
298
  try {
296
- const { preTrustDirectory } = await import("./worktree-ops-BvwkJJ--.js");
299
+ const { preTrustDirectory } = await import("./worktree-ops-Cenxxhk2.js");
297
300
  await preTrustDirectory(request.cwd);
298
301
  } catch {}
299
302
  }
@@ -470,7 +473,7 @@ async function closeAgentPaneDetailed(agentId, backend, options = {}) {
470
473
  }
471
474
  const failures = [];
472
475
  let closed = false;
473
- const { findHerdrAgentTerminals } = await import("./herdr-agent-terminals-ffj8Zg3X.js");
476
+ const { findHerdrAgentTerminals } = await import("./herdr-agent-terminals-Dm4HnKF7.js");
474
477
  const found = await findHerdrAgentTerminals(agentId, { recordedPaneId: options.recordedPaneId ?? await recordedHerdrPaneId(agentId) });
475
478
  const closedWorkspaces = /* @__PURE__ */ new Set();
476
479
  for (const workspaceId of found.workspaceIds) if (await closeThrough(resolved, {
@@ -594,4 +597,4 @@ var init_launch = __esmMin((() => {
594
597
  //#endregion
595
598
  export { closeIssuePanes as a, keepTmuxSessionOpen as c, resolveLaunchBackend as d, init_tmux as f, closeBackendPane as i, launchAgentPane as l, init_cpu_class as m, closeAgentPane as n, detectionPolicyFor as o, cpuClassForConversation as p, closeAgentPaneDetailed as r, init_launch as s, agentPaneExists as t, prepareTmuxServer as u };
596
599
 
597
- //# sourceMappingURL=launch-DSEY_mt2.js.map
600
+ //# sourceMappingURL=launch-DF_WD2-a.js.map
@@ -1,3 +1,3 @@
1
- import { a as closeIssuePanes, c as keepTmuxSessionOpen, d as resolveLaunchBackend, i as closeBackendPane, l as launchAgentPane, n as closeAgentPane, o as detectionPolicyFor, r as closeAgentPaneDetailed, s as init_launch, t as agentPaneExists, u as prepareTmuxServer } from "./launch-DSEY_mt2.js";
1
+ import { a as closeIssuePanes, c as keepTmuxSessionOpen, d as resolveLaunchBackend, i as closeBackendPane, l as launchAgentPane, n as closeAgentPane, o as detectionPolicyFor, r as closeAgentPaneDetailed, s as init_launch, t as agentPaneExists, u as prepareTmuxServer } from "./launch-DF_WD2-a.js";
2
2
  init_launch();
3
3
  export { agentPaneExists, closeAgentPane, closeAgentPaneDetailed, closeBackendPane, closeIssuePanes, detectionPolicyFor, keepTmuxSessionOpen, launchAgentPane, prepareTmuxServer, resolveLaunchBackend };