@overdeck/desktop 0.45.22 → 0.45.24

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 (429) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +2 -0
  2. package/package.json +1 -1
  3. package/server/{acceptance-criteria-BH7ac_1G.js → acceptance-criteria-DDCnXF58.js} +5 -5
  4. package/server/{advancing-selfheal-cSvXNZLZ.js → advancing-selfheal-BVwW4qRn.js} +6 -6
  5. package/server/{agent-gc-Dj2gncak.js → agent-gc-CHcnvonI.js} +4 -4
  6. package/server/agent-state-Bc3tzUC8.js +3 -0
  7. package/server/{agent-state-service-DistflNn.js → agent-state-service-BsgWxZuB.js} +5 -5
  8. package/server/{agent-state-service-CsQ07Pxe.js → agent-state-service-D5UGKIJL.js} +1 -1
  9. package/server/{agents-DXdHmRTC.js → agents-EbI0zCJl.js} +4 -4
  10. package/server/agents-wi9NWzs2.js +3 -0
  11. package/server/{archive-planning-Cp_DC1j-.js → archive-planning-BZDgzoEj.js} +1 -1
  12. package/server/{archive-planning-BvDuWNMo.js → archive-planning-Du25Jtst.js} +30 -6
  13. package/server/{artifact-index-jobs-CDBFL4OU.js → artifact-index-jobs-CbEDfCDu.js} +2 -2
  14. package/server/assemble-J2ZZ2C15.js +339 -0
  15. package/server/{backlog-auto-trigger-DmA1IbYf.js → backlog-auto-trigger-2R2jog7n.js} +3 -3
  16. package/server/{behavior-CGj16clS.js → behavior-B3exJ42O.js} +2 -2
  17. package/server/{briefing-freshness-C12WgkaB.js → briefing-freshness-D1wzUIWv.js} +2 -2
  18. package/server/{build-info-BRpqQvNd.js → build-info-CZk_TITh.js} +1 -1
  19. package/server/{build-info-NU3KbXYw.js → build-info-Ie_D0_BT.js} +3 -3
  20. package/server/{checkpoint-manager-CTPjAmtH.js → checkpoint-manager-BI1Wxoku.js} +2 -2
  21. package/server/{checkpoint-manager-rOgT98WY.js → checkpoint-manager-DwbQoqrC.js} +1 -1
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-B5jFNi2G.js → checkpoints-BJIs5QIA.js} +1 -1
  24. package/server/{checkpoints-BJum14fs.js → checkpoints-CQB1h765.js} +2 -2
  25. package/server/{claude-hooks-provision-BhwWK-TQ.js → claude-hooks-provision-8Ngo8TpT.js} +1 -1
  26. package/server/{claude-hooks-provision-D7p5WcKZ.js → claude-hooks-provision-D8GXF3_s.js} +2 -2
  27. package/server/{claude-permissions-nSFKH78M.js → claude-permissions-DNWEVV6z.js} +2 -2
  28. package/server/{claude-settings-overlay-BI_UIke0.js → claude-settings-overlay-CEdaqpWI.js} +2 -2
  29. package/server/{claude-settings-overlay-DHBwjS1X.js → claude-settings-overlay-DWy-Bb4Y.js} +1 -1
  30. package/server/cli-B86rejVV.js +3 -0
  31. package/server/{cli-CbKNkFE5.js → cli-RoOx5DUf.js} +9 -9
  32. package/server/{cliproxy-Brf_5MuG.js → cliproxy-C8a1vtTU.js} +2 -2
  33. package/server/{cliproxy-bONZDBbC.js → cliproxy-fHfIeiGd.js} +1 -1
  34. package/server/{close-issue-CxReRxIc.js → close-issue-DoOifFIK.js} +5 -5
  35. package/server/{closed-issue-reaper-CQ3kqha7.js → closed-issue-reaper-Bk3SU4RC.js} +9 -9
  36. package/server/{closed-issue-reaper-DXP2Xyv3.js → closed-issue-reaper-CktPXo8m.js} +1 -1
  37. package/server/{codex-CbmztVcc.js → codex-BZXGhUVB.js} +27 -8
  38. package/server/codex-GcHuUF-k.js +3 -0
  39. package/server/{codex-parser-jl8AeAmB.js → codex-parser-CFZ1_1Jl.js} +2 -2
  40. package/server/{config-q4Gvd8dq.js → config-BZ0sHTju.js} +2 -2
  41. package/server/{config-DeTsoZdR.js → config-CKxYiCmX.js} +2 -2
  42. package/server/{config-BJKocXKd.js → config-DzV30TOm.js} +1 -1
  43. package/server/{config-yaml-ig8Nwtiw.js → config-yaml-DySPNmKN.js} +77 -194
  44. package/server/{conflict-gate-CFqPVxEg.js → conflict-gate-BaCVrH-N.js} +3 -3
  45. package/server/{conflict-gate-CHU9K1vU.js → conflict-gate-BhAY7TUd.js} +1 -1
  46. package/server/context-layers-BrPmE__h.js +4 -0
  47. package/server/context-layers-igZ4FI4_.js +37 -0
  48. package/server/{control-settings-D_odMIaC.js → control-settings-BQp7_4uD.js} +4 -4
  49. package/server/{conversation-compaction-B6YSRLda.js → conversation-compaction-CgrR8YYp.js} +8 -8
  50. package/server/{conversation-compaction-CN4-5YYt.js → conversation-compaction-eQB5CkOe.js} +1 -1
  51. package/server/{conversation-service-Dq33SYEj.js → conversation-service-BLd3MYsG.js} +1 -1
  52. package/server/{conversation-service-C3avRVEr.js → conversation-service-DPJ71F33.js} +329 -19
  53. package/server/{conversations-bYpM9-kZ.js → conversations-6AfUfbwc.js} +5 -5
  54. package/server/{conversations-H9if0bCQ.js → conversations-CAsJF9kh.js} +1 -1
  55. package/server/{cost-Codk1pc2.js → cost-B2ddP6wq.js} +18 -2
  56. package/server/{cost-wH46-WsJ.js → cost-R-m6Yi-W.js} +3 -3
  57. package/server/{cost-sync-D_cre6WM.js → cost-sync-BsN6ER0n.js} +3 -3
  58. package/server/{dag-CJpgf9A3.js → dag-B1ucnjDU.js} +9 -9
  59. package/server/{dangerous-git-ops-D6AF-Hg_.js → dangerous-git-ops-BXqeWVSf.js} +1 -1
  60. package/server/dashboard-db-worker.js +7 -7
  61. package/server/{deacon-CkT_kznS.js → deacon-CU_cAYSR.js} +406 -607
  62. package/server/{deacon-B8HbQdqU.js → deacon-kiQrb4ZT.js} +3 -3
  63. package/server/{deacon-nudge-log-D6K9K-rE.js → deacon-nudge-log-6wVqAaqz.js} +3 -3
  64. package/server/{deacon-swarm-BryRr6AO.js → deacon-swarm-BXZZ1Z2-.js} +17 -17
  65. package/server/deacon-swarm-C-GwfjJy.js +2 -0
  66. package/server/deacon.js +8 -8
  67. package/server/{deploy-patrol-1IrZxicY.js → deploy-patrol-AiFoP8dw.js} +136 -19
  68. package/server/{deploy-window-wDf4UgHt.js → deploy-window-C3F-tihF.js} +77 -10
  69. package/server/{deploy-window-7ZYHh7Zp.js → deploy-window-DkZraDyj.js} +1 -1
  70. package/server/{dev-supervisor-C7p9kEpc.js → dev-supervisor-bcOWqdQE.js} +2 -2
  71. package/server/{devcontainer-renderer-CNmQy0pL.js → devcontainer-renderer-_d6XhyND.js} +3 -3
  72. package/server/dist-Bzy0y69j.js +3 -0
  73. package/server/{dist-D-Ed5yVw.js → dist-Cb_0uvpS.js} +1 -1
  74. package/server/{docker-BCZ89M9X.js → docker-DcMTFTUC.js} +2 -2
  75. package/server/{dod-DbJLYcHv.js → dod-C6n9RV3G.js} +1 -1
  76. package/server/{ensure-devcontainer-Cs6W9Yzj.js → ensure-devcontainer-BZgOhRo7.js} +1 -1
  77. package/server/{ensure-devcontainer-V5JWaAva.js → ensure-devcontainer-DNi-ono3.js} +4 -4
  78. package/server/{esm-shims-dTeNdq7X.js → esm-shims-OSHAYaS1.js} +1 -1
  79. package/server/{event-store-TnWdydfB.js → event-store-CQL6NeqB.js} +3 -3
  80. package/server/{event-store-CpBGsO6_.js → event-store-EV2cMiXj.js} +1 -1
  81. package/server/{events-Dsuv6qyB.js → events-BTdrdEq8.js} +1 -1
  82. package/server/{events-DSUdR-04.js → events-DTfAe4My.js} +3 -3
  83. package/server/{factory-BMrK4TrE.js → factory-CFibJuaw.js} +50 -13
  84. package/server/{feature-registry-population-B-CI9hgE.js → feature-registry-population-DKZFMbFt.js} +4 -4
  85. package/server/{feature-registry-storage-B972ph_A.js → feature-registry-storage-BdPuLcBX.js} +2 -2
  86. package/server/{features-Bc-Bmiye.js → features-ez2271oH.js} +2 -2
  87. package/server/{feedback-target-DZ-iAnAa.js → feedback-target-7mqqwrX6.js} +7 -7
  88. package/server/{feedback-target-DS6NUuSs.js → feedback-target-CoFDHiM8.js} +1 -1
  89. package/server/{feedback-writer-BXP6g75N.js → feedback-writer-CY5L1lB7.js} +6 -5
  90. package/server/{feedback-writer-Bx5z11mF.js → feedback-writer-D3a22RCd.js} +1 -1
  91. package/server/flywheel-DHrgCphM.js +1084 -0
  92. package/server/flywheel-DzGtWnJ1.js +477 -0
  93. package/server/flywheel-SVF02Jpq.js +2 -0
  94. package/server/{flywheel-merge-order-CTgHeg-W.js → flywheel-merge-order-UU0tiUld.js} +10 -9
  95. package/server/{flywheel-merge-order-CNKAY489.js → flywheel-merge-order-UUcsCDb6.js} +1 -1
  96. package/server/{forge-B1S_KZv4.js → forge-CNFnyqps.js} +2 -2
  97. package/server/forge-DXnS_YFH.js +2 -0
  98. package/server/{from-DpwQ-sc3.js → from-kNxT0bZC.js} +1 -1
  99. package/server/{fts-db-DmAcuCkV.js → fts-db-CE46vDkZ.js} +2 -2
  100. package/server/{fts-operations-7d_RkmWp.js → fts-operations-CqY6zl-i.js} +2 -2
  101. package/server/{git-utils-Cc3FHDKd.js → git-utils-CRw2zLPC.js} +68 -3
  102. package/server/git-utils-D0_yhCgF.js +3 -0
  103. package/server/{github-app-CDPtGF7J.js → github-app-C3QrAUd0.js} +27 -8
  104. package/server/{github-app-CU14oYzP.js → github-app-ClZ2lk8D.js} +1 -1
  105. package/server/{github-client-XjTJbBm7.js → github-client-BnIsSrEN.js} +2 -2
  106. package/server/{github-client-CwBZZ3t7.js → github-client-DfQYVUaw.js} +1 -1
  107. package/server/{github-pr-lookup-CFGeVhqv.js → github-pr-lookup-D16NGsSO.js} +2 -2
  108. package/server/{harness-binary-B2CTcD84.js → harness-binary-DPUi-Pv8.js} +32 -6
  109. package/server/{harness-resolve-D5FVQTmy.js → harness-resolve-3lNZkyT4.js} +18 -9
  110. package/server/{health-events-DREeevle.js → health-events-BBcTYQKU.js} +2 -2
  111. package/server/{health-events-C1whmd58.js → health-events-BDOHby5Q.js} +1 -1
  112. package/server/{hooks-yxRsjk-z.js → hooks-CKZgXlJb.js} +2 -2
  113. package/server/{hooks-B-HItBiS.js → hooks-DPVX1rwQ.js} +1 -1
  114. package/server/{hume-Dz_OymXE.js → hume-Cz8igP9E.js} +2 -2
  115. package/server/hume-ccTf4wTX.js +3 -0
  116. package/server/{idle-stack-reaper-DrCv0OAG.js → idle-stack-reaper-CuLF0j2H.js} +1 -1
  117. package/server/{idle-stack-reaper-Yf34xXxY.js → idle-stack-reaper-DDIRwxUY.js} +2 -2
  118. package/server/{in-flight-guard-BoWm66Kh.js → in-flight-guard-CAAkqPLu.js} +2 -2
  119. package/server/{infra-D4iNWMA5.js → infra-BEqFxlJc.js} +14 -4
  120. package/server/{injection-D7T75Pye.js → injection-C8aiVJrF.js} +191 -183
  121. package/server/{injection-BVNa4MQW.js → injection-CPUIqNhI.js} +1 -1
  122. package/server/{inspect-agent-BXCgNeZ4.js → inspect-agent-BLuJ1AkT.js} +137 -81
  123. package/server/inspect-agent-Brtz0URj.js +2 -0
  124. package/server/{internal-token-C9DdEOKY.js → internal-token-BrcU6qfe.js} +1 -1
  125. package/server/{internal-token-CXsfxslp.js → internal-token-s0-oKybJ.js} +2 -2
  126. package/server/{io-DQR9PMgS.js → io-C9kF1wtJ.js} +160 -184
  127. package/server/{issue-closed-DtmJM0D0.js → issue-closed-CDJk4pIp.js} +7 -7
  128. package/server/{issue-lifecycle-8PSS9Anq.js → issue-lifecycle-B8sZHVHh.js} +1 -1
  129. package/server/{issue-lifecycle-CeyW_HoD.js → issue-lifecycle-ojZAzDBP.js} +22 -22
  130. package/server/{issue-service-singleton-DBZabEl7.js → issue-service-singleton-BvJ09SaR.js} +1 -1
  131. package/server/{issue-service-singleton-D_RVYBuL.js → issue-service-singleton-Yx5DdmVJ.js} +8 -8
  132. package/server/{issues-pDW9VUNz.js → issues-BMmP_77e.js} +2 -2
  133. package/server/{jsonl-parser-C3HVNR5d.js → jsonl-parser-BXSlHwEh.js} +3 -3
  134. package/server/{label-cleanup-DPwiZlWo.js → label-cleanup-B0UJwnv5.js} +3 -3
  135. package/server/{label-reconciler-Df1ZduPH.js → label-reconciler-B4iOAjlC.js} +4 -4
  136. package/server/{launcher-generator-COgR2By1.js → launcher-generator-BBWG_SiS.js} +105 -10
  137. package/server/{lifecycle-io-taIb0PoH.js → lifecycle-io-BREGpnLk.js} +37 -37
  138. package/server/lifecycle-io-DPo7x11I.js +3 -0
  139. package/server/{lifecycle-CtPDcZ9u.js → lifecycle-xmBfK2GJ.js} +6 -6
  140. package/server/lifecycle-yPd___5E.js +121 -0
  141. package/server/{linear-client-DsFkIxee.js → linear-client-BsuUvkdA.js} +2 -2
  142. package/server/{linear-client-YwZMDIwQ.js → linear-client-CTskEeT_.js} +1 -1
  143. package/server/memory-fts-worker.js +1 -1
  144. package/server/{merge-BwsyNRJV.js → merge-B1DiziGU.js} +1 -1
  145. package/server/{merge-C1t-bspg.js → merge-CefQNAnq.js} +3 -3
  146. package/server/{merge-agent-DDiIjzk-.js → merge-agent-4WOWlSYA.js} +28 -28
  147. package/server/{merge-agent-B-SnXOoc.js → merge-agent-CKkgIBPB.js} +1 -1
  148. package/server/{merge-batch-Byt-QnEl.js → merge-batch-ClFn2T-y.js} +1 -1
  149. package/server/merge-ops-CR44oU9-.js +2 -0
  150. package/server/{merge-rebase-Cm6fXaZN.js → merge-rebase-BfaTyXsw.js} +2 -2
  151. package/server/merge-set-DJ8-UErs.js +83 -0
  152. package/server/{merge-set-6LEglm6o.js → merge-set-bUqbm3yc.js} +1 -1
  153. package/server/{merge-sync-B95_4in_.js → merge-sync-BJYeOODr.js} +1 -1
  154. package/server/{merge-sync-Do8_q32h.js → merge-sync-VPV28g0g.js} +2 -2
  155. package/server/{merge-train-CKana8EH.js → merge-train-CHopycP0.js} +3 -3
  156. package/server/{merge-train-deps-BgmqwIfA.js → merge-train-deps-D1cOZzy2.js} +4 -4
  157. package/server/{merge-verification-CqnUzGEK.js → merge-verification-BkaOqPsw.js} +4 -4
  158. package/server/{multipart-parser-tdOQDJ3o.js → multipart-parser-duPAfSBw.js} +2 -2
  159. package/server/{no-resume-mode-BWOSZjWd.js → no-resume-mode-Nw29vaFb.js} +11 -8
  160. package/server/node_modules/.package-lock.json +8 -8
  161. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
  162. package/server/node_modules/undici/README.md +5 -0
  163. package/server/node_modules/undici/docs/docs/api/Client.md +4 -0
  164. package/server/node_modules/undici/docs/docs/api/Dispatcher.md +6 -0
  165. package/server/node_modules/undici/docs/docs/api/Interceptors.md +59 -0
  166. package/server/node_modules/undici/docs/docs/api/MockAgent.md +27 -0
  167. package/server/node_modules/undici/docs/docs/api/MockPool.md +28 -1
  168. package/server/node_modules/undici/docs/docs/index.md +5 -0
  169. package/server/node_modules/undici/lib/core/request.js +1 -1
  170. package/server/node_modules/undici/lib/core/util.js +6 -1
  171. package/server/node_modules/undici/lib/dispatcher/agent.js +3 -3
  172. package/server/node_modules/undici/lib/dispatcher/client-h1.js +31 -6
  173. package/server/node_modules/undici/lib/dispatcher/client-h2.js +34 -43
  174. package/server/node_modules/undici/lib/handler/cache-handler.js +93 -5
  175. package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
  176. package/server/node_modules/undici/lib/handler/redirect-handler.js +5 -2
  177. package/server/node_modules/undici/lib/handler/retry-handler.js +6 -4
  178. package/server/node_modules/undici/lib/interceptor/cache.js +21 -4
  179. package/server/node_modules/undici/lib/interceptor/decompress.js +4 -0
  180. package/server/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
  181. package/server/node_modules/undici/lib/mock/mock-utils.js +39 -10
  182. package/server/node_modules/undici/lib/util/cache.js +49 -7
  183. package/server/node_modules/undici/lib/web/fetch/body.js +2 -1
  184. package/server/node_modules/undici/lib/web/fetch/response.js +1 -3
  185. package/server/node_modules/undici/package.json +2 -2
  186. package/server/node_modules/undici/types/client.d.ts +2 -2
  187. package/server/node_modules/undici/types/dispatcher.d.ts +3 -3
  188. package/server/node_modules/undici/types/mock-interceptor.d.ts +5 -1
  189. package/server/{orphan-proposed-reconciler-xklgvNA7.js → orphan-proposed-reconciler-BvKkWMJQ.js} +15 -13
  190. package/server/{orphan-proposed-reconciler-DSvsJ5M7.js → orphan-proposed-reconciler-CTSGcK8p.js} +1 -1
  191. package/server/package-lock.json +9 -9
  192. package/server/package.json +1 -1
  193. package/server/{pan-dir-DOcf6ug3.js → pan-dir-B0c3w0Ya.js} +78 -58
  194. package/server/{paths-DooHpt9p.js → paths-D-xWGHdh.js} +2 -2
  195. package/server/{pickup-CaskQ7j6.js → pickup-DUCLWrJY.js} +17 -16
  196. package/server/{pipeline-membership-1LGRjo-k.js → pipeline-membership-mY3GprlK.js} +186 -67
  197. package/server/{pipeline-notifier-CZsrU_nj.js → pipeline-notifier-BJr8gQX6.js} +1 -1
  198. package/server/{pipeline-notifier-B6FVsYF9.js → pipeline-notifier-BXkJzDC4.js} +2 -2
  199. package/server/{project-pipelines-CtNG_rvs.js → project-pipelines-C0MWUeCU.js} +2 -2
  200. package/server/project-repos-B6GycDh9.js +94 -0
  201. package/server/project-repos-DXKQsc_m.js +3 -0
  202. package/server/projects-vjjcmiN8.js +3 -0
  203. package/server/{prompts-EvhMeeHG.js → prompts-DxzFXuLl.js} +2 -2
  204. package/server/{providers-BDDPULlp.js → providers-qQAwGQDW.js} +7 -7
  205. package/server/{providers-DNSQqy2V.js → providers-u4Ga0jOr.js} +1 -1
  206. package/server/public/assets/{chunk-BO2N2NFS-sym_ufXe.js → chunk-BO2N2NFS-BamJdinX.js} +4 -4
  207. package/server/public/assets/{diagram-OG6HWLK6-CQJPBNBu.js → diagram-OG6HWLK6-DfOB8-w4.js} +1 -1
  208. package/server/public/assets/{dist-DukGS2YZ.js → dist-ByIuzMQW.js} +3 -3
  209. package/server/public/assets/{dist-Bio7THQU.js → dist-D7zYSEA6.js} +1 -1
  210. package/server/public/assets/{ganttDiagram-6RSMTGT7-D4lWwte3.js → ganttDiagram-6RSMTGT7-EdmRyXL3.js} +1 -1
  211. package/server/public/assets/{highlighted-body-OFNGDK62-CaLboCt5.js → highlighted-body-OFNGDK62-MerOfTX8.js} +1 -1
  212. package/server/public/assets/{index-Bwejq-5s.js → index-CWeMerGO.js} +147 -144
  213. package/server/public/assets/index-CenuJ3Cw.css +1 -0
  214. package/server/public/assets/{linear-qUWmMZ-c.js → linear-BBbArIcK.js} +1 -1
  215. package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +1 -0
  216. package/server/public/assets/{pieDiagram-4H26LBE5-C4zYulEm.js → pieDiagram-4H26LBE5-BKIddiJN.js} +1 -1
  217. package/server/public/assets/{prod-C8VtLuWC.js → prod-B8vYiu52.js} +4 -4
  218. package/server/public/assets/{quadrantDiagram-W4KKPZXB-qP04zyZC.js → quadrantDiagram-W4KKPZXB-D6RtoULk.js} +1 -1
  219. package/server/public/assets/{sankeyDiagram-5OEKKPKP-eMPTX_cG.js → sankeyDiagram-5OEKKPKP-CLrCedZX.js} +1 -1
  220. package/server/public/assets/{xychartDiagram-2RQKCTM6-Dme1PIt6.js → xychartDiagram-2RQKCTM6-hznR8DYl.js} +1 -1
  221. package/server/public/index.html +2 -2
  222. package/server/{pull-requests-By_BteaL.js → pull-requests-7N8WKseP.js} +1 -1
  223. package/server/{pull-requests-8z2N1UOV.js → pull-requests-_lHueOHW.js} +13 -11
  224. package/server/{queries-ZABd5aXP.js → queries-CjNIf-Ub.js} +1200 -201
  225. package/server/{rally-i_goYmiA.js → rally-CyWT_lNO.js} +3 -3
  226. package/server/{rally-api-DqKqIMNR.js → rally-api-C8e_1JRi.js} +2 -2
  227. package/server/{rally-api-xHazRk0d.js → rally-api-ClOSd-Tt.js} +1 -1
  228. package/server/{rally-client-COYz1vYR.js → rally-client-lc-nokqr.js} +4 -4
  229. package/server/{rally-client-CGWEHaPd.js → rally-client-sgtVqzNU.js} +1 -1
  230. package/server/rally-zhhtXuDP.js +3 -0
  231. package/server/{reap-terminal-sessions-CaMkFOIH.js → reap-terminal-sessions-7KeHv1R1.js} +1 -1
  232. package/server/{reap-terminal-sessions-DG9eiMVz.js → reap-terminal-sessions-BtHPo6Xc.js} +1 -1
  233. package/server/rebuild-stack-CFvcBHsS.js +4 -0
  234. package/server/{rebuild-stack-JUm0jqYP.js → rebuild-stack-lwtsW0GO.js} +26 -35
  235. package/server/{reconstruct-cache-wU79aCee.js → reconstruct-cache-C3Ui7ojV.js} +6 -6
  236. package/server/record-CN0pj4_5.js +3 -0
  237. package/server/{record-update-D3N6WMFR.js → record-update-bLJxAXH4.js} +1 -1
  238. package/server/record-update-dE1Aw83j.js +310 -0
  239. package/server/{recovery-trip-DkzJSej9.js → recovery-trip-BvRWfUXM.js} +2 -2
  240. package/server/{release-engine-DMINVN8S.js → release-engine-Cx48W7z8.js} +5 -5
  241. package/server/{release-set-DeUSOEHy.js → release-set-CQfuN9-v.js} +3 -3
  242. package/server/{remote-b-c5bOce.js → remote-C_2hasl7.js} +3 -3
  243. package/server/{remote-Dr5kGYSZ.js → remote-ChgimyYa.js} +3 -3
  244. package/server/{remote-agents-Ct_WOyke.js → remote-agents-By1ige5O.js} +6 -6
  245. package/server/{remote-agents-D6O_zETW.js → remote-agents-CA3Ihlxj.js} +1 -1
  246. package/server/{remote-completion-Dca3hAaa.js → remote-completion-fVe9e_3u.js} +12 -12
  247. package/server/resume-BFv1PGpA.js +3 -0
  248. package/server/{review-agent-CThvgK2r.js → review-agent-CIGOQYBD.js} +29 -25
  249. package/server/{review-agent-CCum8sGe.js → review-agent-DNboMyW4.js} +1 -1
  250. package/server/{review-artifacts-CXywD0F2.js → review-artifacts-nRDPuMxd.js} +5 -5
  251. package/server/{review-context-OYfKUprb.js → review-context-2uj-YQ8J.js} +70 -26
  252. package/server/review-status-btEYlaxA.js +3 -0
  253. package/server/{review-status-enrichment-crNAtIpL.js → review-status-enrichment-Dci-ZwEt.js} +3 -3
  254. package/server/{review-status-DFRjDFef.js → review-status-kZj_KyCk.js} +77 -28
  255. package/server/{review-status-sync-DpAMD_WO.js → review-status-sync-BTOpxtTC.js} +10 -5
  256. package/server/{review-status-sync-D60PJWNL.js → review-status-sync-DSDK3OMy.js} +1 -1
  257. package/server/{review-verdict-feedback-CpUZl5aE.js → review-verdict-feedback-CCjVA7Uk.js} +6 -6
  258. package/server/{review-verdict-feedback-JImjut0z.js → review-verdict-feedback-CTd4QMBu.js} +1 -1
  259. package/server/{rollup-CZ02qgxk.js → rollup-BKQC7jp4.js} +1 -1
  260. package/server/{rollup-SyuF09e4.js → rollup-FGsKki9R.js} +8 -8
  261. package/server/{scanner-Br0Z5S6R.js → scanner-CnqEZeDy.js} +45 -14
  262. package/server/{sequence-io-fxU0DlwW.js → sequence-io-D909zgeH.js} +4 -4
  263. package/server/{sequencer-agent-B5YC5XVP.js → sequencer-agent-CzkcK6P5.js} +5 -5
  264. package/server/server.js +2961 -919
  265. package/server/{service-Bagb90KZ.js → service-CLeAoU6G.js} +55 -54
  266. package/server/{session-fork-BqQxd-V6.js → session-fork-CHI1XvL9.js} +2 -2
  267. package/server/{session-history-XdS0JKp3.js → session-history-BT3IvqhC.js} +4 -4
  268. package/server/settings-66A6uvIA.js +2 -0
  269. package/server/{settings-BNbocWOg.js → settings-BTMvpNFU.js} +3 -3
  270. package/server/{settings-uLc6DEYI.js → settings-C0zgxOGf.js} +2 -2
  271. package/server/{shadow-engineering-D4X_s3fA.js → shadow-engineering-BJfgm-hX.js} +2 -2
  272. package/server/{shadow-state-C_NkP-sa.js → shadow-state-7a-524T8.js} +2 -2
  273. package/server/{shadow-state-CbvsN3qG.js → shadow-state-DnDyjujH.js} +1 -1
  274. package/server/{shadow-utils-CYMRPeRT.js → shadow-utils-Db3oroFG.js} +2 -2
  275. package/server/{ship-log-__QtAFXG.js → ship-log-D9MlVzYU.js} +1 -1
  276. package/server/{smart-compaction-jdMkG1vo.js → smart-compaction-CV2ukKND.js} +1 -1
  277. package/server/{smart-compaction-CLZOWin1.js → smart-compaction-KCYScAU1.js} +7 -7
  278. package/server/{spawn-planning-session-D5OXo8pT.js → spawn-planning-session-DKpdFyOC.js} +35 -27
  279. package/server/{spawn-planning-session-8D6mE033.js → spawn-planning-session-qUC2VWu3.js} +1 -1
  280. package/server/{specialist-completion-CqmduO92.js → specialist-completion-Ky9wCDpb.js} +1 -1
  281. package/server/{specialist-context-CJ-QjFR-.js → specialist-context-Bn3dCGS2.js} +5 -5
  282. package/server/{specialist-handoff-logger-Dnjlwt7g.js → specialist-handoff-logger-CMEwYxa2.js} +2 -2
  283. package/server/{specialist-logs-CQnKzuZs.js → specialist-logs-C5p8G7tx.js} +3 -3
  284. package/server/{specialists-Bg9v4z3F.js → specialists-CC4r-c2s.js} +1015 -460
  285. package/server/{specialists-D0gGXMZx.js → specialists-CShuVGWT.js} +1 -1
  286. package/server/specialists-DM6bWjsi.js +3 -0
  287. package/server/{specialists-CwZHb5cb.js → specialists-jiuuyVkp.js} +66 -74
  288. package/server/specs-C8Wsn2XO.js +3 -0
  289. package/server/{src-BMMoA_ba.js → src-CXmtj0im.js} +6 -6
  290. package/server/{src-Bqdtd6po.js → src-CdmnTM2m.js} +5 -5
  291. package/server/{src-k039WVYY.js → src-DtcUOZCq.js} +112 -18
  292. package/server/stack-health-Bn3o8FBX.js +3 -0
  293. package/server/{stack-health-C-ifC7b0.js → stack-health-DxSdG9cW.js} +63 -9
  294. package/server/{stale-task-claims-L7pJkQFL.js → stale-task-claims-KJKxxiiQ.js} +4 -4
  295. package/server/{staleness-_Tr-GwdA.js → staleness-CT34nwr9.js} +1 -1
  296. package/server/{staleness-BID1BKdr.js → staleness-DPm7ClwA.js} +15 -3
  297. package/server/{state-home-CONQvZR0.js → state-home-Cn_Qu8IX.js} +96 -44
  298. package/server/{state-migrate-BeBW0KXA.js → state-migrate-BGg2ZaOt.js} +12 -3
  299. package/server/{stuck-remediation-CKnIryGT.js → stuck-remediation-DYuPRYYw.js} +307 -26
  300. package/server/{stuck-remediation-CsGD5Ksb.js → stuck-remediation-s9_2qfi6.js} +1 -1
  301. package/server/{substrate-bug-weights-service-CpIZILj9.js → substrate-bug-weights-service-B-FwCs5V.js} +3 -3
  302. package/server/{summary-fork-bX6ax6X7.js → summary-fork-D1RAk9rJ.js} +78 -12
  303. package/server/{summary-fork-agEMsPSo.js → summary-fork-DpcxN9tf.js} +2 -2
  304. package/server/supervisor/{injection-budget-C1iPirFS.js → injection-budget-Csw5tqfJ.js} +2 -41
  305. package/server/supervisor/pty-supervisor.js +2 -1
  306. package/server/supervisor/pty-token-x-ea28Us.js +43 -0
  307. package/server/supervisor-FTJAIsAK.js +2 -0
  308. package/server/{supervisor-Ctt4eRYz.js → supervisor-wM4ooB5O.js} +3 -3
  309. package/server/{swarm-readiness-DdmJVX7y.js → swarm-readiness-DlP_UjHq.js} +4 -4
  310. package/server/{system-prerequisites-DSXBvffY.js → system-prerequisites-DUDj1YHf.js} +56 -29
  311. package/server/{teardown-workspace-DDCf5n-a.js → teardown-workspace-DeTTImn-.js} +15 -15
  312. package/server/{test-agent-queue-BJZ9Nfcc.js → test-agent-queue-MbxX5vqq.js} +7 -7
  313. package/server/{test-verdict-Cp5tljlJ.js → test-verdict-bWYBtqBg.js} +1 -1
  314. package/server/{test-verdict-D_-sXIz_.js → test-verdict-gscuksPv.js} +1 -1
  315. package/server/{tldr-daemon-B8_oT5gx.js → tldr-daemon-BYFkts95.js} +1 -1
  316. package/server/{tldr-daemon-BQFmmFp0.js → tldr-daemon-C-69c3OI.js} +2 -2
  317. package/server/tmux-B6z7h_vZ.js +3 -0
  318. package/server/{tmux-L5LgvGLp.js → tmux-R7N7y-Mh.js} +76 -44
  319. package/server/{token-BkQLy4yS.js → token-BK6t8BIT.js} +2 -2
  320. package/server/token-util-DuPuNriz.js +3 -0
  321. package/server/{token-util-DI8sGlmF.js → token-util-DxXu-vd1.js} +1 -1
  322. package/server/{tracker-config-DdT-nUAM.js → tracker-config-G6latr8C.js} +2 -2
  323. package/server/{tracker-utils-DV3h1FYG.js → tracker-utils-B4ylXZQK.js} +1 -1
  324. package/server/{tracker-utils-CawsPSS2.js → tracker-utils-DHv5pSDT.js} +2 -2
  325. package/server/{traefik-connect-C6mJckNs.js → traefik-connect-Df2uXPsQ.js} +1 -1
  326. package/server/{tunnel-IdK1iTHx.js → tunnel-CDVKJpRv.js} +3 -3
  327. package/server/{tunnel-BIFl98rc.js → tunnel-DGdUkGoZ.js} +1 -1
  328. package/server/{types-7-GnJn0t.js → types-5M0lupud.js} +1 -1
  329. package/server/{uat-train-0Ujk8GCv.js → uat-train-B05BWkp-.js} +1 -1
  330. package/server/{uat-train-j0cPeMSj.js → uat-train-DDSrSoV1.js} +28 -28
  331. package/server/validate-IfDGkaVR.js +177 -0
  332. package/server/{validation-DcAgXTQp.js → validation-CC9OPqJZ.js} +1 -1
  333. package/server/{validation-CabEISJT.js → validation-Dw1pzDzr.js} +259 -9
  334. package/server/{verification-artifact-Ck1tefmz.js → verification-artifact-B3itKTxu.js} +1 -1
  335. package/server/{verification-artifact-BuTA1QbL.js → verification-artifact-TVFSz_q1.js} +1 -1
  336. package/server/{verification-runner-DlJezzef.js → verification-runner-BW4HOKAz.js} +1 -1
  337. package/server/{verification-runner-FiuAZ-H2.js → verification-runner-CkgX6EtI.js} +174 -124
  338. package/server/{vtt-parser-BnRsYzcz.js → vtt-parser-DYPbKcIJ.js} +1 -1
  339. package/server/{work-agent-prompt-DLthEPAq.js → work-agent-prompt-Du8Vh2aJ.js} +13 -13
  340. package/server/workflows-BQu4RFQ-.js +2 -0
  341. package/server/{workflows-BZNNYkGC.js → workflows-mbQzh6mQ.js} +39 -77
  342. package/server/{workspace-3IC-UkAi.js → workspace--8tnhDI0.js} +1 -1
  343. package/server/{workspace-D9ppycdg.js → workspace-BPUws1-_.js} +3 -3
  344. package/server/{workspace-config-Bigl_-Lk.js → workspace-config-CIVWZOQr.js} +1 -1
  345. package/server/{workspace-manager-ClkCIWTe.js → workspace-manager-CBhNdzE4.js} +76 -18
  346. package/server/workspace-manager-CWT55qeI.js +3 -0
  347. package/server/{workspace-metadata-BE0efUv_.js → workspace-metadata-BzHnwwX4.js} +1 -1
  348. package/server/{workspace-metadata-tiSRIWJP.js → workspace-metadata-_WygnyoX.js} +2 -2
  349. package/server/{workspaces-CFPcL0vl.js → workspaces-Do_9J0LQ.js} +309 -124
  350. package/sync-sources/agents/pan-inspect-agent.md +1 -1
  351. package/sync-sources/agents/pan-merge-agent.md +1 -1
  352. package/sync-sources/agents/pan-planning-agent.md +4 -4
  353. package/sync-sources/agents/pan-work-agent.md +1 -1
  354. package/sync-sources/dev-skills/pan-commit/SKILL.md +1 -1
  355. package/sync-sources/dev-skills/test-specialist-workflow/SKILL.md +1 -1
  356. package/sync-sources/hooks/record-cost-event.js +369 -75
  357. package/sync-sources/hooks/session-start-hook +7 -0
  358. package/sync-sources/hooks/work-agent-stop-hook +1 -1
  359. package/sync-sources/rules/per-bead-durability.md +1 -1
  360. package/sync-sources/rules/prd-authoring.md +1 -1
  361. package/sync-sources/skills/feature-work/SKILL.md +1 -1
  362. package/sync-sources/skills/okf/README.md +11 -3
  363. package/sync-sources/skills/okf/SKILL.md +12 -1
  364. package/sync-sources/skills/okf/docs/USAGE.md +15 -0
  365. package/sync-sources/skills/okf/references/overdeck.md +28 -0
  366. package/sync-sources/skills/pan/SKILL.md +2 -2
  367. package/sync-sources/skills/pan-admin-config/SKILL.md +1 -0
  368. package/sync-sources/skills/pan-approve/SKILL.md +1 -1
  369. package/sync-sources/skills/pan-close/SKILL.md +1 -1
  370. package/sync-sources/skills/pan-doctor/SKILL.md +1 -1
  371. package/sync-sources/skills/pan-flywheel/SKILL.md +18 -1
  372. package/sync-sources/skills/pan-knowledge/SKILL.md +10 -0
  373. package/sync-sources/skills/pan-new-project/SKILL.md +9 -11
  374. package/sync-sources/skills/pan-orders/SKILL.md +33 -0
  375. package/sync-sources/skills/pan-oversee/SKILL.md +5 -5
  376. package/sync-sources/skills/pan-plan/SKILL.md +6 -6
  377. package/sync-sources/skills/pan-quickstart/SKILL.md +1 -1
  378. package/sync-sources/skills/pan-recap/SKILL.md +2 -2
  379. package/sync-sources/skills/pan-review/SKILL.md +1 -1
  380. package/sync-sources/skills/pan-start/SKILL.md +7 -3
  381. package/sync-sources/skills/pan-swarm/SKILL.md +1 -1
  382. package/sync-sources/skills/pan-sync/SKILL.md +1 -1
  383. package/sync-sources/skills/pan-task/SKILL.md +2 -2
  384. package/sync-sources/skills/pan-wipe/SKILL.md +2 -2
  385. package/sync-sources/skills/pipeline-list/SKILL.md +1 -1
  386. package/sync-sources/skills/pipeline-status/SKILL.md +2 -2
  387. package/sync-sources/skills/plan/SKILL.md +11 -11
  388. package/sync-sources/skills/write-vbrief/SKILL.md +7 -282
  389. package/sync-sources/skills/write-xbrief/SKILL.md +295 -0
  390. package/sync-sources/templates/claude-md/sections/warnings.md +1 -1
  391. package/sync-sources/templates/traefik/dynamic/overdeck.yml.template +10 -0
  392. package/server/agent-state-Co5Sy2Fw.js +0 -3
  393. package/server/agents-DyHKlq1I.js +0 -3
  394. package/server/cli-BRORS9qY.js +0 -3
  395. package/server/codex-DNyiQDKW.js +0 -3
  396. package/server/context-layers-15gDOk20.js +0 -165
  397. package/server/context-layers-DlQKkHH2.js +0 -4
  398. package/server/deacon-swarm-CV54eNmU.js +0 -2
  399. package/server/dist-j64RzSrQ.js +0 -3
  400. package/server/flywheel-6WHU4O7A.js +0 -207
  401. package/server/flywheel-COR0mbRI.js +0 -522
  402. package/server/flywheel-Ctr5uuvo.js +0 -2
  403. package/server/forge-B0_opi-V.js +0 -2
  404. package/server/git-utils-CsKGnzFA.js +0 -3
  405. package/server/hume-BmhvfVbV.js +0 -3
  406. package/server/inspect-agent-Dq0z1k3H.js +0 -2
  407. package/server/layers-Cp1To4L8.js +0 -93
  408. package/server/lifecycle-io-DmY2qwCn.js +0 -3
  409. package/server/merge-blockers-BYjeXrVN.js +0 -41
  410. package/server/merge-ops-DwWCkSgo.js +0 -2
  411. package/server/merge-set-DiISXcC-.js +0 -139
  412. package/server/projects-BKkwpH6q.js +0 -3
  413. package/server/public/assets/index-Bdc4V9ba.css +0 -1
  414. package/server/public/assets/mermaid-GHXKKRXX-B5v_r7cI.js +0 -1
  415. package/server/rally-OSJXdiHK.js +0 -3
  416. package/server/rebuild-stack-CKjJAI8L.js +0 -3
  417. package/server/record-rwK-nKv_.js +0 -3
  418. package/server/record-update-Crz74r-6.js +0 -168
  419. package/server/resume-wZZsWtzz.js +0 -3
  420. package/server/review-status-Bnh-rdkY.js +0 -3
  421. package/server/settings-BlUsVaUc.js +0 -2
  422. package/server/specialists-Dqe6_HE5.js +0 -3
  423. package/server/specs-BhOKBzqk.js +0 -3
  424. package/server/stack-health-Bd06frFn.js +0 -3
  425. package/server/supervisor-COVHrBTg.js +0 -2
  426. package/server/tmux-BAvtac_u.js +0 -3
  427. package/server/token-util-BArZLN6w.js +0 -3
  428. package/server/workflows-C4mR0Reb.js +0 -2
  429. package/server/workspace-manager-B1WOfKvB.js +0 -3
