@overdeck/desktop 0.49.2 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +1 -0
  2. package/package.json +1 -1
  3. package/server/{acceptance-criteria-CHtDkHEL.js → acceptance-criteria-B_maCGZv.js} +2 -2
  4. package/server/{active-dashboard-bundle-Byh6sP-q.js → active-dashboard-bundle-CCqpFWiz.js} +2 -2
  5. package/server/{activity-logger-Ck8qoluj.js → activity-logger-B0X2JJwM.js} +1 -1
  6. package/server/{activity-logger-BWZhVphb.js → activity-logger-SlTXYCVf.js} +3 -3
  7. package/server/{advancing-selfheal-65W4yUQi.js → advancing-selfheal-BJAfiY-C.js} +11 -6
  8. package/server/{agent-gc-BNUudFnt.js → agent-gc-bhikjoJ_.js} +11 -11
  9. package/server/{agent-idle-ONBssBN_.js → agent-idle-D-UQ7gDv.js} +11 -11
  10. package/server/{agent-state-CM8iVw5B.js → agent-state-BrUPf_7Z.js} +1 -1
  11. package/server/{agent-state-BJhGIJZe.js → agent-state-FABw8neJ.js} +344 -402
  12. package/server/{agent-state-service-CzHfoqKQ.js → agent-state-service-BAQApt97.js} +1 -1
  13. package/server/{agent-state-service-CiIuwzIs.js → agent-state-service-rDenYSlD.js} +5 -5
  14. package/server/{agents-DpCuoF65.js → agents-DixZjXWm.js} +1 -1
  15. package/server/{agents-jXgqpHca.js → agents-DzpQidT8.js} +4 -4
  16. package/server/{archive-planning-CGkU6UeL.js → archive-planning-BL1ABtW0.js} +5 -5
  17. package/server/archive-planning-D3gw32U9.js +2 -0
  18. package/server/{artifact-index-jobs-Ck4NRRkY.js → artifact-index-jobs-Cjdme0jS.js} +2 -2
  19. package/server/{assemble-CyvEBmmq.js → assemble-B_JgnCbG.js} +2 -2
  20. package/server/{auto-spawn-consent-Dc4mtM-B.js → auto-spawn-consent-BesWchEi.js} +7 -7
  21. package/server/{backlog-auto-trigger-CCEpr4YT.js → backlog-auto-trigger-COLq639j.js} +3 -3
  22. package/server/{behavior-BiCQzqyT.js → behavior-DCg8CIWC.js} +3 -3
  23. package/server/{bridge-pool-patrol-Ce8rNPym.js → bridge-pool-patrol-BDohuMRt.js} +2 -2
  24. package/server/{briefing-freshness-e_OEYZEe.js → briefing-freshness-ENa_hW_V.js} +2 -2
  25. package/server/build-info-Dx2qrVhb.js +2 -0
  26. package/server/{build-info-BRw4QlYO.js → build-info-WuZT6xyi.js} +3 -3
  27. package/server/{checkpoint-manager-DOwRGFff.js → checkpoint-manager-CSZ7aVQF.js} +2 -2
  28. package/server/{checkpoint-manager-CKr42Usw.js → checkpoint-manager-DXhGRvg4.js} +1 -1
  29. package/server/checkpoint-worker.js +1 -1
  30. package/server/{checkpoints-Cszp_0Np.js → checkpoints-DUkUsPVS.js} +2 -2
  31. package/server/{checkpoints-Cb6CWT4S.js → checkpoints-tm_w6Y4V.js} +1 -1
  32. package/server/{claude-hooks-provision-C5JHpxTS.js → claude-hooks-provision-CTh9zxEi.js} +1 -1
  33. package/server/{claude-hooks-provision-Cer2eFfj.js → claude-hooks-provision-fRofvhTN.js} +2 -2
  34. package/server/{claude-permissions-Bc5kjX1q.js → claude-permissions-DLrb9ovz.js} +18 -3
  35. package/server/{claude-settings-overlay-m-VVZej1.js → claude-settings-overlay-BYnXaTVc.js} +2 -2
  36. package/server/{claude-settings-overlay-C7rWsnya.js → claude-settings-overlay-CMS5Jab5.js} +1 -1
  37. package/server/cli-BflmtEFM.js +2 -0
  38. package/server/{cli-BmczsfD6.js → cli-CoQou1t_.js} +11 -11
  39. package/server/{cliproxy-BpYpkogS.js → cliproxy-DXDQcR3I.js} +2 -2
  40. package/server/{cliproxy-_yUU0HRY.js → cliproxy-DdhFpcXU.js} +1 -1
  41. package/server/{close-issue-CxvRD0UI.js → close-issue-CpQ0BWg-.js} +5 -5
  42. package/server/{closed-issue-reaper-nMLRi5de.js → closed-issue-reaper-CdcJRvUx.js} +13 -13
  43. package/server/{closed-issue-reaper-omOcUDBl.js → closed-issue-reaper-TymtZM37.js} +1 -1
  44. package/server/{codex-DZhFfcWu.js → codex-BValsmtK.js} +1 -1
  45. package/server/{codex-KaSKE-R3.js → codex-DYyZL8JD.js} +6 -6
  46. package/server/{compaction-continuation-Bjfi70G-.js → compaction-continuation-CVjbdGKt.js} +3 -3
  47. package/server/{config-CH1AqqIQ.js → config-CvKH7r7W.js} +1 -1
  48. package/server/{config-ZGjvuR6J.js → config-NxI9Yl2f.js} +2 -2
  49. package/server/{config-Doq_tF-f.js → config-_qaa1UXH.js} +2 -2
  50. package/server/{config-yaml-D9nfpEx1.js → config-yaml-D60AnTIu.js} +24 -9
  51. package/server/{conflict-gate-D4XCtrm2.js → conflict-gate-0dD1kxjN.js} +1 -1
  52. package/server/{conflict-gate-DcUTY4Gb.js → conflict-gate-hAUCL-un.js} +5 -5
  53. package/server/{context-layers-BBTKP-Y4.js → context-layers-CdpabJj0.js} +3 -3
  54. package/server/{context-layers-BGj2Y9l3.js → context-layers-Ds1MnEFI.js} +2 -2
  55. package/server/{continue-i7Revg8D.js → continue-CnvrUfxw.js} +2 -2
  56. package/server/{control-settings-BMoDHY1G.js → control-settings-Db0uXgVM.js} +308 -5
  57. package/server/{conversation-compaction-D4VOmF7p.js → conversation-compaction-B-1KETG9.js} +8 -8
  58. package/server/{conversation-compaction-DzIjYMfg.js → conversation-compaction-DzMXGRiJ.js} +1 -1
  59. package/server/{conversation-service-CzZUJFEx.js → conversation-service-BL-asWPX.js} +1 -1
  60. package/server/{conversation-service-tQCIbBVZ.js → conversation-service-BxIOd5ay.js} +21 -7
  61. package/server/{conversations-bFDaD5YN.js → conversations-CEMfwMt-.js} +1 -1
  62. package/server/{conversations-C75EFFjf.js → conversations-nS6QgYpD.js} +5 -5
  63. package/server/cost-3FyqKK56.js +838 -0
  64. package/server/{cost-BCWEkvro.js → cost-Cctc-Q9M.js} +3 -3
  65. package/server/{cost-CiIwxH1D.js → cost-DTuIRE4y.js} +2 -2
  66. package/server/{cost-sync-DOkdE_yB.js → cost-sync-DfmvLT9L.js} +3 -3
  67. package/server/{dag-BPc74hwj.js → dag-o-dUpw1L.js} +2 -2
  68. package/server/{dangerous-git-ops-By9iguTP.js → dangerous-git-ops-BOtXCFkT.js} +1 -1
  69. package/server/dashboard-db-worker.js +61 -11
  70. package/server/{deacon-B24dNzr8.js → deacon-CsisLmPt.js} +125 -165
  71. package/server/{deacon-canonical-state-CkvxRPck.js → deacon-canonical-state-DkdkQS5p.js} +2 -2
  72. package/server/{deacon-CzSZMtb-.js → deacon-e6py3jkM.js} +3 -3
  73. package/server/{deacon-event-client-BYIQBu0T.js → deacon-event-client-BCjHiGAY.js} +1 -1
  74. package/server/{deacon-event-client-Do6Z2gKl.js → deacon-event-client-CMQswEHX.js} +2 -2
  75. package/server/{deacon-nudge-log-CzM9JA9t.js → deacon-nudge-log-pcliw8Dr.js} +1 -1
  76. package/server/{deacon-pending-lifecycle-BObEdT-L.js → deacon-pending-lifecycle-BzaE76Xo.js} +3 -3
  77. package/server/deacon.js +11 -11
  78. package/server/{dead-end-trip-CnVmjnya.js → dead-end-trip-Bs3hxIn6.js} +3 -3
  79. package/server/dead-end-trip-DUbiRMtT.js +2 -0
  80. package/server/{delivery-gyce0vQ7.js → delivery-DhZGRShH.js} +1 -1
  81. package/server/{deploy-patrol-CEwwEYDM.js → deploy-patrol-B8sKkA8h.js} +8 -8
  82. package/server/deploy-queue--smqHLhe.js +2 -0
  83. package/server/{deploy-queue-r96ojDI3.js → deploy-queue-CCGWXFkp.js} +2 -2
  84. package/server/{deploy-window-D_3hhfxt.js → deploy-window-YuJewzmC.js} +4 -4
  85. package/server/{deploy-window-DeJK8mTK.js → deploy-window-hgsvZ3UZ.js} +1 -1
  86. package/server/{dev-supervisor-DZWwpENk.js → dev-supervisor-4SBloJHV.js} +2 -2
  87. package/server/{devcontainer-renderer-d-9dCV_2.js → devcontainer-renderer-BiJhwFNi.js} +3 -3
  88. package/server/{dist-DsLAsFSh.js → dist-CoR2sivG.js} +1 -1
  89. package/server/dist-FHv1s5ez.js +3 -0
  90. package/server/{docker-B2mUBzGk.js → docker-CWO7dcIP.js} +3 -3
  91. package/server/{docker-CRPHBylA.js → docker-DQzyMXkd.js} +1 -1
  92. package/server/{dod-DWtilRLx.js → dod-BAk5arLF.js} +1 -1
  93. package/server/{done-preflight-BDVdWed5.js → done-preflight-CGFA0M1b.js} +1 -1
  94. package/server/{done-preflight-D4ukUf-S.js → done-preflight-Cx9JGznT.js} +5 -5
  95. package/server/{durable-review-pipeline-CaCbEJSt.js → durable-review-pipeline-BOEZ0chh.js} +1 -1
  96. package/server/{durable-review-pipeline-B3OS2_He.js → durable-review-pipeline-Djx_lvFd.js} +1 -1
  97. package/server/{ensure-devcontainer-rGSh0JHK.js → ensure-devcontainer-Dk6ZMOUC.js} +1 -1
  98. package/server/{ensure-devcontainer-BUeBRjmm.js → ensure-devcontainer-DzYBBwnM.js} +4 -4
  99. package/server/{esm-shims-oAaKIa-a.js → esm-shims-deFq5Hhl.js} +1 -1
  100. package/server/{event-store-Db4w4YIY.js → event-store-C50Qt-f1.js} +1 -1
  101. package/server/{event-store-BCSgMubf.js → event-store-DTns2XZP.js} +5 -5
  102. package/server/{event-store-provider-DlSQND3V.js → event-store-provider-Bu1Qrg6v.js} +1 -1
  103. package/server/{events-B6zioJA_.js → events-B6xW8Cpm.js} +3 -3
  104. package/server/{factory-BrdqXBeK.js → factory-CWVKwKFE.js} +4 -4
  105. package/server/{feature-registry-storage-zh3ZXW6f.js → feature-registry-storage-vaxRN3WO.js} +2 -2
  106. package/server/{features-BGntOWdy.js → features-DXWwktJB.js} +2 -2
  107. package/server/{feedback-stuck-retirement-DpA5u1kt.js → feedback-stuck-retirement-CXAYe2rU.js} +2 -2
  108. package/server/{feedback-target-Ddqk93NF.js → feedback-target-DSVpi0gT.js} +1 -1
  109. package/server/{feedback-target-D7GxdUYG.js → feedback-target-yPD_wclF.js} +10 -10
  110. package/server/{feedback-writer-CH2846DP.js → feedback-writer-BzN4qvaP.js} +1 -1
  111. package/server/{feedback-writer-C1gCLFmp.js → feedback-writer-Ds1Wjsz4.js} +5 -5
  112. package/server/{flywheel-HJt7QdWP.js → flywheel-BCZS-FlW.js} +1 -1
  113. package/server/{flywheel-v1cCOBx-.js → flywheel-CC4gE_rx.js} +15 -15
  114. package/server/{flywheel-CjW2L7BS.js → flywheel-DWKd7bMc.js} +16 -16
  115. package/server/{flywheel-merge-order-4fNRN2F2.js → flywheel-merge-order-DDT3i57u.js} +1 -1
  116. package/server/{flywheel-merge-order-D_yyAlND.js → flywheel-merge-order-DJwH2KpL.js} +17 -15
  117. package/server/forge-4VVCRcF7.js +2 -0
  118. package/server/{forge-RVTCK_5X.js → forge-CHADjOFs.js} +2 -2
  119. package/server/{from-BnLgKYvw.js → from-C3dzmjSO.js} +1 -1
  120. package/server/{fs-lock-C7J-ugIf.js → fs-lock-DQ_gUxfq.js} +2 -2
  121. package/server/{fts-operations-CU0B5WUx.js → fts-operations-asZo2fh1.js} +2 -2
  122. package/server/{git-info-BSrI9owC.js → git-info-DMOSfJ9I.js} +1 -1
  123. package/server/{git-utils-CsKV0Dis.js → git-utils-BAMwn9Nf.js} +1 -1
  124. package/server/{git-utils-DW8-jIUJ.js → git-utils-BdHk8y7g.js} +4 -4
  125. package/server/{github-app-Oi5hdn1n.js → github-app-BWziYCf3.js} +1 -1
  126. package/server/{github-app-7ywLhuZO.js → github-app-BlMSzSTw.js} +2 -2
  127. package/server/{github-client-Cy0fSj1a.js → github-client-OK24qpol.js} +1 -1
  128. package/server/{github-client-DAbuXLuk.js → github-client-w6j5nVlz.js} +2 -2
  129. package/server/{github-pr-lookup-Dhh3ec1V.js → github-pr-lookup-bGcsEvLE.js} +2 -2
  130. package/server/{harness-binary-tMmgJfC1.js → harness-binary-DChiynaB.js} +2 -2
  131. package/server/{harness-resolve-DusNpVEe.js → harness-resolve-BplBEbwn.js} +4 -4
  132. package/server/{health-events-BYDZ9n2i.js → health-events-BTqsmunw.js} +1 -1
  133. package/server/{health-events-DNw9Mzw9.js → health-events-Bk3LjaJ9.js} +2 -2
  134. package/server/{hooks-BjBjxqNh.js → hooks-DJR1yR9w.js} +2 -2
  135. package/server/{hooks-B4wj32l2.js → hooks-EndRNrx9.js} +1 -1
  136. package/server/{hume-BP9YbxaE.js → hume-1FJmNDTq.js} +2 -2
  137. package/server/hume-gXLmRhmN.js +3 -0
  138. package/server/{identity-C23uY8dZ.js → identity-C3s8lyp0.js} +3 -3
  139. package/server/{idle-stack-reaper-Bw0rU9GC.js → idle-stack-reaper-CBelVOE3.js} +1 -1
  140. package/server/{idle-stack-reaper-BSxb1bln.js → idle-stack-reaper-DtoI4al6.js} +4 -4
  141. package/server/{in-flight-guard-DuxabAHT.js → in-flight-guard-B7khcBdQ.js} +1 -1
  142. package/server/{infra-CHIvOb9q.js → infra-CJRi_5Wu.js} +10 -4
  143. package/server/{injection-BYUt8ml1.js → injection-ADWQ3D0s.js} +8 -8
  144. package/server/{injection-BviePcm3.js → injection-BWsgHvrL.js} +1 -1
  145. package/server/{inspect-agent-sV_19NxZ.js → inspect-agent-CCfNJjKr.js} +12 -12
  146. package/server/inspect-agent-Dhp3hCGp.js +2 -0
  147. package/server/{internal-token-BOtIRJU7.js → internal-token-BCTEqUCX.js} +1 -1
  148. package/server/{internal-token-DoVzb4b7.js → internal-token-BeIWG_kT.js} +2 -2
  149. package/server/{io-DKrWd3gX.js → io-BCtZoXHo.js} +4 -4
  150. package/server/{issue-closed-6RQsAjDX.js → issue-closed-CiYAa6bX.js} +7 -7
  151. package/server/{issue-lifecycle-D9nLErvS.js → issue-lifecycle-BETNVVLq.js} +25 -25
  152. package/server/{issue-lifecycle-DOPVv7xz.js → issue-lifecycle-DaKN57sx.js} +1 -1
  153. package/server/{issue-service-singleton-CvgNAWqK.js → issue-service-singleton-1Q0ER8Yc.js} +1 -1
  154. package/server/{issue-service-singleton-B2xy-IS9.js → issue-service-singleton-C_sZ0HjP.js} +10 -10
  155. package/server/{issue-title-fallback-DTSCQVu0.js → issue-title-fallback-B91iD66g.js} +3 -3
  156. package/server/{issues-e_Ck1Ln2.js → issues-RGHQUKhB.js} +2 -2
  157. package/server/{jsonl-parser-DqxVCZ1k.js → jsonl-parser-Dfs1dlYE.js} +3 -3
  158. package/server/{jsonl-resolver-07OS3qOr.js → jsonl-resolver-bFtftCDd.js} +8 -8
  159. package/server/{kimi-code-vtXl2DR5.js → kimi-code-BxkDgaj4.js} +1 -1
  160. package/server/{kimi-code-BjtAHIz1.js → kimi-code-CNYRA8Dd.js} +11 -11
  161. package/server/{kimi-parser-B1lgy2Vt.js → kimi-parser-OcWwmOqF.js} +2 -2
  162. package/server/{label-cleanup-D2zUMasf.js → label-cleanup-CefxK9tL.js} +3 -3
  163. package/server/{lifecycle-DaCovZwn.js → lifecycle-DDZ7w-BY.js} +6 -6
  164. package/server/{lifecycle-0NOEzomy.js → lifecycle-DVXyUil2.js} +2 -2
  165. package/server/{lifecycle-io-BBMTaP7S.js → lifecycle-io-D1oBiMce.js} +1 -1
  166. package/server/{lifecycle-io-6WL46dsB.js → lifecycle-io-D7N0vQNj.js} +5 -5
  167. package/server/{linear-client-7fQThJTc.js → linear-client-DUN7zCeb.js} +2 -2
  168. package/server/{linear-client-BTGApNLo.js → linear-client-TL32snOy.js} +1 -1
  169. package/server/{linear-mcp-auth-B8pYRsiU.js → linear-mcp-auth-CtRKSHy5.js} +1 -1
  170. package/server/{linear-mcp-auth-Nk5s3L9M.js → linear-mcp-auth-bB0CPyjh.js} +5 -5
  171. package/server/memory-fts-worker.js +1 -1
  172. package/server/{memory-governor-Cqvbusr4.js → memory-governor-Cvv_9K0M.js} +87 -21
  173. package/server/{memory-pressure-patrol-DPb8foam.js → memory-pressure-patrol-C6DJJQRA.js} +38 -14
  174. package/server/{merge-BB_bjJ9a.js → merge-DOCR6pHi.js} +1 -1
  175. package/server/{merge-FZ78_cEz.js → merge-FTk4LsnM.js} +3 -3
  176. package/server/{merge-agent-B3jRrlS1.js → merge-agent-C-dsN9se.js} +31 -31
  177. package/server/{merge-agent-BuoC_PRZ.js → merge-agent-D-4_iQgy.js} +2 -2
  178. package/server/{merge-batch-B8bVjFWS.js → merge-batch-BJjzUUL7.js} +1 -1
  179. package/server/{merge-completeness-DQt7Qa7i.js → merge-completeness-BOtBUwTU.js} +4 -4
  180. package/server/{merge-completeness-DkdabVch.js → merge-completeness-CoLJxfUY.js} +1 -1
  181. package/server/merge-eligibility-C4rTS97F.js +3 -0
  182. package/server/merge-eligibility-D7wRnJbj.js +51 -0
  183. package/server/merge-ops-Cf02szJ5.js +2 -0
  184. package/server/merge-rebase-Bj7eJAG4.js +2 -0
  185. package/server/{merge-rebase-qq40s91P.js → merge-rebase-KBw4rdh3.js} +2 -2
  186. package/server/{merge-set-BTNYvxM3.js → merge-set-CVfEM57p.js} +1 -1
  187. package/server/{merge-set-BmRRflt0.js → merge-set-CyW-xSn4.js} +4 -4
  188. package/server/{merge-sync-0m2Q087q.js → merge-sync-CYGsJy0u.js} +1 -1
  189. package/server/{merge-sync-CJpOa0cZ.js → merge-sync-YLvOPAry.js} +2 -2
  190. package/server/{merge-train-iwKqjtCF.js → merge-train-VxLn8Ms4.js} +4 -4
  191. package/server/{merge-train-deps-CH5Mr3vN.js → merge-train-deps-D0y4hBB9.js} +4 -4
  192. package/server/{merge-verification-JJc5GC2t.js → merge-verification-BfJRNMiD.js} +6 -6
  193. package/server/{merged-docker-cleanup-worker-BOqWA373.js → merged-docker-cleanup-worker-Bh5fKG_b.js} +3 -3
  194. package/server/{merged-docker-cleanup-worker-CrhTdxZV.js → merged-docker-cleanup-worker-Ci9oeFAe.js} +1 -1
  195. package/server/{messaging-nuwStbdQ.js → messaging-Dfbhgjd6.js} +1 -1
  196. package/server/{multipart-parser-DxuW_rZV.js → multipart-parser-BYwfKOVU.js} +2 -2
  197. package/server/{no-resume-mode-xuYLFhLw.js → no-resume-mode-DjMQRkId.js} +1 -1
  198. package/server/node_modules/.package-lock.json +18 -18
  199. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/package.json +2 -2
  200. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/70_cli/10_basics.ts +4 -2
  201. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeClusterSocket.d.ts.map +1 -1
  202. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeClusterSocket.js +12 -9
  203. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeClusterSocket.js.map +1 -1
  204. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocket.js +1 -1
  205. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocket.js.map +1 -1
  206. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +6 -6
  207. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeClusterSocket.ts +15 -12
  208. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeSocket.ts +1 -1
  209. package/server/node_modules/@types/node/README.md +1 -1
  210. package/server/node_modules/@types/node/buffer.buffer.d.ts +5 -5
  211. package/server/node_modules/@types/node/crypto.d.ts +2 -2
  212. package/server/node_modules/@types/node/http.d.ts +16 -0
  213. package/server/node_modules/@types/node/http2.d.ts +10 -2
  214. package/server/node_modules/@types/node/package.json +2 -2
  215. package/server/node_modules/@types/node/process.d.ts +52 -0
  216. package/server/node_modules/@types/node/quic.d.ts +210 -28
  217. package/server/node_modules/@types/node/sqlite.d.ts +6 -2
  218. package/server/node_modules/@types/node/test.d.ts +36 -0
  219. package/server/node_modules/effect/node_modules/uuid/README.md +19 -19
  220. package/server/node_modules/effect/node_modules/uuid/dist/v1.js +7 -3
  221. package/server/node_modules/effect/node_modules/uuid/dist/v7.js +5 -2
  222. package/server/node_modules/effect/node_modules/uuid/dist-node/v1.js +7 -3
  223. package/server/node_modules/effect/node_modules/uuid/dist-node/v7.js +5 -2
  224. package/server/node_modules/effect/node_modules/uuid/package.json +4 -3
  225. package/server/node_modules/msgpackr/dist/index-no-eval.cjs +11 -5
  226. package/server/node_modules/msgpackr/dist/index-no-eval.cjs.map +1 -1
  227. package/server/node_modules/msgpackr/dist/index-no-eval.min.js +1 -1
  228. package/server/node_modules/msgpackr/dist/index-no-eval.min.js.map +1 -1
  229. package/server/node_modules/msgpackr/dist/index.js +11 -5
  230. package/server/node_modules/msgpackr/dist/index.js.map +1 -1
  231. package/server/node_modules/msgpackr/dist/index.min.js +1 -1
  232. package/server/node_modules/msgpackr/dist/index.min.js.map +1 -1
  233. package/server/node_modules/msgpackr/dist/node.cjs +11 -5
  234. package/server/node_modules/msgpackr/dist/node.cjs.map +1 -1
  235. package/server/node_modules/msgpackr/dist/test.js +11 -5
  236. package/server/node_modules/msgpackr/dist/test.js.map +1 -1
  237. package/server/node_modules/msgpackr/dist/unpack-no-eval.cjs +11 -5
  238. package/server/node_modules/msgpackr/dist/unpack-no-eval.cjs.map +1 -1
  239. package/server/node_modules/msgpackr/package.json +1 -1
  240. package/server/node_modules/msgpackr/unpack.js +11 -5
  241. package/server/node_modules/picomatch/lib/parse.js +10 -1
  242. package/server/node_modules/picomatch/lib/scan.js +30 -18
  243. package/server/node_modules/picomatch/package.json +1 -1
  244. package/server/{orphan-proposed-reconciler-gf4TxfZb.js → orphan-proposed-reconciler-CnP0K2v3.js} +2 -2
  245. package/server/{orphan-proposed-reconciler-Dmk0kO_p.js → orphan-proposed-reconciler-nFUlquZt.js} +21 -21
  246. package/server/package-lock.json +19 -19
  247. package/server/package.json +1 -1
  248. package/server/{pan-dir-BMda7tQj.js → pan-dir-B4NfzOf3.js} +4 -4
  249. package/server/{parked-residue-BiHb8cD7.js → parked-residue-8WbU0y1z.js} +68 -64
  250. package/server/{paths-DEe9j-kw.js → paths-rETQhTF2.js} +2 -2
  251. package/server/{pending-lifecycle-claim-J5uIIJPu.js → pending-lifecycle-claim-yAwDuGS4.js} +1 -1
  252. package/server/{pickup-D1UbSDPd.js → pickup-Dle6k9Xt.js} +1 -1
  253. package/server/{pipeline-agent-reader-D-6okryb.js → pipeline-agent-reader-CeWhQzXC.js} +3 -3
  254. package/server/{pipeline-membership-PGX3Pe8V.js → pipeline-membership-BV4hdkHm.js} +1 -1
  255. package/server/{pipeline-membership-CCbgBzNC.js → pipeline-membership-C9ykcjsn.js} +1 -1
  256. package/server/{pipeline-membership-gather-BK4dzh0X.js → pipeline-membership-gather-Ba0wJNCR.js} +10 -10
  257. package/server/{pipeline-membership-gather-BRhU7XPx.js → pipeline-membership-gather-C9E22B2W.js} +1 -1
  258. package/server/{pipeline-notifier-DvHLaXKb.js → pipeline-notifier-B5DPXvnr.js} +1 -1
  259. package/server/{pipeline-notifier-BNAV9kpa.js → pipeline-notifier-p190L97e.js} +2 -2
  260. package/server/{post-merge-lifecycle-worker-DAWgzXQA.js → post-merge-lifecycle-worker-OQoK8Ckg.js} +2 -2
  261. package/server/{post-merge-state-DC2_0t12.js → post-merge-state-DFaf7OI1.js} +4 -4
  262. package/server/{prd-locations-BbAvqQmT.js → prd-locations-F2oLSAhy.js} +3 -3
  263. package/server/{project-pipelines-By_5WcT4.js → project-pipelines-CUsa6U59.js} +2 -2
  264. package/server/{project-repos-3bI6t4fO.js → project-repos-BVdi9-ch.js} +1 -1
  265. package/server/{project-repos--QeCg7yQ.js → project-repos-CsfvLtmr.js} +2 -2
  266. package/server/{project-resource-refresh-queue-x-K9mvpP.js → project-resource-refresh-queue-BehrH4Ai.js} +17 -17
  267. package/server/{project-resource-refresh-queue-BaZC79S3.js → project-resource-refresh-queue-D2110Guc.js} +1 -1
  268. package/server/{projects-LftaVK99.js → projects-BMuEf14J.js} +1 -1
  269. package/server/{prompts-BotGu-6W.js → prompts-CKpDt8Jn.js} +2 -2
  270. package/server/{providers-Dqgz3MY5.js → providers-Buv2wmFU.js} +1 -1
  271. package/server/{providers-BL1I66sM.js → providers-CxPKmyif.js} +7 -7
  272. package/server/public/assets/{chunk-BO2N2NFS-D5Fz5jND.js → chunk-BO2N2NFS-DZOQVqV1.js} +4 -4
  273. package/server/public/assets/{diagram-OG6HWLK6-Eux0gWFq.js → diagram-OG6HWLK6-oKeXcbO1.js} +1 -1
  274. package/server/public/assets/{dist-D-JX_u7m.js → dist-2qPmeRzT.js} +3 -3
  275. package/server/public/assets/{dist-C3zShwhA.js → dist-ClBlE-Nm.js} +1 -1
  276. package/server/public/assets/{ganttDiagram-6RSMTGT7-UH3aweia.js → ganttDiagram-6RSMTGT7-BwdG9fQv.js} +1 -1
  277. package/server/public/assets/{highlighted-body-OFNGDK62-ccIQ-WXS.js → highlighted-body-OFNGDK62-BzGNdskQ.js} +1 -1
  278. package/server/public/assets/index-CdPveU3M.css +1 -0
  279. package/server/public/assets/{index-BTVcdPve.js → index-Cg6tdZoY.js} +149 -149
  280. package/server/public/assets/{linear-Cnnu4YQy.js → linear-DpEt1TJb.js} +1 -1
  281. package/server/public/assets/mermaid-GHXKKRXX-6KBD_3T_.js +1 -0
  282. package/server/public/assets/{pieDiagram-4H26LBE5-BD8-Tye6.js → pieDiagram-4H26LBE5-9BpM4oRJ.js} +1 -1
  283. package/server/public/assets/{prod-Ca6aKMts.js → prod-CzJiNNEG.js} +4 -4
  284. package/server/public/assets/{quadrantDiagram-W4KKPZXB-BmSrVyFD.js → quadrantDiagram-W4KKPZXB-BXWVAoZx.js} +1 -1
  285. package/server/public/assets/{sankeyDiagram-5OEKKPKP-CEGy8Das.js → sankeyDiagram-5OEKKPKP-5oxodGEw.js} +1 -1
  286. package/server/public/assets/{xychartDiagram-2RQKCTM6-VnQ8iY8s.js → xychartDiagram-2RQKCTM6-BChDrHxZ.js} +1 -1
  287. package/server/public/index.html +2 -2
  288. package/server/pull-requests-CmlandI7.js +2 -0
  289. package/server/{pull-requests-Cp_FDT8-.js → pull-requests-T0OV0Vn4.js} +3 -3
  290. package/server/{rally-bQpBzUNf.js → rally-CUqj2oIN.js} +3 -3
  291. package/server/rally-DYIn9R2U.js +3 -0
  292. package/server/{rally-api-CqAIJ8RX.js → rally-api-BFPb2oSq.js} +2 -2
  293. package/server/{rally-api-Ij1Zt0NI.js → rally-api-BoucQG1u.js} +1 -1
  294. package/server/{rally-client-qKbCNRVW.js → rally-client-16iObny7.js} +4 -4
  295. package/server/{rally-client-CN5vh4Ac.js → rally-client-CsqLjLLa.js} +1 -1
  296. package/server/{rebuild-stack-DrMyA_mA.js → rebuild-stack-BcBVFJp3.js} +2 -2
  297. package/server/{rebuild-stack-BNOMVh7C.js → rebuild-stack-CyXMrj6K.js} +6 -6
  298. package/server/reconciler-caYiRnPy.js +657 -0
  299. package/server/{reconstruct-cache-mxIYCnqs.js → reconstruct-cache-3JzPOune.js} +7 -7
  300. package/server/{record-Ug18Cp4V.js → record-DYOg97Iv.js} +1 -1
  301. package/server/{record-update-dBGxL9OC.js → record-update-BPqpBu3O.js} +5 -5
  302. package/server/{record-update-WyhsREoH.js → record-update-CDPEX7BH.js} +1 -1
  303. package/server/{recovery-trip-BKLrL6NX.js → recovery-trip-CpfW6LCJ.js} +3 -3
  304. package/server/{recovery-trip-wFAixKsg.js → recovery-trip-xqKC07Gy.js} +1 -1
  305. package/server/{release-engine-D9gaCBn9.js → release-engine-C_OOhCaK.js} +5 -5
  306. package/server/{release-set-DPHHzEGx.js → release-set-DOIDz2vw.js} +3 -3
  307. package/server/{remote-BUEeUic6.js → remote-BTh-sjpX.js} +3 -3
  308. package/server/{remote-agents-CSaTLi3u.js → remote-agents-DbbN7vSm.js} +6 -6
  309. package/server/{remote-agents-BVtASiOF.js → remote-agents-MuXx2gWm.js} +1 -1
  310. package/server/{remote-completion-CBV3b9TI.js → remote-completion-LcWCpAm2.js} +12 -12
  311. package/server/{remote-BU6ONLpv.js → remote-xY0B43Ho.js} +3 -3
  312. package/server/{resolver-gxv97jsQ.js → resolver-C2QKOf09.js} +2 -2
  313. package/server/{resolver-DvSMXty7.js → resolver-D4nsxfGo.js} +7 -7
  314. package/server/{resume-DvHuF-bm.js → resume-ByUrJUNX.js} +1 -1
  315. package/server/{review-agent-esZ0QXdY.js → review-agent-BRBTm1qE.js} +30 -30
  316. package/server/{review-agent-DgkUPRx0.js → review-agent-Caodi0PX.js} +2 -2
  317. package/server/{review-artifacts-DGGEobLp.js → review-artifacts-DgaDlbO4.js} +6 -6
  318. package/server/{review-convoy-liveness-DmO8dIBH.js → review-convoy-liveness-BBvyuRLC.js} +8 -8
  319. package/server/{review-run-recovery-DHiiw7d8.js → review-run-recovery-DCzWMMvE.js} +1 -1
  320. package/server/{review-run-recovery-Ct0q7FkE.js → review-run-recovery-THHMKlXJ.js} +2 -2
  321. package/server/{review-status-C_kQeeX0.js → review-status-Bge_3XTR.js} +1 -1
  322. package/server/{review-status-yOGD2MuK.js → review-status-DpniqzPT.js} +55 -45
  323. package/server/{review-status-emit-BZz1Y_22.js → review-status-emit-D7sM720S.js} +3 -3
  324. package/server/{review-status-enrichment-BWH0XW_m.js → review-status-enrichment-PDI4-faj.js} +3 -3
  325. package/server/{review-status-sync-2C9lk85r.js → review-status-sync-C6ZKTI8f.js} +11 -8
  326. package/server/{review-status-sync-Bq00Loey.js → review-status-sync-CvpHWyvR.js} +1 -1
  327. package/server/{review-verdict-feedback-CE_tr2iQ.js → review-verdict-feedback-B2ojHFH5.js} +7 -7
  328. package/server/{review-verdict-feedback-Brjaxoda.js → review-verdict-feedback-tyMoLT2L.js} +1 -1
  329. package/server/{review-verdict-writer-Ca2V7QSY.js → review-verdict-writer-Cy_1pnIj.js} +7 -7
  330. package/server/{review-verdict-writer-CD-4kDVx.js → review-verdict-writer-DjrJ64eS.js} +1 -1
  331. package/server/{rollup--g9ik1XQ.js → rollup-Cp0KEoOu.js} +1 -1
  332. package/server/{rollup-B6g9Nr6L.js → rollup-DU3xBQu2.js} +8 -8
  333. package/server/{scanner-YxIv-fG1.js → scanner-BFKG3Gxv.js} +7 -7
  334. package/server/{search-DqMN4__-.js → search-DhtKwbBC.js} +2 -2
  335. package/server/{sequence-io--b3_PsWq.js → sequence-io-C-Q19Jez.js} +4 -4
  336. package/server/{sequencer-agent-CqouKVZG.js → sequencer-agent-eN2P2lDz.js} +6 -6
  337. package/server/server.js +585 -282
  338. package/server/{service-CEp-3iow.js → service-CThO0Sar.js} +77 -772
  339. package/server/{session-fork-GtoeCh2H.js → session-fork-ZYTHtpBh.js} +2 -2
  340. package/server/settings-ByDRfuuE.js +2 -0
  341. package/server/{settings-CLQcdkoD.js → settings-CTywpFw5.js} +2 -2
  342. package/server/{settings-Ch2pCVtt.js → settings-nAT-eK56.js} +3 -3
  343. package/server/{shadow-engineering-BxiFrIKv.js → shadow-engineering-BHZKPJhq.js} +2 -2
  344. package/server/{shadow-state-CSA1vtxr.js → shadow-state-BTLi4Axs.js} +2 -2
  345. package/server/{shadow-state-nGhCNXT2.js → shadow-state-CZ_LnPsi.js} +1 -1
  346. package/server/{shadow-utils-7q5QDmMj.js → shadow-utils-CPLlPHdn.js} +2 -2
  347. package/server/{ship-log-ie0A_SqV.js → ship-log-D-CphNZx.js} +1 -1
  348. package/server/{ship-record-BM3oVvnL.js → ship-record-BaBla0l_.js} +5 -5
  349. package/server/{ship-record-DHWH1hLz.js → ship-record-BlvX8-xv.js} +1 -1
  350. package/server/{ship-status-BEkddXMT.js → ship-status-rQbPQBsF.js} +2 -2
  351. package/server/{smart-compaction-BkzjVpWL.js → smart-compaction-CUXn8mfX.js} +1 -1
  352. package/server/{smart-compaction-D0TE1lBD.js → smart-compaction-D1CNGdZx.js} +7 -7
  353. package/server/{spawn-planning-session-CkGweSCC.js → spawn-planning-session-DCmO6COk.js} +17 -17
  354. package/server/{spawn-planning-session-s406rw1N.js → spawn-planning-session-DfEWyrVV.js} +2 -2
  355. package/server/{specialist-completion-CTAjwH5j.js → specialist-completion-BMv3K54P.js} +1 -1
  356. package/server/{specialist-context-CKasRfYu.js → specialist-context-C1-CfYQb.js} +5 -5
  357. package/server/{specialist-handoff-logger-DrjrOmmn.js → specialist-handoff-logger-BDKoz5Z9.js} +2 -2
  358. package/server/{specialist-logs-Du6quZ0_.js → specialist-logs-BJQFkpdG.js} +3 -3
  359. package/server/{specialists-x-kPMhrL.js → specialists-CYt1U3Zm.js} +2 -2
  360. package/server/{specialists-CuDWiNdB.js → specialists-D6MUU31Q.js} +19 -19
  361. package/server/{specialists-b0dMMjWq.js → specialists-DhS79T9v.js} +333 -118
  362. package/server/{specialists-B-4zyE4Y.js → specialists-Dx0zRTxX.js} +1 -1
  363. package/server/{specialists-registry-1y6Rt_F1.js → specialists-registry-BRLCi61y.js} +1 -1
  364. package/server/{specialists-registry-BYjs04iK.js → specialists-registry-Bng0OFGH.js} +2 -2
  365. package/server/specs-oRGyfz6C.js +3 -0
  366. package/server/{src-CZsPs61V.js → src-C7gGe4KU.js} +6 -6
  367. package/server/{src-CY2Wl8IX.js → src-CdwN6WY6.js} +8 -2
  368. package/server/{src-DeQwpuh6.js → src-DMosbuSJ.js} +3 -3
  369. package/server/{stack-health-BQFSJc0l.js → stack-health-BKfNaqMm.js} +3 -3
  370. package/server/{stack-health-ypIKtkbE.js → stack-health-Bz711z1Y.js} +1 -1
  371. package/server/{stale-task-claims-C2e1zdMT.js → stale-task-claims-DMRLb5R2.js} +5 -5
  372. package/server/{staleness-Fzx_3_Hr.js → staleness-CxZaIhrn.js} +1 -1
  373. package/server/{staleness-CRDK6LFG.js → staleness-r_dkMyMG.js} +1 -1
  374. package/server/{stall-sweeper-QNk4h9m6.js → stall-sweeper-CBWqSWV2.js} +8 -8
  375. package/server/{state-home-DdG8erBI.js → state-home-DhsMqg8W.js} +2 -2
  376. package/server/{state-migrate-C6H3jfHE.js → state-migrate-C2Ouyd6e.js} +6 -6
  377. package/server/{state-mirror-DF4Lfxm0.js → state-mirror-BPXciz84.js} +3 -3
  378. package/server/{stuck-remediation-BVNd9txd.js → stuck-remediation-DALieAkx.js} +1 -1
  379. package/server/{stuck-remediation-BDa_tXgB.js → stuck-remediation-kta3KN7c.js} +13 -13
  380. package/server/{substrate-bug-weights-service-BbbCZEtJ.js → substrate-bug-weights-service-D_ICP7TI.js} +3 -3
  381. package/server/{summary-fork-DIQmtOuV.js → summary-fork-CojrFKb6.js} +2 -2
  382. package/server/{summary-fork-BvcW6bq0.js → summary-fork-DhhaFhxZ.js} +10 -10
  383. package/server/supervisor-DSSWo4M2.js +2 -0
  384. package/server/{supervisor-D3jC2c7A.js → supervisor-DqH-laVL.js} +4 -4
  385. package/server/{swarm-readiness-CMWAQuWM.js → swarm-readiness-LF8ZF_hc.js} +3 -3
  386. package/server/{synthesis-verdict-DVlrLF9A.js → synthesis-verdict-CGFF8uQI.js} +2 -2
  387. package/server/{synthesis-verdict-C-pJOPsn.js → synthesis-verdict-DSoOFUIV.js} +1 -1
  388. package/server/{system-prerequisites-QKtIYXI2.js → system-prerequisites-Lsx0jUUV.js} +2 -2
  389. package/server/{teardown-workspace-cJea1OLo.js → teardown-workspace-DMwomEG1.js} +16 -16
  390. package/server/{test-agent-queue-C5DI_gWX.js → test-agent-queue-Cu0D6BYe.js} +6 -6
  391. package/server/{test-verdict-C7kmd2_Y.js → test-verdict-9mvl7pQn.js} +1 -1
  392. package/server/{test-verdict-DUbDHqeD.js → test-verdict-oNSv1rVr.js} +2 -2
  393. package/server/{tldr-daemon-BNQHwblU.js → tldr-daemon-CRSAkhBx.js} +1 -1
  394. package/server/{tldr-daemon-CO08YlfQ.js → tldr-daemon-McqCk2X7.js} +2 -2
  395. package/server/{tmux-B8zsqD_6.js → tmux-CYucGrTl.js} +2 -2
  396. package/server/{tmux-DWEc4Ld9.js → tmux-wnT_hg-s.js} +2 -2
  397. package/server/{token-Bez-qCB2.js → token-BdfZLRg1.js} +1 -1
  398. package/server/{tracker-config-CJzPhSHv.js → tracker-config-tfAOWgng.js} +2 -2
  399. package/server/{tracker-utils-DJAOAuMN.js → tracker-utils-Dbg_pVZg.js} +2 -2
  400. package/server/{traefik-connect-D3H5I6b9.js → traefik-connect-DoQvQ6oJ.js} +1 -1
  401. package/server/{tunnel-BSdKnW0U.js → tunnel-B1MNIgkL.js} +1 -1
  402. package/server/{tunnel-Cr3ctqxp.js → tunnel-skW68j9B.js} +3 -3
  403. package/server/{types-fzBp9cYi.js → types-PW4zkxCM.js} +1 -1
  404. package/server/{uat-failure-feedback-IZQ-J8jt.js → uat-failure-feedback-ly8ZwtfC.js} +5 -5
  405. package/server/{uat-promote-verification-DXApKcc2.js → uat-promote-verification-BBaMwfdc.js} +5 -5
  406. package/server/{uat-train-IIZlz7r3.js → uat-train-BBEiYSep.js} +0 -0
  407. package/server/{uat-train-CycEzpbE.js → uat-train-D7Ran2FB.js} +1 -1
  408. package/server/{validate-Ur4xH5bN.js → validate-BYcBcBwg.js} +3 -3
  409. package/server/{validation-Dr6V4PXx.js → validation-BfG2jW5C.js} +4 -4
  410. package/server/{validation-CHovCoTT.js → validation-nSrYiYvA.js} +1 -1
  411. package/server/{verification-artifact-D3viYe_t.js → verification-artifact-Cmhgq4b_.js} +1 -1
  412. package/server/{verification-artifact-k5Ftpg0c.js → verification-artifact-DglwaHke.js} +1 -1
  413. package/server/{verification-runner-Dl13mmsI.js → verification-runner-BEq5ZF-h.js} +16 -16
  414. package/server/{verification-runner-BuqGwm2t.js → verification-runner-CFjAuv9u.js} +1 -1
  415. package/server/{vtt-parser-BSnAB-Og.js → vtt-parser-Va--tv27.js} +1 -1
  416. package/server/{work-agent-prompt-CJJ4tXci.js → work-agent-prompt-BnhKNAg7.js} +1 -1
  417. package/server/{work-agent-prompt-CioeOuM4.js → work-agent-prompt-CaD2ue8m.js} +10 -10
  418. package/server/{work-agent-start-B65Gqn9N.js → work-agent-start-0nJ-6UeA.js} +2 -2
  419. package/server/{work-agent-start-Ct1HVh6z.js → work-agent-start-D8NEN5KD.js} +1 -1
  420. package/server/workflows-BtHRlFIm.js +2 -0
  421. package/server/{workflows-AgFul1xc.js → workflows-C7mxM1qc.js} +28 -28
  422. package/server/{workspace-Cy4sDd3q.js → workspace-BAhMgMaO.js} +3 -3
  423. package/server/{workspace-Cu3XlMXt.js → workspace-Dbqv9ehn.js} +1 -1
  424. package/server/{workspace-anchor-drift-CMaqvizr.js → workspace-anchor-drift-B_3kyyxJ.js} +4 -4
  425. package/server/{workspace-anchor-drift-BI0Hz6zI.js → workspace-anchor-drift-Bpa3xoni.js} +1 -1
  426. package/server/{workspace-config-DRYDO7Zr.js → workspace-config-D-bNq2CF.js} +1 -1
  427. package/server/{workspace-manager-jfkKAEuO.js → workspace-manager-BrbX90Rm.js} +1 -1
  428. package/server/{workspace-manager-CgovxDrO.js → workspace-manager-CM8RCrSc.js} +16 -16
  429. package/server/{workspace-metadata-BDqXzGGK.js → workspace-metadata-BEOwJSdK.js} +1 -1
  430. package/server/{workspace-metadata-BNzODIv6.js → workspace-metadata-Cu6yfxBS.js} +2 -2
  431. package/server/{workspaces-BJdPqx_J.js → workspaces-C7LAuZfe.js} +123 -696
  432. package/sync-sources/rules/agent-message-delivery.md +21 -14
  433. package/sync-sources/rules/pan-handoff-focus-limit.md +3 -1
  434. package/sync-sources/skills/pan-gauntlet-loop/SKILL.md +94 -46
  435. package/sync-sources/skills/pan-handoff/SKILL.md +13 -2
  436. package/server/archive-planning-BW4MKNI7.js +0 -2
  437. package/server/build-info-Bj2vQEMh.js +0 -2
  438. package/server/cli-BRuzUT_I.js +0 -2
  439. package/server/dead-end-trip-6V_CwveT.js +0 -2
  440. package/server/deploy-queue-CjLErpgw.js +0 -2
  441. package/server/dist-fCA6y2bH.js +0 -3
  442. package/server/forge-bvak6vXJ.js +0 -2
  443. package/server/hume-TYTb6fDU.js +0 -3
  444. package/server/inspect-agent-JFEaYTRa.js +0 -2
  445. package/server/merge-ops-DabXHp2i.js +0 -2
  446. package/server/merge-rebase-CXq0qsgR.js +0 -2
  447. package/server/public/assets/index-2wV4ipy_.css +0 -1
  448. package/server/public/assets/mermaid-GHXKKRXX-Bjto8iJh.js +0 -1
  449. package/server/pull-requests-jVGcVq5G.js +0 -2
  450. package/server/rally-CxhVgIQ6.js +0 -3
  451. package/server/settings-DhtPDmmI.js +0 -2
  452. package/server/specs-IYsFlM-L.js +0 -3
  453. package/server/supervisor-v0cYN2Vp.js +0 -2
  454. package/server/workflows-CfHm8lVd.js +0 -2
  455. package/sync-sources/skills/pan-gauntlet-loop/references/lessons.md +0 -60
