@overdeck/desktop 0.45.15 → 0.45.18

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 (372) hide show
  1. package/dist-electron/main.js +149 -158
  2. package/dist-electron/main.js.map +1 -1
  3. package/dist-electron/preload.js +17 -2
  4. package/dist-electron/preload.js.map +1 -1
  5. package/package.json +5 -4
  6. package/server/acceptance-criteria-aQFKQf-J.js +62 -0
  7. package/server/{advancing-selfheal-CSuZ31bB.js → advancing-selfheal-DgwQgm4D.js} +6 -5
  8. package/server/{agent-gc-D_DxfBHR.js → agent-gc-kpzxqT7P.js} +3 -3
  9. package/server/agent-state-C_6TG-Ad.js +3 -0
  10. package/server/{agent-state-service-C_2ZAQRP.js → agent-state-service-BUfovFfB.js} +1 -1
  11. package/server/{agent-state-service-BZkvgQf4.js → agent-state-service-nUD3qfob.js} +9 -52
  12. package/server/agents-BA15AQqo.js +3 -0
  13. package/server/{briefing-freshness-Kh5V8RTh.js → agents-BHBxr8c9.js} +5 -131
  14. package/server/{archive-planning-DkivCk1A.js → archive-planning-CzCW9Ifl.js} +5 -10
  15. package/server/{archive-planning-CTILQRnV.js → archive-planning-D-QsBufn.js} +1 -1
  16. package/server/{artifact-index-jobs-CmsvQ1ey.js → artifact-index-jobs-qqa51B2Z.js} +2 -2
  17. package/server/{backlog-auto-trigger-ueRaT8Dy.js → backlog-auto-trigger-B7Bi0bvY.js} +3 -3
  18. package/server/behavior-CWqNMqE5.js +10 -0
  19. package/server/briefing-freshness-DuxIE1yr.js +131 -0
  20. package/server/{checkpoint-manager-fu9oVsR-.js → checkpoint-manager-DF6hb9Jw.js} +3 -3
  21. package/server/{checkpoint-manager-CAFos8e1.js → checkpoint-manager-DixkLus7.js} +1 -1
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-DvhGi8P_.js → checkpoints-B1Z42tJE.js} +1 -1
  24. package/server/{checkpoints-1BqOlS4q.js → checkpoints-BiviJqei.js} +2 -2
  25. package/server/claude-hooks-provision-BeMGi4ty.js +3 -0
  26. package/server/{claude-hooks-provision-s_wdpeVj.js → claude-hooks-provision-Du_PkMsp.js} +132 -114
  27. package/server/{claude-permissions-CaWqysff.js → claude-permissions-BB6agcOZ.js} +2 -2
  28. package/server/{claude-settings-overlay-CcTf0xzG.js → claude-settings-overlay-CAq2oFSK.js} +2 -2
  29. package/server/{claude-settings-overlay-BbA4FbVI.js → claude-settings-overlay-DUWWLd6M.js} +1 -1
  30. package/server/cli-BFgrSWKV.js +3 -0
  31. package/server/{cli-BwCvCUBK.js → cli-C33xPZNm.js} +9 -9
  32. package/server/{cliproxy-C2xC-3vH.js → cliproxy-BQX1TL6N.js} +1 -1
  33. package/server/{cliproxy-BsoNNDAj.js → cliproxy-CGBA1GzA.js} +2 -2
  34. package/server/{close-issue-BleIwP3f.js → close-issue-DNv8npc1.js} +5 -5
  35. package/server/{closed-issue-reaper-BwUUvjEW.js → closed-issue-reaper-DrqgBJlr.js} +1 -1
  36. package/server/{closed-issue-reaper-mC5pujeb.js → closed-issue-reaper-LoMnnjtJ.js} +9 -9
  37. package/server/codex-DxLivxri.js +3 -0
  38. package/server/{behavior-Cpj03N4v.js → codex-parser-DboQnEXN.js} +3 -9
  39. package/server/{codex-DW60_5j2.js → codex-sgWVCGUd.js} +43 -17
  40. package/server/{config-BRNQJXhA.js → config-6MCHOZ2N.js} +1 -1
  41. package/server/{config-ZNnMpIlh.js → config-DfaUXr6r.js} +2 -2
  42. package/server/{config-yaml-Dcz-8uit.js → config-yaml-CqaAyn8y.js} +149 -80
  43. package/server/{conflict-gate-DTje2Ll7.js → conflict-gate-BF_zhcmb.js} +3 -3
  44. package/server/{conflict-gate-DGT8jCLp.js → conflict-gate-BubJprtD.js} +1 -1
  45. package/server/{context-layers-BdUCQ-cl.js → context-layers-BFrxfl0l.js} +17 -3
  46. package/server/{context-layers-ByOWUjUg.js → context-layers-DWL_8HhY.js} +2 -2
  47. package/server/{control-settings-DwkAeooY.js → control-settings-BguNQ1F_.js} +4 -4
  48. package/server/{conversation-compaction-WYQZUVDm.js → conversation-compaction-CRKAf2qP.js} +1 -1
  49. package/server/{conversation-compaction-OTYgd6eg.js → conversation-compaction-DxSXl0pT.js} +8 -8
  50. package/server/{conversation-service-C_kNZPLx.js → conversation-service-DzuY9qoH.js} +1 -1
  51. package/server/{conversation-service-BR1OgvxO.js → conversation-service-mFVFdDQK.js} +6 -5
  52. package/server/{conversations-DG2M8WnT.js → conversations-BX5aD-6F.js} +4 -4
  53. package/server/{conversations-izHvSoAR.js → conversations-BajHQ60c.js} +1 -1
  54. package/server/{cost-DQ2ajr_m.js → cost-BoqD1Pxz.js} +2 -2
  55. package/server/{cost-B2mj17iG.js → cost-DuZ5vlv-.js} +3 -3
  56. package/server/{cost-sync-gTayEuWP.js → cost-sync-BYnmnMkY.js} +3 -3
  57. package/server/{dag-CqTehWpY.js → dag-C6kYyF17.js} +7 -243
  58. package/server/{dangerous-git-ops-DDWQlPC3.js → dangerous-git-ops-q5OPtXMd.js} +1 -1
  59. package/server/dashboard-db-worker.js +6 -6
  60. package/server/{deacon-BqW9HMew.js → deacon-CwCiNuEZ.js} +3 -3
  61. package/server/{deacon-DrKDBeJL.js → deacon-Dru5onpk.js} +258 -167
  62. package/server/{deacon-nudge-log-D1wEK6zF.js → deacon-nudge-log-ilDfxrhK.js} +1 -1
  63. package/server/{deacon-swarm-CO_A7xyd.js → deacon-swarm-BPmBmSoU.js} +298 -72
  64. package/server/deacon-swarm-CKyGJng1.js +2 -0
  65. package/server/deacon.js +14 -7
  66. package/server/{devcontainer-renderer-BQolp_qZ.js → devcontainer-renderer-BqGNCzvN.js} +3 -3
  67. package/server/{dist-Bc32rWJB.js → dist-BwlEiLCU.js} +1 -1
  68. package/server/dist-Bx4KkgYL.js +3 -0
  69. package/server/{dist-src-Byxt1ifL.js → dist-src-BE0Denfs.js} +1 -1
  70. package/server/{docker-s-esqZ__.js → docker-CNjXS72x.js} +2 -2
  71. package/server/{ensure-devcontainer-DA4-jF6R.js → ensure-devcontainer-5e9xOve4.js} +4 -4
  72. package/server/{ensure-devcontainer-pUVaT0h3.js → ensure-devcontainer-C6gyUQdE.js} +1 -1
  73. package/server/{esm-shims-CJHy8CZY.js → esm-shims-Cso7IGBC.js} +1 -1
  74. package/server/{event-store-CcJAhKCl.js → event-store-D9UhQyMS.js} +1 -1
  75. package/server/{event-store-DRte2Rwt.js → event-store-KZnWUKWh.js} +3 -3
  76. package/server/{events-Bej1w_k8.js → events-2eFUPdqz.js} +3 -3
  77. package/server/{events-CtsLScn8.js → events-BYbvqZky.js} +1 -1
  78. package/server/{factory-FN727tWr.js → factory-BtaRsHFC.js} +20 -17
  79. package/server/{feature-registry-population-ie-yBcQC.js → feature-registry-population-Ca2UaV0U.js} +4 -4
  80. package/server/{feature-registry-storage-CkZTFSsn.js → feature-registry-storage-DaP-bQxO.js} +2 -2
  81. package/server/{features-Dtm9ABuz.js → features-DqvaoQoa.js} +2 -2
  82. package/server/{feedback-target-BYtpyt1i.js → feedback-target-BXWdOiYI.js} +9 -7
  83. package/server/{feedback-target-DVJQDiE4.js → feedback-target-BblmMe9P.js} +1 -1
  84. package/server/{feedback-writer-DOUhyIW2.js → feedback-writer-CULeOOY4.js} +1 -1
  85. package/server/{feedback-writer-fdE1BzeL.js → feedback-writer-Dn8o9ZyE.js} +4 -4
  86. package/server/{flywheel-Bi82iiNl.js → flywheel-BUWdcfhq.js} +1 -1
  87. package/server/{flywheel-Bv3wv2S6.js → flywheel-CqkO3cDj.js} +15 -28
  88. package/server/{flywheel-CUErLAyN.js → flywheel-D9r1mw2U.js} +13 -13
  89. package/server/{flywheel-merge-order-DXjeBnJ1.js → flywheel-merge-order-LDzQDwSg.js} +1 -1
  90. package/server/{flywheel-merge-order-BaEN3iyN.js → flywheel-merge-order-VtjUweEb.js} +7 -7
  91. package/server/forge-DJy3Zx4s.js +2 -0
  92. package/server/{forge-ButEdJ31.js → forge-wEollMCi.js} +22 -12
  93. package/server/{from-CbtTxftl.js → from-B2tOYhYV.js} +1 -1
  94. package/server/{fts-db-CBgBLZcL.js → fts-db-Bgzn2RO7.js} +2 -2
  95. package/server/{fts-operations-CI9Xuo_1.js → fts-operations-Bj8yutnR.js} +2 -2
  96. package/server/{git-utils-ClfpP47N.js → git-utils-GxlL0tmt.js} +2 -2
  97. package/server/{git-utils-BCLRWQ-y.js → git-utils-q8jNoBts.js} +1 -1
  98. package/server/{github-app-DRD2woO0.js → github-app-BrYwK_Gb.js} +1 -1
  99. package/server/{github-app-DscZ0_B6.js → github-app-tUbb8Ldr.js} +8 -3
  100. package/server/{github-client-DpiZnxGH.js → github-client-BwBU41jK.js} +3 -3
  101. package/server/{github-client-iFRw8f7e.js → github-client-D6CNsftm.js} +1 -1
  102. package/server/{github-pr-lookup-D-EBexxC.js → github-pr-lookup-BS5PqkJb.js} +2 -2
  103. package/server/{harness-resolve-iMjyNUJ2.js → harness-resolve-Dx8hUsvC.js} +3 -3
  104. package/server/{health-events-CRdxDFN2.js → health-events-2DLp-5Xp.js} +2 -2
  105. package/server/{health-events-B_WsQyYm.js → health-events-B0mj6Iae.js} +1 -1
  106. package/server/{hooks-C1ScyVxP.js → hooks-BDcQJDUe.js} +1 -1
  107. package/server/{hooks-C9b7Vqpw.js → hooks-BS_JrvYP.js} +3 -3
  108. package/server/hume-B4seN95Y.js +3 -0
  109. package/server/{hume-TQ5pvOZ_.js → hume-BRhNKyXQ.js} +2 -2
  110. package/server/{idle-stack-reaper-B1kG7B_X.js → idle-stack-reaper-BCITXNW5.js} +2 -2
  111. package/server/{idle-stack-reaper-iFVOAoJy.js → idle-stack-reaper-C1ymihno.js} +1 -1
  112. package/server/{infra-bpq1MHKU.js → infra-_Kx1m9pm.js} +9 -4
  113. package/server/{injection-BLWfwTVZ.js → injection-Bvhyg_MV.js} +1 -1
  114. package/server/{injection-DJqWld1v.js → injection-CCaYkofq.js} +7 -7
  115. package/server/{inspect-agent-DytCsltn.js → inspect-agent-BqyZ4pCo.js} +35 -67
  116. package/server/inspect-agent-DCJQm9Wu.js +2 -0
  117. package/server/{internal-token-CjlhdufS.js → internal-token-Cl-1IxaE.js} +2 -2
  118. package/server/{internal-token-CCaWaTwE.js → internal-token-D-t28de5.js} +1 -1
  119. package/server/{io-BiQ2Cs3k.js → io-DkC4sFSy.js} +42 -56
  120. package/server/{issue-closed-FApNiOOs.js → issue-closed-Cpl4VDUM.js} +41 -6
  121. package/server/{issue-lifecycle-C-K53ASY.js → issue-lifecycle-CFR8TJ22.js} +22 -37
  122. package/server/{issue-lifecycle-BkFWNjlD.js → issue-lifecycle-YNTy3OT3.js} +1 -1
  123. package/server/{issue-service-singleton-bG1WdSdQ.js → issue-service-singleton-D81mCts_.js} +1 -1
  124. package/server/{issue-service-singleton-CuHGpJJP.js → issue-service-singleton-ldvUUXi3.js} +29 -29
  125. package/server/{issues-CwQMphDH.js → issues-DIEHt9sq.js} +2 -2
  126. package/server/{jsonl-parser-dNIjHgym.js → jsonl-parser-Cd5jIqh7.js} +3 -3
  127. package/server/{label-cleanup-DYvAZknd.js → label-cleanup-Btny6Gyo.js} +3 -3
  128. package/server/{state-home-CRowbXqU.js → launcher-generator-BXLM9f4b.js} +7 -127
  129. package/server/{layers-CD6FysRU.js → layers-gCJlK62m.js} +2 -2
  130. package/server/lifecycle-D7aQUnTO.js +12 -0
  131. package/server/{lifecycle-io-C_Wu0_i-.js → lifecycle-io-DQBF-GHO.js} +1 -1
  132. package/server/{lifecycle-io-CeYxP3cE.js → lifecycle-io-FfPUtz-y.js} +36 -47
  133. package/server/{linear-client-EtVyblVz.js → linear-client-CDH2D6Qy.js} +3 -3
  134. package/server/{linear-client-4qoKnuQu.js → linear-client-WrYrUIAH.js} +1 -1
  135. package/server/memory-fts-worker.js +1 -1
  136. package/server/{merge-7rqkTUm2.js → merge-BsDgUxFz.js} +3 -3
  137. package/server/{merge-brm721Es.js → merge-Dervs4BF.js} +1 -1
  138. package/server/{merge-agent-4Zhlgvqp.js → merge-agent-D6DNhe9j.js} +64 -51
  139. package/server/{merge-agent-36wfYm2u.js → merge-agent-DMQTJMP0.js} +1 -1
  140. package/server/{merge-batch-itfnwdsT.js → merge-batch-Bv6Z5K2H.js} +1 -1
  141. package/server/{merge-blockers-Bto_Oe_o.js → merge-blockers-WWWi6Ur2.js} +2 -2
  142. package/server/merge-ops-h9OCnIVz.js +2 -0
  143. package/server/{merge-rebase-Czfqfe4q.js → merge-rebase-Czth9ggm.js} +2 -2
  144. package/server/{merge-set-BIkGQL9j.js → merge-set-DNc4zBqd.js} +3 -3
  145. package/server/{merge-set-G1RHcu3D.js → merge-set-vuE3MEVt.js} +1 -1
  146. package/server/{merge-sync-B43Dybea.js → merge-sync-B2KSk54U.js} +2 -2
  147. package/server/{merge-sync-DIrmlZUr.js → merge-sync-B9nHdUGx.js} +1 -1
  148. package/server/{merge-train-DGqVuNZV.js → merge-train-DJgr81tF.js} +3 -3
  149. package/server/{merge-train-deps-q15XLnAS.js → merge-train-deps-B2OWS0k9.js} +4 -4
  150. package/server/{merge-verification-Cqfxx6bE.js → merge-verification-BBIXUEqa.js} +4 -4
  151. package/server/{multipart-parser-CiPxxfUH.js → multipart-parser-9DhuAkPd.js} +2 -2
  152. package/server/{no-resume-mode-yrPEQ_pC.js → no-resume-mode-Gh5R_YLF.js} +1 -1
  153. package/server/node_modules/.package-lock.json +11 -11
  154. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
  155. package/server/node_modules/toml/README.md +54 -0
  156. package/server/node_modules/toml/index.d.ts +42 -1
  157. package/server/node_modules/toml/index.js +3 -3
  158. package/server/node_modules/toml/lib/compiler.js +35 -3
  159. package/server/node_modules/toml/lib/parser.js +224 -143
  160. package/server/node_modules/toml/package.json +3 -1
  161. package/server/node_modules/ws/lib/receiver.js +15 -32
  162. package/server/node_modules/ws/lib/websocket-server.js +4 -4
  163. package/server/node_modules/ws/lib/websocket.js +4 -4
  164. package/server/node_modules/ws/package.json +5 -1
  165. package/server/{orphan-proposed-reconciler-BWWHn4Lr.js → orphan-proposed-reconciler-B8H41C4a.js} +14 -24
  166. package/server/{orphan-proposed-reconciler-DAD9FJtQ.js → orphan-proposed-reconciler-DbTmT7qy.js} +1 -1
  167. package/server/package-lock.json +12 -12
  168. package/server/package.json +1 -1
  169. package/server/{pan-dir-Bj7Hy8iu.js → pan-dir-BTw4MdSe.js} +4 -4
  170. package/server/{paths-C9DkhIOT.js → paths-Btkc8mzp.js} +2 -2
  171. package/server/{pickup-CKRuGDsB.js → pickup-BtvRBbvI.js} +1 -1
  172. package/server/{pipeline-notifier-BkKbQ8ji.js → pipeline-notifier-3frIvSi3.js} +1 -1
  173. package/server/{pipeline-notifier-CAurUste.js → pipeline-notifier-DTd19f18.js} +2 -2
  174. package/server/{project-pipelines-BRWaGmI4.js → project-pipelines-B95fcAek.js} +2 -2
  175. package/server/projects-Dc9aoVoG.js +3 -0
  176. package/server/{prompts-DfI5qbTW.js → prompts-CIVmjHxn.js} +2 -2
  177. package/server/{providers-D-5txBRc.js → providers-BLLk5IIb.js} +1 -1
  178. package/server/{providers-CWDXoaMA.js → providers-C-yWibCk.js} +7 -7
  179. package/server/public/assets/chunk-BO2N2NFS-DzKZyoKY.js +103 -0
  180. package/server/public/assets/{diagram-OG6HWLK6-Avtvq2qI.js → diagram-OG6HWLK6-Cx8mWUb8.js} +1 -1
  181. package/server/public/assets/{dist-BEHQuasD.js → dist-BqccLhaw.js} +3 -3
  182. package/server/public/assets/{dist-BvmY-qb1.js → dist-rC3nAs_O.js} +1 -1
  183. package/server/public/assets/{ganttDiagram-6RSMTGT7-7KhCd0fH.js → ganttDiagram-6RSMTGT7-DLYPLf5T.js} +1 -1
  184. package/server/public/assets/{highlighted-body-OFNGDK62-iQoBMTf0.js → highlighted-body-OFNGDK62-D4DqixbV.js} +1 -1
  185. package/server/public/assets/index-CPcysUHk.js +796 -0
  186. package/server/public/assets/index-H5M0yhM4.css +1 -0
  187. package/server/public/assets/{linear-CiJHW9g5.js → linear-yqcXkDfj.js} +1 -1
  188. package/server/public/assets/mermaid-GHXKKRXX-CWdZ_heB.js +1 -0
  189. package/server/public/assets/{pieDiagram-4H26LBE5-BOhmvUhW.js → pieDiagram-4H26LBE5-DhraIOaV.js} +1 -1
  190. package/server/public/assets/{prod-DmLBBqat.js → prod-DKUunUdN.js} +4 -4
  191. package/server/public/assets/{quadrantDiagram-W4KKPZXB-Cjku660G.js → quadrantDiagram-W4KKPZXB-DPiRcToa.js} +1 -1
  192. package/server/public/assets/{sankeyDiagram-5OEKKPKP-D52w5oPh.js → sankeyDiagram-5OEKKPKP-3An5HNkZ.js} +1 -1
  193. package/server/public/assets/{xychartDiagram-2RQKCTM6-BTO07_Iv.js → xychartDiagram-2RQKCTM6-lbEOjfqQ.js} +1 -1
  194. package/server/public/index.html +2 -2
  195. package/server/{pull-requests-CKZPWhjD.js → pull-requests-D7AL5woD.js} +1 -1
  196. package/server/{pull-requests-Bmre-Xlz.js → pull-requests-NDDNtqNq.js} +3 -3
  197. package/server/{agents-CsOzAmRg.js → queries-C0LCGG21.js} +743 -399
  198. package/server/{rally-BBd9tQ__.js → rally-4oKvnxLG.js} +3 -3
  199. package/server/rally-DF5a3ioP.js +3 -0
  200. package/server/{rally-api-DxZFObI_.js → rally-api-41tT6ikZ.js} +2 -2
  201. package/server/{rally-api-DDc85HIz.js → rally-api-BsaQ8Vnz.js} +1 -1
  202. package/server/{rally-client-DvvLiAQP.js → rally-client-Bo4hNcCZ.js} +5 -5
  203. package/server/{rally-client-BADHn0m_.js → rally-client-b5PT1x5L.js} +1 -1
  204. package/server/{reap-terminal-sessions-D_xvy-Mk.js → reap-terminal-sessions-BR39qflC.js} +1 -1
  205. package/server/{reap-terminal-sessions-D6JDJsqF.js → reap-terminal-sessions-CFkuquQj.js} +1 -1
  206. package/server/{rebuild-stack-GOsWqXi3.js → rebuild-stack-C7JPUom6.js} +1 -1
  207. package/server/{rebuild-stack-D19i080j.js → rebuild-stack-Ddv6W017.js} +6 -6
  208. package/server/{reconstruct-cache-lQrG4xGg.js → reconstruct-cache-Gqhm---K.js} +6 -6
  209. package/server/record-DLOqfbkI.js +3 -0
  210. package/server/record-update-BltEmPge.js +168 -0
  211. package/server/record-update-CDp7aTaT.js +3 -0
  212. package/server/recovery-trip-Cn7KJVkS.js +44 -0
  213. package/server/{release-engine-DxcMWRuK.js → release-engine-BYzmIBf9.js} +5 -5
  214. package/server/{release-set-BYsgX7o6.js → release-set-7pnxFOWR.js} +3 -3
  215. package/server/{remote-DmeL21dF.js → remote-Cvu4CSDk.js} +3 -3
  216. package/server/{remote-agents-BfQBE6MN.js → remote-agents-C2C6z9tj.js} +6 -33
  217. package/server/{remote-agents-DlvbzO7m.js → remote-agents-DYY5fFpd.js} +1 -1
  218. package/server/{remote-completion-BgkiSQmx.js → remote-completion-2Kb4IDg_.js} +13 -13
  219. package/server/{remote-8W2Yhygw.js → remote-rN0ecjHE.js} +3 -3
  220. package/server/resume-BFLl-yLn.js +3 -0
  221. package/server/{review-agent-D025Wt7w.js → review-agent-BZvk0N5G.js} +31 -23
  222. package/server/{review-agent-Rub0OpZc.js → review-agent-CpSHLzed.js} +1 -1
  223. package/server/{review-artifacts-CX951jTU.js → review-artifacts-PCo53YMn.js} +5 -19
  224. package/server/{review-context-DGGGR_w5.js → review-context-M7QtJlJq.js} +8 -8
  225. package/server/{review-monitor-0_qqMcnS.js → review-monitor-BLC5mTTg.js} +2 -2
  226. package/server/{review-status-Br6lAFGO.js → review-status-77N3PoZr.js} +1 -1
  227. package/server/{review-status-4qqLkRMu.js → review-status-DANr0t-v.js} +33 -59
  228. package/server/{review-status-enrichment-Cr8m3uVL.js → review-status-enrichment-DwOg4UfL.js} +3 -3
  229. package/server/{review-status-sync-D3KUhsdA.js → review-status-sync-Bd08OOFA.js} +1 -1
  230. package/server/{review-status-sync-OC-l1lNt.js → review-status-sync-BjTUJ5fx.js} +2 -2
  231. package/server/{review-verdict-feedback-YOzmsq9G.js → review-verdict-feedback-BsFLjN_6.js} +1 -1
  232. package/server/{review-verdict-feedback-DrWMuRaj.js → review-verdict-feedback-CBf-J_wS.js} +8 -8
  233. package/server/{rollup-CnxbwaLH.js → rollup-Bu0f2EyN.js} +8 -8
  234. package/server/{rollup-DmazRY0j.js → rollup-DTCCdEy4.js} +1 -1
  235. package/server/{scanner-DE1MqAaF.js → scanner-BlZ2vB7j.js} +7 -7
  236. package/server/{sequence-io-C0uoqfGx.js → sequence-io-ylyDtz2J.js} +4 -4
  237. package/server/{sequencer-agent-i-b2u4SJ.js → sequencer-agent-DsWQ-87H.js} +6 -17
  238. package/server/server.js +5670 -6392
  239. package/server/{service-D0_gh2tl.js → service-CLVBC_1Y.js} +116 -90
  240. package/server/{session-fork-DZ12vipL.js → session-fork-DlEIAhRy.js} +2 -2
  241. package/server/session-history-bnOFKMwf.js +168 -0
  242. package/server/settings-CP3GGon2.js +2 -0
  243. package/server/{settings-ByqjPtFO.js → settings-Cqa-8nyj.js} +2 -2
  244. package/server/{settings-DCC4BAqj.js → settings-gJrdLZy2.js} +3 -3
  245. package/server/{shadow-engineering-BhnmtW5m.js → shadow-engineering-fq1YEKV3.js} +3 -3
  246. package/server/{shadow-state-ByXZehsy.js → shadow-state-BqeFAygK.js} +1 -1
  247. package/server/{shadow-state-CKm8xWX9.js → shadow-state-RptE9Cau.js} +2 -2
  248. package/server/shadow-utils-BMWr5tRT.js +39 -0
  249. package/server/{ship-log-DE_0Cv_i.js → ship-log-BRQQi2lU.js} +1 -1
  250. package/server/{smart-compaction-D5Zen3AA.js → smart-compaction-CmoXpjeU.js} +7 -7
  251. package/server/{smart-compaction-h4_ca6Uk.js → smart-compaction-DldUel4B.js} +1 -1
  252. package/server/{spawn-planning-session-Dueit4WX.js → spawn-planning-session-CoS6LTc6.js} +16 -16
  253. package/server/{spawn-planning-session-Bgi7Ub02.js → spawn-planning-session-DT2tSMxo.js} +1 -1
  254. package/server/{specialist-completion-BZ8M-WZ0.js → specialist-completion-pJtESo7m.js} +1 -1
  255. package/server/{specialist-context-BMq83C58.js → specialist-context-CspI4Eog.js} +5 -5
  256. package/server/{specialist-handoff-logger-BxX1YefH.js → specialist-handoff-logger-Duz9RGvk.js} +2 -2
  257. package/server/{specialist-logs-BWZYcJ6P.js → specialist-logs-DtSkPJZK.js} +3 -3
  258. package/server/{specialists-ZkW4Mb7U.js → specialists-CywEMwxk.js} +1 -1
  259. package/server/{specialists-8ZAguXef.js → specialists-D9-dMUtI.js} +1 -1
  260. package/server/{specialists-BudKrjOu.js → specialists-Dax7tqXC.js} +1817 -560
  261. package/server/{specialists-DrPrC9Y9.js → specialists-GF42OOqd.js} +18 -18
  262. package/server/specs-VwcFtEDi.js +3 -0
  263. package/server/{src-DHn4Rd2F.js → src-By3D85Ry.js} +77 -1
  264. package/server/{src-Dv6L03vW.js → src-CqyFg52C.js} +5 -5
  265. package/server/{src-DNUUqkec.js → src-DhxM-eCb.js} +6 -6
  266. package/server/{stack-health-Dclm7_tu.js → stack-health-BsEVrJZ6.js} +1 -1
  267. package/server/{stack-health-DxsTx7II.js → stack-health-C-SnpRHh.js} +2 -2
  268. package/server/stale-task-claims-vTxmRzLi.js +69 -0
  269. package/server/state-home-Bur1y4oH.js +213 -0
  270. package/server/{state-mapping-BvAgFK8n.js → state-mapping-Ci0pkac4.js} +1 -1
  271. package/server/state-migrate-D3VveYfO.js +362 -0
  272. package/server/{stuck-remediation-CFWUP8_I.js → stuck-remediation-B699-p8v.js} +63 -46
  273. package/server/{stuck-remediation-CLHd-lrF.js → stuck-remediation-CaFYYTQW.js} +1 -1
  274. package/server/{summary-fork-CKc01Our.js → summary-fork-BxnF8Xh0.js} +2 -2
  275. package/server/{summary-fork-CtCwBJ2Z.js → summary-fork-COqYpVa3.js} +8 -8
  276. package/server/supervisor/{paths-3R6b989k.js → paths-Bk6hJRH9.js} +4 -3
  277. package/server/supervisor/pty-supervisor.js +2 -2
  278. package/server/supervisor/{pty-token-CScQ32Rj.js → pty-token-BZS5GYdG.js} +2 -2
  279. package/server/supervisor-eWAAmXKu.js +2 -0
  280. package/server/{supervisor-BA5D72Qa.js → supervisor-liMgIPDF.js} +2 -2
  281. package/server/{swarm-readiness-CL5sM9B1.js → swarm-readiness-sXB1vhzo.js} +3 -3
  282. package/server/{system-prerequisites-DmFSXIE5.js → system-prerequisites-Bz6KdkFJ.js} +1 -13
  283. package/server/{teardown-workspace-DWmFJzTw.js → teardown-workspace-DvzqnmUF.js} +14 -71
  284. package/server/{test-agent-queue-DjsQoV5X.js → test-agent-queue-hAU1Ah08.js} +6 -6
  285. package/server/{test-verdict-BSqsQp3G.js → test-verdict-CRsPpByy.js} +1 -1
  286. package/server/{test-verdict-D1AmZ2c0.js → test-verdict-CXMLATGc.js} +1 -1
  287. package/server/{tldr-daemon-C-MGomL8.js → tldr-daemon-Bam7Xhoo.js} +2 -2
  288. package/server/{tldr-daemon-DD9rI5gA.js → tldr-daemon-DhGwd88s.js} +1 -1
  289. package/server/tmux-C-rgxRDA.js +3 -0
  290. package/server/{tmux-C_d-lSIq.js → tmux-U55cNGFG.js} +92 -4
  291. package/server/{token-DfBf1bsd.js → token-Dsa-i36o.js} +2 -2
  292. package/server/{token-util-CROoF5ic.js → token-util-BWNpH96m.js} +1 -1
  293. package/server/token-util-DRt0j2nQ.js +3 -0
  294. package/server/{tracker-config-CNODpd11.js → tracker-config-OkdbaUCm.js} +2 -2
  295. package/server/{tracker-utils-Ch2_5GGf.js → tracker-utils-CghXMF3q.js} +2 -2
  296. package/server/{tracker-utils-B9ZoVA9b.js → tracker-utils-DdzUiPNU.js} +1 -1
  297. package/server/{traefik-connect-BF4x_LUQ.js → traefik-connect-CZYB3dlm.js} +1 -1
  298. package/server/{tunnel-r_5nHAI6.js → tunnel-D1YxesBL.js} +3 -3
  299. package/server/{tunnel-YD80_IHr.js → tunnel-DjlzgTl3.js} +1 -1
  300. package/server/typed-errors-CH4roFIj.js +3 -0
  301. package/server/{typed-errors-BEJhbjJg.js → typed-errors-n_Tnb4Fh.js} +3 -4
  302. package/server/{types-CE1m_daD.js → types-DOjWNv3Z.js} +1 -1
  303. package/server/{types-33JEP4LZ.js → types-DXBMm4mX.js} +1 -1
  304. package/server/{uat-train-DDI00aqD.js → uat-train-CaaWs9Rp.js} +1 -1
  305. package/server/{uat-train-DjkFWXge.js → uat-train-CqN34zFx.js} +24 -25
  306. package/server/{validation-DUTiJnyz.js → validation-4-z2Cw4z.js} +70 -23
  307. package/server/validation-DpTNakM6.js +3 -0
  308. package/server/verification-artifact-DK1xb1zG.js +56 -0
  309. package/server/verification-artifact-JD_edpZ9.js +2 -0
  310. package/server/{verification-runner-inLgeQux.js → verification-runner-BjHN80pJ.js} +338 -58
  311. package/server/verification-runner-ShYu5Ph3.js +2 -0
  312. package/server/{work-agent-prompt-fZljjA1_.js → work-agent-prompt-BiJ43Der.js} +12 -88
  313. package/server/workflows-B4C3lY9E.js +2 -0
  314. package/server/{workflows-oBnJ7Tm0.js → workflows-DkTotz_m.js} +17 -24
  315. package/server/{workspace-CNuW2j41.js → workspace-CuN0ev4Z.js} +3 -3
  316. package/server/{workspace-B2WOW9Hw.js → workspace-DQ4vVivd.js} +1 -1
  317. package/server/{workspace-config-CBgMGhWs.js → workspace-config-C77NKnsV.js} +1 -1
  318. package/server/{workspace-manager-DjUAJCSs.js → workspace-manager-B1mYn0lN.js} +1 -1
  319. package/server/{workspace-manager-CB-R07R3.js → workspace-manager-Beeo2aKF.js} +23 -48
  320. package/server/{workspace-metadata-9Nn5kgRl.js → workspace-metadata-BZC5BmoP.js} +2 -2
  321. package/server/{workspace-metadata-Fd58uUQG.js → workspace-metadata-Cy7_ZACL.js} +1 -1
  322. package/server/{workspaces-BjWXntty.js → workspaces-CGuzW1Ia.js} +191 -153
  323. package/sync-sources/hooks/ask-user-question-hook +7 -1
  324. package/sync-sources/hooks/codex-notify-hook +64 -8
  325. package/sync-sources/hooks/record-cost-event.js +1109 -36
  326. package/sync-sources/hooks/record-cost-event.js.map +1 -1
  327. package/sync-sources/hooks/statusline.sh +2 -2
  328. package/sync-sources/hooks/work-agent-stop-hook +1 -2
  329. package/server/acceptance-criteria-DHZk2ceV.js +0 -33
  330. package/server/agent-runtime-mirror-DrWxopNA.js +0 -37
  331. package/server/agent-state-EP2QFV9n.js +0 -3
  332. package/server/agents-DCvyTXNU.js +0 -3
  333. package/server/auto-commit-QAfsu3Sb.js +0 -3
  334. package/server/bd-process-lock-D3S4T4o-.js +0 -390
  335. package/server/beads-BGGxrkZ5.js +0 -649
  336. package/server/beads-CYsLiyIM.js +0 -2
  337. package/server/beads-query-B1DlJVp9.js +0 -95
  338. package/server/beads-restore-CyygSmmn.js +0 -23
  339. package/server/cli-ClIQwgMI.js +0 -3
  340. package/server/codex-B7DTpwEw.js +0 -3
  341. package/server/compact-beads-CK_hHEnB.js +0 -3
  342. package/server/compact-beads-DKL54y6j.js +0 -94
  343. package/server/deacon-swarm-BY5hKNaU.js +0 -2
  344. package/server/dist-DGTwcZhI.js +0 -3
  345. package/server/export-Dx_qJ3h8.js +0 -87
  346. package/server/forge-XlDgPQWs.js +0 -2
  347. package/server/hume-K1pi8jC4.js +0 -3
  348. package/server/inspect-agent-477VxQim.js +0 -2
  349. package/server/lifecycle-C_73gi-C.js +0 -14
  350. package/server/merge-ops-PzqsW69V.js +0 -2
  351. package/server/projects-KJ94e50I.js +0 -3
  352. package/server/public/assets/chunk-BO2N2NFS-ClukPsZQ.js +0 -103
  353. package/server/public/assets/index-DUFDmvmH.css +0 -1
  354. package/server/public/assets/index-DnTZ2QeN.js +0 -796
  355. package/server/public/assets/mermaid-GHXKKRXX-DZJOwgBG.js +0 -1
  356. package/server/rally-Dc2Wnxw2.js +0 -3
  357. package/server/record-pyB6VA32.js +0 -3
  358. package/server/recovery-trip-Dfh1tNHn.js +0 -98
  359. package/server/resolver-dTpSSzaH.js +0 -158
  360. package/server/resume-DhcIqsTm.js +0 -3
  361. package/server/settings-yydgaqhv.js +0 -2
  362. package/server/specs-DwoAEGrW.js +0 -3
  363. package/server/supervisor-DHjumXlL.js +0 -2
  364. package/server/tmux-x291Gjjb.js +0 -3
  365. package/server/token-util-xNaV-00f.js +0 -3
  366. package/server/tracker-config-DItsdelv.js +0 -3
  367. package/server/typed-errors-DSPn_xWP.js +0 -3
  368. package/server/validation-ict8hnXk.js +0 -3
  369. package/server/verification-runner-ATaLbpr5.js +0 -2
  370. package/server/workflows-tU7KKxQi.js +0 -2
  371. package/server/writer-CQMGzEkw.js +0 -3
  372. package/server/writer-fe1-8iGc.js +0 -251
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { $t as writeStatusOverrideSync, It as resolveProjectForIssue, Mt as readIssueRecord, Ot as getProjectConfigFromWorkspacePath, Pn as init_projects, Pt as readIssueRecordSync, an as queueAutoCommit, br as init_errors, in as init_auto_commit, kt as init_record, mn as resolveStateReadHomeSync, pn as init_state_read_home, tn as deriveProjectRoot, ur as FsError, xn as findProjectByPathSync } from "./config-yaml-Dcz-8uit.js";
3
- import { a as PAN_DIRNAME, f as asPanSpecDocument, l as PAN_SPECS_DIRNAME, m as isPanSpecStatus, o as PAN_DRAFTS_DIRNAME, p as init_types$1, r as PAN_CONTINUES_DIRNAME, u as PAN_SPEC_FILENAME } from "./types-CE1m_daD.js";
2
+ import { $t as deriveProjectRoot, Fn as init_projects, It as resolveProjectForIssue, Mt as readIssueRecord, Ot as getProjectConfigFromWorkspacePath, Pt as readIssueRecordSync, Sn as findProjectByPathSync, Sr as init_errors, fr as FsError, kt as init_record, mn as resolveStateReadHomeSync, nn as init_auto_commit, pn as init_state_read_home, rn as queueAutoCommit, tn as flushAutoCommits } from "./config-yaml-CqaAyn8y.js";
3
+ import { a as PAN_DIRNAME, f as asPanSpecDocument, l as PAN_SPECS_DIRNAME, m as isPanSpecStatus, o as PAN_DRAFTS_DIRNAME, p as init_types$1, r as PAN_CONTINUES_DIRNAME, u as PAN_SPEC_FILENAME } from "./types-DOjWNv3Z.js";
4
4
  import { Data, Effect, FileSystem } from "effect";