@@ -0,0 +1,121 @@
1
+ import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
+ import { mr as init_errors } from "./config-yaml-DySPNmKN.js";
3
+ import "effect";
4
+ import { mkdirSync } from "fs";
5
+ import { join } from "path";
6
+ import "fs/promises";
7
+ //#region ../../lib/xbrief/lifecycle.ts
8
+ /**
9
+ * xBRIEF Lifecycle Foundation
10
+ *
11
+ * Canonical xBRIEF documents live in `specs/` on `overdeck-state`, with
12
+ * lifecycle represented by `plan.status`. The `./vbrief/` directory helpers
13
+ * below remain only for legacy lifecycle compatibility:
14
+ *
15
+ * ./vbrief/proposed/
16
+ * ./vbrief/active/
17
+ * ./vbrief/completed/
18
+ * ./vbrief/cancelled/
19
+ *
20
+ * Canonical filenames are issue-keyed: `YYYY-MM-DD-<ISSUE-ID>-<slug>.xbrief.json`,
21
+ * where the date is the immutable creation date. Readers also accept the legacy
22
+ * `.vbrief.json` extension.
23
+ */
24
+ /**
25
+ * Slugify an arbitrary string for use in an xBRIEF filename. Lowercases,
26
+ * replaces non-alphanumeric runs with single dashes, trims leading/trailing
27
+ * dashes, and collapses repeats.
28
+ */
29
+ function slugify(input) {
30
+ return input.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").replace(/-+/g, "-") || "plan";
31
+ }
32
+ /**
33
+ * Format a JS Date (or ISO string / YYYY-MM-DD) as YYYY-MM-DD in UTC.
34
+ */
35
+ function formatDate(value) {
36
+ const d = typeof value === "string" ? new Date(value) : value;
37
+ if (Number.isNaN(d.getTime())) throw new Error(`Invalid date: ${String(value)}`);
38
+ return `${d.getUTCFullYear().toString().padStart(4, "0")}-${(d.getUTCMonth() + 1).toString().padStart(2, "0")}-${d.getUTCDate().toString().padStart(2, "0")}`;
39
+ }
40
+ /**
41
+ * Generate the canonical xBRIEF filename for an issue.
42
+ *
43
+ * Format: `YYYY-MM-DD-<ISSUE-ID>-<slug>.xbrief.json`
44
+ * Example: `2026-05-03-PAN-946-xbrief-lifecycle.xbrief.json`
45
+ *
46
+ * @param issueId - Issue identifier in the form `PREFIX-NUMBER` (e.g. `PAN-946`).
47
+ * Normalized to uppercase in the filename — issue IDs are
48
+ * uppercase by convention, and case-preservation let a
49
+ * lowercased caller produce a duplicate, case-colliding
50
+ * spec file (PAN-1050).
51
+ * @param slug - Free-form slug (will be normalized via slugify).
52
+ * @param createdDate - Date or ISO string used for the YYYY-MM-DD prefix.
53
+ * Defaults to "now". Always interpreted in UTC so filenames
54
+ * are stable across timezones.
55
+ */
56
+ function generateXBriefFilename(issueId, slug, createdDate = /* @__PURE__ */ new Date()) {
57
+ if (!/^[A-Za-z][A-Za-z0-9]*-\d+$/.test(issueId)) throw new Error(`Invalid issue ID for xBRIEF filename: ${issueId} (expected e.g. PAN-946)`);
58
+ const canonicalIssueId = issueId.toUpperCase();
59
+ return `${formatDate(createdDate)}-${canonicalIssueId}-${slugify(slug)}${XBRIEF_FILENAME_SUFFIX}`;
60
+ }
61
+ /** Return whether a filename uses a supported xBRIEF document extension. */
62
+ function isXBriefFilename(filename) {
63
+ return XBRIEF_FILENAME_SUFFIXES.some((suffix) => filename.endsWith(suffix));
64
+ }
65
+ /**
66
+ * Parse a canonical xBRIEF filename back into its parts. Both the canonical
67
+ * `.xbrief.json` and legacy `.vbrief.json` extensions are accepted. Returns
68
+ * null if the filename doesn't match the convention so callers can ignore
69
+ * stray files.
70
+ */
71
+ function parseXBriefFilename(filename) {
72
+ if (!isXBriefFilename(filename)) return null;
73
+ const suffix = XBRIEF_FILENAME_SUFFIXES.find((candidate) => filename.endsWith(candidate));
74
+ if (!suffix) return null;
75
+ const match = filename.slice(0, -suffix.length).match(FILENAME_STEM_RE);
76
+ if (!match) return null;
77
+ return {
78
+ date: match[1],
79
+ issueId: match[2],
80
+ slug: match[3]
81
+ };
82
+ }
83
+ /**
84
+ * Resolve the absolute path of a specific lifecycle directory under a project's
85
+ * xBRIEF root. Pure path math — does not check existence or create dirs.
86
+ *
87
+ * @param legacyRootDirname - Override the default "vbrief" dirname (from projects.yaml `vbrief_dir`).
88
+ */
89
+ function resolveXBriefDir(projectRoot, lifecycleDir, legacyRootDirname) {
90
+ return join(projectRoot, legacyRootDirname || "vbrief", lifecycleDir);
91
+ }
92
+ /**
93
+ * Ensure the xBRIEF lifecycle directories exist under the given project root.
94
+ * Returns the absolute path to the xBRIEF root. Idempotent.
95
+ *
96
+ * @param legacyRootDirname - Override the default "vbrief" dirname (from projects.yaml `vbrief_dir`).
97
+ */
98
+ function ensureXBriefDirsSync(projectRoot, legacyRootDirname) {
99
+ const root = join(projectRoot, legacyRootDirname || "vbrief");
100
+ mkdirSync(root, { recursive: true });
101
+ for (const dir of LEGACY_VBRIEF_LIFECYCLE_DIRS) mkdirSync(join(root, dir), { recursive: true });
102
+ return root;
103
+ }
104
+ var LEGACY_VBRIEF_LIFECYCLE_DIRS, XBRIEF_FILENAME_SUFFIX, LEGACY_VBRIEF_FILENAME_SUFFIX, XBRIEF_FILENAME_SUFFIXES, FILENAME_STEM_RE;
105
+ var init_lifecycle = __esmMin((() => {
106
+ init_errors();
107
+ LEGACY_VBRIEF_LIFECYCLE_DIRS = [
108
+ "proposed",
109
+ "active",
110
+ "completed",
111
+ "cancelled"
112
+ ];
113
+ XBRIEF_FILENAME_SUFFIX = ".xbrief.json";
114
+ LEGACY_VBRIEF_FILENAME_SUFFIX = ".vbrief.json";
115
+ XBRIEF_FILENAME_SUFFIXES = [XBRIEF_FILENAME_SUFFIX, LEGACY_VBRIEF_FILENAME_SUFFIX];
116
+ FILENAME_STEM_RE = /^(\d{4}-\d{2}-\d{2})-([A-Za-z][A-Za-z0-9]*-\d+)-([a-z0-9-]+)$/;
117
+ }));
118
+ //#endregion
119
+ export { generateXBriefFilename as a, parseXBriefFilename as c, ensureXBriefDirsSync as i, resolveXBriefDir as l, LEGACY_VBRIEF_LIFECYCLE_DIRS as n, init_lifecycle as o, XBRIEF_FILENAME_SUFFIX as r, isXBriefFilename as s, LEGACY_VBRIEF_FILENAME_SUFFIX as t, slugify as u };
120
+
121
+ //# sourceMappingURL=lifecycle-yPd___5E.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { a as init_tracker_config, n as getLinearApiKey } from "./tracker-config-DdT-nUAM.js";
2
+ import { a as init_tracker_config, n as getLinearApiKey } from "./tracker-config-G6latr8C.js";
3
3
  import { a as RateLimited, c as TrackerNotConfigured, d as init_typed_errors, r as IssueNotFound, s as TrackerApiError } from "./typed-errors-2BTMxkZq.js";