@@ -50,7 +50,7 @@ const scan = (input, options) => {
50
50
  const opts = options || {};
51
51
 
52
52
  const length = input.length - 1;
53
- const scanToEnd = opts.parts === true || opts.scanToEnd === true;
53
+ const scanToEnd = opts.parts === true || opts.tokens === true || opts.scanToEnd === true;
54
54
  const slashes = [];
55
55
  const tokens = [];
56
56
  const parts = [];
@@ -184,15 +184,21 @@ const scan = (input, options) => {
184
184
  }
185
185
 
186
186
  if (scanToEnd === true) {
187
+ let parens = 0;
188
+
187
189
  while (eos() !== true && (code = advance())) {
188
190
  if (code === CHAR_BACKWARD_SLASH) {
189
191
  backslashes = token.backslashes = true;
190
- code = advance();
192
+ advance();
193
+ continue;
194
+ }
195
+
196
+ if (code === CHAR_LEFT_PARENTHESES) {
197
+ parens++;
191
198
  continue;
192
199
  }
193
200
 
194
- if (code === CHAR_RIGHT_PARENTHESES) {
195
- isGlob = token.isGlob = true;
201
+ if (code === CHAR_RIGHT_PARENTHESES && --parens === 0) {
196
202
  finished = true;
197
203
  break;
198
204
  }
@@ -257,14 +263,21 @@ const scan = (input, options) => {
257
263
  isGlob = token.isGlob = true;
258
264
 
259
265
  if (scanToEnd === true) {
266
+ let parens = 1;
267
+
260
268
  while (eos() !== true && (code = advance())) {
261
- if (code === CHAR_LEFT_PARENTHESES) {
269
+ if (code === CHAR_BACKWARD_SLASH) {
262
270
  backslashes = token.backslashes = true;
263
- code = advance();
271
+ advance();
264
272
  continue;
265
273
  }
266
274
 
267
- if (code === CHAR_RIGHT_PARENTHESES) {
275
+ if (code === CHAR_LEFT_PARENTHESES) {
276
+ parens++;
277
+ continue;
278
+ }
279
+
280
+ if (code === CHAR_RIGHT_PARENTHESES && --parens === 0) {
268
281
  finished = true;
269
282
  break;
270
283
  }
@@ -351,7 +364,7 @@ const scan = (input, options) => {
351
364
  let prevIndex;
352
365
 
353
366
  for (let idx = 0; idx < slashes.length; idx++) {
354
- const n = prevIndex ? prevIndex + 1 : start;
367
+ const n = prevIndex !== undefined ? prevIndex + 1 : start;
355
368
  const i = slashes[idx];
356
369
  const value = input.slice(n, i);
357
370
  if (opts.tokens) {
@@ -364,21 +377,20 @@ const scan = (input, options) => {
364
377
  depth(tokens[idx]);
365
378
  state.maxDepth += tokens[idx].depth;
366
379
  }
367
- if (idx !== 0 || value !== '') {
380
+ if (i >= start) {
368
381
  parts.push(value);
382
+ prevIndex = i;
369
383
  }
370
- prevIndex = i;
371
384
  }
372
385
 
373
- if (prevIndex && prevIndex + 1 < input.length) {
374
- const value = input.slice(prevIndex + 1);
375
- parts.push(value);
386
+ const n = prevIndex !== undefined ? prevIndex + 1 : start;
387
+ const value = input.slice(n);
388
+ parts.push(value);
376
389
 
377
- if (opts.tokens) {
378
- tokens[tokens.length - 1].value = value;
379
- depth(tokens[tokens.length - 1]);
380
- state.maxDepth += tokens[tokens.length - 1].depth;
381
- }
390
+ if (opts.tokens && prevIndex && prevIndex + 1 < input.length) {
391
+ tokens[tokens.length - 1].value = value;
392
+ depth(tokens[tokens.length - 1]);
393
+ state.maxDepth += tokens[tokens.length - 1].depth;
382
394
  }
383
395
 
384
396
  state.slashes = slashes;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "picomatch",
3
3
  "description": "Blazing fast and accurate glob matcher written in JavaScript, with no dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions.",
4
- "version": "4.0.5",
4
+ "version": "4.0.7",
5
5
  "homepage": "https://github.com/micromatch/picomatch",
6
6
  "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
7
7
  "funding": "https://github.com/sponsors/jonschlinkert",
@@ -1,3 +1,3 @@
1
- import { n as handleOrphanProposedSpec } from "./orphan-proposed-reconciler-Dmk0kO_p.js";
2
- import "./work-agent-start-B65Gqn9N.js";
1
+ import { n as handleOrphanProposedSpec } from "./orphan-proposed-reconciler-nFUlquZt.js";
2
+ import "./work-agent-start-0nJ-6UeA.js";
3
3
  export { handleOrphanProposedSpec };
@@ -1,24 +1,24 @@
1
1
  import { a as __toCommonJS } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { On as resolveProjectFromIssueSync, fn as init_projects, gn as listProjects } from "./config-yaml-D9nfpEx1.js";
3
- import { l as init_activity_logger, o as emitActivityEntrySync } from "./activity-logger-BWZhVphb.js";
4
- import { C as init_tmux, j as listSessionNames } from "./tmux-DWEc4Ld9.js";
5
- import { m as getAgentState, q as init_agents } from "./agent-state-BJhGIJZe.js";
6
- import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-DoVzb4b7.js";
7
- import { a as readAutoSpawnOnFinalizeFlagAsync } from "./auto-spawn-consent-Dc4mtM-B.js";
8
- import { c as init_control_settings, f as isFlywheelAutoPickupBacklog } from "./control-settings-BMoDHY1G.js";
9
- import { o as init_lifecycle, s as isXBriefFilename } from "./lifecycle-0NOEzomy.js";
10
- import { C as init_specs, N as getProjectPanPaths, P as init_paths, S as findSpecByIssue, f as readPlanSync, i as findPlanSync, s as init_io } from "./io-DKrWd3gX.js";
11
- import { i as loadCloisterConfig, r as init_config } from "./config-Doq_tF-f.js";
12
- import { n as resolveGitHubIssueSync, t as init_tracker_utils } from "./tracker-utils-DJAOAuMN.js";
13
- import { i as issue_service_singleton_exports, n as init_issue_service_singleton } from "./issue-service-singleton-B2xy-IS9.js";
14
- import { d as getReviewStatusSync, p as init_review_status } from "./review-status-yOGD2MuK.js";
15
- import { f as init_github_app, p as isGitHubAppConfigured, v as listPullRequestsForHead } from "./github-app-7ywLhuZO.js";
16
- import { h as init_pickup, r as LEGACY_PARKED_LABELS } from "./pickup-D1UbSDPd.js";
17
- import { r as activeOrderBookIssues } from "./flywheel-CjW2L7BS.js";
18
- import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-6RQsAjDX.js";
19
- import { t as recordDeadEndNeedsYou } from "./dead-end-trip-CnVmjnya.js";
20
- import "./spawn-planning-session-CkGweSCC.js";
21
- import { n as spawnWorkAgentThroughAgentsEndpoint, t as init_work_agent_start } from "./work-agent-start-B65Gqn9N.js";
2
+ import { On as resolveProjectFromIssueSync, fn as init_projects, gn as listProjects } from "./config-yaml-D60AnTIu.js";
3
+ import { l as init_activity_logger, o as emitActivityEntrySync } from "./activity-logger-SlTXYCVf.js";
4
+ import { C as init_tmux, j as listSessionNames } from "./tmux-wnT_hg-s.js";
5
+ import { c as init_control_settings, f as isFlywheelAutoPickupBacklog } from "./control-settings-Db0uXgVM.js";
6
+ import { m as getAgentState, q as init_agents } from "./agent-state-FABw8neJ.js";
7
+ import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-BeIWG_kT.js";
8
+ import { a as readAutoSpawnOnFinalizeFlagAsync } from "./auto-spawn-consent-BesWchEi.js";
9
+ import { o as init_lifecycle, s as isXBriefFilename } from "./lifecycle-DVXyUil2.js";
10
+ import { C as init_specs, N as getProjectPanPaths, P as init_paths, S as findSpecByIssue, f as readPlanSync, i as findPlanSync, s as init_io } from "./io-BCtZoXHo.js";
11
+ import { i as loadCloisterConfig, r as init_config } from "./config-_qaa1UXH.js";
12
+ import { n as resolveGitHubIssueSync, t as init_tracker_utils } from "./tracker-utils-Dbg_pVZg.js";
13
+ import { i as issue_service_singleton_exports, n as init_issue_service_singleton } from "./issue-service-singleton-C_sZ0HjP.js";
14
+ import { d as getReviewStatusSync, p as init_review_status } from "./review-status-DpniqzPT.js";
15
+ import { f as init_github_app, p as isGitHubAppConfigured, v as listPullRequestsForHead } from "./github-app-BlMSzSTw.js";
16
+ import { h as init_pickup, r as LEGACY_PARKED_LABELS } from "./pickup-Dle6k9Xt.js";
17
+ import { r as activeOrderBookIssues } from "./flywheel-DWKd7bMc.js";
18
+ import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-CiYAa6bX.js";
19
+ import { t as recordDeadEndNeedsYou } from "./dead-end-trip-Bs3hxIn6.js";
20
+ import "./spawn-planning-session-DCmO6COk.js";
21
+ import { n as spawnWorkAgentThroughAgentsEndpoint, t as init_work_agent_start } from "./work-agent-start-0nJ-6UeA.js";
22
22
  import { Effect } from "effect";
23
23
  import { existsSync, readdirSync } from "fs";
24
24
  import { join } from "path";
@@ -654,4 +654,4 @@ async function reconcileOrphanProposedSpecs(options = {}) {
654
654
  //#endregion
655
655
  export { triggerRebuildAndStart as a, reconcileOrphanProposedSpecs as i, handleOrphanProposedSpec as n, decideAutonomousWorkDispatch as o, hasReviewPipelinePresence as r, gatherAutonomousWorkDispatchInput as s, findOrphanProposedSpecsForReconciler as t };
656
656
 
657
- //# sourceMappingURL=orphan-proposed-reconciler-Dmk0kO_p.js.map
657
+ //# sourceMappingURL=orphan-proposed-reconciler-nFUlquZt.js.map
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@overdeck/desktop-server",
3
- "version": "0.49.2",
3
+ "version": "0.50.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@overdeck/desktop-server",
9
- "version": "0.49.2",
9
+ "version": "0.50.0",
10
10
  "dependencies": {
11
11
  "@effect/platform-node": "4.0.0-beta.73",
12
12
  "@google-cloud/speech": "7.3.1",
@@ -38,19 +38,19 @@
38
38
  }
39
39
  },
40
40
  "node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared": {
41
- "version": "4.0.0-rc.109",
42
- "resolved": "https://registry.npmjs.org/@effect/platform-node-shared/-/platform-node-shared-4.0.0-rc.109.tgz",
43
- "integrity": "sha512-jhZJnf81N7Z5+Z41Qr0cKT75WzGu6M1W05xrSdu/V8PK0kSFtU5hJMBxSGDWNlgWhBwK0WRZtnMHY8HLdONg1w==",
41
+ "version": "4.0.0-rc.112",
42
+ "resolved": "https://registry.npmjs.org/@effect/platform-node-shared/-/platform-node-shared-4.0.0-rc.112.tgz",
43
+ "integrity": "sha512-ttjz0xKamFN7vL8pNDYVwddJLjZvqKePc05djlz2VcdaKbLsnYbtMnL1rbOfHgEnIUSHGh7FkjaN4DM1Ov81sQ==",
44
44
  "license": "MIT",
45
45
  "dependencies": {
46
46
  "@types/ws": "^8.18.1",
47
- "ws": "^8.21.0"
47
+ "ws": "^8.21.3"
48
48
  },
49
49
  "engines": {
50
50
  "node": ">=18.0.0"
51
51
  },
52
52
  "peerDependencies": {
53
- "effect": "^4.0.0-rc.109"
53
+ "effect": "^4.0.0-rc.112"
54
54
  }
55
55
  },
56
56
  "node_modules/@google-cloud/common": {
@@ -739,9 +739,9 @@
739
739
  }
740
740
  },
741
741
  "node_modules/@types/node": {
742
- "version": "26.2.0",
743
- "resolved": "https://registry.npmjs.org/@types/node/-/node-26.2.0.tgz",
744
- "integrity": "sha512-5IviulTZeRNp2vAJ514cc/HUlY5nZ9fCbq9DMyC52BrhFZACo3nI0R7qBxhQmo/d27NFe96ur/b7Wwxklda+kg==",
742
+ "version": "26.3.0",
743
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-26.3.0.tgz",
744
+ "integrity": "sha512-L3fgrnchriRC2ExBflb8j4uZZURHZfQsmQeyVzhjcHW4kkwVyo8/0h1B2MVzMTrYUJYu6G7EWs14hW/L9putqw==",
745
745
  "license": "MIT",
746
746
  "dependencies": {
747
747
  "undici-types": "~8.3.0"
@@ -1203,9 +1203,9 @@
1203
1203
  }
1204
1204
  },
1205
1205
  "node_modules/effect/node_modules/uuid": {
1206
- "version": "14.0.1",
1207
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.1.tgz",
1208
- "integrity": "sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==",
1206
+ "version": "14.0.2",
1207
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.2.tgz",
1208
+ "integrity": "sha512-xZe/16rV4aa+HGSOCiY2YeLT1OybRLrrkL/Rqaq7p7GMVXjFh+6wN4oMYgjFmnSnhY8t6Xpdl2l9qmnHYuMHwQ==",
1209
1209
  "funding": [
1210
1210
  "https://github.com/sponsors/broofa",
1211
1211
  "https://github.com/sponsors/ctavan"
@@ -1702,9 +1702,9 @@
1702
1702
  "license": "MIT"
1703
1703
  },
1704
1704
  "node_modules/msgpackr": {
1705
- "version": "2.0.5",
1706
- "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-2.0.5.tgz",
1707
- "integrity": "sha512-cef05H/dSYpLpqp3sj/qyZh5vhUYCalnaLO7j1yOmpsR0y/XwLVtK7r5gn+U/F7CTEfMowcGhlUQJDLcLf7jcA==",
1705
+ "version": "2.0.6",
1706
+ "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-2.0.6.tgz",
1707
+ "integrity": "sha512-plGul/tqjt9vqWFR9zyqyLZls6gb5KTLvnsRO2B9+TZ8tNiXiVI/CR8LiDWlAX4IUeVkQ9gsmzKA6voC2QOciw==",
1708
1708
  "license": "MIT",
1709
1709
  "optionalDependencies": {
1710
1710
  "msgpackr-extract": "^3.0.4"
@@ -1847,9 +1847,9 @@
1847
1847
  }
1848
1848
  },
1849
1849
  "node_modules/picomatch": {
1850
- "version": "4.0.5",
1851
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz",
1852
- "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==",
1850
+ "version": "4.0.7",
1851
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz",
1852
+ "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==",
1853
1853
  "license": "MIT",
1854
1854
  "engines": {
1855
1855
  "node": ">=12"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@overdeck/desktop-server",
3
- "version": "0.49.2",
3
+ "version": "0.50.0",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,8 +1,8 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Dt as queueAutoCommit, Tt as init_auto_commit, Zr as FsError, ci as init_errors, wt as flushAutoCommits } from "./config-yaml-D9nfpEx1.js";
2
+ import { Dt as queueAutoCommit, Qr as FsError, Tt as init_auto_commit, li as init_errors, wt as flushAutoCommits } from "./config-yaml-D60AnTIu.js";
3
3
  import { m as init_types } from "./types-pLpbsNto.js";
4
- import { a as init_continue, i as getWorkspacePanPaths, n as getLegacyWorkspacePanPaths, r as getReadableWorkspacePanPaths, t as ensureWorkspacePanDir } from "./continue-i7Revg8D.js";
5
- import { C as init_specs, N as getProjectPanPaths, x as ensurePanDirs } from "./io-DKrWd3gX.js";
4
+ import { a as init_continue, i as getWorkspacePanPaths, n as getLegacyWorkspacePanPaths, r as getReadableWorkspacePanPaths, t as ensureWorkspacePanDir } from "./continue-CnvrUfxw.js";
5
+ import { C as init_specs, N as getProjectPanPaths, x as ensurePanDirs } from "./io-BCtZoXHo.js";
6
6
  import { Effect, FileSystem } from "effect";
7
7
  import { join } from "path";
8
8
  import { existsSync, readFileSync, readdirSync, rmSync } from "node:fs";
@@ -307,4 +307,4 @@ var init_pan_dir = __esmMin((() => {
307
307
  //#endregion
308
308
  export { getDraftPath as a, clearFeedback as c, checkPrdGateSync as i, readFeedback as l, readWorkspaceContext as n, getIssueDraftPath as o, writeWorkspaceContext as r, promoteWorkspacePrdDraft as s, init_pan_dir as t, writeFeedback as u };
309
309
 
310
- //# sourceMappingURL=pan-dir-BMda7tQj.js.map
310
+ //# sourceMappingURL=pan-dir-B4NfzOf3.js.map
@@ -1,18 +1,18 @@
1
- import { Ht as init_state_read_home, On as resolveProjectFromIssueSync, Ri as init_paths, Wt as resolveStateReadHomeSync, Y as init_record, fn as init_projects, j as RECORD_DIRNAME, li as AGENTS_DIR } from "./config-yaml-D9nfpEx1.js";
2
- import { l as init_activity_logger, o as emitActivityEntrySync } from "./activity-logger-BWZhVphb.js";
3
- import { B as sendKeys, C as init_tmux, W as sessionExistsSync } from "./tmux-DWEc4Ld9.js";
4
- import { W as getAgentRuntimeStateSync, _ as init_agent_state, a as clearAgentOperatorGatesForIssuesSync, g as getAgentStateSync, q as init_agents, yn as listRunningAgentsSync } from "./agent-state-BJhGIJZe.js";
5
- import { i as loadCloisterConfig, r as init_config } from "./config-Doq_tF-f.js";
6
- import { n as resolveGitHubIssueSync, t as init_tracker_utils } from "./tracker-utils-DJAOAuMN.js";
7
- import { _ as markMerged, c as init_merge_sync, f as listActiveAutoMerges, m as listProblemAutoMerges, t as cancelPending } from "./merge-sync-CJpOa0cZ.js";
8
- import { i as init_merge_set, r as getMergeSetSync } from "./merge-set-BmRRflt0.js";
9
- import { U as reviewGatesPassedSync, Y as init_review_status_record_sync, Z as readJournalStatusSync, h as loadReviewStatuses, p as init_review_status, w as setReviewStatusSync } from "./review-status-yOGD2MuK.js";
10
- import { M as withConcurrencyLimit, j as init_concurrency } from "./github-app-7ywLhuZO.js";
11
- import { r as isAgentIdleForNudge } from "./agent-idle-ONBssBN_.js";
12
- import { n as sweepAutoCloseOutCache, t as getAutoCloseOutCanonicalState } from "./deacon-canonical-state-CkvxRPck.js";
13
- import { n as getForgeAdapter } from "./forge-RVTCK_5X.js";
14
- import { i as observeForgeMergeState } from "./merge-completeness-DQt7Qa7i.js";
15
- import { r as init_recovery_trip, t as acknowledgeAllOpenRecoveryTrips } from "./recovery-trip-BKLrL6NX.js";
1
+ import { Ht as init_state_read_home, On as resolveProjectFromIssueSync, Wt as resolveStateReadHomeSync, Y as init_record, fn as init_projects, j as RECORD_DIRNAME, ui as AGENTS_DIR, zi as init_paths } from "./config-yaml-D60AnTIu.js";
2
+ import { l as init_activity_logger, o as emitActivityEntrySync } from "./activity-logger-SlTXYCVf.js";
3
+ import { B as sendKeys, C as init_tmux, W as sessionExistsSync } from "./tmux-wnT_hg-s.js";
4
+ import { W as getAgentRuntimeStateSync, _ as init_agent_state, a as clearAgentOperatorGatesForIssuesSync, g as getAgentStateSync, q as init_agents, yn as listRunningAgentsSync } from "./agent-state-FABw8neJ.js";
5
+ import { i as loadCloisterConfig, r as init_config } from "./config-_qaa1UXH.js";
6
+ import { n as resolveGitHubIssueSync, t as init_tracker_utils } from "./tracker-utils-Dbg_pVZg.js";
7
+ import { _ as markMerged, c as init_merge_sync, f as listActiveAutoMerges, m as listProblemAutoMerges, t as cancelPending } from "./merge-sync-YLvOPAry.js";
8
+ import { i as init_merge_set, r as getMergeSetSync } from "./merge-set-CyW-xSn4.js";
9
+ import { U as reviewGatesPassedSync, Y as init_review_status_record_sync, Z as readJournalStatusSync, h as loadReviewStatuses, p as init_review_status, w as setReviewStatusSync } from "./review-status-DpniqzPT.js";
10
+ import { M as withConcurrencyLimit, j as init_concurrency } from "./github-app-BlMSzSTw.js";
11
+ import { r as isAgentIdleForNudge } from "./agent-idle-D-UQ7gDv.js";
12
+ import { n as sweepAutoCloseOutCache, t as getAutoCloseOutCanonicalState } from "./deacon-canonical-state-DkdkQS5p.js";
13
+ import { n as getForgeAdapter } from "./forge-CHADjOFs.js";
14
+ import { i as observeForgeMergeState } from "./merge-completeness-BOtBUwTU.js";
15
+ import { r as init_recovery_trip, t as acknowledgeAllOpenRecoveryTrips } from "./recovery-trip-CpfW6LCJ.js";
16
16
  import { join } from "node:path";
17
17
  import { Effect } from "effect";
18
18
  import { existsSync, readdirSync } from "fs";
@@ -76,7 +76,7 @@ function isStuckMergingState(status, now) {
76
76
  }
77
77
  async function readSpecStatus(projectPath, issueId) {
78
78
  try {
79
- const { findSpecByIssue } = await import("./specs-IYsFlM-L.js");
79
+ const { findSpecByIssue } = await import("./specs-oRGyfz6C.js");
80
80
  return (await Effect.runPromise(findSpecByIssue(projectPath, issueId)))?.status;
81
81
  } catch {
82
82
  return;
@@ -158,7 +158,7 @@ async function reconcileStuckMergingStates() {
158
158
  reviewGatesPassed: reviewGatesPassedSync,
159
159
  setReviewStatus: setReviewStatusSync,
160
160
  enqueuePostMerge: async (issueId, projectPath, branch) => {
161
- const { enqueuePostMergeLifecycle } = await import("./post-merge-lifecycle-worker-DAWgzXQA.js");
161
+ const { enqueuePostMergeLifecycle } = await import("./post-merge-lifecycle-worker-OQoK8Ckg.js");
162
162
  return enqueuePostMergeLifecycle(issueId, projectPath, branch);
163
163
  },
164
164
  warn: (message) => console.warn(message)
@@ -383,7 +383,7 @@ async function reconcileStaleMergeStatus() {
383
383
  const statuses = loadReviewStatuses();
384
384
  for (const [issueId, status] of Object.entries(statuses)) {
385
385
  const postMergeIncomplete = status.mergeStatus === "merged" && status.mergeStep === "post-merge-cleanup";
386
- if (status.mergeStatus === "merged" && !postMergeIncomplete) continue;
386
+ if (status.retiredAt || status.mergeStatus === "merged" && !postMergeIncomplete) continue;
387
387
  if (isStuckMergingState(status, Date.now())) continue;
388
388
  if (!postMergeIncomplete && staleMergeReconciled.has(issueId)) continue;
389
389
  const project = resolveProjectFromIssueSync(issueId);
@@ -398,7 +398,7 @@ async function reconcileStaleMergeStatus() {
398
398
  ].includes(status.mergeStatus ?? "") || ["merging", "failed"].includes(mergeSet?.status ?? "");
399
399
  let specStatus;
400
400
  try {
401
- const { findSpecByIssue } = await import("./specs-IYsFlM-L.js");
401
+ const { findSpecByIssue } = await import("./specs-oRGyfz6C.js");
402
402
  const spec = await Effect.runPromise(findSpecByIssue(project.projectPath, issueId));
403
403
  specStatus = spec?.status;
404
404
  if (spec && (spec.status === "completed" || spec.status === "cancelled")) {
@@ -408,7 +408,7 @@ async function reconcileStaleMergeStatus() {
408
408
  } catch {}
409
409
  const branch = `feature/${issueId.toLowerCase()}`;
410
410
  if (postMergeIncomplete) {
411
- const { enqueuePostMergeLifecycle } = await import("./post-merge-lifecycle-worker-DAWgzXQA.js");
411
+ const { enqueuePostMergeLifecycle } = await import("./post-merge-lifecycle-worker-OQoK8Ckg.js");
412
412
  const action = enqueuePostMergeLifecycle(issueId, project.projectPath, branch);
413
413
  if (action) actions.push(action);
414
414
  continue;
@@ -420,7 +420,7 @@ async function reconcileStaleMergeStatus() {
420
420
  } catch {}
421
421
  if (!isMerged) isMerged = (await observeGitHubBranchMerge(issueId, branch, project.projectPath)).merged;
422
422
  if (shouldObserveForge && mergeRelevant) try {
423
- const observation = await (await import("./merge-completeness-DkdabVch.js")).observeForgeMergeState(issueId);
423
+ const observation = await (await import("./merge-completeness-CoLJxfUY.js")).observeForgeMergeState(issueId);
424
424
  const blocker = observation.repos.find((repo) => repo.state === "unverifiable");
425
425
  if (blocker) {
426
426
  console.warn(`[deacon] ${issueId}: forge merge state is unverifiable — ${blocker.reason}`);
@@ -447,7 +447,7 @@ async function reconcileStaleMergeStatus() {
447
447
  const msg = `Reconciled stale mergeStatus for ${issueId} — branch ${branch} is merged to main`;
448
448
  actions.push(msg);
449
449
  console.log(`[deacon] ${msg}`);
450
- const { enqueuePostMergeLifecycle } = await import("./post-merge-lifecycle-worker-DAWgzXQA.js");
450
+ const { enqueuePostMergeLifecycle } = await import("./post-merge-lifecycle-worker-OQoK8Ckg.js");
451
451
  const action = enqueuePostMergeLifecycle(issueId, project.projectPath, branch);
452
452
  if (action) actions.push(action);
453
453
  }
@@ -470,11 +470,11 @@ const falseMergedReset = /* @__PURE__ */ new Set();
470
470
  async function reconcileFalseMerged() {
471
471
  const actions = [];
472
472
  try {
473
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-Oi5hdn1n.js");
473
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-BWziYCf3.js");
474
474
  if (!isGitHubAppConfigured()) return actions;
475
475
  const statuses = loadReviewStatuses();
476
476
  for (const [issueId, status] of Object.entries(statuses)) {
477
- if (status.mergeStatus !== "merged") continue;
477
+ if (status.retiredAt || status.mergeStatus !== "merged") continue;
478
478
  if (!status.prUrl) continue;
479
479
  if (falseMergedReset.has(issueId)) continue;
480
480
  const prRef = status.prUrl.match(/github\.com\/([^/]+)\/([^/]+)\/pull\/(\d+)/);
@@ -515,12 +515,12 @@ const CLOSED_PR_RECONCILE_COOLDOWN_MS = 600 * 1e3;
515
515
  async function reconcileClosedPrReadyForMerge() {
516
516
  const actions = [];
517
517
  try {
518
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-Oi5hdn1n.js");
518
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-BWziYCf3.js");
519
519
  if (!isGitHubAppConfigured()) return actions;
520
520
  const statuses = loadReviewStatuses();
521
521
  const now = Date.now();
522
522
  for (const [issueId, status] of Object.entries(statuses)) {
523
- if (!status.readyForMerge) continue;
523
+ if (status.retiredAt || !status.readyForMerge) continue;
524
524
  if (!status.prUrl) continue;
525
525
  const cooledUntil = closedPrReadyReconcileCooldowns.get(issueId);
526
526
  if (cooledUntil && now < cooledUntil) continue;
@@ -544,7 +544,7 @@ async function reconcileClosedPrReadyForMerge() {
544
544
  } else {
545
545
  setReviewStatusSync(issueId, {
546
546
  readyForMerge: false,
547
- mergeStatus: "failed",
547
+ retiredAt: new Date(now).toISOString(),
548
548
  mergeNotes: `PR #${prNumber} was closed without merging — reopen the PR or reset review state to re-queue this issue`
549
549
  });
550
550
  const msg = `Reset readyForMerge for ${issueId} — PR #${prNumber} is ${prState.state} (not OPEN)`;
@@ -584,23 +584,34 @@ const STALE_MERGE_BLOCKER_COOLDOWN_MS = 120 * 1e3;
584
584
  * cooldown bounds the git-probe cost; resolveConflictGate also caches its
585
585
  * mergeability probe.
586
586
  */
587
- async function reconcileStaleMergeBlockers() {
587
+ async function reconcileStaleMergeBlockers(gatherEligibility = async (ids) => (await import("./merge-eligibility-C4rTS97F.js")).gatherMergeEligibility(ids), workspaceExists = existsSync, resolveWorkspace = (issueId) => {
588
+ const resolved = resolveProjectFromIssueSync(issueId);
589
+ return resolved ? join$1(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`) : null;
590
+ }) {
588
591
  const actions = [];
589
592
  try {
590
- const { resolveConflictGate, buildRealConflictGateDeps } = await import("./conflict-gate-D4XCtrm2.js");
593
+ const { resolveConflictGate, buildRealConflictGateDeps } = await import("./conflict-gate-0dD1kxjN.js");
591
594
  const statuses = loadReviewStatuses();
592
595
  const now = Date.now();
593
596
  const deps = buildRealConflictGateDeps();
594
- for (const [issueId, status] of Object.entries(statuses)) {
595
- if (status.mergeStatus === "merged") continue;
596
- if (!(status.blockerReasons ?? []).some((b) => b.type === "merge_conflict" || b.type === "not_mergeable")) continue;
597
+ const candidates = Object.entries(statuses).filter(([, status]) => !status.retiredAt && status.mergeStatus !== "merged" && (status.blockerReasons ?? []).some((b) => b.type === "merge_conflict" || b.type === "not_mergeable"));
598
+ const memberships = await gatherEligibility(candidates.map(([issueId]) => issueId));
599
+ for (const [issueId] of candidates) {
597
600
  const cooledUntil = staleMergeBlockerCooldowns.get(issueId);
598
601
  if (cooledUntil && now < cooledUntil) continue;
599
602
  staleMergeBlockerCooldowns.set(issueId, now + STALE_MERGE_BLOCKER_COOLDOWN_MS);
600
- const resolved = resolveProjectFromIssueSync(issueId);
601
- if (!resolved) continue;
602
- const workspacePath = join$1(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
603
- if (!existsSync(workspacePath)) continue;
603
+ const membership = memberships.get(issueId.toUpperCase());
604
+ if (!membership || membership.bucket !== "in_flight") {
605
+ if (membership) setReviewStatusSync(issueId, {
606
+ readyForMerge: false,
607
+ retiredAt: new Date(now).toISOString()
608
+ });
609
+ console.log(`[deacon] skipping ${issueId} — pipeline membership is ${membership?.bucket ?? "unavailable"}, not merge-eligible`);
610
+ continue;
611
+ }
612
+ const workspacePath = resolveWorkspace(issueId);
613
+ if (!workspacePath) continue;
614
+ if (!workspaceExists(workspacePath)) continue;
604
615
  try {
605
616
  if ((await resolveConflictGate(issueId, workspacePath, "main", deps)).clearedStaleBlocker) {
606
617
  const msg = `Cleared stale merge blocker for ${issueId} — branch is mergeable again; readyForMerge will recompute`;
@@ -619,31 +630,24 @@ async function reconcileStaleMergeBlockers() {
619
630
  /**
620
631
  * Reconciler (PAN-2198): periodic twin of the boot-only fixStuckReadyForMerge,
621
632
  * for the NO-BLOCKER strand of "stuck after review".
622
- *
623
- * readyForMerge is re-derived on every setReviewStatusSync write. When the last
624
- * write left it false and there is NO merge-blocker, nothing re-derives it until
625
- * the next write — so a PR whose review+test+verify all passed but whose
626
- * readyForMerge was left false (e.g. a verdict that landed via a write path that
627
- * didn't recompute, or a gate that was transiently non-final) converges ONLY on
628
- * server restart (PAN-1758: "readyForMerge only flips via the startup repair
629
- * sweep"). This patrol re-derives it on the 60s deacon tick instead.
630
- *
631
- * Blocker strands are deliberately excluded — those are owned by
632
- * reconcileStaleMergeBlockers, and excluding them also avoids fighting the
633
- * setReviewStatus deriver's hasBlockers override (which would flip readyForMerge
634
- * straight back to false). Loop-safe: it writes ONLY readyForMerge (no
635
- * review/test status transition, so no review/test re-dispatch events fire), and
636
- * is idempotent — once flipped true, the readyForMerge!==false guard excludes the
637
- * issue, so steady state is zero writes. Flipping readyForMerge=true only makes
638
- * the issue merge-ELIGIBLE; the merge train / MERGE button remains the trigger.
633
+ * Blocker strands remain owned by reconcileStaleMergeBlockers. Membership
634
+ * prevents restoration without an open PR; successful restoration is idempotent.
639
635
  */
640
- function reconcileStuckReadyForMerge() {
636
+ async function reconcileStuckReadyForMerge(gatherEligibility = async (ids) => (await import("./merge-eligibility-C4rTS97F.js")).gatherMergeEligibility(ids)) {
641
637
  const actions = [];
642
638
  try {
643
- for (const [issueId, status] of Object.entries(loadReviewStatuses())) {
644
- if (status.readyForMerge !== false) continue;
645
- if ((status.blockerReasons?.length ?? 0) > 0) continue;
646
- if (!reviewGatesPassedSync(status)) continue;
639
+ const candidates = Object.entries(loadReviewStatuses()).filter(([, status]) => !status.retiredAt && status.readyForMerge === false && (status.blockerReasons?.length ?? 0) === 0 && reviewGatesPassedSync(status));
640
+ const memberships = await gatherEligibility(candidates.map(([issueId]) => issueId));
641
+ for (const [issueId] of candidates) {
642
+ const membership = memberships.get(issueId.toUpperCase());
643
+ if (!membership || membership.bucket !== "in_flight") {
644
+ if (membership) setReviewStatusSync(issueId, {
645
+ readyForMerge: false,
646
+ retiredAt: (/* @__PURE__ */ new Date()).toISOString()
647
+ });
648
+ console.log(`[deacon] skipping ${issueId} — pipeline membership is ${membership?.bucket ?? "unavailable"}, not merge-eligible`);
649
+ continue;
650
+ }
647
651
  setReviewStatusSync(issueId, { readyForMerge: true });
648
652
  const msg = `Restored readyForMerge for ${issueId} — review+test+verify passed, no blocker (was stuck false)`;
649
653
  actions.push(msg);
@@ -665,7 +669,7 @@ async function reconcileMergedButReviewing() {
665
669
  null
666
670
  ]);
667
671
  for (const [issueId, status] of Object.entries(statuses)) {
668
- if (status.mergeStatus !== "merged") continue;
672
+ if (status.retiredAt || status.mergeStatus !== "merged") continue;
669
673
  const reviewNonTerminal = nonTerminal.has(status.reviewStatus);
670
674
  const testNonTerminal = nonTerminal.has(status.testStatus);
671
675
  if (!reviewNonTerminal && !testNonTerminal) continue;
@@ -730,7 +734,7 @@ async function checkFailedMergeRetry() {
730
734
  if (ciEntry.count === 5) {
731
735
  console.log(`[deacon] CI check failure for ${issueId} — retries exhausted, notifying work agent`);
732
736
  const ciNotes = status.mergeNotes || "CI checks are failing on the PR";
733
- const { writeFeedbackFile } = await import("./feedback-writer-CH2846DP.js");
737
+ const { writeFeedbackFile } = await import("./feedback-writer-BzN4qvaP.js");
734
738
  const ciFileResult = await Effect.runPromise(writeFeedbackFile({
735
739
  issueId,
736
740
  specialist: "merge-agent",
@@ -762,7 +766,7 @@ async function checkFailedMergeRetry() {
762
766
  ciRetryMap.set(issueId, ciEntry);
763
767
  console.log(`[deacon] CI check failure for ${issueId} — notifying agent to re-submit (attempt ${ciEntry.count}/5)`);
764
768
  const ciNotes = status.mergeNotes || "CI checks are failing on the PR";
765
- const { writeFeedbackFile } = await import("./feedback-writer-CH2846DP.js");
769
+ const { writeFeedbackFile } = await import("./feedback-writer-BzN4qvaP.js");
766
770
  const ciFileResult2 = await Effect.runPromise(writeFeedbackFile({
767
771
  issueId,
768
772
  specialist: "merge-agent",
@@ -790,7 +794,7 @@ async function checkFailedMergeRetry() {
790
794
  const lastNudge = timeoutNudgeCooldowns.get(issueIdForFb);
791
795
  if (!lastNudge || now - lastNudge >= TIMEOUT_NUDGE_COOLDOWN_MS) {
792
796
  const timeoutNotes = status.mergeNotes;
793
- const { writeFeedbackFile } = await import("./feedback-writer-CH2846DP.js");
797
+ const { writeFeedbackFile } = await import("./feedback-writer-BzN4qvaP.js");
794
798
  await Effect.runPromise(writeFeedbackFile({
795
799
  issueId: issueIdForFb,
796
800
  specialist: "merge-agent",
@@ -895,7 +899,7 @@ async function autoCloseOut(now = /* @__PURE__ */ new Date()) {
895
899
  } } : {}
896
900
  };
897
901
  try {
898
- const { closeOut } = await import("./workflows-CfHm8lVd.js");
902
+ const { closeOut } = await import("./workflows-BtHRlFIm.js");
899
903
  const result = await Effect.runPromise(closeOut(ctx));
900
904
  if (!result.success) {
901
905
  const failed = result.steps.find((step) => !step.success && !step.skipped);
@@ -1126,4 +1130,4 @@ async function reconcileTerminalIssueResidue(projects, deps = defaultDeps()) {
1126
1130
  //#endregion
1127
1131
  export { checkFailedMergeRetry as a, ciRetryMap as c, reconcileMergedButReviewing as d, reconcileStaleMergeBlockers as f, reconcileStuckMergingStates as g, reconcileAutoMergeRows as h, autoCloseOut as i, reconcileClosedPrReadyForMerge as l, reconcileStuckReadyForMerge as m, reconcileTerminalIssueResidue as n, checkFirstCompletionAgents as o, reconcileStaleMergeStatus as p, listIssueRecords as r, checkReadyForMergeStuck as s, isRecordPipelineTerminal as t, reconcileFalseMerged as u };
1128
1132
 
1129
- //# sourceMappingURL=parked-residue-BiHb8cD7.js.map
1133
+ //# sourceMappingURL=parked-residue-8WbU0y1z.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Li as getOverdeckHome, Ri as init_paths$1 } from "./config-yaml-D9nfpEx1.js";
2
+ import { Ri as getOverdeckHome, zi as init_paths$1 } from "./config-yaml-D60AnTIu.js";
3
3
  import { dirname, isAbsolute, join, relative, resolve } from "path";
4
4
  import { mkdir } from "fs/promises";
5
5
  //#region ../../lib/memory/paths.ts
@@ -62,4 +62,4 @@ var init_paths = __esmMin((() => {
62
62
  //#endregion
63
63
  export { resolveArchiveDir as a, resolveMemoryRoot as c, resolveRagRunsFile as d, resolveStatusFile as f, init_paths as i, resolveObservationsFile as l, resolveWorkspaceMemoryRoot as m, ensureDir as n, resolveFtsDbPath as o, resolveSummariesDir as p, ensureParentDir as r, resolveMemoryBase as s, assertMemorySafeSegment as t, resolvePendingDir as u };
64
64
 
65
- //# sourceMappingURL=paths-DEe9j-kw.js.map
65
+ //# sourceMappingURL=paths-rETQhTF2.js.map
@@ -107,4 +107,4 @@ async function settlePendingLifecycleClaim(claim, issueId, succeeded) {
107
107
  //#endregion
108
108
  export { settlePendingLifecycleClaim as n, claimPendingLifecycleFile as t };
109
109
 
110
- //# sourceMappingURL=pending-lifecycle-claim-J5uIIJPu.js.map
110
+ //# sourceMappingURL=pending-lifecycle-claim-yAwDuGS4.js.map
@@ -187,4 +187,4 @@ var init_pickup = __esmMin((() => {
187
187
  //#endregion
188
188
  export { normalizeGate as _, PARKED_LABEL as a, VETOED_LABEL as c, computeEpicGroups as d, computeLanes as f, isAutoPickable as g, init_pickup as h, OBJECTION_LABEL as i, classifyIssue as l, computeWaves as m, EPIC_LABEL as n, READY_LABEL as o, computeStats as p, LEGACY_PARKED_LABELS as r, RELEASED_LABEL as s, BLOCKS_MAIN_LABEL as t, computeCohort as u, selectNeedsPlanning as v };
189
189
 
190
- //# sourceMappingURL=pickup-D1UbSDPd.js.map
190
+ //# sourceMappingURL=pickup-Dle6k9Xt.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-CHIvOb9q.js";
3
- import { a as getWorkspaceForIssue, o as init_resolver } from "./resolver-gxv97jsQ.js";
2
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-CJRi_5Wu.js";
3
+ import { a as getWorkspaceForIssue, o as init_resolver } from "./resolver-C2QKOf09.js";
4
4
  import { a as registerFeedbackAgentStateReader, i as registerActiveReviewArtifactContextReader, t as init_agent_state_source } from "./agent-state-source-69g8dqMg.js";
5
5
  //#region ../../lib/overdeck/agent-state-sync.ts
6
6
  function isoFromMillis(value) {
@@ -241,4 +241,4 @@ var init_pipeline_agent_reader = __esmMin((() => {
241
241
  //#endregion
242
242
  export { readVerdictPreservationStatus as a, registerWorkStartVerdictAdapter as c, getOverdeckAgentStateSync as d, init_agent_state_sync as f, stateToOverdeckParamsForDb as h, init_work_start_verdicts as i, resetWorkStartPipelineVerdicts as l, saveOverdeckAgentStateSync as m, readPipelineTelemetryAgentState as n, refreshWorkStartReviewedAnchor as o, listOverdeckAgentStatesSync as p, registerPipelineTelemetryAgentReader as r, registerVerdictPreservationStatusReader as s, init_pipeline_agent_reader as t, AGENT_COLUMNS_FOR_DB as u };
243
243
 
244
- //# sourceMappingURL=pipeline-agent-reader-D-6okryb.js.map
244
+ //# sourceMappingURL=pipeline-agent-reader-CeWhQzXC.js.map
@@ -57,4 +57,4 @@ var init_pipeline_membership = __esmMin((() => {
57
57
  //#endregion
58
58
  export { init_pipeline_membership as n, resolvePipelineMembership as r, PLANNED_BACKLOG_SPEC_ONLY_REASON as t };
59
59
 
60
- //# sourceMappingURL=pipeline-membership-PGX3Pe8V.js.map
60
+ //# sourceMappingURL=pipeline-membership-BV4hdkHm.js.map
@@ -1,3 +1,3 @@
1
- import { n as init_pipeline_membership, r as resolvePipelineMembership, t as PLANNED_BACKLOG_SPEC_ONLY_REASON } from "./pipeline-membership-PGX3Pe8V.js";
1
+ import { n as init_pipeline_membership, r as resolvePipelineMembership, t as PLANNED_BACKLOG_SPEC_ONLY_REASON } from "./pipeline-membership-BV4hdkHm.js";
2
2
  init_pipeline_membership();
3
3
  export { PLANNED_BACKLOG_SPEC_ONLY_REASON, resolvePipelineMembership };