@overdeck/desktop 0.45.16 → 0.45.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) 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-DQqRIuQ-.js +62 -0
  7. package/server/{advancing-selfheal-DJYAvGv-.js → advancing-selfheal-BYidNkmp.js} +6 -6
  8. package/server/{agent-gc-D0wDIeV1.js → agent-gc-ClNQLl_V.js} +3 -3
  9. package/server/agent-state-BMrpX7kU.js +3 -0
  10. package/server/{agent-state-service-DFslS5go.js → agent-state-service-BpAKmodj.js} +5 -5
  11. package/server/{agent-state-service-CZrayD_G.js → agent-state-service-CC9NMIWn.js} +1 -1
  12. package/server/{briefing-freshness-DESTCWo-.js → agents--ljN-wVY.js} +5 -131
  13. package/server/agents-DAUyr_Z1.js +3 -0
  14. package/server/{archive-planning-CoyIbgGK.js → archive-planning-2w8WQaeJ.js} +1 -1
  15. package/server/{archive-planning-CbghE9-o.js → archive-planning-BW3te5Vw.js} +5 -10
  16. package/server/{artifact-index-jobs-CcSrUoSE.js → artifact-index-jobs-DFO3eceF.js} +2 -2
  17. package/server/{backlog-auto-trigger-BfgDsII0.js → backlog-auto-trigger-DECBMxLq.js} +2 -2
  18. package/server/{behavior-BTpYbAv4.js → behavior-CWqNMqE5.js} +2 -2
  19. package/server/briefing-freshness-B1delh4l.js +131 -0
  20. package/server/{checkpoint-manager-DWSXooZV.js → checkpoint-manager-CjLY6A4r.js} +1 -1
  21. package/server/{checkpoint-manager-BwFdegJF.js → checkpoint-manager-D6_71Rpb.js} +3 -3
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-BtUonbs3.js → checkpoints-BYrLxVle.js} +2 -2
  24. package/server/{checkpoints-fjadfOKF.js → checkpoints-xSuv4v4I.js} +1 -1
  25. package/server/{claude-hooks-provision-DiK62u0k.js → claude-hooks-provision-DL6yfJB_.js} +1 -1
  26. package/server/{claude-hooks-provision-DAtxutOs.js → claude-hooks-provision-DvfVZbbT.js} +2 -2
  27. package/server/{claude-permissions-CThLgf8d.js → claude-permissions-CcncrTNF.js} +2 -2
  28. package/server/{claude-settings-overlay-BF9MPIwx.js → claude-settings-overlay-1IfYetv2.js} +2 -2
  29. package/server/{claude-settings-overlay-Dx_Uqcmv.js → claude-settings-overlay-Ca3LXjAC.js} +1 -1
  30. package/server/cli-BxZHwgRK.js +3 -0
  31. package/server/{cli-ByKIIMfT.js → cli-DGZWYXio.js} +9 -9
  32. package/server/{cliproxy-B4c1BUvs.js → cliproxy-Dw42Xy3t.js} +2 -2
  33. package/server/{cliproxy-C_GuT5DU.js → cliproxy-DziJLbfo.js} +1 -1
  34. package/server/{close-issue-BOuLKr6e.js → close-issue-DEGjxifn.js} +5 -5
  35. package/server/{closed-issue-reaper-DCAYzNXW.js → closed-issue-reaper-BsJ3JqQy.js} +9 -9
  36. package/server/{closed-issue-reaper-CksfuiFD.js → closed-issue-reaper-CNr7X4MB.js} +1 -1
  37. package/server/codex-C8OlW-dN.js +3 -0
  38. package/server/{codex-BbqIRZjd.js → codex-D5RyWzNL.js} +43 -18
  39. package/server/{codex-parser-mFYZh8vR.js → codex-parser-BRxvUkk8.js} +2 -2
  40. package/server/{config-Dj6N8EP9.js → config-CQ2u44iP.js} +1 -1
  41. package/server/{config-DVLdmnMJ.js → config-Cntj_tFu.js} +2 -2
  42. package/server/{config-yaml-cNOZcEww.js → config-yaml-BQs6GbD_.js} +75 -74
  43. package/server/{conflict-gate-CuXUv-bP.js → conflict-gate-BE6JdfkO.js} +1 -1
  44. package/server/{conflict-gate-BMKm_5DV.js → conflict-gate-DdfwKgy0.js} +3 -3
  45. package/server/{context-layers-c0JqYHcS.js → context-layers-DFucrVVG.js} +17 -3
  46. package/server/{context-layers-CeAwSYNt.js → context-layers-DO0Eyq2E.js} +2 -2
  47. package/server/{control-settings-D4EFsRBd.js → control-settings-bxOCLsuE.js} +4 -4
  48. package/server/{conversation-compaction-BCggyih4.js → conversation-compaction-Dq6MfZdL.js} +8 -8
  49. package/server/{conversation-compaction-kHVfVRg3.js → conversation-compaction-lSlUb-cU.js} +1 -1
  50. package/server/{conversation-service-BTzObqGi.js → conversation-service-BVt4MQ1_.js} +1 -1
  51. package/server/{conversation-service-B8LFQQm1.js → conversation-service-TZsQjkjT.js} +6 -6
  52. package/server/{conversations-B-lcHv-5.js → conversations-CxOWHNzv.js} +4 -4
  53. package/server/{conversations-BM7zlXjr.js → conversations-DaF6elGK.js} +1 -1
  54. package/server/{cost-BcpRQ-7o.js → cost-Dlh0IEiv.js} +3 -3
  55. package/server/{cost-D9kPIY_5.js → cost-oinpUqvE.js} +2 -2
  56. package/server/{cost-sync-DF6odxK9.js → cost-sync-CVIAsrhB.js} +3 -3
  57. package/server/{dag-DKI3sOmX.js → dag-ClFr7Bah.js} +7 -243
  58. package/server/{dangerous-git-ops-Bn18PEcN.js → dangerous-git-ops-q5OPtXMd.js} +1 -1
  59. package/server/dashboard-db-worker.js +6 -6
  60. package/server/{deacon-DONuopff.js → deacon-B8ygB3e8.js} +3 -3
  61. package/server/{deacon-DdARMjZq.js → deacon-D2-xTesT.js} +233 -162
  62. package/server/{deacon-nudge-log-B-naf89q.js → deacon-nudge-log-ilDfxrhK.js} +1 -1
  63. package/server/deacon-swarm-1vPLuj_l.js +2 -0
  64. package/server/{deacon-swarm-BNGkmYR_.js → deacon-swarm-yWKQhxiX.js} +298 -72
  65. package/server/deacon.js +14 -7
  66. package/server/{devcontainer-renderer-C-34Sxyz.js → devcontainer-renderer-xPhZHCrx.js} +3 -3
  67. package/server/{dist-BMXvKiZP.js → dist-BwlEiLCU.js} +1 -1
  68. package/server/dist-Bx4KkgYL.js +3 -0
  69. package/server/{dist-src-BgGUblXg.js → dist-src-BE0Denfs.js} +1 -1
  70. package/server/{docker-apZ9pBYw.js → docker-DPEglAwA.js} +2 -2
  71. package/server/{ensure-devcontainer-Bqi1EF1P.js → ensure-devcontainer-SzSvEdKq.js} +4 -4
  72. package/server/{ensure-devcontainer-Dq3KoOIl.js → ensure-devcontainer-wU3ym1b5.js} +1 -1
  73. package/server/{esm-shims-BEjvINX3.js → esm-shims-Cso7IGBC.js} +1 -1
  74. package/server/{event-store-CqDgfbAs.js → event-store-BZoXexYS.js} +1 -1
  75. package/server/{event-store-D89fMfXS.js → event-store-D4s6eQ6o.js} +3 -3
  76. package/server/{events-rIGncmP1.js → events-Bn-wdUBF.js} +1 -1
  77. package/server/{events-S_C0pvl6.js → events-D1hMLl2a.js} +3 -3
  78. package/server/{factory-DV18m0rc.js → factory-ltWnu0V_.js} +20 -17
  79. package/server/{feature-registry-population-CqZSnqQi.js → feature-registry-population-xj-J1Wm7.js} +4 -4
  80. package/server/{feature-registry-storage-BeXmNBwK.js → feature-registry-storage-CQZukiLm.js} +2 -2
  81. package/server/{features-u5XeMaOK.js → features-Dyqi6N8f.js} +2 -2
  82. package/server/{feedback-target-DDG1PWl3.js → feedback-target-Ba0zhSYI.js} +1 -1
  83. package/server/{feedback-target-CwyWf0Dg.js → feedback-target-Chd5dm-Q.js} +9 -7
  84. package/server/{feedback-writer-BsJiw5aT.js → feedback-writer-BtaoJGl2.js} +1 -1
  85. package/server/{feedback-writer-D20HSXre.js → feedback-writer-BujzReaQ.js} +4 -4
  86. package/server/{flywheel-Dczmgchd.js → flywheel-FTInS73X.js} +15 -28
  87. package/server/{flywheel-RCnHAgc4.js → flywheel-bTImiVrk.js} +1 -1
  88. package/server/{flywheel-merge-order-CtCYsFJP.js → flywheel-merge-order-DuenRJLZ.js} +6 -6
  89. package/server/{flywheel-merge-order-DEtEd3aK.js → flywheel-merge-order-O5Zu8iPw.js} +1 -1
  90. package/server/{flywheel-9Y1X7IM-.js → flywheel-rmYbW-lh.js} +13 -13
  91. package/server/{forge-DFDThFil.js → forge-OWm99lie.js} +22 -12
  92. package/server/forge-x5lszTd0.js +2 -0
  93. package/server/{from-NSJypkI8.js → from-B2tOYhYV.js} +1 -1
  94. package/server/{fts-db-C5A_TTOM.js → fts-db-BRfS5ukG.js} +2 -2
  95. package/server/{fts-operations-DvCSimfU.js → fts-operations-L5sNLoHl.js} +2 -2
  96. package/server/{git-utils-C0neHvQx.js → git-utils-BIEzv2Zp.js} +1 -1
  97. package/server/{git-utils-Dr0L7mFk.js → git-utils-CP-bg-aM.js} +2 -2
  98. package/server/{github-app-u9-SX7Gc.js → github-app-CRUIvHuM.js} +8 -3
  99. package/server/{github-app-Bwt9lK4A.js → github-app-Dtn4ib6M.js} +1 -1
  100. package/server/{github-client-Btyy3uan.js → github-client-CWEFlCqL.js} +3 -3
  101. package/server/{github-client-Do3k-N1W.js → github-client-DSVv6wX8.js} +1 -1
  102. package/server/{github-pr-lookup-DOF1U2WW.js → github-pr-lookup-D6CS9vtG.js} +2 -2
  103. package/server/{harness-resolve-C6g2R0Cd.js → harness-resolve-ScD6rV47.js} +3 -3
  104. package/server/{health-events-Bos3sk5g.js → health-events-DbcJmYmd.js} +1 -1
  105. package/server/{health-events-B4u-2a9m.js → health-events-Dm1Vcvqe.js} +2 -2
  106. package/server/{hooks-uEr8WTx_.js → hooks-B6gaI6Kg.js} +1 -1
  107. package/server/{hooks-BCoOjL_R.js → hooks-VXuCnzCv.js} +3 -3
  108. package/server/hume-B4seN95Y.js +3 -0
  109. package/server/{hume-BqxYKbUf.js → hume-BRhNKyXQ.js} +2 -2
  110. package/server/{idle-stack-reaper-H0W6XtHh.js → idle-stack-reaper-Gv32ZCrQ.js} +1 -1
  111. package/server/{idle-stack-reaper-DbZ8ukMd.js → idle-stack-reaper-po700Lfg.js} +2 -2
  112. package/server/{infra-Ba9mS6e6.js → infra-DYwIXlK5.js} +9 -4
  113. package/server/{injection-C1DKXeIZ.js → injection-CTfFnpsG.js} +1 -1
  114. package/server/{injection-yrMBxzVq.js → injection-DPsUoCJp.js} +7 -7
  115. package/server/inspect-agent-B25IP-0O.js +2 -0
  116. package/server/{inspect-agent-B-mnb4uh.js → inspect-agent-CLkwfLRx.js} +35 -67
  117. package/server/{internal-token-BtqSbKTx.js → internal-token--50JhWP7.js} +2 -2
  118. package/server/{internal-token-BPYEaXFh.js → internal-token-BOgxXMGy.js} +1 -1
  119. package/server/{io-VEGSAqsd.js → io-Cv9xQTks.js} +36 -43
  120. package/server/{issue-closed-BxcePXL-.js → issue-closed-CyqtoFUj.js} +41 -6
  121. package/server/{issue-lifecycle-CdMUauyb.js → issue-lifecycle-Cm7ydBGK.js} +1 -1
  122. package/server/{issue-lifecycle--8MRxrG1.js → issue-lifecycle-DR6n40bh.js} +22 -37
  123. package/server/{issue-service-singleton-MZsDhAob.js → issue-service-singleton--LQ5c2zT.js} +1 -1
  124. package/server/{issue-service-singleton-CkTUI-eu.js → issue-service-singleton-DKKPneH4.js} +29 -29
  125. package/server/{issues-CBAsuoAO.js → issues-Cr-BLFLO.js} +2 -2
  126. package/server/{jsonl-parser-BUW5_sSK.js → jsonl-parser-Bp_xCkX4.js} +3 -3
  127. package/server/{label-cleanup-htK6fBRU.js → label-cleanup-BbLy2FZe.js} +3 -3
  128. package/server/{state-home-CEvD_v5F.js → launcher-generator-C-FU4PNT.js} +7 -127
  129. package/server/{layers-jjL16At6.js → layers-C-6lBDUE.js} +2 -2
  130. package/server/lifecycle-Bmw8yU_A.js +12 -0
  131. package/server/{lifecycle-io-DXv8Utct.js → lifecycle-io-B150XprC.js} +1 -1
  132. package/server/{lifecycle-io-IehcRt2v.js → lifecycle-io-Dcu-_ktz.js} +4 -4
  133. package/server/{linear-client-D9cSQfvD.js → linear-client-BHjs0luk.js} +3 -3
  134. package/server/{linear-client-By7hjwuN.js → linear-client-s65LNmlG.js} +1 -1
  135. package/server/memory-fts-worker.js +1 -1
  136. package/server/{merge-BLcEZNXz.js → merge-CM8swd2V.js} +1 -1
  137. package/server/{merge-BN8FGJ2q.js → merge-CS0b-E3u.js} +3 -3
  138. package/server/{merge-agent-B3u2szOL.js → merge-agent-Bu1hw9cz.js} +64 -51
  139. package/server/{merge-agent-ejC7Wos8.js → merge-agent-D6LRIW63.js} +1 -1
  140. package/server/{merge-batch-DyqlgYGp.js → merge-batch-Bv6Z5K2H.js} +1 -1
  141. package/server/{merge-blockers-cq-aS2KG.js → merge-blockers-Dt43hJiW.js} +2 -2
  142. package/server/merge-ops-DwYi3U_x.js +2 -0
  143. package/server/{merge-rebase-Dl7yIxtV.js → merge-rebase-B3vQcTq1.js} +2 -2
  144. package/server/{merge-set-Dy0D0r3i.js → merge-set-BMEGEKQg.js} +1 -1
  145. package/server/{merge-set-CZ9Nbay0.js → merge-set-Pe3spe8k.js} +3 -3
  146. package/server/{merge-sync-CG9kDCdT.js → merge-sync-CpxFRIQ7.js} +1 -1
  147. package/server/{merge-sync-D7jWLgCC.js → merge-sync-STpg1hk3.js} +2 -2
  148. package/server/{merge-train-CH33XJOH.js → merge-train-DLw2hDk0.js} +3 -3
  149. package/server/{merge-train-deps-JoVdGnOg.js → merge-train-deps-BlCGLqwy.js} +4 -4
  150. package/server/{merge-verification-D4wTChdX.js → merge-verification-C4WMP40D.js} +4 -4
  151. package/server/{multipart-parser-Csn8U-K9.js → multipart-parser-9DhuAkPd.js} +2 -2
  152. package/server/node_modules/.package-lock.json +11 -11
  153. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
  154. package/server/node_modules/toml/README.md +54 -0
  155. package/server/node_modules/toml/index.d.ts +42 -1
  156. package/server/node_modules/toml/index.js +3 -3
  157. package/server/node_modules/toml/lib/compiler.js +35 -3
  158. package/server/node_modules/toml/lib/parser.js +224 -143
  159. package/server/node_modules/toml/package.json +3 -1
  160. package/server/node_modules/ws/lib/receiver.js +15 -32
  161. package/server/node_modules/ws/lib/websocket-server.js +4 -4
  162. package/server/node_modules/ws/lib/websocket.js +4 -4
  163. package/server/node_modules/ws/package.json +5 -1
  164. package/server/{orphan-proposed-reconciler-BIcNu4tl.js → orphan-proposed-reconciler-eetUXmmt.js} +1 -1
  165. package/server/{orphan-proposed-reconciler-DI_IS1p_.js → orphan-proposed-reconciler-k9eydM1E.js} +14 -24
  166. package/server/package-lock.json +12 -12
  167. package/server/package.json +1 -1
  168. package/server/{pan-dir-CQIfKG8c.js → pan-dir-D3vABXMs.js} +4 -4
  169. package/server/{paths-Blj6A9AJ.js → paths-DIoslfsu.js} +2 -2
  170. package/server/{pipeline-notifier-BH4PAi-w.js → pipeline-notifier-Bgidcelx.js} +1 -1
  171. package/server/{pipeline-notifier-D_WYtEwl.js → pipeline-notifier-CuBONomU.js} +2 -2
  172. package/server/{project-pipelines-jMTitpeO.js → project-pipelines-B9b_JVTS.js} +2 -2
  173. package/server/projects-DxMUi2eI.js +3 -0
  174. package/server/{prompts-B3njaImU.js → prompts-CY1xnHS-.js} +2 -2
  175. package/server/{providers-DnPxkHoG.js → providers-B7BNcK_j.js} +1 -1
  176. package/server/{providers-BbEyFhPX.js → providers-CAlK2If5.js} +7 -7
  177. package/server/public/assets/{chunk-BO2N2NFS-3qh9TUJi.js → chunk-BO2N2NFS-DzKZyoKY.js} +4 -4
  178. package/server/public/assets/{diagram-OG6HWLK6-D8UVTPj7.js → diagram-OG6HWLK6-Cx8mWUb8.js} +1 -1
  179. package/server/public/assets/{dist-BvLLn1YC.js → dist-BqccLhaw.js} +3 -3
  180. package/server/public/assets/{dist-CyubL7Wj.js → dist-rC3nAs_O.js} +1 -1
  181. package/server/public/assets/{ganttDiagram-6RSMTGT7-BI4E1LbQ.js → ganttDiagram-6RSMTGT7-DLYPLf5T.js} +1 -1
  182. package/server/public/assets/{highlighted-body-OFNGDK62-D_bapWkF.js → highlighted-body-OFNGDK62-D4DqixbV.js} +1 -1
  183. package/server/public/assets/index-CPcysUHk.js +796 -0
  184. package/server/public/assets/index-H5M0yhM4.css +1 -0
  185. package/server/public/assets/{linear-CEdobObr.js → linear-yqcXkDfj.js} +1 -1
  186. package/server/public/assets/mermaid-GHXKKRXX-CWdZ_heB.js +1 -0
  187. package/server/public/assets/{pieDiagram-4H26LBE5-DT79L01f.js → pieDiagram-4H26LBE5-DhraIOaV.js} +1 -1
  188. package/server/public/assets/{prod-CR_K2DFV.js → prod-DKUunUdN.js} +4 -4
  189. package/server/public/assets/{quadrantDiagram-W4KKPZXB-BEkKXXrL.js → quadrantDiagram-W4KKPZXB-DPiRcToa.js} +1 -1
  190. package/server/public/assets/{sankeyDiagram-5OEKKPKP-BxSCqn-j.js → sankeyDiagram-5OEKKPKP-3An5HNkZ.js} +1 -1
  191. package/server/public/assets/{xychartDiagram-2RQKCTM6-DicwJGG_.js → xychartDiagram-2RQKCTM6-lbEOjfqQ.js} +1 -1
  192. package/server/public/index.html +2 -2
  193. package/server/{pull-requests-43LPDfM8.js → pull-requests-Cs4VLxiY.js} +1 -1
  194. package/server/{pull-requests-DyUkQl4W.js → pull-requests-CxfrQiWX.js} +3 -3
  195. package/server/{agents-B9GwfCyp.js → queries-srgusoi8.js} +710 -325
  196. package/server/{rally-BtWjybOa.js → rally-AKkjuGdi.js} +3 -3
  197. package/server/rally-BOza5j3_.js +3 -0
  198. package/server/{rally-api-B-osULNL.js → rally-api-BGxATnyr.js} +2 -2
  199. package/server/{rally-api-B-YA_oXx.js → rally-api-Dbqw1YW9.js} +1 -1
  200. package/server/{rally-client-CzFymP7P.js → rally-client-B1U5ewpO.js} +1 -1
  201. package/server/{rally-client-sErNQBO0.js → rally-client-D8h73ei_.js} +5 -5
  202. package/server/{reap-terminal-sessions-DnDQ7pf9.js → reap-terminal-sessions-BR39qflC.js} +1 -1
  203. package/server/{reap-terminal-sessions-2s-fvilz.js → reap-terminal-sessions-CFkuquQj.js} +1 -1
  204. package/server/{rebuild-stack-CoU-HqZj.js → rebuild-stack-BYdtwS6f.js} +5 -5
  205. package/server/{rebuild-stack-nGD_nPZo.js → rebuild-stack-Dsm9WjKv.js} +1 -1
  206. package/server/{reconstruct-cache-Wj8GrYB0.js → reconstruct-cache-D7oM1lNv.js} +6 -6
  207. package/server/record-BeXdn9Ue.js +3 -0
  208. package/server/record-update-Cb_pPM-F.js +168 -0
  209. package/server/record-update-KFiISAmu.js +3 -0
  210. package/server/recovery-trip-DwbsONZf.js +44 -0
  211. package/server/{release-engine-CBLQXDlH.js → release-engine-CAai5W0V.js} +5 -5
  212. package/server/{release-set-BNiqi7hy.js → release-set-vNEAfyDH.js} +3 -3
  213. package/server/{remote-DW_TWQnr.js → remote-8HlOfuF1.js} +3 -3
  214. package/server/{remote-DcO9An_f.js → remote-RQMKOL_R.js} +3 -3
  215. package/server/{remote-agents-C4cyxHQS.js → remote-agents-C4a4DdTj.js} +6 -33
  216. package/server/{remote-agents-Cv-U-_V8.js → remote-agents-_Z1SAaSK.js} +1 -1
  217. package/server/{remote-completion-PhXGGFQy.js → remote-completion-CH3igKY8.js} +13 -13
  218. package/server/resume-Cr34JAXO.js +3 -0
  219. package/server/{review-agent-Dn-yn7Zj.js → review-agent-CQ7oRh_G.js} +31 -23
  220. package/server/{review-agent-u5q3ip7H.js → review-agent-CUVj54v0.js} +1 -1
  221. package/server/{review-artifacts-D4T04aYI.js → review-artifacts-CC3yGv7o.js} +5 -19
  222. package/server/{review-context-Rc0VDLG_.js → review-context-BuxaAgAd.js} +8 -8
  223. package/server/{review-monitor-BC--miCO.js → review-monitor-uogOppaW.js} +2 -2
  224. package/server/{review-status-CG0iDuWa.js → review-status-BoJdyvUQ.js} +1 -1
  225. package/server/{review-status-Dc1l4dVz.js → review-status-By86XA6Z.js} +38 -62
  226. package/server/{review-status-enrichment-C1a1OG_1.js → review-status-enrichment-CRQAO27G.js} +3 -3
  227. package/server/{review-status-sync-CfSixhhX.js → review-status-sync-BI4WhUkF.js} +1 -1
  228. package/server/{review-status-sync-CAr-hfnJ.js → review-status-sync-DUQmrLkK.js} +2 -2
  229. package/server/{review-verdict-feedback-CVDbIDBe.js → review-verdict-feedback-BNcGkBRD.js} +8 -8
  230. package/server/{review-verdict-feedback-D2Q960wX.js → review-verdict-feedback-CWz9_9Kp.js} +1 -1
  231. package/server/{rollup-CakjztPl.js → rollup-B-K6PCbm.js} +1 -1
  232. package/server/{rollup-DctoIu-A.js → rollup-CqiFgtBp.js} +8 -8
  233. package/server/{scanner-BTM1jc_u.js → scanner-BZmDUjyD.js} +7 -7
  234. package/server/{sequence-io-pnoIDGv4.js → sequence-io-BuUx1ZAY.js} +4 -4
  235. package/server/{sequencer-agent-9Soi-WL-.js → sequencer-agent-2uWOA_BC.js} +6 -17
  236. package/server/server.js +4700 -4096
  237. package/server/{service-DfTVoqJg.js → service-COB19Uhm.js} +116 -90
  238. package/server/{session-fork-C4jAFHj8.js → session-fork-D18TscUZ.js} +2 -2
  239. package/server/{session-history-DanhhiCw.js → session-history-DbWnzfo-.js} +4 -4
  240. package/server/settings-C3w2std9.js +2 -0
  241. package/server/{settings-Cuc12oP_.js → settings-CFEdfovT.js} +2 -2
  242. package/server/{settings-DfT3f86D.js → settings-DNPAf2X_.js} +3 -3
  243. package/server/{shadow-engineering-bKuKTCn-.js → shadow-engineering-D8xTtraU.js} +3 -3
  244. package/server/{shadow-state-DJz6_pb_.js → shadow-state-CTgub0ME.js} +2 -2
  245. package/server/{shadow-state-CVHpRWlb.js → shadow-state-fRDYhcyx.js} +1 -1
  246. package/server/shadow-utils-DqMLnRgQ.js +39 -0
  247. package/server/{ship-log-CwqPFfqx.js → ship-log-BRQQi2lU.js} +1 -1
  248. package/server/{smart-compaction-B4KlpZGN.js → smart-compaction-CL6yaFpc.js} +1 -1
  249. package/server/{smart-compaction-CiWfGfRZ.js → smart-compaction-CsJDKM-N.js} +7 -7
  250. package/server/{spawn-planning-session-D5N3RuLG.js → spawn-planning-session-C_wIQ-Zg.js} +1 -1
  251. package/server/{spawn-planning-session-CU-DwyDl.js → spawn-planning-session-D0-NlNK1.js} +16 -16
  252. package/server/{specialist-completion-CJcv-NXH.js → specialist-completion-pJtESo7m.js} +1 -1
  253. package/server/{specialist-context-B2HlbNxS.js → specialist-context-DXj5Itg8.js} +5 -5
  254. package/server/{specialist-handoff-logger-CQyF1ygu.js → specialist-handoff-logger-BFH-IB0n.js} +2 -2
  255. package/server/{specialist-logs-CdcUpfjj.js → specialist-logs-B-rldhNg.js} +3 -3
  256. package/server/{specialists-CFgw_0Q6.js → specialists-C6-b3YZb.js} +161 -448
  257. package/server/{specialists-D7AcFi1u.js → specialists-CI_eqHAz.js} +1 -1
  258. package/server/{specialists-CwzFdapR.js → specialists-Dp8ABxVh.js} +18 -18
  259. package/server/{specialists-k22_Btaq.js → specialists-Hq3EojmD.js} +1 -1
  260. package/server/specs-DPGNVh51.js +3 -0
  261. package/server/{src-B4TTzNSr.js → src-By3D85Ry.js} +6 -1
  262. package/server/{src-BvpMg4EB.js → src-CqyFg52C.js} +5 -5
  263. package/server/{src-D4YUZrwR.js → src-DhxM-eCb.js} +6 -6
  264. package/server/{stack-health-DVN7zRnL.js → stack-health-Bxt-oGE6.js} +1 -1
  265. package/server/{stack-health-CSgcYcr8.js → stack-health-FtNYSTCS.js} +2 -2
  266. package/server/stale-task-claims-DnCHCATD.js +69 -0
  267. package/server/state-home-BzzKVh_C.js +213 -0
  268. package/server/{state-mapping-C13UaCL7.js → state-mapping-Ci0pkac4.js} +1 -1
  269. package/server/state-migrate-BS4IybIS.js +362 -0
  270. package/server/{stuck-remediation-nTIvhGOR.js → stuck-remediation-CTNT4LUC.js} +1 -1
  271. package/server/{stuck-remediation-CxsyxwFO.js → stuck-remediation-DbwhGg3g.js} +36 -41
  272. package/server/{summary-fork-CnRMPCYd.js → summary-fork-CloCB8dV.js} +2 -2
  273. package/server/{summary-fork-gKSoFAnK.js → summary-fork-DaCs0tCq.js} +8 -8
  274. package/server/supervisor/{paths-3R6b989k.js → paths-C1yU0jq4.js} +5 -3
  275. package/server/supervisor/pty-supervisor.js +2 -2
  276. package/server/supervisor/{pty-token-CScQ32Rj.js → pty-token-CSryb8Mb.js} +2 -2
  277. package/server/{supervisor-CZMs8s0M.js → supervisor-CRED6PD6.js} +2 -2
  278. package/server/supervisor-DHwuClN_.js +2 -0
  279. package/server/{swarm-readiness-h6-pwY8w.js → swarm-readiness-CEOrP9rE.js} +3 -3
  280. package/server/{system-prerequisites-DZZTi2G6.js → system-prerequisites-Bz6KdkFJ.js} +1 -13
  281. package/server/{teardown-workspace-B4D-oCVg.js → teardown-workspace-Ckn7HGhp.js} +14 -71
  282. package/server/{test-agent-queue-CnuYku4B.js → test-agent-queue-C8lE8r2j.js} +5 -5
  283. package/server/{tldr-daemon-CgZQ3jmZ.js → tldr-daemon-BE5rqR90.js} +1 -1
  284. package/server/{tldr-daemon-CuA8hz21.js → tldr-daemon-CGwDr28O.js} +2 -2
  285. package/server/{tmux-C3g9VFcg.js → tmux-C3X2XmV0.js} +92 -4
  286. package/server/tmux-DNaD06Gc.js +3 -0
  287. package/server/{token-g_sJ19g3.js → token-Dsa-i36o.js} +2 -2
  288. package/server/{token-util-DiwnnbJo.js → token-util-BWNpH96m.js} +1 -1
  289. package/server/token-util-DRt0j2nQ.js +3 -0
  290. package/server/{tracker-config-dQxC15vH.js → tracker-config-5Cabf1MU.js} +2 -2
  291. package/server/{tracker-utils--z8FLSWn.js → tracker-utils-Cl-Eaqrv.js} +2 -2
  292. package/server/{tracker-utils-DkKyRT0H.js → tracker-utils-FexeJhyf.js} +1 -1
  293. package/server/{tunnel-CN2px87h.js → tunnel-D4px7sKc.js} +1 -1
  294. package/server/{tunnel-BpWZs0Jy.js → tunnel-KId6Z59z.js} +3 -3
  295. package/server/typed-errors-CH4roFIj.js +3 -0
  296. package/server/{typed-errors-sLpGfegz.js → typed-errors-n_Tnb4Fh.js} +3 -4
  297. package/server/{types-BLS_Zbmd.js → types-DOjWNv3Z.js} +1 -1
  298. package/server/{types-tlXf80x3.js → types-DXBMm4mX.js} +1 -1
  299. package/server/{uat-train-BRo6DM7p.js → uat-train-B16skN7L.js} +24 -25
  300. package/server/{uat-train-utGVmqdm.js → uat-train-BBMrnecu.js} +1 -1
  301. package/server/validation-Zc4kAmqa.js +3 -0
  302. package/server/{validation-CsPVsoA0.js → validation-xAD7y5vW.js} +70 -23
  303. package/server/verification-artifact-DK1xb1zG.js +56 -0
  304. package/server/verification-artifact-JD_edpZ9.js +2 -0
  305. package/server/{verification-runner-CMT5WRMS.js → verification-runner-32y8NRfL.js} +338 -58
  306. package/server/verification-runner-DAat1p1u.js +2 -0
  307. package/server/{vtt-parser-C_XPlifj.js → vtt-parser-QnRfcjiU.js} +1 -1
  308. package/server/{work-agent-prompt-ZTAb2Hyf.js → work-agent-prompt-S3Fe1kpV.js} +12 -88
  309. package/server/{workflows-CXRwhw_o.js → workflows-BNvk5gbE.js} +17 -24
  310. package/server/workflows-Cw2-a_hn.js +2 -0
  311. package/server/{workspace-CNfuj1-5.js → workspace-BhUnCpcq.js} +3 -3
  312. package/server/{workspace-9UEsKuiP.js → workspace-C-gP6JAz.js} +1 -1
  313. package/server/{workspace-config-ChWOECy0.js → workspace-config-C77NKnsV.js} +1 -1
  314. package/server/{workspace-manager-D8AByFIT.js → workspace-manager-BKiMmb0c.js} +23 -48
  315. package/server/{workspace-manager-BO-6k3sP.js → workspace-manager-DD6PDqV8.js} +1 -1
  316. package/server/{workspace-metadata-CvC268MN.js → workspace-metadata-Cnq0snrf.js} +2 -2
  317. package/server/{workspace-metadata-DZiJtnuF.js → workspace-metadata-D5gNR61G.js} +1 -1
  318. package/server/{workspaces-D-uIoqbg.js → workspaces-DiAwBsb9.js} +182 -152
  319. package/sync-sources/hooks/codex-notify-hook +64 -8
  320. package/sync-sources/hooks/record-cost-event.js +1110 -37
  321. package/sync-sources/hooks/record-cost-event.js.map +1 -1
  322. package/sync-sources/hooks/statusline.sh +2 -2
  323. package/sync-sources/hooks/work-agent-stop-hook +1 -2
  324. package/server/acceptance-criteria-BZ_nQS1f.js +0 -33
  325. package/server/agent-state-lGvgPP4m.js +0 -3
  326. package/server/agents-CEcaxSkR.js +0 -3
  327. package/server/auto-commit-IW-eik_b.js +0 -3
  328. package/server/bd-process-lock-XAXAet9O.js +0 -390
  329. package/server/beads-B1u04n3o.js +0 -2
  330. package/server/beads-BeSMEjGT.js +0 -649
  331. package/server/beads-query-Dl4FhT8J.js +0 -95
  332. package/server/beads-restore-BUItPOjI.js +0 -23
  333. package/server/cli-D9cUTbBr.js +0 -3
  334. package/server/codex-BYPz6ZdF.js +0 -3
  335. package/server/compact-beads-CyJtoXJi.js +0 -94
  336. package/server/compact-beads-N00E4EVa.js +0 -3
  337. package/server/deacon-swarm-CvdFekIO.js +0 -2
  338. package/server/dist-BNwrgsUO.js +0 -3
  339. package/server/export-BJHSVwKP.js +0 -87
  340. package/server/forge-8y6aEPTB.js +0 -2
  341. package/server/hume-CerGi2RH.js +0 -3
  342. package/server/inspect-agent-CWkeAB7J.js +0 -2
  343. package/server/lifecycle-Ck2UR27D.js +0 -14
  344. package/server/merge-ops-CFkQtXEj.js +0 -2
  345. package/server/projects-CrBE6IhN.js +0 -3
  346. package/server/public/assets/index-BAZxZ-8I.js +0 -796
  347. package/server/public/assets/index-FBG3JBfq.css +0 -1
  348. package/server/public/assets/mermaid-GHXKKRXX-BYP8MI37.js +0 -1
  349. package/server/rally-oggyp4cs.js +0 -3
  350. package/server/record-lEYK__LD.js +0 -3
  351. package/server/recovery-trip-BT7nb9OV.js +0 -98
  352. package/server/resolver-C7dLn8OK.js +0 -158
  353. package/server/resume-BYZBIab-.js +0 -3
  354. package/server/settings-Cy7SCFO9.js +0 -2
  355. package/server/specs-RzcDgozr.js +0 -3
  356. package/server/supervisor-CfX192ma.js +0 -2
  357. package/server/tmux-By8E_Yv_.js +0 -3
  358. package/server/token-util-C9u4An3K.js +0 -3
  359. package/server/tracker-config-BzfVj41Z.js +0 -3
  360. package/server/typed-errors-CrN1AByg.js +0 -3
  361. package/server/validation-Dq_wwcw3.js +0 -3
  362. package/server/verification-runner-D0Uh-9jc.js +0 -2
  363. package/server/workflows-BLwxUMP7.js +0 -2
  364. package/server/writer-BUweuRPx.js +0 -3
  365. package/server/writer-CrP2xuBn.js +0 -251
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { $t as writeStatusOverrideSync, Fn as init_projects, It as resolveProjectForIssue, Mt as readIssueRecord, Ot as getProjectConfigFromWorkspacePath, Pt as readIssueRecordSync, Sn as findProjectByPathSync, an as queueAutoCommit, dr as FsError, hn as resolveStateReadHomeSync, in as init_auto_commit, kt as init_record, mn as init_state_read_home, rn as flushAutoCommits, tn as deriveProjectRoot, xr as init_errors } from "./config-yaml-cNOZcEww.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-BLS_Zbmd.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-BQs6GbD_.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";
@@ -404,7 +404,7 @@ function writeSpecForIssue(projectRoot, doc, status, filename) {
404
404
  subject: `chore(state): update spec for ${doc.plan.id.toUpperCase()} (status=${status})`
405
405
  });