4
4
  import { Context, Duration, Effect, Layer, Schedule } from "effect";
5
5
  import { LinearClient } from "@linear/sdk";
@@ -192,4 +192,4 @@ var init_linear_client = __esmMin((() => {
192
192
  //#endregion
193
193
  export { init_linear_client as i, LinearClientLive as n, LinearClientOptionalLive as r, LinearClient$1 as t };
194
194
 
195
- //# sourceMappingURL=linear-client-DsFkIxee.js.map
195
+ //# sourceMappingURL=linear-client-BsuUvkdA.js.map
@@ -1,3 +1,3 @@
1
- import { i as init_linear_client, n as LinearClientLive, r as LinearClientOptionalLive, t as LinearClient } from "./linear-client-DsFkIxee.js";
1
+ import { i as init_linear_client, n as LinearClientLive, r as LinearClientOptionalLive, t as LinearClient } from "./linear-client-BsuUvkdA.js";
2
2
  init_linear_client();
3
3
  export { LinearClient, LinearClientLive, LinearClientOptionalLive };
@@ -1,4 +1,4 @@
1
- import { a as runMemoryFtsTransactionSync, i as runMemoryFtsStatementSync, n as getMemoryFtsDatabaseSync, r as init_fts_operations, t as closeMemoryFtsDatabasesInProcess } from "./fts-operations-7d_RkmWp.js";
1
+ import { a as runMemoryFtsTransactionSync, i as runMemoryFtsStatementSync, n as getMemoryFtsDatabaseSync, r as init_fts_operations, t as closeMemoryFtsDatabasesInProcess } from "./fts-operations-CqY6zl-i.js";
2
2
  import { parentPort } from "node:worker_threads";
3
3
  //#region ../../lib/memory/fts-worker.ts
4
4
  init_fts_operations();
@@ -1,2 +1,2 @@
1
- import { A as UatNotPromotable, B as readyForMerge, C as RepoMergeStatus, D as UatMember, E as UatGenerationNotFound, F as enqueueMerge, I as getAllActiveQueues, L as getCurrentMerge, M as UatStatus, N as WorkspaceType, O as UatMemberRole, P as dequeueMerge, R as getQueueForProject, S as RepoKey, T as UatGenerationFilter, _ as NotReadyForMerge, a as ForgeMergeFailed, b as QueueView, c as MergeInProgress, d as MergeSet, f as MergeSetNotFound, g as MergeWriterLive, h as MergeWriter, i as AutoMergeStatus, j as UatResolution, k as UatName, l as MergeResolver, m as MergeSetStatus, n as AutoMergeFilter, o as GateStatus, p as MergeSetRepo, r as AutoMergeNotFound, s as MergeApi, t as AutoMerge, u as MergeResolverLive, v as ProjectKey, w as UatGeneration, x as RebaseStatus, y as QueueEntryStatus, z as markMergeProcessing } from "./merge-C1t-bspg.js";
1
+ import { A as UatNotPromotable, B as readyForMerge, C as RepoMergeStatus, D as UatMember, E as UatGenerationNotFound, F as enqueueMerge, I as getAllActiveQueues, L as getCurrentMerge, M as UatStatus, N as WorkspaceType, O as UatMemberRole, P as dequeueMerge, R as getQueueForProject, S as RepoKey, T as UatGenerationFilter, _ as NotReadyForMerge, a as ForgeMergeFailed, b as QueueView, c as MergeInProgress, d as MergeSet, f as MergeSetNotFound, g as MergeWriterLive, h as MergeWriter, i as AutoMergeStatus, j as UatResolution, k as UatName, l as MergeResolver, m as MergeSetStatus, n as AutoMergeFilter, o as GateStatus, p as MergeSetRepo, r as AutoMergeNotFound, s as MergeApi, t as AutoMerge, u as MergeResolverLive, v as ProjectKey, w as UatGeneration, x as RebaseStatus, y as QueueEntryStatus, z as markMergeProcessing } from "./merge-CefQNAnq.js";
2
2
  export { AutoMerge, AutoMergeFilter, AutoMergeNotFound, AutoMergeStatus, ForgeMergeFailed, GateStatus, MergeApi, MergeInProgress, MergeResolver, MergeResolverLive, MergeSet, MergeSetNotFound, MergeSetRepo, MergeSetStatus, MergeWriter, MergeWriterLive, NotReadyForMerge, ProjectKey, QueueEntryStatus, QueueView, RebaseStatus, RepoKey, RepoMergeStatus, UatGeneration, UatGenerationFilter, UatGenerationNotFound, UatMember, UatMemberRole, UatName, UatNotPromotable, UatResolution, UatStatus, WorkspaceType, dequeueMerge, enqueueMerge, getAllActiveQueues, getCurrentMerge, getQueueForProject, markMergeProcessing, readyForMerge };
@@ -1,5 +1,5 @@
1
- import { C as inArray, _ as integer, a as EventBus, b as and, d as getOverdeckDatabaseSync, f as init_infra, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, s as Forge, v as init_drizzle_orm, x as eq } from "./infra-D4iNWMA5.js";
2
- import { n as init_issues, t as IssueId } from "./issues-pDW9VUNz.js";
1
+ import { C as inArray, _ as integer, a as EventBus, b as and, d as getOverdeckDatabaseSync, f as init_infra, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, s as Forge, v as init_drizzle_orm, x as eq } from "./infra-BEqFxlJc.js";
2
+ import { n as init_issues, t as IssueId } from "./issues-BMmP_77e.js";
3
3
  import { Context, Effect, Layer, Schema } from "effect";
4
4
  import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
5
5
  //#region ../../lib/overdeck/merge.ts
@@ -700,4 +700,4 @@ function getAllActiveQueues() {
700
700
  //#endregion
701
701
  export { UatNotPromotable as A, readyForMerge as B, RepoMergeStatus as C, UatMember as D, UatGenerationNotFound as E, enqueueMerge as F, getAllActiveQueues as I, getCurrentMerge as L, UatStatus as M, WorkspaceType as N, UatMemberRole as O, dequeueMerge as P, getQueueForProject as R, RepoKey as S, UatGenerationFilter as T, NotReadyForMerge as _, ForgeMergeFailed as a, QueueView as b, MergeInProgress as c, MergeSet as d, MergeSetNotFound as f, MergeWriterLive as g, MergeWriter as h, AutoMergeStatus as i, UatResolution as j, UatName as k, MergeResolver as l, MergeSetStatus as m, AutoMergeFilter as n, GateStatus as o, MergeSetRepo as p, AutoMergeNotFound as r, MergeApi as s, AutoMerge as t, MergeResolverLive as u, ProjectKey as v, UatGeneration as w, RebaseStatus as x, QueueEntryStatus as y, markMergeProcessing as z };
702
702
 
703
- //# sourceMappingURL=merge-C1t-bspg.js.map
703
+ //# sourceMappingURL=merge-CefQNAnq.js.map
@@ -1,14 +1,14 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Ar as VcsError, Hn as init_projects, Jn as loadProjectsConfigSync, Sr as GitError, Vr as OVERDECK_HOME, f as loadConfigSync, ii as init_paths, jr as init_errors, t as init_config_yaml } from "./config-yaml-ig8Nwtiw.js";
2
+ import { Tn as init_projects, Vr as init_paths, ar as GitError, f as loadConfigSync, jn as loadProjectsConfigSync, mr as init_errors, pr as VcsError, t as init_config_yaml, wr as OVERDECK_HOME } from "./config-yaml-DySPNmKN.js";
3
3
  import { a as init_activity_logger, n as emitActivityEntrySync, r as emitActivityTtsSync } from "./activity-logger-DDlOIAML.js";
4
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-D4iNWMA5.js";
5
- import { D as killSession, R as sendKeys, V as sessionExists, i as capturePane, j as listSessionNames, w as init_tmux } from "./tmux-L5LgvGLp.js";
6
- import { c as init_review_status, f as markWorkspaceStuck, s as getReviewStatusSync, y as setReviewStatusSync } from "./review-status-DFRjDFef.js";
7
- import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-CawsPSS2.js";
8
- import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-B-CI9hgE.js";
9
- import { r as verifyMergedBeforeLifecycle, t as init_merge_verification } from "./merge-verification-CqnUzGEK.js";
10
- import { i as init_git_utils, t as cleanupStaleLocks } from "./git-utils-Cc3FHDKd.js";
11
- import { i as runQualityGates, n as init_validation } from "./validation-CabEISJT.js";
4
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BEqFxlJc.js";
5
+ import { D as killSession, H as sessionExists, M as listSessionNames, i as capturePane, w as init_tmux, z as sendKeys } from "./tmux-R7N7y-Mh.js";
6
+ import { b as setReviewStatusSync, c as getReviewStatusSync, l as init_review_status, p as markWorkspaceStuck } from "./review-status-kZj_KyCk.js";
7
+ import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-DHv5pSDT.js";
8
+ import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-DKZFMbFt.js";
9
+ import { i as init_git_utils, t as cleanupStaleLocks } from "./git-utils-CRw2zLPC.js";
10
+ import { r as verifyMergedBeforeLifecycle, t as init_merge_verification } from "./merge-verification-BkaOqPsw.js";
11
+ import { i as runQualityGates, n as init_validation } from "./validation-Dw1pzDzr.js";
12
12
  import { Data, Effect } from "effect";
13
13
  import { appendFileSync, existsSync, mkdirSync } from "fs";
14
14
  import { basename, dirname, join, relative } from "path";
@@ -19,7 +19,7 @@ import { promisify } from "util";
19
19
  //#region ../../lib/cloister/merge-agent-step0.ts
20
20
  async function shouldRestartForPostMerge(repoRoot, dependencies = {}) {
21
21
  if ((await (dependencies.computeStaleness ?? (async () => {
22
- const [{ getBuildInfo }, { computeBuildStaleness }] = await Promise.all([import("./build-info-BRpqQvNd.js"), import("./staleness-_Tr-GwdA.js")]);
22
+ const [{ getBuildInfo }, { computeBuildStaleness }] = await Promise.all([import("./build-info-CZk_TITh.js"), import("./staleness-CT34nwr9.js")]);
23
23
  return computeBuildStaleness({
24
24
  repoRoot,
25
25
  buildCommit: getBuildInfo().buildCommit
@@ -28,7 +28,7 @@ async function shouldRestartForPostMerge(repoRoot, dependencies = {}) {
28
28
  (dependencies.log ?? console.log)("Running build already contains origin/main build inputs — skipping deploy restart");
29
29
  return false;
30
30
  }
31
- const reason = await (dependencies.getBlockReason ?? (async () => (await import("./deploy-window-7ZYHh7Zp.js")).getDeployBlockReason()))();
31
+ const reason = await (dependencies.getBlockReason ?? (async () => (await import("./deploy-window-DkZraDyj.js")).getDeployBlockReason()))();
32
32
  if (reason) {
33
33
  (dependencies.log ?? console.log)(`Deploy window unsafe (${reason}) — deferring deploy to the staleness patrol`);
34
34
  return false;
@@ -599,7 +599,7 @@ async function notifyTldrDaemon(projectPath, _sourceBranch) {
599
599
  return;
600
600
  }
601
601
  console.log(`[merge-agent] Found ${changedFiles.length} changed source files to reindex`);
602
- const { getTldrDaemonServiceSync } = await import("./tldr-daemon-B8_oT5gx.js");
602
+ const { getTldrDaemonServiceSync } = await import("./tldr-daemon-BYFkts95.js");
603
603
  const tldrService = getTldrDaemonServiceSync(projectPath, venvPath);
604
604
  if (!(await tldrService.getStatus()).running) {
605
605
  console.log(`[merge-agent] TLDR daemon not running, skipping notification`);
@@ -629,7 +629,7 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
629
629
  }
630
630
  const run = (async () => {
631
631
  try {
632
- const { findSpecByIssue } = await import("./specs-BhOKBzqk.js");
632
+ const { findSpecByIssue } = await import("./specs-C8Wsn2XO.js");
633
633
  const spec = await Effect.runPromise(findSpecByIssue(projectPath, issueId));
634
634
  if (spec && (spec.status === "completed" || spec.status === "cancelled")) {
635
635
  console.log(`[merge-agent] ${issueId} is closed out (spec ${spec.status}) — skipping post-merge lifecycle`);
@@ -691,7 +691,7 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
691
691
  }
692
692
  console.log(`[merge-agent] Running post-merge verify handoff for ${issueId}`);
693
693
  try {
694
- const { cleanupMergedLabels } = await import("./label-cleanup-DPwiZlWo.js");
694
+ const { cleanupMergedLabels } = await import("./label-cleanup-B0UJwnv5.js");
695
695
  const ghResolved = resolveGitHubIssueSync(issueId);
696
696
  const labelCtx = ghResolved.isGitHub ? {
697
697
  issueId,
@@ -740,8 +740,8 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
740
740
  console.warn(`[merge-agent] Async post-merge release trigger failed for ${issueId}: ${err instanceof Error ? err.message : String(err)}`);
741
741
  });
742
742
  try {
743
- const { setAgentPaused, getAgentState } = await import("./agents-DyHKlq1I.js");
744
- const { killSession, sessionExists } = await import("./tmux-BAvtac_u.js");
743
+ const { setAgentPaused, getAgentState } = await import("./agents-wi9NWzs2.js");
744
+ const { killSession, sessionExists } = await import("./tmux-B6z7h_vZ.js");
745
745
  const issueLower = issueId.toLowerCase();
746
746
  const reason = "awaiting close-out (verify on main)";
747
747
  for (const agentId of [`agent-${issueLower}`, `planning-${issueLower}`]) {
@@ -766,8 +766,8 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
766
766
  console.warn(`[merge-agent] Could not pause or kill agent sessions: ${err}`);
767
767
  }
768
768
  try {
769
- const { killAllReviewerSessions } = await import("./review-agent-CCum8sGe.js");
770
- const { resolveProjectFromIssueSync } = await import("./projects-BKkwpH6q.js");
769
+ const { killAllReviewerSessions } = await import("./review-agent-DNboMyW4.js");
770
+ const { resolveProjectFromIssueSync } = await import("./projects-vjjcmiN8.js");
771
771
  const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
772
772
  if (projectKey) {
773
773
  const { killed } = await Effect.runPromise(killAllReviewerSessions(projectKey, issueId));
@@ -781,7 +781,7 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
781
781
  }
782
782
  await killPostMergeRoleSessions(issueId);
783
783
  try {
784
- const { createResetMarker } = await import("./cli-BRORS9qY.js");
784
+ const { createResetMarker } = await import("./cli-B86rejVV.js");
785
785
  const timestamp = (/* @__PURE__ */ new Date()).toISOString();
786
786
  const marker = await createResetMarker({
787
787
  projectId: basename(projectPath),
@@ -796,8 +796,8 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
796
796
  console.warn(`[merge-agent] Memory reset marker creation failed (non-fatal): ${err}`);
797
797
  }
798
798
  try {
799
- const { findWorkspacePath } = await import("./archive-planning-Cp_DC1j-.js");
800
- const { stopWorkspaceDocker } = await import("./workspace-manager-B1WOfKvB.js");
799
+ const { findWorkspacePath } = await import("./archive-planning-BZDgzoEj.js");
800
+ const { stopWorkspaceDocker } = await import("./workspace-manager-CWT55qeI.js");
801
801
  const issueLower = issueId.toLowerCase();
802
802
  const workspacePath = findWorkspacePath(projectPath, issueLower);
803
803
  if (workspacePath) {
@@ -828,7 +828,7 @@ async function triggerPostMergeReleaseIfConfigured(issueId, projectPath) {
828
828
  console.log(`[merge-agent] Release already started or completed for ${issueId} (${currentStatus}), skipping`);
829
829
  return;
830
830
  }
831
- const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-BKkwpH6q.js");
831
+ const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-vjjcmiN8.js");
832
832
  const resolved = resolveProjectFromIssueSync(issueId);
833
833
  if (!(resolved ? getProjectSync(resolved.projectKey) : null)?.release) {
834
834
  setReviewStatusSync(issueId, {
@@ -838,7 +838,7 @@ async function triggerPostMergeReleaseIfConfigured(issueId, projectPath) {
838
838
  console.log(`[merge-agent] No release config for ${issueId}; marked release skipped`);
839
839
  return;
840
840
  }
841
- const { runRelease } = await import("./release-engine-DMINVN8S.js");
841
+ const { runRelease } = await import("./release-engine-Cx48W7z8.js");
842
842
  try {
843
843
  await runRelease(issueId, projectPath);
844
844
  } catch (err) {
@@ -857,10 +857,10 @@ async function triggerPostMergeReleaseIfConfigured(issueId, projectPath) {
857
857
  async function transitionIssueToVerifyingOnMain(issueId, projectPath) {
858
858
  const [effectModule, issueLifecycleModule, githubModule, linearModule, rallyModule, errorsModule] = await Promise.all([
859
859
  import("effect"),
860
- import("./issue-lifecycle-8PSS9Anq.js"),
861
- import("./github-client-CwBZZ3t7.js"),
862
- import("./linear-client-YwZMDIwQ.js"),
863
- import("./rally-client-CGWEHaPd.js"),
860
+ import("./issue-lifecycle-B8sZHVHh.js"),
861
+ import("./github-client-DfQYVUaw.js"),
862
+ import("./linear-client-CTskEeT_.js"),
863
+ import("./rally-client-sgtVqzNU.js"),
864
864
  import("./typed-errors-BHhE85Ul.js")
865
865
  ]);
866
866
  const { Effect, Layer } = effectModule;
@@ -1592,4 +1592,4 @@ var init_merge_agent = __esmMin((() => {
1592
1592
  //#endregion
1593
1593
  export { init_operations as C, gitPush as S, listGitOperationsSync as T, scanGitPatterns as _, init_merge_agent as a, triggerPostMergeReleaseIfConfigured as b, isSyncMainMainPreferredPath as c, parseAgentOutput as d, postMergeLifecycle as f, scanForConflictMarkers as g, salvageStrandedMerge as h, captureTmuxOutput as i, logMergeHistory as l, runProjectQualityGates as m, GIT_PATTERNS as n, isAutoCommitExcludedPath as o, resetPostMergeState as p, autoCommitWorkspaceChangesBeforeSync as r, isMergeAgentRunning as s, AUTO_COMMIT_EXCLUDED_PATHS as t, notifyTldrDaemon as u, sendMessageToAgent as v, init_git_activity as w, MainDivergedError as x, syncMainIntoWorkspace as y };
1594
1594
 
1595
- //# sourceMappingURL=merge-agent-DDiIjzk-.js.map
1595
+ //# sourceMappingURL=merge-agent-4WOWlSYA.js.map
@@ -1,3 +1,3 @@
1
- import { _ as scanGitPatterns, a as init_merge_agent, b as triggerPostMergeReleaseIfConfigured, c as isSyncMainMainPreferredPath, d as parseAgentOutput, f as postMergeLifecycle, g as scanForConflictMarkers, h as salvageStrandedMerge, i as captureTmuxOutput, l as logMergeHistory, m as runProjectQualityGates, n as GIT_PATTERNS, o as isAutoCommitExcludedPath, p as resetPostMergeState, r as autoCommitWorkspaceChangesBeforeSync, s as isMergeAgentRunning, t as AUTO_COMMIT_EXCLUDED_PATHS, u as notifyTldrDaemon, v as sendMessageToAgent, y as syncMainIntoWorkspace } from "./merge-agent-DDiIjzk-.js";
1
+ import { _ as scanGitPatterns, a as init_merge_agent, b as triggerPostMergeReleaseIfConfigured, c as isSyncMainMainPreferredPath, d as parseAgentOutput, f as postMergeLifecycle, g as scanForConflictMarkers, h as salvageStrandedMerge, i as captureTmuxOutput, l as logMergeHistory, m as runProjectQualityGates, n as GIT_PATTERNS, o as isAutoCommitExcludedPath, p as resetPostMergeState, r as autoCommitWorkspaceChangesBeforeSync, s as isMergeAgentRunning, t as AUTO_COMMIT_EXCLUDED_PATHS, u as notifyTldrDaemon, v as sendMessageToAgent, y as syncMainIntoWorkspace } from "./merge-agent-4WOWlSYA.js";
2
2
  init_merge_agent();
3
3
  export { AUTO_COMMIT_EXCLUDED_PATHS, GIT_PATTERNS, autoCommitWorkspaceChangesBeforeSync, captureTmuxOutput, isAutoCommitExcludedPath, isMergeAgentRunning, isSyncMainMainPreferredPath, logMergeHistory, notifyTldrDaemon, parseAgentOutput, postMergeLifecycle, resetPostMergeState, runProjectQualityGates, salvageStrandedMerge, scanForConflictMarkers, scanGitPatterns, sendMessageToAgent, syncMainIntoWorkspace, triggerPostMergeReleaseIfConfigured };
@@ -44,4 +44,4 @@ async function shipMergeBatch(issueIds, deps) {
44
44
  //#endregion
45
45
  export { shipMergeBatch };
46
46
 
47
- //# sourceMappingURL=merge-batch-Byt-QnEl.js.map
47
+ //# sourceMappingURL=merge-batch-ClFn2T-y.js.map
@@ -0,0 +1,2 @@
1
+ import { c as triggerMerge } from "./workspaces-Do_9J0LQ.js";
2
+ export { triggerMerge };
@@ -1,4 +1,4 @@
1
- import { Er as MergeConflictError, Sr as GitError, jr as init_errors } from "./config-yaml-ig8Nwtiw.js";
1
+ import { ar as GitError, lr as MergeConflictError, mr as init_errors } from "./config-yaml-DySPNmKN.js";
2
2
  import { Effect } from "effect";
3
3
  import { existsSync } from "fs";
4
4
  import { join } from "path";
@@ -131,4 +131,4 @@ function rebaseFeatureBranch(workspacePath, featureBranch, baseBranch, issueId)
131
131
  //#endregion
132
132
  export { rebaseFeatureBranch };
133
133
 
134
- //# sourceMappingURL=merge-rebase-Cm6fXaZN.js.map
134
+ //# sourceMappingURL=merge-rebase-BfaTyXsw.js.map
@@ -0,0 +1,83 @@
1
+ import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
+ import { $n as resolveIssueIdSync, Tn as init_projects, Yn as init_issue_id, zn as resolveProjectFromIssueSync } from "./config-yaml-DySPNmKN.js";
3
+ import { T as upsertMergeSet, i as getMergeSetFromDb, o as init_merge_sync } from "./merge-sync-VPV28g0g.js";
4
+ import { r as init_project_repos, s as resolveProjectReposFromResolvedIssueSync } from "./project-repos-B6GycDh9.js";
5
+ import "effect";
6
+ //#region ../../lib/merge-set.ts
7
+ function upsertMergeSetSync(mergeSet) {
8
+ upsertMergeSet({
9
+ ...mergeSet,
10
+ issueId: resolveIssueIdSync(mergeSet.issueId)
11
+ });
12
+ }
13
+ function getMergeSetSync(issueId) {
14
+ return getMergeSetFromDb(resolveIssueIdSync(issueId));
15
+ }
16
+ function buildMergeSetForIssueSync(issueId, labels = []) {
17
+ const resolved = resolveProjectFromIssueSync(issueId, labels);
18
+ if (!resolved) return null;
19
+ const repos = resolveProjectReposFromResolvedIssueSync(issueId, resolved);
20
+ if (!repos) return null;
21
+ const now = (/* @__PURE__ */ new Date()).toISOString();
22
+ return {
23
+ issueId,
24
+ projectKey: resolved.projectKey,
25
+ projectPath: resolved.projectPath,
26
+ workspaceType: repos.length > 1 ? "polyrepo" : "monorepo",
27
+ status: "draft",
28
+ createdAt: now,
29
+ updatedAt: now,
30
+ repos: repos.map((repo) => ({
31
+ repoKey: repo.repoKey,
32
+ repoPath: repo.repoPath,
33
+ forge: repo.forge,
34
+ sourceBranch: repo.sourceBranch,
35
+ targetBranch: repo.targetBranch,
36
+ reviewStatus: "pending",
37
+ testStatus: "pending",
38
+ rebaseStatus: "pending",
39
+ verificationStatus: "pending",
40
+ mergeStatus: "pending",
41
+ mergeOrder: repo.mergeOrder,
42
+ required: repo.required
43
+ }))
44
+ };
45
+ }
46
+ function ensureMergeSetForIssueSync(issueId, labels = []) {
47
+ const existing = getMergeSetSync(issueId);
48
+ if (existing) return existing;
49
+ const built = buildMergeSetForIssueSync(issueId, labels);
50
+ if (built) upsertMergeSetSync(built);
51
+ return built;
52
+ }
53
+ function withRepoArtifactUrlSync(mergeSet, repoKey, artifactUrl, artifactId) {
54
+ return {
55
+ ...mergeSet,
56
+ updatedAt: (/* @__PURE__ */ new Date()).toISOString(),
57
+ repos: mergeSet.repos.map((repo) => repo.repoKey === repoKey ? {
58
+ ...repo,
59
+ artifactUrl,
60
+ artifactId
61
+ } : repo)
62
+ };
63
+ }
64
+ function withRepoStateSync(mergeSet, repoKey, patch) {
65
+ return {
66
+ ...mergeSet,
67
+ updatedAt: (/* @__PURE__ */ new Date()).toISOString(),
68
+ repos: mergeSet.repos.map((repo) => repo.repoKey === repoKey ? {
69
+ ...repo,
70
+ ...patch
71
+ } : repo)
72
+ };
73
+ }
74
+ var init_merge_set = __esmMin((() => {
75
+ init_merge_sync();
76
+ init_projects();
77
+ init_project_repos();
78
+ init_issue_id();
79
+ }));
80
+ //#endregion
81
+ export { upsertMergeSetSync as a, init_merge_set as i, ensureMergeSetForIssueSync as n, withRepoArtifactUrlSync as o, getMergeSetSync as r, withRepoStateSync as s, buildMergeSetForIssueSync as t };
82
+
83
+ //# sourceMappingURL=merge-set-DJ8-UErs.js.map
@@ -1,3 +1,3 @@
1
- import { a as upsertMergeSetSync, i as init_merge_set, n as ensureMergeSetForIssueSync, o as withRepoArtifactUrlSync, r as getMergeSetSync, s as withRepoStateSync } from "./merge-set-DiISXcC-.js";
1
+ import { a as upsertMergeSetSync, i as init_merge_set, n as ensureMergeSetForIssueSync, o as withRepoArtifactUrlSync, r as getMergeSetSync, s as withRepoStateSync } from "./merge-set-DJ8-UErs.js";
2
2
  init_merge_set();
3
3
  export { ensureMergeSetForIssueSync, getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync };
@@ -1,3 +1,3 @@
1
- import { b as resetProcessingToQueued, o as init_merge_sync } from "./merge-sync-Do8_q32h.js";
1
+ import { b as resetProcessingToQueued, o as init_merge_sync } from "./merge-sync-VPV28g0g.js";
2
2
  init_merge_sync();
3
3
  export { resetProcessingToQueued };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-D4iNWMA5.js";
2
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BEqFxlJc.js";
3
3
  //#region ../../lib/overdeck/merge-sync.ts
4
4
  function isoFromMillis(value) {
5
5
  return value == null ? void 0 : new Date(value).toISOString();
@@ -401,4 +401,4 @@ var init_merge_sync = __esmMin((() => {
401
401
  //#endregion
402
402
  export { transitionToMerging as C, setUatGenerationStackStartedAtSync as S, upsertMergeSet as T, markFailed as _, getUatGenerationSync as a, resetProcessingToQueued as b, isFlywheelGloballyPaused as c, listDuePendingAutoMerges as d, listProblemAutoMerges as f, markBlocked as g, listUatGenerationsWithStacksSync as h, getMergeSetFromDb as i, isMergeTrainEnabled as l, listUatGenerationsSync as m, getActionableAutoMerge as n, init_merge_sync as o, listUatGenerationNamesSync as p, getAllActiveQueues as r, insertUatGenerationSync as s, cancelPending as t, listActiveAutoMerges as u, markMerged as v, updateUatGenerationSync as w, scheduleAutoMergeWithResult as x, requeueToPending as y };
403
403
 
404
- //# sourceMappingURL=merge-sync-Do8_q32h.js.map
404
+ //# sourceMappingURL=merge-sync-VPV28g0g.js.map
@@ -1,4 +1,4 @@
1
- import { l as isMergeTrainEnabled, o as init_merge_sync } from "./merge-sync-Do8_q32h.js";
1
+ import { l as isMergeTrainEnabled, o as init_merge_sync } from "./merge-sync-VPV28g0g.js";
2
2
  //#region ../../lib/cloister/merge-train-reconciler.ts
3
3
  init_merge_sync();
4
4
  /**
@@ -62,9 +62,9 @@ async function reconcileStaleSiblings(mergedIssueId, deps) {
62
62
  */
63
63
  async function runMergeTrainReconcile(mergedIssueId, opts = {}) {
64
64
  if (!(opts.enabled ?? isMergeTrainEnabled)()) return [];
65
- return reconcileStaleSiblings(mergedIssueId, opts.deps ?? (await import("./merge-train-deps-BgmqwIfA.js")).buildRealReconcileDeps());
65
+ return reconcileStaleSiblings(mergedIssueId, opts.deps ?? (await import("./merge-train-deps-D1cOZzy2.js")).buildRealReconcileDeps());
66
66
  }
67
67
  //#endregion
68
68
  export { runMergeTrainReconcile };
69
69
 
70
- //# sourceMappingURL=merge-train-CKana8EH.js.map
70
+ //# sourceMappingURL=merge-train-CHopycP0.js.map
@@ -1,6 +1,6 @@
1
- import { Hn as init_projects, nr as resolveProjectFromIssueSync } from "./config-yaml-ig8Nwtiw.js";
2
- import { Z as spawnRun, s as init_agents } from "./queries-ZABd5aXP.js";
3
- import { c as init_review_status_sync, r as getAllReviewStatusesFromDb } from "./review-status-sync-DpAMD_WO.js";
1
+ import { Tn as init_projects, zn as resolveProjectFromIssueSync } from "./config-yaml-DySPNmKN.js";
2
+ import { b as init_agents, ut as spawnRun } from "./queries-CjNIf-Ub.js";
3
+ import { c as init_review_status_sync, r as getAllReviewStatusesFromDb } from "./review-status-sync-BTOpxtTC.js";
4
4
  import { join } from "path";
5
5
  import { exec } from "child_process";
6
6
  import { promisify } from "util";
@@ -66,4 +66,4 @@ function buildRealReconcileDeps() {
66
66
  //#endregion
67
67
  export { buildRealReconcileDeps };
68
68
 
69
- //# sourceMappingURL=merge-train-deps-BgmqwIfA.js.map
69
+ //# sourceMappingURL=merge-train-deps-D1cOZzy2.js.map
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Hn as init_projects, nr as resolveProjectFromIssueSync } from "./config-yaml-ig8Nwtiw.js";
3
- import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-CawsPSS2.js";
4
- import { f as init_github_app, p as isGitHubAppConfigured, v as listPullRequestsForHead } from "./github-app-CDPtGF7J.js";
2
+ import { Tn as init_projects, zn as resolveProjectFromIssueSync } from "./config-yaml-DySPNmKN.js";
3
+ import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-DHv5pSDT.js";
4
+ import { f as init_github_app, p as isGitHubAppConfigured, v as listPullRequestsForHead } from "./github-app-C3QrAUd0.js";
5
5
  import { Effect } from "effect";
6
6
  import { exec } from "node:child_process";
7
7
  import { promisify } from "node:util";
@@ -121,4 +121,4 @@ var init_merge_verification = __esmMin((() => {
121
121
  //#endregion
122
122
  export { shouldSkipDispatchAsMerged as n, verifyMergedBeforeLifecycle as r, init_merge_verification as t };
123
123
 
124
- //# sourceMappingURL=merge-verification-CqnUzGEK.js.map
124
+ //# sourceMappingURL=merge-verification-BkaOqPsw.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { a as File, i as init_esm_min, n as FormData, t as init_from } from "./from-DpwQ-sc3.js";
2
+ import { a as File, i as init_esm_min, n as FormData, t as init_from } from "./from-kNxT0bZC.js";
3
3
  //#region ../../../node_modules/.bun/node-fetch@3.3.2/node_modules/node-fetch/src/utils/multipart-parser.js
4
4
  function _fileName(headerValue) {
5
5
  const m = headerValue.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);
@@ -293,4 +293,4 @@ __esmMin((() => {
293
293
  }))();
294
294
  export { toFormData };
295
295
 
296
- //# sourceMappingURL=multipart-parser-tdOQDJ3o.js.map
296
+ //# sourceMappingURL=multipart-parser-duPAfSBw.js.map
@@ -39,7 +39,7 @@ function resolveBootGates(options = {}, env = process.env) {
39
39
  enabled: true,
40
40
  source: resumeSource ?? "env"
41
41
  } : {
42
- enabled: false,
42
+ enabled: true,
43
43
  source: resumeSource ?? "default"
44
44
  }
45
45
  };
@@ -63,12 +63,15 @@ function isNoResumeValueEnabled(value) {
63
63
  return TRUTHY_NO_RESUME_VALUES.has(value?.trim().toLowerCase() ?? "");
64
64
  }
65
65
  /**
66
- * PAN-2278: boot-gates stamps OVERDECK_NO_RESUME=1 on every boot that does not
67
- * pass --resume (PAN-1963 default-off) and records why in
68
- * OVERDECK_RESUME_GATE_SOURCE ('flag' | 'env' | 'default'). Only a flag
69
- * (--no-resume) or an operator-exported env is an explicit no-resume request;
70
- * the 'default' stamp must reach boot reconciliation's pending/dialog path
71
- * instead of short-circuiting to hold_all.
66
+ * PAN-2278: boot-gates records the resume-gate provenance in
67
+ * OVERDECK_RESUME_GATE_SOURCE ('flag' | 'env' | 'default'). Auto-resume is now
68
+ * ON by default (operator decision 2026-07-18), so a plain boot stamps
69
+ * OVERDECK_RESUME=1 (source 'default') and this predicate returns false — boot
70
+ * reconciliation opens the operator popup instead of holding. Only an explicit
71
+ * opt-out — a flag (--no-resume) or an operator-exported OVERDECK_NO_RESUME —
72
+ * is an explicit no-resume request that short-circuits boot reconciliation to
73
+ * hold_all. The source!=='default' guard stays defensive: an inherited
74
+ * NO_RESUME without provenance resolves to source 'env', still explicit.
72
75
  */
73
76
  function isExplicitNoResumeRequest(env = process.env) {
74
77
  if (!isNoResumeValueEnabled(env.OVERDECK_NO_RESUME)) return false;
@@ -86,4 +89,4 @@ var init_no_resume_mode = __esmMin((() => {
86
89
  //#endregion
87
90
  export { init_boot_gates as a, formatBootGateState as i, isExplicitNoResumeRequest as n, resolveBootGates as o, isNoResumeValueEnabled as r, init_no_resume_mode as t };
88
91
 
89
- //# sourceMappingURL=no-resume-mode-BWOSZjWd.js.map
92
+ //# sourceMappingURL=no-resume-mode-Nw29vaFb.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@overdeck/desktop-server",
3
- "version": "0.45.22",
3
+ "version": "0.45.24",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
@@ -23,9 +23,9 @@
23
23
  }
24
24
  },
25
25
  "node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared": {
26
- "version": "4.0.0-beta.99",
27
- "resolved": "https://registry.npmjs.org/@effect/platform-node-shared/-/platform-node-shared-4.0.0-beta.99.tgz",
28
- "integrity": "sha512-POBAowafsAAb3bH1x1rJlWnv32yMAazFgEuRW5LhkW/JJA5VGoEk9OnuoUkIH1OW6K/X6IrdNpqcO+5e9lPQJA==",
26
+ "version": "4.0.0-beta.101",
27
+ "resolved": "https://registry.npmjs.org/@effect/platform-node-shared/-/platform-node-shared-4.0.0-beta.101.tgz",
28
+ "integrity": "sha512-g4L7XiyJSNJLJVhlslyg2zBCQsoKQf1y1gd+Yfd+3wD9ymC+m7ymbd/5FGqnT1aXV6E2AwRr4D/R1eyRUikvWQ==",
29
29
  "license": "MIT",
30
30
  "dependencies": {
31
31
  "@types/ws": "^8.18.1",
@@ -35,7 +35,7 @@
35
35
  "node": ">=18.0.0"
36
36
  },
37
37
  "peerDependencies": {
38
- "effect": "^4.0.0-beta.99"
38
+ "effect": "^4.0.0-beta.101"
39
39
  }
40
40
  },
41
41
  "node_modules/@google-cloud/common": {
@@ -1766,9 +1766,9 @@
1766
1766
  }
1767
1767
  },
1768
1768
  "node_modules/undici": {
1769
- "version": "8.7.0",
1770
- "resolved": "https://registry.npmjs.org/undici/-/undici-8.7.0.tgz",
1771
- "integrity": "sha512-N7iQtfyLhIMOFgQubvmLV26svHpO0bqKnAiWotTQCVKCmWrcGbBotPuW1x+xwYZ2VHdSTVUfPQQnlEt1/LouTQ==",
1769
+ "version": "8.8.0",
1770
+ "resolved": "https://registry.npmjs.org/undici/-/undici-8.8.0.tgz",
1771
+ "integrity": "sha512-ubshXMXwF3MQIMF1y/WxZdNBnjEKeSg2wF5mcGUtU55YTw34tnVVpKRlLf7ruDXZ5344KokPVX4RBx1wJm64Bw==",
1772
1772
  "license": "MIT",
1773
1773
  "engines": {
1774
1774
  "node": ">=22.19.0"