5
5
  import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "fs";
6
6
  import { basename, join, resolve } from "path";
@@ -398,6 +398,17 @@ function writeSpecForIssue(projectRoot, doc, status, filename) {
398
398
  const nextFilename = filename ?? generateVBriefFilename(doc.plan.id, doc.plan.title);
399
399
  const path = join(paths.specsDir, nextFilename);
400
400
  yield* writeSpec(path, specDocument);
401
+ queueAutoCommit({
402
+ projectRoot,
403
+ paths: [path],
404
+ subject: `chore(state): update spec for ${doc.plan.id.toUpperCase()} (status=${status})`
405
+ });
406
+ const flushed = yield* flushAutoCommits(projectRoot);
407
+ if (flushed.errored || flushed.pushed === false) return yield* Effect.fail(new FsError({
408
+ path,
409
+ operation: "pushSpec",
410
+ cause: new Error(flushed.reason ?? "spec commit was not pushed")
411
+ }));
401
412
  invalidateVBriefIndex(projectRoot);
402
413
  return {
403
414
  path,
@@ -410,22 +421,31 @@ function writeSpecForIssue(projectRoot, doc, status, filename) {
410
421
  };
411
422
  });
412
423
  }
413
- function updateSpecStatus(projectRoot, issueId, newStatus) {
424
+ /**
425
+ * Overwrite an existing spec file's full document and commit+push through the
426
+ * door. Use this — never bare `writeSpec` — when rewriting an existing spec at
427
+ * a known path (e.g. re-promoting a workspace plan). `writeSpec` only queues a
428
+ * deferred auto-commit; without the flush a short-lived process exits and
429
+ * strands the spec as a dirty state-worktree file (PAN-2677). Mirrors
430
+ * `writeSpecForIssue`/`updateSpecStatus`: fails loudly if a configured origin
431
+ * did not accept the push.
432
+ */
433
+ function writeSpecDocument(projectRoot, path, doc) {
414
434
  return Effect.gen(function* () {
415
- const existing = yield* findSpecByIssue(projectRoot, issueId);
416
- if (!existing) return null;
417
- if (existing.status === newStatus) return existing;
418
- const nextDocument = {
419
- ...existing.document,
420
- status: newStatus
421
- };
422
- yield* writeSpec(existing.path, nextDocument);
435
+ yield* writeSpec(path, doc);
436
+ const issueId = doc.plan?.id ?? "unknown";
437
+ queueAutoCommit({
438
+ projectRoot,
439
+ paths: [path],
440
+ subject: `chore(state): update spec for ${String(issueId).toUpperCase()} (status=${doc.status})`
441
+ });
442
+ const flushed = yield* flushAutoCommits(projectRoot);
443
+ if (flushed.errored || flushed.pushed === false) return yield* Effect.fail(new FsError({
444
+ path,
445
+ operation: "pushSpec",
446
+ cause: new Error(flushed.reason ?? "spec commit was not pushed")
447
+ }));
423
448
  invalidateVBriefIndex(projectRoot);
424
- return {
425
- ...existing,
426
- status: newStatus,
427
- document: nextDocument
428
- };
429
449
  });
430
450
  }
431
451
  var init_specs = __esmMin((() => {
@@ -641,7 +661,7 @@ function readTierOverrides(workspacePath) {
641
661
  return {};
642
662
  }
643
663
  }
644
- function recordTierPromotion(workspacePath, beadId, from, to, reason) {
664
+ function recordTierPromotion(workspacePath, itemId, from, to, reason) {
645
665
  const path = workspaceContinuePath(workspacePath);
646
666
  let state = {};
647
667
  try {
@@ -650,10 +670,10 @@ function recordTierPromotion(workspacePath, beadId, from, to, reason) {
650
670
  state = {};
651
671
  }
652
672
  const current = state.tierOverrides && typeof state.tierOverrides === "object" ? state.tierOverrides : {};
653
- const existing = current[beadId];
673
+ const existing = current[itemId];
654
674
  const nextOverrides = {
655
675
  ...current,
656
- [beadId]: {
676
+ [itemId]: {
657
677
  effectiveDifficulty: to,
658
678
  promotions: (existing?.promotions ?? 0) + 1,
659
679
  history: [...existing?.history ?? [], {
@@ -679,7 +699,7 @@ function recordTierPromotion(workspacePath, beadId, from, to, reason) {
679
699
  * PAN-2401: overlay the per-issue record's statusOverrides onto an
680
700
  * already-loaded plan document. The single overlay door for read paths that
681
701
  * resolve the spec themselves (e.g. the /plan API route) — without this, a
682
- * merged bead reads 'pending' forever in every display.
702
+ * merged task reads 'pending' forever in every display.
683
703
  */
684
704
  function mergeRecordStatusOverrides(doc, workspacePath) {
685
705
  const overrides = readStatusOverridesSync(workspacePath);
@@ -694,40 +714,6 @@ function readWorkspacePlanSync(workspacePath) {
694
714
  if (overrides && Object.keys(overrides).length > 0) return applyStatusOverrides(doc, overrides);
695
715
  return doc;
696
716
  }
697
- /**
698
- * Updates the status of a specific item by writing to the per-issue record's
699
- * `statusOverrides` map. Does NOT mutate the spec on main.
700
- * No-ops gracefully if no plan exists for this workspace.
701
- */
702
- function updateItemStatus(workspacePath, itemId, status) {
703
- const planPath = findPlanSync(workspacePath);
704
- if (!planPath) return;
705
- if (!readPlanSync(planPath).plan.items.find((i) => i.id === itemId)) return;
706
- const issueId = issueIdFromWorkspacePath(workspacePath);
707
- if (!issueId) return;
708
- const project = resolveProjectForWorkspace(workspacePath);
709
- if (!project) return;
710
- writeStatusOverrideSync(project, issueId, itemId, status);
711
- }
712
- /**
713
- * Updates the status of a specific subItem by writing to the per-issue record's
714
- * `statusOverrides` map. Uses `itemId.subItemId` as the key.
715
- * Does NOT mutate the spec on main.
716
- * No-ops gracefully if the file, item, or subItem doesn't exist.
717
- */
718
- function updateSubItemStatus(workspacePath, itemId, subItemId, status) {
719
- const planPath = findPlanSync(workspacePath);
720
- if (!planPath) return;
721
- const item = readPlanSync(planPath).plan.items.find((i) => i.id === itemId);
722
- if (!item) return;
723
- const fullSubId = subItemId.includes(".") ? subItemId : `${itemId}.${subItemId}`;
724
- if (!subItemsOf(item).find((s) => s.id === subItemId || s.id === fullSubId)) return;
725
- const issueId = issueIdFromWorkspacePath(workspacePath);
726
- if (!issueId) return;
727
- const project = resolveProjectForWorkspace(workspacePath);
728
- if (!project) return;
729
- writeStatusOverrideSync(project, issueId, fullSubId, status);
730
- }
731
717
  var VBriefMergeConflictTaggedError, VBriefInvalidFormatError, VBriefMergeConflictError, PLANNING_FINISHED_STATUSES, readPlan, findWorkspaceDraftPlan, findPlan, readWorkspacePlan, isPlanningComplete;
732
718
  var init_io = __esmMin((() => {
733
719
  init_specs();
@@ -843,6 +829,6 @@ var init_io = __esmMin((() => {
843
829
  });
844
830
  }));
845
831
  //#endregion
846
- export { findVBriefByIssue as A, slugify as B, findSpecByIssue as C, updateSpecStatus as D, readSpec as E, ensureVBriefDirsSync as F, generateVBriefFilename as I, init_lifecycle as L, invalidateVBriefIndex as M, readVBriefDocument as N, writeSpec as O, VBRIEF_LIFECYCLE_DIRS as P, parseVBriefFilename as R, ensurePanDirs as S, init_specs as T, updateItemStatus as _, findWorkspaceDraftPlan as a, init_types as b, mergeRecordStatusOverrides as c, readPlanSync as d, readTierOverrides as f, serializeVBriefDocument as g, recordTierPromotion as h, findPlanSync as i, init_vbrief_index as j, writeSpecForIssue as k, normalizeVBriefEnvelope as l, readWorkspacePlanSync as m, applyStatusOverrides as n, init_io as o, readWorkspacePlan as p, findPlan as r, isPlanningComplete as s, VBriefMergeConflictError as t, readPlan as u, updateSubItemStatus as v, getProjectPanPaths as w, subItemsOf as x, VBRIEF_INSPECTION_POLICIES as y, resolveVBriefDir as z };
832
+ export { invalidateVBriefIndex as A, init_specs as C, writeSpecForIssue as D, writeSpecDocument as E, init_lifecycle as F, parseVBriefFilename as I, resolveVBriefDir as L, VBRIEF_LIFECYCLE_DIRS as M, ensureVBriefDirsSync as N, findVBriefByIssue as O, generateVBriefFilename as P, slugify as R, getProjectPanPaths as S, writeSpec as T, VBRIEF_INSPECTION_POLICIES as _, findWorkspaceDraftPlan as a, ensurePanDirs as b, mergeRecordStatusOverrides as c, readPlanSync as d, readTierOverrides as f, serializeVBriefDocument as g, recordTierPromotion as h, findPlanSync as i, readVBriefDocument as j, init_vbrief_index as k, normalizeVBriefEnvelope as l, readWorkspacePlanSync as m, applyStatusOverrides as n, init_io as o, readWorkspacePlan as p, findPlan as r, isPlanningComplete as s, VBriefMergeConflictError as t, readPlan as u, init_types as v, readSpec as w, findSpecByIssue as x, subItemsOf as y };
847
833
 
848
- //# sourceMappingURL=io-BiQ2Cs3k.js.map
834
+ //# sourceMappingURL=io-DkC4sFSy.js.map
@@ -1,7 +1,10 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-Ch2_5GGf.js";
3
- import { a as getShadowState, s as init_shadow_state } from "./shadow-state-CKm8xWX9.js";
4
- import { f as init_github_app, p as isGitHubAppConfigured, s as getIssueState } from "./github-app-DscZ0_B6.js";
2
+ import { Fn as init_projects, qn as resolveProjectFromIssueSync } from "./config-yaml-CqaAyn8y.js";
3
+ import { a as resolveTrackerTypeSync, i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-CghXMF3q.js";
4
+ import { a as init_linear, i as LinearTracker, r as init_factory, t as createTracker } from "./factory-BtaRsHFC.js";
5
+ import { a as getShadowState, s as init_shadow_state } from "./shadow-state-RptE9Cau.js";
6
+ import { n as init_shadow_utils, t as getLinearApiKey } from "./shadow-utils-BMWr5tRT.js";
7
+ import { f as init_github_app, p as isGitHubAppConfigured, s as getIssueState } from "./github-app-tUbb8Ldr.js";
5
8
  import { Effect } from "effect";
6
9
  import { execFile } from "child_process";
7
10
  import { promisify } from "util";
@@ -19,11 +22,12 @@ async function isTrackerIssueClosed(issueId) {
19
22
  if (cached && now - cached.checkedAt < 3e5) return cached.closed;
20
23
  const resolved = resolveGitHubIssueSync(issueId);
21
24
  if (!resolved.isGitHub) {
25
+ const closed = await isLinearIssueClosed(issueId);
22
26
  trackerClosedCache.set(issueId, {
23
- closed: false,
27
+ closed,
24
28
  checkedAt: now
25
29
  });
26
- return false;
30
+ return closed;
27
31
  }
28
32
  try {
29
33
  if (isGitHubAppConfigured()) {
@@ -61,6 +65,33 @@ async function isTrackerIssueClosed(issueId) {
61
65
  return false;
62
66
  }
63
67
  }
68
+ /**
69
+ * Ask Linear whether a Linear-tracked issue is closed.
70
+ *
71
+ * Runs only when the issue resolves to a Linear-tracked, configured project;
72
+ * otherwise it returns false so non-Linear trackers keep their pre-existing
73
+ * behavior. Mirrors the GitHub branch's false-on-failure posture: any error,
74
+ * timeout, or ref mismatch yields false (the reaper is destructive, so a
75
+ * fuzzy-search hit on the wrong issue must never read as closed).
76
+ */
77
+ async function isLinearIssueClosed(issueId) {
78
+ if (resolveTrackerTypeSync(issueId) !== "linear") return false;
79
+ if (!resolveProjectFromIssueSync(issueId)) return false;
80
+ let tracker = null;
81
+ try {
82
+ tracker = createTracker({ type: "linear" });
83
+ } catch {
84
+ const key = await Effect.runPromise(getLinearApiKey());
85
+ tracker = key ? new LinearTracker(key) : null;
86
+ }
87
+ if (!tracker) return false;
88
+ try {
89
+ const issue = await Effect.runPromise(tracker.getIssue(issueId).pipe(Effect.timeout("10 seconds")));
90
+ return issue.state === "closed" && issue.ref?.toUpperCase() === issueId.toUpperCase();
91
+ } catch {
92
+ return false;
93
+ }
94
+ }
64
95
  async function isIssueClosed(issueId, closedIssueIds) {
65
96
  if (closedIssueIds) return closedIssueIds.has(issueId);
66
97
  const shadowState = await Effect.runPromise(getShadowState(issueId).pipe(Effect.catch(() => Effect.succeed(null))));
@@ -69,12 +100,16 @@ async function isIssueClosed(issueId, closedIssueIds) {
69
100
  var execFileAsync, trackerClosedCache;
70
101
  var init_issue_closed = __esmMin((() => {
71
102
  init_shadow_state();
103
+ init_shadow_utils();
72
104
  init_tracker_utils();
73
105
  init_github_app();
106
+ init_projects();
107
+ init_factory();
108
+ init_linear();
74
109
  execFileAsync = promisify(execFile);
75
110
  trackerClosedCache = /* @__PURE__ */ new Map();
76
111
  }));
77
112
  //#endregion
78
113
  export { init_issue_closed as n, isIssueClosed as r, clearIssueClosedCache as t };
79
114
 
80
- //# sourceMappingURL=issue-closed-FApNiOOs.js.map
115
+ //# sourceMappingURL=issue-closed-Cpl4VDUM.js.map
@@ -1,18 +1,18 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
2
  import { a as init_activity_logger, t as emitActivityDetailedSync } from "./activity-logger-pcbf-e30.js";
3
- import { a as init_event_store, i as initEventStore } from "./event-store-DRte2Rwt.js";
4
- import { d as getMaxTurnDiffSummariesPerAgent, f as isTerminalTurnDiffSummaryStatus, l as INITIAL_READ_MODEL_STATE, p as trimTurnDiffSummaries, t as init_src, u as applyEvent } from "./src-DHn4Rd2F.js";
5
- import { A as listOverdeckAgentStatesSync, k as init_agent_state_sync } from "./review-status-4qqLkRMu.js";
6
- import { a as resolveSessionContextBriefingPath, d as init_agents, o as AgentsResolver, r as init_briefing_freshness } from "./briefing-freshness-Kh5V8RTh.js";
7
- import { f as resolveStatusFile, i as init_paths } from "./paths-C9DkhIOT.js";
8
- import { n as listFeatureRegistryEntries, t as init_feature_registry_storage } from "./feature-registry-storage-CkZTFSsn.js";
9
- import { h as listCheckpoints, m as init_checkpoint_manager, s as diffCheckpointFiles, t as captureCheckpoint } from "./checkpoint-manager-fu9oVsR-.js";
10
- import { c as TrackerNotConfigured, d as init_typed_errors } from "./typed-errors-BEJhbjJg.js";
11
- import { i as init_linear_client, r as LinearClientOptionalLive, t as LinearClient } from "./linear-client-EtVyblVz.js";
12
- import { i as init_github_client, r as GitHubClientOptionalLive, t as GitHubClient } from "./github-client-DpiZnxGH.js";
13
- import { i as init_rally_client, n as RallyClientLive, t as RallyClient } from "./rally-client-DvvLiAQP.js";
14
- import { a as resolveTrackerTypeSync, i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-Ch2_5GGf.js";
15
- import { n as init_issue_service_singleton, t as getSharedIssueService } from "./issue-service-singleton-CuHGpJJP.js";
3
+ import { a as init_event_store, i as initEventStore } from "./event-store-KZnWUKWh.js";
4
+ import { d as getMaxTurnDiffSummariesPerAgent, f as isTerminalTurnDiffSummaryStatus, l as INITIAL_READ_MODEL_STATE, p as trimTurnDiffSummaries, t as init_src, u as applyEvent } from "./src-By3D85Ry.js";
5
+ import { D as init_agent_state_sync, O as listOverdeckAgentStatesSync } from "./review-status-DANr0t-v.js";
6
+ import { o as init_agents, t as AgentsResolver } from "./agents-BHBxr8c9.js";
7
+ import { f as resolveStatusFile, i as init_paths } from "./paths-Btkc8mzp.js";
8
+ import { a as resolveSessionContextBriefingPath, r as init_briefing_freshness } from "./briefing-freshness-DuxIE1yr.js";
9
+ import { n as listFeatureRegistryEntries, t as init_feature_registry_storage } from "./feature-registry-storage-DaP-bQxO.js";
10
+ import { h as listCheckpoints, m as init_checkpoint_manager, s as diffCheckpointFiles, t as captureCheckpoint } from "./checkpoint-manager-DF6hb9Jw.js";
11
+ import { i as init_linear_client, r as LinearClientOptionalLive, t as LinearClient } from "./linear-client-CDH2D6Qy.js";
12
+ import { i as init_github_client, r as GitHubClientOptionalLive, t as GitHubClient } from "./github-client-BwBU41jK.js";
13
+ import { i as init_rally_client, r as RallyClientOptionalLive, t as RallyClient } from "./rally-client-Bo4hNcCZ.js";
14
+ import { a as resolveTrackerTypeSync, i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-CghXMF3q.js";
15
+ import { n as init_issue_service_singleton, t as getSharedIssueService } from "./issue-service-singleton-ldvUUXi3.js";
16
16
  import { dirname } from "node:path";
17
17
  import { Context, Effect, Layer, Option, Queue, Stream } from "effect";
18
18
  import { basename as basename$1, dirname as dirname$1, join as join$1, resolve as resolve$1 } from "path";
@@ -293,7 +293,7 @@ var init_read_model = __esmMin((() => {
293
293
  };
294
294
  const getSnapshot = Effect.gen(function* () {
295
295
  try {
296
- const { getSharedIssueService } = yield* Effect.promise(() => import("./issue-service-singleton-bG1WdSdQ.js"));
296
+ const { getSharedIssueService } = yield* Effect.promise(() => import("./issue-service-singleton-D81mCts_.js"));
297
297
  const currentIssues = cleanIssues(getSharedIssueService().getIssues());
298
298
  if (currentIssues.length > 0 || state.issuesRaw.length === 0) state = {
299
299
  ...state,
@@ -318,13 +318,13 @@ var init_read_model = __esmMin((() => {
318
318
  const getAgentIdBySessionId = (sessionId) => Effect.sync(() => state.agentIdBySessionId[sessionId] ?? null);
319
319
  const agentsResolver = yield* AgentsResolver;
320
320
  yield* Effect.gen(function* () {
321
- const { reconstructCacheAuto } = yield* Effect.promise(() => import("./reconstruct-cache-lQrG4xGg.js"));
321
+ const { reconstructCacheAuto } = yield* Effect.promise(() => import("./reconstruct-cache-Gqhm---K.js"));
322
322
  const [overdeckAgents, result] = yield* Effect.all([agentsResolver.list({}), Effect.promise(() => reconstructCacheAuto())]);
323
323
  const agentsById = Object.fromEntries(overdeckAgents.map((a) => [a.id, agentSnapshotFromOverdeck(a)]));
324
324
  let sequence = 0;
325
325
  let recentActivity = [];
326
326
  try {
327
- const { getEventStore } = yield* Effect.promise(() => import("./event-store-CcJAhKCl.js"));
327
+ const { getEventStore } = yield* Effect.promise(() => import("./event-store-D9UhQyMS.js"));
328
328
  const eventStore = getEventStore();
329
329
  sequence = eventStore.getLatestSequence();
330
330
  recentActivity = activityEntriesFromStoredEvents(eventStore.queryByType("activity.entry", MAX_SNAPSHOT_ACTIVITY_ENTRIES));
@@ -340,7 +340,7 @@ var init_read_model = __esmMin((() => {
340
340
  console.log(`[ReadModel] Bootstrapped from local database: ${Object.keys(agentsById).length} agents, ${Object.keys(result.reviewStatusByIssueId).length} review statuses, ${result.issuesEnumerated} in-flight issue(s), seq=${sequence}`);
341
341
  (async () => {
342
342
  try {
343
- const { listCheckpoints, diffCheckpointFiles, getCheckpointTimestamp, deleteLegacyCheckpointRefs } = await import("./checkpoint-manager-CAFos8e1.js");
343
+ const { listCheckpoints, diffCheckpointFiles, getCheckpointTimestamp, deleteLegacyCheckpointRefs } = await import("./checkpoint-manager-DixkLus7.js");
344
344
  const agents = Object.values(state.agentsById);
345
345
  const firstAgentWithWorkspace = agents.find((a) => a.workspace);
346
346
  if (firstAgentWithWorkspace?.workspace) {
@@ -397,7 +397,7 @@ var init_read_model = __esmMin((() => {
397
397
  }
398
398
  })();
399
399
  try {
400
- const { getSharedIssueService } = yield* Effect.promise(() => import("./issue-service-singleton-bG1WdSdQ.js"));
400
+ const { getSharedIssueService } = yield* Effect.promise(() => import("./issue-service-singleton-D81mCts_.js"));
401
401
  const issueService = getSharedIssueService();
402
402
  const mergeT0 = performance.now();
403
403
  const currentIssues = cleanIssues(issueService.getIssues());
@@ -421,7 +421,7 @@ var init_read_model = __esmMin((() => {
421
421
  issuesRaw: cleaned
422
422
  };
423
423
  try {
424
- if (!_cachedEventStore) import("./event-store-CcJAhKCl.js").then(({ getEventStore }) => {
424
+ if (!_cachedEventStore) import("./event-store-D9UhQyMS.js").then(({ getEventStore }) => {
425
425
  _cachedEventStore = getEventStore();
426
426
  try {
427
427
  _cachedEventStore.emitOnly({
@@ -437,7 +437,7 @@ var init_read_model = __esmMin((() => {
437
437
  payload: { issues: cleaned }
438
438
  });
439
439
  } catch {}
440
- import("./backlog-auto-trigger-ueRaT8Dy.js").then(({ triggerDebouncedIncrementalPass }) => {
440
+ import("./backlog-auto-trigger-B7Bi0bvY.js").then(({ triggerDebouncedIncrementalPass }) => {
441
441
  triggerDebouncedIncrementalPass(process.cwd());
442
442
  }).catch(() => {});
443
443
  });
@@ -1160,7 +1160,6 @@ var init_issue_lifecycle = __esmMin((() => {
1160
1160
  init_github_client();
1161
1161
  init_linear_client();
1162
1162
  init_rally_client();
1163
- init_typed_errors();
1164
1163
  init_domain_services();
1165
1164
  init_issue_service_singleton();
1166
1165
  IssueLifecycle = class extends Context.Service()("overdeck/dashboard/IssueLifecycle") {};
@@ -1384,23 +1383,9 @@ var init_issue_lifecycle = __esmMin((() => {
1384
1383
  })
1385
1384
  };
1386
1385
  }));
1387
- IssueLifecycleWithClientLive = IssueLifecycleLive.pipe(Layer.provide(LinearClientOptionalLive), Layer.provide(GitHubClientOptionalLive), Layer.provide(Layer.effect(RallyClient, Effect.gen(function* () {
1388
- return yield* Effect.gen(function* () {
1389
- const { getRallyConfig } = yield* Effect.promise(() => import("./tracker-config-DItsdelv.js"));
1390
- if (!getRallyConfig()) {
1391
- const fail = () => Effect.fail(new TrackerNotConfigured({ tracker: "rally" }));
1392
- return {
1393
- getIssue: () => fail(),
1394
- getChildIssues: () => fail(),
1395
- updateState: () => fail(),
1396
- addComment: () => fail()
1397
- };
1398
- }
1399
- return yield* RallyClient;
1400
- }).pipe(Effect.provide(RallyClientLive));
1401
- }))));
1386
+ IssueLifecycleWithClientLive = IssueLifecycleLive.pipe(Layer.provide(LinearClientOptionalLive), Layer.provide(GitHubClientOptionalLive), Layer.provide(RallyClientOptionalLive));
1402
1387
  }));
1403
1388
  //#endregion
1404
1389
  export { init_queue_position as _, EventStoreService as a, ReadModelService as c, init_read_model as d, toAgentResolution as f, findPositionInQueueSync as g, computeQueuePositionFromStatusSync as h, init_issue_lifecycle as i, ReadModelServiceLive as l, toRole as m, IssueLifecycleLive as n, EventStoreServiceLive as o, toAgentStatus as p, IssueLifecycleWithClientLive as r, init_domain_services as s, IssueLifecycle as t, getClosedIssueIdsForReadSource as u };
1405
1390
 
1406
- //# sourceMappingURL=issue-lifecycle-C-K53ASY.js.map
1391
+ //# sourceMappingURL=issue-lifecycle-CFR8TJ22.js.map
@@ -1,3 +1,3 @@
1
- import { i as init_issue_lifecycle, n as IssueLifecycleLive, r as IssueLifecycleWithClientLive, t as IssueLifecycle } from "./issue-lifecycle-C-K53ASY.js";
1
+ import { i as init_issue_lifecycle, n as IssueLifecycleLive, r as IssueLifecycleWithClientLive, t as IssueLifecycle } from "./issue-lifecycle-CFR8TJ22.js";
2
2
  init_issue_lifecycle();
3
3
  export { IssueLifecycle, IssueLifecycleLive, IssueLifecycleWithClientLive };
@@ -1,3 +1,3 @@
1
- import { i as startSharedIssueService, n as init_issue_service_singleton, t as getSharedIssueService } from "./issue-service-singleton-CuHGpJJP.js";
1
+ import { i as startSharedIssueService, n as init_issue_service_singleton, t as getSharedIssueService } from "./issue-service-singleton-ldvUUXi3.js";
2
2
  init_issue_service_singleton();
3
3
  export { getSharedIssueService, startSharedIssueService };
@@ -1,11 +1,11 @@
1
1
  import { n as __esmMin, r as __exportAll } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Kn as resolveProjectFromIssueSync, Pn as init_projects, f as loadConfigSync, t as init_config_yaml } from "./config-yaml-Dcz-8uit.js";
2
+ import { Fn as init_projects, f as loadConfigSync, qn as resolveProjectFromIssueSync, t as init_config_yaml } from "./config-yaml-CqaAyn8y.js";
3
3
  import { n as openDatabase, t as init_driver } from "./driver-D-HBOQa_.js";
4
- import { c as init_review_status, d as loadReviewStatusesForIssues } from "./review-status-4qqLkRMu.js";
5
- import { a as init_tracker_config, n as getLinearApiKey, o as validateRallyConfig, r as getRallyConfig, t as getGitHubConfig } from "./tracker-config-CNODpd11.js";
6
- import { n as init_dist_src, t as Octokit } from "./dist-src-Byxt1ifL.js";
7
- import { n as mapGitHubStateToCanonical, t as init_state_mapping } from "./state-mapping-BvAgFK8n.js";
8
- import { o as init_io, p as readWorkspacePlan, r as findPlan } from "./io-BiQ2Cs3k.js";
4
+ import { c as init_review_status, d as loadReviewStatusesForIssues } from "./review-status-DANr0t-v.js";
5
+ import { a as init_tracker_config, n as getLinearApiKey, o as validateRallyConfig, r as getRallyConfig, t as getGitHubConfig } from "./tracker-config-OkdbaUCm.js";
6
+ import { n as init_dist_src, t as Octokit } from "./dist-src-BE0Denfs.js";
7
+ import { n as mapGitHubStateToCanonical, t as init_state_mapping } from "./state-mapping-Ci0pkac4.js";
8
+ import { o as init_io, p as readWorkspacePlan, r as findPlan } from "./io-DkC4sFSy.js";
9
9
  import { Effect } from "effect";
10
10
  import { existsSync } from "fs";
11
11
  import { join } from "path";
@@ -308,10 +308,10 @@ var init_cache_service = __esmMin((() => {
308
308
  //#endregion
309
309
  //#region services/issue-data-service.ts
310
310
  /**
311
- * Compute bead progress counts from a cached plan document.
311
+ * Compute task progress counts from a cached plan document.
312
312
  * Exported for testing.
313
313
  */
314
- function computeBeadCounts(doc) {
314
+ function computeTaskCounts(doc) {
315
315
  const items = doc?.plan?.items ?? [];
316
316
  if (items.length === 0) return null;
317
317
  return {
@@ -381,26 +381,26 @@ function getCachedPlanningState(identifier) {
381
381
  const projectPath = resolveProjectFromIssueSync(identifier)?.projectPath ?? "";
382
382
  if (!projectPath) return {
383
383
  hasPlan: false,
384
- hasBeads: false,
384
+ hasTasks: false,
385
385
  planningComplete: false,
386
386
  workspacePath: "",
387
- beadCounts: null
387
+ taskCounts: null
388
388
  };
389
389
  const workspacePath = join(projectPath, "workspaces", `feature-${identifier.toLowerCase()}`);
390
390
  return planningStateCache.get(identifier)?.result ?? {
391
391
  hasPlan: false,
392
- hasBeads: false,
392
+ hasTasks: false,
393
393
  planningComplete: false,
394
394
  workspacePath,
395
- beadCounts: null
395
+ taskCounts: null
396
396
  };
397
397
  } catch {
398
398
  return {
399
399
  hasPlan: false,
400
- hasBeads: false,
400
+ hasTasks: false,
401
401
  planningComplete: false,
402
402
  workspacePath: "",
403
- beadCounts: null
403
+ taskCounts: null
404
404
  };
405
405
  }
406
406
  }
@@ -412,10 +412,10 @@ async function refreshPlanningState(identifier) {
412
412
  if (!projectPath) return updatePlanningStateCache(identifier, {
413
413
  result: {
414
414
  hasPlan: false,
415
- hasBeads: false,
415
+ hasTasks: false,
416
416
  planningComplete: false,
417
417
  workspacePath: "",
418
- beadCounts: null
418
+ taskCounts: null
419
419
  },
420
420
  planMtimeMs: -1,
421
421
  continueMtimeMs: -1
@@ -424,10 +424,10 @@ async function refreshPlanningState(identifier) {
424
424
  if (!existsSync(workspacePath)) return updatePlanningStateCache(identifier, {
425
425
  result: {
426
426
  hasPlan: false,
427
- hasBeads: false,
427
+ hasTasks: false,
428
428
  planningComplete: false,
429
429
  workspacePath,
430
- beadCounts: null
430
+ taskCounts: null
431
431
  },
432
432
  planMtimeMs: -1,
433
433
  continueMtimeMs: -1
@@ -450,14 +450,14 @@ async function refreshPlanningState(identifier) {
450
450
  if (cached && cached.planMtimeMs === planMtimeMs && cached.continueMtimeMs === continueMtimeMs && cached.result.workspacePath === workspacePath) return false;
451
451
  const doc = planPath ? await Effect.runPromise(readWorkspacePlan(workspacePath)) : null;
452
452
  const planningComplete = doc?.plan?.status ? PLANNING_FINISHED_STATUSES.has(doc.plan.status) : false;
453
- const beadCounts = computeBeadCounts(doc);
453
+ const taskCounts = computeTaskCounts(doc);
454
454
  return updatePlanningStateCache(identifier, {
455
455
  result: {
456
456
  hasPlan: planPath !== null,
457
- hasBeads: planningComplete,
457
+ hasTasks: planningComplete,
458
458
  planningComplete,
459
459
  workspacePath,
460
- beadCounts
460
+ taskCounts
461
461
  },
462
462
  planMtimeMs,
463
463
  continueMtimeMs
@@ -466,10 +466,10 @@ async function refreshPlanningState(identifier) {
466
466
  return updatePlanningStateCache(identifier, {
467
467
  result: {
468
468
  hasPlan: false,
469
- hasBeads: false,
469
+ hasTasks: false,
470
470
  planningComplete: false,
471
471
  workspacePath: "",
472
- beadCounts: null
472
+ taskCounts: null
473
473
  },
474
474
  planMtimeMs: -1,
475
475
  continueMtimeMs: -1
@@ -737,10 +737,10 @@ var init_issue_data_service = __esmMin((() => {
737
737
  return {
738
738
  ...issue,
739
739
  hasPlan: ps.hasPlan,
740
- hasBeads: ps.hasBeads,
740
+ hasTasks: ps.hasTasks,
741
741
  planningComplete: ps.planningComplete,
742
742
  workspacePath: ps.workspacePath || void 0,
743
- beadCounts: ps.beadCounts
743
+ taskCounts: ps.taskCounts
744
744
  };
745
745
  });
746
746
  const updatedAtMs = /* @__PURE__ */ new Map();
@@ -865,7 +865,7 @@ var init_issue_data_service = __esmMin((() => {
865
865
  async ensureShadowStateLoaded() {
866
866
  if (this.shadowStateModule) return;
867
867
  try {
868
- this.shadowStateModule = await import("./shadow-state-ByXZehsy.js");
868
+ this.shadowStateModule = await import("./shadow-state-BqeFAygK.js");
869
869
  await this.refreshShadowStatesCache();
870
870
  } catch {}
871
871
  }
@@ -1408,8 +1408,8 @@ var init_issue_data_service = __esmMin((() => {
1408
1408
  }
1409
1409
  if (!this.cache.isStale("rally", "issues") && this.trackers.rally.lastFetchedIssues.length > 0) return;
1410
1410
  try {
1411
- const { RallyTracker } = await import("./rally-Dc2Wnxw2.js");
1412
- const { findProjectsByRallyProject } = await import("./projects-KJ94e50I.js");
1411
+ const { RallyTracker } = await import("./rally-DF5a3ioP.js");
1412
+ const { findProjectsByRallyProject } = await import("./projects-Dc9aoVoG.js");
1413
1413
  const rallyProjects = findProjectsByRallyProject();
1414
1414
  let allFormatted = [];
1415
1415
  if (rallyProjects.length > 0) {
@@ -1504,4 +1504,4 @@ var init_issue_service_singleton = __esmMin((() => {
1504
1504
  //#endregion
1505
1505
  export { CacheService as a, startSharedIssueService as i, init_issue_service_singleton as n, init_cache_service as o, issue_service_singleton_exports as r, parseIntegerHeader as s, getSharedIssueService as t };
1506
1506
 
1507
- //# sourceMappingURL=issue-service-singleton-CuHGpJJP.js.map
1507
+ //# sourceMappingURL=issue-service-singleton-ldvUUXi3.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { _ as integer, a as EventBus, c as Records, f as init_infra, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, x as eq } from "./infra-bpq1MHKU.js";
2
+ import { _ as integer, a as EventBus, c as Records, f as init_infra, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, x as eq } from "./infra-_Kx1m9pm.js";
3
3
  import { Context, Effect, Layer, Schema } from "effect";
4
4
  import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
5
5
  //#region ../../lib/overdeck/issues.ts
@@ -350,4 +350,4 @@ var init_issues = __esmMin((() => {
350
350
  //#endregion
351
351
  export { init_issues as n, IssueId as t };
352
352
 
353
- //# sourceMappingURL=issues-CwQMphDH.js.map
353
+ //# sourceMappingURL=issues-DIEHt9sq.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { br as init_errors, qr as init_paths, zr as encodeClaudeProjectDir } from "./config-yaml-Dcz-8uit.js";
3
- import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-DQ2ajr_m.js";
2
+ import { Sr as init_errors, Vr as encodeClaudeProjectDir, Yr as init_paths } from "./config-yaml-CqaAyn8y.js";
3
+ import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-BoqD1Pxz.js";
4
4
  import "effect";
5
5
  import { existsSync, readFileSync, readdirSync, statSync } from "fs";
6
6
  import { basename, join } from "path";
@@ -242,4 +242,4 @@ var init_jsonl_parser = __esmMin((() => {
242
242
  //#endregion
243
243
  export { init_jsonl_parser as a, getSessionFilesSync as i, getAllSessionFilesSync as n, normalizeModelName as o, getProjectDirsSync as r, parseClaudeSessionSync as s, getActiveSessionModelSync as t };
244
244
 
245
- //# sourceMappingURL=jsonl-parser-dNIjHgym.js.map
245
+ //# sourceMappingURL=jsonl-parser-Cd5jIqh7.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { $n as extractNumberSync, er as extractPrefixSync, tr as init_issue_id } from "./config-yaml-Dcz-8uit.js";
3
- import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed, t as getLinearApiKey } from "./types-33JEP4LZ.js";
2
+ import { nr as extractPrefixSync, rr as init_issue_id, tr as extractNumberSync } from "./config-yaml-CqaAyn8y.js";
3
+ import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed, t as getLinearApiKey } from "./types-DXBMm4mX.js";
4
4
  import { Effect } from "effect";
5
5
  import { exec } from "child_process";
6
6
  import { promisify } from "util";
@@ -106,4 +106,4 @@ __esmMin((() => {
106
106
  }))();
107
107
  export { cleanupMergedLabels };
108
108
 
109
- //# sourceMappingURL=label-cleanup-DYvAZknd.js.map
109
+ //# sourceMappingURL=label-cleanup-Btny6Gyo.js.map