406
406
  const flushed = yield* flushAutoCommits(projectRoot);
407
- if (flushed.pushed === false) return yield* Effect.fail(new FsError({
407
+ if (flushed.errored || flushed.pushed === false) return yield* Effect.fail(new FsError({
408
408
  path,
409
409
  operation: "pushSpec",
410
410
  cause: new Error(flushed.reason ?? "spec commit was not pushed")
@@ -421,6 +421,33 @@ function writeSpecForIssue(projectRoot, doc, status, filename) {
421
421
  };
422
422
  });
423
423
  }
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) {
434
+ return Effect.gen(function* () {
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
+ }));
448
+ invalidateVBriefIndex(projectRoot);
449
+ });
450
+ }
424
451
  var init_specs = __esmMin((() => {
425
452
  init_errors();
426
453
  init_projects();
@@ -634,7 +661,7 @@ function readTierOverrides(workspacePath) {
634
661
  return {};
635
662
  }
636
663
  }
637
- function recordTierPromotion(workspacePath, beadId, from, to, reason) {
664
+ function recordTierPromotion(workspacePath, itemId, from, to, reason) {
638
665
  const path = workspaceContinuePath(workspacePath);
639
666
  let state = {};
640
667
  try {
@@ -643,10 +670,10 @@ function recordTierPromotion(workspacePath, beadId, from, to, reason) {
643
670
  state = {};
644
671
  }
645
672
  const current = state.tierOverrides && typeof state.tierOverrides === "object" ? state.tierOverrides : {};
646
- const existing = current[beadId];
673
+ const existing = current[itemId];
647
674
  const nextOverrides = {
648
675
  ...current,
649
- [beadId]: {
676
+ [itemId]: {
650
677
  effectiveDifficulty: to,
651
678
  promotions: (existing?.promotions ?? 0) + 1,
652
679
  history: [...existing?.history ?? [], {
@@ -672,7 +699,7 @@ function recordTierPromotion(workspacePath, beadId, from, to, reason) {
672
699
  * PAN-2401: overlay the per-issue record's statusOverrides onto an
673
700
  * already-loaded plan document. The single overlay door for read paths that
674
701
  * resolve the spec themselves (e.g. the /plan API route) — without this, a
675
- * merged bead reads 'pending' forever in every display.
702
+ * merged task reads 'pending' forever in every display.
676
703
  */
677
704
  function mergeRecordStatusOverrides(doc, workspacePath) {
678
705
  const overrides = readStatusOverridesSync(workspacePath);
@@ -687,40 +714,6 @@ function readWorkspacePlanSync(workspacePath) {
687
714
  if (overrides && Object.keys(overrides).length > 0) return applyStatusOverrides(doc, overrides);
688
715
  return doc;
689
716
  }
690
- /**
691
- * Updates the status of a specific item by writing to the per-issue record's
692
- * `statusOverrides` map. Does NOT mutate the spec on main.
693
- * No-ops gracefully if no plan exists for this workspace.
694
- */
695
- function updateItemStatus(workspacePath, itemId, status) {
696
- const planPath = findPlanSync(workspacePath);
697
- if (!planPath) return;
698
- if (!readPlanSync(planPath).plan.items.find((i) => i.id === itemId)) return;
699
- const issueId = issueIdFromWorkspacePath(workspacePath);
700
- if (!issueId) return;
701
- const project = resolveProjectForWorkspace(workspacePath);
702
- if (!project) return;
703
- writeStatusOverrideSync(project, issueId, itemId, status);
704
- }
705
- /**
706
- * Updates the status of a specific subItem by writing to the per-issue record's
707
- * `statusOverrides` map. Uses `itemId.subItemId` as the key.
708
- * Does NOT mutate the spec on main.
709
- * No-ops gracefully if the file, item, or subItem doesn't exist.
710
- */
711
- function updateSubItemStatus(workspacePath, itemId, subItemId, status) {
712
- const planPath = findPlanSync(workspacePath);
713
- if (!planPath) return;
714
- const item = readPlanSync(planPath).plan.items.find((i) => i.id === itemId);
715
- if (!item) return;
716
- const fullSubId = subItemId.includes(".") ? subItemId : `${itemId}.${subItemId}`;
717
- if (!subItemsOf(item).find((s) => s.id === subItemId || s.id === fullSubId)) return;
718
- const issueId = issueIdFromWorkspacePath(workspacePath);
719
- if (!issueId) return;
720
- const project = resolveProjectForWorkspace(workspacePath);
721
- if (!project) return;
722
- writeStatusOverrideSync(project, issueId, fullSubId, status);
723
- }
724
717
  var VBriefMergeConflictTaggedError, VBriefInvalidFormatError, VBriefMergeConflictError, PLANNING_FINISHED_STATUSES, readPlan, findWorkspaceDraftPlan, findPlan, readWorkspacePlan, isPlanningComplete;
725
718
  var init_io = __esmMin((() => {
726
719
  init_specs();
@@ -836,6 +829,6 @@ var init_io = __esmMin((() => {
836
829
  });
837
830
  }));
838
831
  //#endregion
839
- export { init_vbrief_index as A, findSpecByIssue as C, writeSpec as D, readSpec as E, generateVBriefFilename as F, init_lifecycle as I, parseVBriefFilename as L, readVBriefDocument as M, VBRIEF_LIFECYCLE_DIRS as N, writeSpecForIssue as O, ensureVBriefDirsSync as P, resolveVBriefDir 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, invalidateVBriefIndex as j, findVBriefByIssue 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, slugify 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 };
840
833
 
841
- //# sourceMappingURL=io-VEGSAqsd.js.map
834
+ //# sourceMappingURL=io-Cv9xQTks.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--z8FLSWn.js";
3
- import { a as getShadowState, s as init_shadow_state } from "./shadow-state-DJz6_pb_.js";
4
- import { f as init_github_app, p as isGitHubAppConfigured, s as getIssueState } from "./github-app-u9-SX7Gc.js";
2
+ import { Fn as init_projects, qn as resolveProjectFromIssueSync } from "./config-yaml-BQs6GbD_.js";
3
+ import { a as resolveTrackerTypeSync, i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-Cl-Eaqrv.js";
4
+ import { a as init_linear, i as LinearTracker, r as init_factory, t as createTracker } from "./factory-ltWnu0V_.js";
5
+ import { a as getShadowState, s as init_shadow_state } from "./shadow-state-CTgub0ME.js";
6
+ import { n as init_shadow_utils, t as getLinearApiKey } from "./shadow-utils-DqMLnRgQ.js";
7
+ import { f as init_github_app, p as isGitHubAppConfigured, s as getIssueState } from "./github-app-CRUIvHuM.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-BxcePXL-.js.map
115
+ //# sourceMappingURL=issue-closed-CyqtoFUj.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--8MRxrG1.js";
1
+ import { i as init_issue_lifecycle, n as IssueLifecycleLive, r as IssueLifecycleWithClientLive, t as IssueLifecycle } from "./issue-lifecycle-DR6n40bh.js";
2
2
  init_issue_lifecycle();
3
3
  export { IssueLifecycle, IssueLifecycleLive, IssueLifecycleWithClientLive };
@@ -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-D89fMfXS.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-B4TTzNSr.js";
5
- import { A as listOverdeckAgentStatesSync, k as init_agent_state_sync } from "./review-status-Dc1l4dVz.js";
6
- import { a as resolveSessionContextBriefingPath, d as init_agents, o as AgentsResolver, r as init_briefing_freshness } from "./briefing-freshness-DESTCWo-.js";
7
- import { f as resolveStatusFile, i as init_paths } from "./paths-Blj6A9AJ.js";
8
- import { n as listFeatureRegistryEntries, t as init_feature_registry_storage } from "./feature-registry-storage-BeXmNBwK.js";
9
- import { h as listCheckpoints, m as init_checkpoint_manager, s as diffCheckpointFiles, t as captureCheckpoint } from "./checkpoint-manager-BwFdegJF.js";
10
- import { c as TrackerNotConfigured, d as init_typed_errors } from "./typed-errors-sLpGfegz.js";
11
- import { i as init_linear_client, r as LinearClientOptionalLive, t as LinearClient } from "./linear-client-D9cSQfvD.js";
12
- import { i as init_github_client, r as GitHubClientOptionalLive, t as GitHubClient } from "./github-client-Btyy3uan.js";
13
- import { i as init_rally_client, n as RallyClientLive, t as RallyClient } from "./rally-client-sErNQBO0.js";
14
- import { a as resolveTrackerTypeSync, i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils--z8FLSWn.js";
15
- import { n as init_issue_service_singleton, t as getSharedIssueService } from "./issue-service-singleton-CkTUI-eu.js";
3
+ import { a as init_event_store, i as initEventStore } from "./event-store-D4s6eQ6o.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-By86XA6Z.js";
6
+ import { o as init_agents, t as AgentsResolver } from "./agents--ljN-wVY.js";
7
+ import { f as resolveStatusFile, i as init_paths } from "./paths-DIoslfsu.js";
8
+ import { a as resolveSessionContextBriefingPath, r as init_briefing_freshness } from "./briefing-freshness-B1delh4l.js";
9
+ import { n as listFeatureRegistryEntries, t as init_feature_registry_storage } from "./feature-registry-storage-CQZukiLm.js";
10
+ import { h as listCheckpoints, m as init_checkpoint_manager, s as diffCheckpointFiles, t as captureCheckpoint } from "./checkpoint-manager-D6_71Rpb.js";
11
+ import { i as init_linear_client, r as LinearClientOptionalLive, t as LinearClient } from "./linear-client-BHjs0luk.js";
12
+ import { i as init_github_client, r as GitHubClientOptionalLive, t as GitHubClient } from "./github-client-CWEFlCqL.js";
13
+ import { i as init_rally_client, r as RallyClientOptionalLive, t as RallyClient } from "./rally-client-D8h73ei_.js";
14
+ import { a as resolveTrackerTypeSync, i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-Cl-Eaqrv.js";
15
+ import { n as init_issue_service_singleton, t as getSharedIssueService } from "./issue-service-singleton-DKKPneH4.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-MZsDhAob.js"));
296
+ const { getSharedIssueService } = yield* Effect.promise(() => import("./issue-service-singleton--LQ5c2zT.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-Wj8GrYB0.js"));
321
+ const { reconstructCacheAuto } = yield* Effect.promise(() => import("./reconstruct-cache-D7oM1lNv.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-CqDgfbAs.js"));
327
+ const { getEventStore } = yield* Effect.promise(() => import("./event-store-BZoXexYS.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-DWSXooZV.js");
343
+ const { listCheckpoints, diffCheckpointFiles, getCheckpointTimestamp, deleteLegacyCheckpointRefs } = await import("./checkpoint-manager-CjLY6A4r.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-MZsDhAob.js"));
400
+ const { getSharedIssueService } = yield* Effect.promise(() => import("./issue-service-singleton--LQ5c2zT.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-CqDgfbAs.js").then(({ getEventStore }) => {
424
+ if (!_cachedEventStore) import("./event-store-BZoXexYS.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-BfgDsII0.js").then(({ triggerDebouncedIncrementalPass }) => {
440
+ import("./backlog-auto-trigger-DECBMxLq.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-BzfVj41Z.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--8MRxrG1.js.map
1391
+ //# sourceMappingURL=issue-lifecycle-DR6n40bh.js.map
@@ -1,3 +1,3 @@
1
- import { i as startSharedIssueService, n as init_issue_service_singleton, t as getSharedIssueService } from "./issue-service-singleton-CkTUI-eu.js";
1
+ import { i as startSharedIssueService, n as init_issue_service_singleton, t as getSharedIssueService } from "./issue-service-singleton-DKKPneH4.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 { Fn as init_projects, f as loadConfigSync, qn as resolveProjectFromIssueSync, t as init_config_yaml } from "./config-yaml-cNOZcEww.js";
2
+ import { Fn as init_projects, f as loadConfigSync, qn as resolveProjectFromIssueSync, t as init_config_yaml } from "./config-yaml-BQs6GbD_.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-Dc1l4dVz.js";
5
- import { a as init_tracker_config, n as getLinearApiKey, o as validateRallyConfig, r as getRallyConfig, t as getGitHubConfig } from "./tracker-config-dQxC15vH.js";
6
- import { n as init_dist_src, t as Octokit } from "./dist-src-BgGUblXg.js";
7
- import { n as mapGitHubStateToCanonical, t as init_state_mapping } from "./state-mapping-C13UaCL7.js";
8
- import { o as init_io, p as readWorkspacePlan, r as findPlan } from "./io-VEGSAqsd.js";
4
+ import { c as init_review_status, d as loadReviewStatusesForIssues } from "./review-status-By86XA6Z.js";
5
+ import { a as init_tracker_config, n as getLinearApiKey, o as validateRallyConfig, r as getRallyConfig, t as getGitHubConfig } from "./tracker-config-5Cabf1MU.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-Cv9xQTks.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-CVHpRWlb.js");
868
+ this.shadowStateModule = await import("./shadow-state-fRDYhcyx.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-oggyp4cs.js");
1412
- const { findProjectsByRallyProject } = await import("./projects-CrBE6IhN.js");
1411
+ const { RallyTracker } = await import("./rally-BOza5j3_.js");
1412
+ const { findProjectsByRallyProject } = await import("./projects-DxMUi2eI.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-CkTUI-eu.js.map
1507
+ //# sourceMappingURL=issue-service-singleton-DKKPneH4.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-Ba9mS6e6.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-DYwIXlK5.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-CBAsuoAO.js.map
353
+ //# sourceMappingURL=issues-Cr-BLFLO.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Br as encodeClaudeProjectDir, Jr as init_paths, xr as init_errors } from "./config-yaml-cNOZcEww.js";
3
- import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-D9kPIY_5.js";
2
+ import { Sr as init_errors, Vr as encodeClaudeProjectDir, Yr as init_paths } from "./config-yaml-BQs6GbD_.js";
3
+ import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-oinpUqvE.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-BUW5_sSK.js.map
245
+ //# sourceMappingURL=jsonl-parser-Bp_xCkX4.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { er as extractNumberSync, nr as init_issue_id, tr as extractPrefixSync } from "./config-yaml-cNOZcEww.js";
3
- import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed, t as getLinearApiKey } from "./types-tlXf80x3.js";
2
+ import { nr as extractPrefixSync, rr as init_issue_id, tr as extractNumberSync } from "./config-yaml-BQs6GbD_.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-htK6fBRU.js.map
109
+ //# sourceMappingURL=label-cleanup-BbLy2FZe.js.map