@overdeck/desktop 0.49.1 → 0.49.2

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 (497) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-Crw-xSJ3.js → acceptance-criteria-CHtDkHEL.js} +2 -2
  3. package/server/{active-dashboard-bundle-CLwfD-Om.js → active-dashboard-bundle-Byh6sP-q.js} +2 -2
  4. package/server/{activity-logger-BAVLrkR7.js → activity-logger-BWZhVphb.js} +22 -4
  5. package/server/activity-logger-Ck8qoluj.js +3 -0
  6. package/server/{advancing-selfheal-BQiJ7mIH.js → advancing-selfheal-65W4yUQi.js} +6 -6
  7. package/server/{agent-gc-5E0lgxI1.js → agent-gc-BNUudFnt.js} +10 -10
  8. package/server/agent-idle-ONBssBN_.js +745 -0
  9. package/server/{agent-state-Bb3UUxQm.js → agent-state-BJhGIJZe.js} +421 -135
  10. package/server/agent-state-CM8iVw5B.js +3 -0
  11. package/server/{agent-state-service-BFbttwRA.js → agent-state-service-CiIuwzIs.js} +5 -5
  12. package/server/{agent-state-service-keg-x1bT.js → agent-state-service-CzHfoqKQ.js} +1 -1
  13. package/server/agents-DpCuoF65.js +3 -0
  14. package/server/{agents-CqQJW75N.js → agents-jXgqpHca.js} +8 -8
  15. package/server/archive-planning-BW4MKNI7.js +2 -0
  16. package/server/{archive-planning-BwEhu9Oq.js → archive-planning-CGkU6UeL.js} +20 -135
  17. package/server/{artifact-index-jobs-C6Lg2rKm.js → artifact-index-jobs-Ck4NRRkY.js} +3 -3
  18. package/server/{assemble-DyTp2gSB.js → assemble-CyvEBmmq.js} +28 -9
  19. package/server/{auto-spawn-consent-BDfe4qz0.js → auto-spawn-consent-Dc4mtM-B.js} +8 -7
  20. package/server/{backlog-auto-trigger-DuOGpdDW.js → backlog-auto-trigger-CCEpr4YT.js} +3 -3
  21. package/server/{behavior-Bitko0mD.js → behavior-BiCQzqyT.js} +3 -3
  22. package/server/{bridge-pool-patrol-DiHEd13O.js → bridge-pool-patrol-Ce8rNPym.js} +2 -2
  23. package/server/{briefing-freshness-CDJcmHHZ.js → briefing-freshness-e_OEYZEe.js} +2 -2
  24. package/server/{build-info-DTX8JwVP.js → build-info-BRw4QlYO.js} +3 -3
  25. package/server/build-info-Bj2vQEMh.js +2 -0
  26. package/server/{checkpoint-manager-CKg1tn34.js → checkpoint-manager-CKr42Usw.js} +1 -1
  27. package/server/{checkpoint-manager-BlOOdzLF.js → checkpoint-manager-DOwRGFff.js} +26 -9
  28. package/server/checkpoint-worker.js +1 -1
  29. package/server/{checkpoints-DRALkfDS.js → checkpoints-Cb6CWT4S.js} +1 -1
  30. package/server/{checkpoints-BGfl0cHM.js → checkpoints-Cszp_0Np.js} +2 -2
  31. package/server/{claude-hooks-provision-B_tv3wzE.js → claude-hooks-provision-C5JHpxTS.js} +1 -1
  32. package/server/{claude-hooks-provision-BlGv6twJ.js → claude-hooks-provision-Cer2eFfj.js} +2 -2
  33. package/server/{claude-permissions-aHgDcZi5.js → claude-permissions-Bc5kjX1q.js} +2 -2
  34. package/server/{claude-settings-overlay-CYOvFE3A.js → claude-settings-overlay-C7rWsnya.js} +1 -1
  35. package/server/{claude-settings-overlay-T2LWLteV.js → claude-settings-overlay-m-VVZej1.js} +2 -2
  36. package/server/cli-BRuzUT_I.js +2 -0
  37. package/server/{cli-Do8UpLoI.js → cli-BmczsfD6.js} +11 -11
  38. package/server/{cliproxy-CX6jHRDP.js → cliproxy-BpYpkogS.js} +52 -17
  39. package/server/cliproxy-_yUU0HRY.js +3 -0
  40. package/server/{close-issue-J0_eWYT1.js → close-issue-CxvRD0UI.js} +5 -5
  41. package/server/{closed-issue-reaper-bFppuk6F.js → closed-issue-reaper-nMLRi5de.js} +13 -12
  42. package/server/{closed-issue-reaper-Cl2h9AfT.js → closed-issue-reaper-omOcUDBl.js} +1 -1
  43. package/server/{codex-icapA4om.js → codex-DZhFfcWu.js} +1 -1
  44. package/server/{codex-OOea7lXs.js → codex-KaSKE-R3.js} +16 -10
  45. package/server/{compaction-continuation-D5voR1ME.js → compaction-continuation-Bjfi70G-.js} +3 -3
  46. package/server/{config-Cjleh3_U.js → config-CH1AqqIQ.js} +1 -1
  47. package/server/{config-DC75T4Mr.js → config-Doq_tF-f.js} +2 -2
  48. package/server/{config-tucKBCCc.js → config-ZGjvuR6J.js} +2 -2
  49. package/server/{config-yaml-BwOEANMr.js → config-yaml-D9nfpEx1.js} +33 -8
  50. package/server/{conflict-gate-DlpWCMd7.js → conflict-gate-D4XCtrm2.js} +1 -1
  51. package/server/{conflict-gate-D2L1kZeL.js → conflict-gate-DcUTY4Gb.js} +4 -4
  52. package/server/{context-layers-CSPGc2Hb.js → context-layers-BBTKP-Y4.js} +3 -3
  53. package/server/context-layers-BGj2Y9l3.js +4 -0
  54. package/server/{continue-U3Af0jUq.js → continue-i7Revg8D.js} +3 -3
  55. package/server/{control-settings-5k6ixdFW.js → control-settings-BMoDHY1G.js} +6 -6
  56. package/server/{conversation-compaction-CSpVpxN6.js → conversation-compaction-D4VOmF7p.js} +8 -8
  57. package/server/{conversation-compaction-Ciit9O6k.js → conversation-compaction-DzIjYMfg.js} +1 -1
  58. package/server/{conversation-service-BxrB5lUT.js → conversation-service-CzZUJFEx.js} +1 -1
  59. package/server/{conversation-service-BteE4ELK.js → conversation-service-tQCIbBVZ.js} +6 -6
  60. package/server/{conversations-DhwxsOru.js → conversations-C75EFFjf.js} +12 -7
  61. package/server/conversations-bFDaD5YN.js +3 -0
  62. package/server/{cost-Bnf9NUC5.js → cost-BCWEkvro.js} +3 -3
  63. package/server/{cost-CQKI6OCu.js → cost-CiIwxH1D.js} +2 -2
  64. package/server/{cost-sync-B-ADeXKY.js → cost-sync-DOkdE_yB.js} +3 -3
  65. package/server/{dag-DI9LaK_q.js → dag-BPc74hwj.js} +6 -19
  66. package/server/{dangerous-git-ops-akhA3iyF.js → dangerous-git-ops-By9iguTP.js} +1 -1
  67. package/server/dashboard-db-worker.js +7 -7
  68. package/server/{deacon-TPYssFYt.js → deacon-B24dNzr8.js} +1774 -171
  69. package/server/deacon-CzSZMtb-.js +4 -0
  70. package/server/{deacon-canonical-state-DFYymrDw.js → deacon-canonical-state-CkvxRPck.js} +3 -3
  71. package/server/{deacon-event-client-Te5v10-b.js → deacon-event-client-BYIQBu0T.js} +1 -1
  72. package/server/{deacon-event-client-BKOL4AcL.js → deacon-event-client-Do6Z2gKl.js} +2 -2
  73. package/server/{deacon-nudge-log-BtlTWgWu.js → deacon-nudge-log-CzM9JA9t.js} +1 -1
  74. package/server/{deacon-pending-lifecycle-DVHjOLje.js → deacon-pending-lifecycle-BObEdT-L.js} +3 -3
  75. package/server/deacon.js +11 -11
  76. package/server/dead-end-trip-6V_CwveT.js +2 -0
  77. package/server/{dead-end-trip-P0IF1O0E.js → dead-end-trip-CnVmjnya.js} +3 -3
  78. package/server/delivery-gyce0vQ7.js +3 -0
  79. package/server/{deploy-patrol-BXjlvoV3.js → deploy-patrol-CEwwEYDM.js} +8 -8
  80. package/server/deploy-queue-CjLErpgw.js +2 -0
  81. package/server/{deploy-queue-o7shYg1j.js → deploy-queue-r96ojDI3.js} +2 -2
  82. package/server/{deploy-window-CNT6fOff.js → deploy-window-D_3hhfxt.js} +4 -4
  83. package/server/{deploy-window-BMk5_oX6.js → deploy-window-DeJK8mTK.js} +1 -1
  84. package/server/{dev-supervisor-SR1CLOAK.js → dev-supervisor-DZWwpENk.js} +2 -2
  85. package/server/{devcontainer-renderer-enMmNDFa.js → devcontainer-renderer-d-9dCV_2.js} +3 -3
  86. package/server/{dist-CPTO_zMR.js → dist-DsLAsFSh.js} +1 -1
  87. package/server/dist-fCA6y2bH.js +3 -0
  88. package/server/{docker-B7qUZptz.js → docker-B2mUBzGk.js} +3 -3
  89. package/server/{docker-KR3zSFKY.js → docker-CRPHBylA.js} +1 -1
  90. package/server/{dod-gK835UMf.js → dod-DWtilRLx.js} +1 -1
  91. package/server/{done-preflight-CksRvh49.js → done-preflight-BDVdWed5.js} +1 -1
  92. package/server/{done-preflight-Bk8aExAL.js → done-preflight-D4ukUf-S.js} +5 -5
  93. package/server/{driver-CmsY2RLl.js → driver-BtcFz-qu.js} +14 -3
  94. package/server/{durable-review-pipeline-DgYHucN2.js → durable-review-pipeline-B3OS2_He.js} +11 -2
  95. package/server/durable-review-pipeline-CaCbEJSt.js +3 -0
  96. package/server/{ensure-devcontainer-ojerEqQg.js → ensure-devcontainer-BUeBRjmm.js} +4 -4
  97. package/server/{ensure-devcontainer-BQ4YizSH.js → ensure-devcontainer-rGSh0JHK.js} +1 -1
  98. package/server/{esm-shims-1htPASWs.js → esm-shims-oAaKIa-a.js} +1 -1
  99. package/server/{event-store-D7qcJXuZ.js → event-store-BCSgMubf.js} +5 -5
  100. package/server/{event-store-BgEjNsvk.js → event-store-Db4w4YIY.js} +1 -1
  101. package/server/{event-store-provider-BKvk2rDj.js → event-store-provider-DlSQND3V.js} +1 -1
  102. package/server/{events-BIKGJZOT.js → events-B6zioJA_.js} +3 -3
  103. package/server/{dist-src-BM9eudEd.js → factory-BrdqXBeK.js} +714 -2
  104. package/server/{feature-registry-storage-ewNSIVsQ.js → feature-registry-storage-zh3ZXW6f.js} +3 -3
  105. package/server/{features-CGopJXdU.js → features-BGntOWdy.js} +2 -2
  106. package/server/{feedback-stuck-retirement-B8-fX7NA.js → feedback-stuck-retirement-DpA5u1kt.js} +2 -2
  107. package/server/{feedback-target-Ci6N5p4G.js → feedback-target-D7GxdUYG.js} +10 -10
  108. package/server/{feedback-target-CkyLYohm.js → feedback-target-Ddqk93NF.js} +1 -1
  109. package/server/{feedback-writer-D4ULO4qG.js → feedback-writer-C1gCLFmp.js} +5 -5
  110. package/server/{feedback-writer-DfuVjvH0.js → feedback-writer-CH2846DP.js} +1 -1
  111. package/server/{flywheel-C7yek87O.js → flywheel-CjW2L7BS.js} +79 -29
  112. package/server/{flywheel-DXI_WITn.js → flywheel-HJt7QdWP.js} +1 -1
  113. package/server/{flywheel-merge-order-C5m5bYBc.js → flywheel-merge-order-4fNRN2F2.js} +1 -1
  114. package/server/{flywheel-merge-order-CXfU4M6l.js → flywheel-merge-order-D_yyAlND.js} +7 -7
  115. package/server/{flywheel-BwYPDlhK.js → flywheel-v1cCOBx-.js} +14 -14
  116. package/server/{forge-DYX9sKzG.js → forge-RVTCK_5X.js} +2 -2
  117. package/server/forge-bvak6vXJ.js +2 -0
  118. package/server/{from-DAdMxC29.js → from-BnLgKYvw.js} +1 -1
  119. package/server/{fs-lock-cw25uO_E.js → fs-lock-C7J-ugIf.js} +2 -2
  120. package/server/{fts-operations-D_rzLxX5.js → fts-operations-CU0B5WUx.js} +3 -3
  121. package/server/git-info-BSrI9owC.js +148 -0
  122. package/server/{git-utils-Y0zG25ez.js → git-utils-CsKV0Dis.js} +1 -1
  123. package/server/{git-utils-DV4B9TRl.js → git-utils-DW8-jIUJ.js} +4 -4
  124. package/server/{github-app-4UX8VIr8.js → github-app-7ywLhuZO.js} +2 -2
  125. package/server/{github-app-C33lDk9Z.js → github-app-Oi5hdn1n.js} +1 -1
  126. package/server/{github-client-nPj5ckZO.js → github-client-Cy0fSj1a.js} +1 -1
  127. package/server/{github-client-DkJVR908.js → github-client-DAbuXLuk.js} +3 -3
  128. package/server/{github-pr-lookup-C9Vokb0W.js → github-pr-lookup-Dhh3ec1V.js} +2 -2
  129. package/server/{harness-binary-BgXYDo2Z.js → harness-binary-tMmgJfC1.js} +2 -2
  130. package/server/{harness-resolve-1NZcVx7n.js → harness-resolve-DusNpVEe.js} +4 -4
  131. package/server/{health-events-jMfxrElt.js → health-events-BYDZ9n2i.js} +1 -1
  132. package/server/{health-events-DlX_FVAB.js → health-events-DNw9Mzw9.js} +2 -2
  133. package/server/{hooks-W3REcb3h.js → hooks-B4wj32l2.js} +1 -1
  134. package/server/{hooks-NQ19vvlB.js → hooks-BjBjxqNh.js} +2 -2
  135. package/server/{hume-BFkid2PO.js → hume-BP9YbxaE.js} +2 -2
  136. package/server/hume-TYTb6fDU.js +3 -0
  137. package/server/{identity-Bwh6VGeL.js → identity-C23uY8dZ.js} +3 -3
  138. package/server/{idle-stack-reaper-BeU_KxWx.js → idle-stack-reaper-BSxb1bln.js} +4 -4
  139. package/server/{idle-stack-reaper-CHtCNpvd.js → idle-stack-reaper-Bw0rU9GC.js} +1 -1
  140. package/server/{in-flight-guard-pcwXKLGz.js → in-flight-guard-DuxabAHT.js} +1 -1
  141. package/server/{infra-KTp9KV9u.js → infra-CHIvOb9q.js} +30 -7
  142. package/server/{injection-67YyU6SC.js → injection-BYUt8ml1.js} +8 -8
  143. package/server/{injection-BxbZKPDh.js → injection-BviePcm3.js} +1 -1
  144. package/server/inspect-agent-JFEaYTRa.js +2 -0
  145. package/server/{inspect-agent-VHSihlb7.js → inspect-agent-sV_19NxZ.js} +12 -12
  146. package/server/{internal-token-B-z-sGBH.js → internal-token-BOtIRJU7.js} +1 -1
  147. package/server/{internal-token-zY75jrRJ.js → internal-token-DoVzb4b7.js} +2 -2
  148. package/server/{io-DfvO2xyh.js → io-DKrWd3gX.js} +5 -5
  149. package/server/{issue-closed-dvEWKO7Q.js → issue-closed-6RQsAjDX.js} +7 -7
  150. package/server/{issue-lifecycle-3N8XF7lP.js → issue-lifecycle-D9nLErvS.js} +206 -29
  151. package/server/{issue-lifecycle-BI6jAfp8.js → issue-lifecycle-DOPVv7xz.js} +1 -1
  152. package/server/{issue-service-singleton-BN_2MXp4.js → issue-service-singleton-B2xy-IS9.js} +124 -11
  153. package/server/{issue-service-singleton-CL6hESX2.js → issue-service-singleton-CvgNAWqK.js} +1 -1
  154. package/server/issue-title-fallback-DTSCQVu0.js +120 -0
  155. package/server/{issues-CkvUoAnq.js → issues-e_Ck1Ln2.js} +2 -2
  156. package/server/{jsonl-parser-CrEb2PWr.js → jsonl-parser-DqxVCZ1k.js} +3 -3
  157. package/server/jsonl-resolver-07OS3qOr.js +324 -0
  158. package/server/{kimi-code-C26gmGxM.js → kimi-code-BjtAHIz1.js} +14 -12
  159. package/server/{kimi-code-DoMoGqIu.js → kimi-code-vtXl2DR5.js} +1 -1
  160. package/server/{kimi-parser-Dmhy3UlR.js → kimi-parser-B1lgy2Vt.js} +2 -2
  161. package/server/{label-cleanup-X2lWfghH.js → label-cleanup-D2zUMasf.js} +3 -3
  162. package/server/{lifecycle-Bg44O-9x.js → lifecycle-0NOEzomy.js} +2 -2
  163. package/server/{lifecycle-B0rL38D3.js → lifecycle-DaCovZwn.js} +6 -6
  164. package/server/{lifecycle-io-CCBpRv5m.js → lifecycle-io-6WL46dsB.js} +5 -5
  165. package/server/{lifecycle-io-DQDU0apV.js → lifecycle-io-BBMTaP7S.js} +1 -1
  166. package/server/{linear-client-B0cIkTs4.js → linear-client-7fQThJTc.js} +3 -3
  167. package/server/{linear-client-6V2E-DSa.js → linear-client-BTGApNLo.js} +1 -1
  168. package/server/{linear-mcp-auth-LCo9AWUd.js → linear-mcp-auth-B8pYRsiU.js} +1 -1
  169. package/server/{linear-mcp-auth-Dsu9Io9r.js → linear-mcp-auth-Nk5s3L9M.js} +5 -5
  170. package/server/memory-fts-worker.js +1 -1
  171. package/server/{memory-governor-A4O6vI9d.js → memory-governor-Cqvbusr4.js} +14 -14
  172. package/server/{memory-pressure-patrol-BWlWywmA.js → memory-pressure-patrol-DPb8foam.js} +5 -5
  173. package/server/{merge-BGWcBxku.js → merge-BB_bjJ9a.js} +1 -1
  174. package/server/{merge-vz80RvSE.js → merge-FZ78_cEz.js} +3 -3
  175. package/server/{merge-agent-GWhmnxFk.js → merge-agent-B3jRrlS1.js} +37 -33
  176. package/server/{merge-agent-BRSz26Oh.js → merge-agent-BuoC_PRZ.js} +2 -2
  177. package/server/{merge-batch-CFMEtTxv.js → merge-batch-B8bVjFWS.js} +1 -1
  178. package/server/{merge-completeness-CP347umA.js → merge-completeness-DQt7Qa7i.js} +4 -4
  179. package/server/{merge-completeness-7ajHAIR-.js → merge-completeness-DkdabVch.js} +1 -1
  180. package/server/merge-ops-DabXHp2i.js +2 -0
  181. package/server/merge-rebase-CXq0qsgR.js +2 -0
  182. package/server/{merge-rebase-C5htyEEH.js → merge-rebase-qq40s91P.js} +2 -2
  183. package/server/{merge-set-DsGW8fmc.js → merge-set-BTNYvxM3.js} +1 -1
  184. package/server/{merge-set-eiE2nC6C.js → merge-set-BmRRflt0.js} +4 -4
  185. package/server/{merge-sync-CM2-myXu.js → merge-sync-0m2Q087q.js} +1 -1
  186. package/server/{merge-sync-Ct0-cxMX.js → merge-sync-CJpOa0cZ.js} +2 -2
  187. package/server/{merge-train-deps-LXHGK61n.js → merge-train-deps-CH5Mr3vN.js} +4 -4
  188. package/server/{merge-train-BOu3fN7O.js → merge-train-iwKqjtCF.js} +4 -4
  189. package/server/{merge-verification-BRp08IzI.js → merge-verification-JJc5GC2t.js} +6 -6
  190. package/server/{merged-docker-cleanup-worker-CwldDjHV.js → merged-docker-cleanup-worker-BOqWA373.js} +4 -4
  191. package/server/{merged-docker-cleanup-worker-C8eGn78a.js → merged-docker-cleanup-worker-CrhTdxZV.js} +1 -1
  192. package/server/messaging-nuwStbdQ.js +3 -0
  193. package/server/{multipart-parser-OAuW7824.js → multipart-parser-DxuW_rZV.js} +2 -2
  194. package/server/{no-resume-mode-MWI6pnrK.js → no-resume-mode-xuYLFhLw.js} +1 -1
  195. package/server/node_modules/.package-lock.json +11 -11
  196. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/AGENTS.md +14 -0
  197. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/CLAUDE.md +14 -0
  198. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/README.md +10 -3
  199. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/40_sql/10_basics.ts +175 -0
  200. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/40_sql/index.md +6 -0
  201. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/10_basics.ts +3 -1
  202. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/20_testing.ts +100 -0
  203. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/api/Users.ts +30 -14
  204. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/domain/User.ts +15 -6
  205. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +11 -10
  206. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +41 -32
  207. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/server/Users.ts +141 -20
  208. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/70_cli/10_basics.ts +27 -3
  209. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.d.ts.map +1 -1
  210. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js +10 -9
  211. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js.map +1 -1
  212. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocketServer.js +4 -4
  213. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocketServer.js.map +1 -1
  214. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeStream.d.ts.map +1 -1
  215. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeStream.js +10 -4
  216. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeStream.js.map +1 -1
  217. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.d.ts +4 -0
  218. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.d.ts.map +1 -0
  219. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.js +10 -0
  220. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.js.map +1 -0
  221. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +4 -4
  222. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeChildProcessSpawner.ts +16 -11
  223. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeSocketServer.ts +4 -4
  224. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeStream.ts +10 -4
  225. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/internal/nodeChildProcessSpawner.ts +16 -0
  226. package/server/node_modules/ansi-regex/index.js +3 -2
  227. package/server/node_modules/ansi-regex/package.json +1 -1
  228. package/server/node_modules/gaxios/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  229. package/server/node_modules/gaxios/build/esm/tsconfig.tsbuildinfo +1 -1
  230. package/server/node_modules/gaxios/package.json +3 -3
  231. package/server/{orphan-proposed-reconciler-cV3URUqk.js → orphan-proposed-reconciler-Dmk0kO_p.js} +24 -23
  232. package/server/{orphan-proposed-reconciler-BAE5AZ_e.js → orphan-proposed-reconciler-gf4TxfZb.js} +2 -2
  233. package/server/package-lock.json +12 -12
  234. package/server/package.json +1 -1
  235. package/server/{pan-dir-DDd91kMb.js → pan-dir-BMda7tQj.js} +5 -5
  236. package/server/{deacon-merge-BOGFEV8_.js → parked-residue-BiHb8cD7.js} +150 -35
  237. package/server/{paths-CRLnDgcI.js → paths-DEe9j-kw.js} +2 -2
  238. package/server/{pending-lifecycle-claim-CYgMiDAP.js → pending-lifecycle-claim-J5uIIJPu.js} +2 -2
  239. package/server/{pickup-BjJsSX12.js → pickup-D1UbSDPd.js} +1 -1
  240. package/server/{pipeline-agent-reader-BLc43dVJ.js → pipeline-agent-reader-D-6okryb.js} +5 -5
  241. package/server/{pipeline-membership-5qlRz5Qg.js → pipeline-membership-CCbgBzNC.js} +1 -1
  242. package/server/{pipeline-membership-BHZp_ShY.js → pipeline-membership-PGX3Pe8V.js} +1 -1
  243. package/server/{pipeline-membership-gather-CGFY1v-y.js → pipeline-membership-gather-BK4dzh0X.js} +17 -12
  244. package/server/{pipeline-membership-gather-WhRc1yke.js → pipeline-membership-gather-BRhU7XPx.js} +1 -1
  245. package/server/{pipeline-notifier-BmsLWM_2.js → pipeline-notifier-BNAV9kpa.js} +2 -2
  246. package/server/{pipeline-notifier-C4fZ2ito.js → pipeline-notifier-DvHLaXKb.js} +1 -1
  247. package/server/{post-merge-lifecycle-worker-KK1RTKRE.js → post-merge-lifecycle-worker-DAWgzXQA.js} +3 -3
  248. package/server/{post-merge-state-_Lj3LDLh.js → post-merge-state-DC2_0t12.js} +4 -4
  249. package/server/prd-locations-BbAvqQmT.js +124 -0
  250. package/server/{project-pipelines-CCkebHOu.js → project-pipelines-By_5WcT4.js} +2 -2
  251. package/server/{project-repos-B4MK48j4.js → project-repos--QeCg7yQ.js} +29 -3
  252. package/server/project-repos-3bI6t4fO.js +3 -0
  253. package/server/project-resource-refresh-queue-BaZC79S3.js +2 -0
  254. package/server/project-resource-refresh-queue-x-K9mvpP.js +865 -0
  255. package/server/{projects-DvPEAP18.js → projects-LftaVK99.js} +1 -1
  256. package/server/{prompts-BiS5I2tZ.js → prompts-BotGu-6W.js} +2 -2
  257. package/server/{providers-DrfK0Ip8.js → providers-BL1I66sM.js} +7 -7
  258. package/server/providers-Dqgz3MY5.js +3 -0
  259. package/server/public/assets/{chunk-BO2N2NFS-GtVe_o56.js → chunk-BO2N2NFS-D5Fz5jND.js} +4 -4
  260. package/server/public/assets/{diagram-OG6HWLK6-BvhcYYHc.js → diagram-OG6HWLK6-Eux0gWFq.js} +1 -1
  261. package/server/public/assets/{dist-D0ryefak.js → dist-C3zShwhA.js} +1 -1
  262. package/server/public/assets/{dist-CSmUXazd.js → dist-D-JX_u7m.js} +3 -3
  263. package/server/public/assets/{ganttDiagram-6RSMTGT7-BXA51DzM.js → ganttDiagram-6RSMTGT7-UH3aweia.js} +1 -1
  264. package/server/public/assets/{highlighted-body-OFNGDK62-mlV4EpWt.js → highlighted-body-OFNGDK62-ccIQ-WXS.js} +1 -1
  265. package/server/public/assets/index-2wV4ipy_.css +1 -0
  266. package/server/public/assets/index-BTVcdPve.js +860 -0
  267. package/server/public/assets/{linear-BPE7oswm.js → linear-Cnnu4YQy.js} +1 -1
  268. package/server/public/assets/mermaid-GHXKKRXX-Bjto8iJh.js +1 -0
  269. package/server/public/assets/{pieDiagram-4H26LBE5-BguGGV3S.js → pieDiagram-4H26LBE5-BD8-Tye6.js} +1 -1
  270. package/server/public/assets/{prod-aKDYUrXQ.js → prod-Ca6aKMts.js} +4 -4
  271. package/server/public/assets/{quadrantDiagram-W4KKPZXB-Bx3i4B6H.js → quadrantDiagram-W4KKPZXB-BmSrVyFD.js} +1 -1
  272. package/server/public/assets/{sankeyDiagram-5OEKKPKP-B5vuLjA4.js → sankeyDiagram-5OEKKPKP-CEGy8Das.js} +1 -1
  273. package/server/public/assets/{xychartDiagram-2RQKCTM6-HPlpkqsN.js → xychartDiagram-2RQKCTM6-VnQ8iY8s.js} +1 -1
  274. package/server/public/index.html +2 -2
  275. package/server/{pull-requests-BcHIsFJv.js → pull-requests-Cp_FDT8-.js} +3 -3
  276. package/server/pull-requests-jVGcVq5G.js +2 -0
  277. package/server/rally-CxhVgIQ6.js +3 -0
  278. package/server/{rally-api-ShZ4kvn0.js → rally-api-CqAIJ8RX.js} +2 -2
  279. package/server/{rally-api-u_vkr5c_.js → rally-api-Ij1Zt0NI.js} +1 -1
  280. package/server/{rally-B1OMtzch.js → rally-bQpBzUNf.js} +3 -3
  281. package/server/{rally-client-DgZvUZqX.js → rally-client-CN5vh4Ac.js} +1 -1
  282. package/server/{rally-client-D6Feq1Ka.js → rally-client-qKbCNRVW.js} +5 -5
  283. package/server/{reap-terminal-sessions-CRfiXLY0.js → reap-terminal-sessions-BaDSNR-k.js} +2 -2
  284. package/server/{reap-terminal-sessions-D7f3zSE9.js → reap-terminal-sessions-DgEIKMhH.js} +2 -2
  285. package/server/{rebuild-stack-DKxOnkpE.js → rebuild-stack-BNOMVh7C.js} +7 -7
  286. package/server/{rebuild-stack-CCwKHZb6.js → rebuild-stack-DrMyA_mA.js} +2 -2
  287. package/server/{reconstruct-cache-BP8UIKt7.js → reconstruct-cache-mxIYCnqs.js} +7 -7
  288. package/server/{record-By-wp6pg.js → record-Ug18Cp4V.js} +1 -1
  289. package/server/{record-update-ByGtIlUK.js → record-update-WyhsREoH.js} +1 -1
  290. package/server/{record-update-D23jPU6b.js → record-update-dBGxL9OC.js} +8 -6
  291. package/server/{recovery-trip-C4dTl8DO.js → recovery-trip-BKLrL6NX.js} +43 -10
  292. package/server/{recovery-trip-qloOYOFz.js → recovery-trip-wFAixKsg.js} +1 -1
  293. package/server/{release-engine-Crc0Tjx-.js → release-engine-D9gaCBn9.js} +5 -5
  294. package/server/{release-set-DDXwbIK7.js → release-set-DPHHzEGx.js} +3 -3
  295. package/server/{remote-CBpLi4Yy.js → remote-BU6ONLpv.js} +3 -3
  296. package/server/{remote-oEMfXlwT.js → remote-BUEeUic6.js} +3 -3
  297. package/server/{remote-agents-DQVGZVQ9.js → remote-agents-BVtASiOF.js} +1 -1
  298. package/server/{remote-agents-Bgtc2nOO.js → remote-agents-CSaTLi3u.js} +6 -6
  299. package/server/{remote-completion-DxUJ5HKR.js → remote-completion-CBV3b9TI.js} +13 -13
  300. package/server/{resolver-C8rooxoz.js → resolver-DvSMXty7.js} +31 -8
  301. package/server/{resolver-CuAULbLs.js → resolver-gxv97jsQ.js} +2 -2
  302. package/server/resume-DvHuF-bm.js +3 -0
  303. package/server/review-agent-DgkUPRx0.js +3 -0
  304. package/server/{review-agent-7C2w5CzU.js → review-agent-esZ0QXdY.js} +43 -55
  305. package/server/{review-artifacts-BJeEfm2r.js → review-artifacts-DGGEobLp.js} +6 -6
  306. package/server/{review-convoy-liveness-DfF9eXjI.js → review-convoy-liveness-DmO8dIBH.js} +20 -11
  307. package/server/{review-run-recovery-7BKt2Es0.js → review-run-recovery-Ct0q7FkE.js} +3 -3
  308. package/server/{review-run-recovery-ZjuDTNhZ.js → review-run-recovery-DHiiw7d8.js} +1 -1
  309. package/server/{review-status-CUnjjOUu.js → review-status-C_kQeeX0.js} +1 -1
  310. package/server/{review-status-emit-Cg4tOb8U.js → review-status-emit-BZz1Y_22.js} +3 -3
  311. package/server/{review-status-enrichment-D-rQshu6.js → review-status-enrichment-BWH0XW_m.js} +3 -3
  312. package/server/{review-status-source-DSn0glLa.js → review-status-source-D2PCWS6E.js} +1 -1
  313. package/server/{review-status-source-Ct912fv_.js → review-status-source-Jq0BXmn3.js} +1 -1
  314. package/server/{review-status-sync-B7V_Gg51.js → review-status-sync-2C9lk85r.js} +2 -2
  315. package/server/{review-status-sync-YthpOH_q.js → review-status-sync-Bq00Loey.js} +1 -1
  316. package/server/{review-status-DBnR5t4z.js → review-status-yOGD2MuK.js} +86 -27
  317. package/server/{review-verdict-feedback-DqXTuJk8.js → review-verdict-feedback-Brjaxoda.js} +1 -1
  318. package/server/{review-verdict-feedback-C-dBon_-.js → review-verdict-feedback-CE_tr2iQ.js} +8 -8
  319. package/server/{review-verdict-writer-jldSh3Bm.js → review-verdict-writer-CD-4kDVx.js} +1 -1
  320. package/server/{review-verdict-writer-CKaJWp75.js → review-verdict-writer-Ca2V7QSY.js} +7 -7
  321. package/server/{rollup-DZwH4CLs.js → rollup--g9ik1XQ.js} +1 -1
  322. package/server/{rollup-QCwYcBdP.js → rollup-B6g9Nr6L.js} +8 -8
  323. package/server/{scanner-2aHeLC3W.js → scanner-YxIv-fG1.js} +8 -8
  324. package/server/{search-DwHYaj66.js → search-DqMN4__-.js} +2 -2
  325. package/server/{secret-redaction-B5G1xZ3k.js → secret-redaction-DLZ-VqHq.js} +1 -1
  326. package/server/{sequence-io-POKWdusG.js → sequence-io--b3_PsWq.js} +4 -4
  327. package/server/{sequencer-agent-DS00KHVm.js → sequencer-agent-CqouKVZG.js} +6 -6
  328. package/server/server.js +1115 -1269
  329. package/server/{service-BLb_CyPL.js → service-CEp-3iow.js} +64 -63
  330. package/server/{session-fork-DcTzVwex.js → session-fork-GtoeCh2H.js} +2 -2
  331. package/server/{settings-Clw8UVNs.js → settings-CLQcdkoD.js} +2 -2
  332. package/server/{settings-B9-H2K_E.js → settings-Ch2pCVtt.js} +3 -3
  333. package/server/settings-DhtPDmmI.js +2 -0
  334. package/server/{shadow-engineering-C6oO_PiR.js → shadow-engineering-BxiFrIKv.js} +3 -3
  335. package/server/{shadow-state-CEGrrECe.js → shadow-state-CSA1vtxr.js} +2 -2
  336. package/server/{shadow-state-e7250VUx.js → shadow-state-nGhCNXT2.js} +1 -1
  337. package/server/{shadow-utils-xFk2Wusb.js → shadow-utils-7q5QDmMj.js} +2 -2
  338. package/server/{ship-log-7BnQHuKU.js → ship-log-ie0A_SqV.js} +1 -1
  339. package/server/{ship-record-CwUX6Afo.js → ship-record-BM3oVvnL.js} +7 -7
  340. package/server/{ship-record-BgUPnpT0.js → ship-record-DHWH1hLz.js} +1 -1
  341. package/server/{ship-status-Ce3_3edi.js → ship-status-BEkddXMT.js} +2 -2
  342. package/server/{smart-compaction-BmfIi3oL.js → smart-compaction-BkzjVpWL.js} +1 -1
  343. package/server/{smart-compaction-Dy0gw1VH.js → smart-compaction-D0TE1lBD.js} +7 -7
  344. package/server/{spawn-planning-session-nH3b4Drz.js → spawn-planning-session-CkGweSCC.js} +19 -19
  345. package/server/{spawn-planning-session-CfhxRJoY.js → spawn-planning-session-s406rw1N.js} +2 -2
  346. package/server/{specialist-completion-CC1XJbTx.js → specialist-completion-CTAjwH5j.js} +1 -1
  347. package/server/{specialist-context-cHwpcXSh.js → specialist-context-CKasRfYu.js} +5 -5
  348. package/server/{specialist-handoff-logger-GqnGSYoJ.js → specialist-handoff-logger-DrjrOmmn.js} +2 -2
  349. package/server/{specialist-logs-5OTnrV91.js → specialist-logs-Du6quZ0_.js} +3 -3
  350. package/server/{specialists-xXcJHAyg.js → specialists-B-4zyE4Y.js} +1 -1
  351. package/server/{specialists-8LcQi9Np.js → specialists-CuDWiNdB.js} +21 -272
  352. package/server/{specialists-DocAK-7A.js → specialists-b0dMMjWq.js} +148 -685
  353. package/server/specialists-registry-1y6Rt_F1.js +3 -0
  354. package/server/specialists-registry-BYjs04iK.js +277 -0
  355. package/server/specialists-x-kPMhrL.js +4 -0
  356. package/server/specs-IYsFlM-L.js +3 -0
  357. package/server/{src-DudQNYVw.js → src-CY2Wl8IX.js} +337 -6
  358. package/server/{src-C2TAxwki.js → src-CZsPs61V.js} +6 -6
  359. package/server/{src-DUVvEA8Q.js → src-DeQwpuh6.js} +3 -3
  360. package/server/{stack-health-DKT4ySnA.js → stack-health-BQFSJc0l.js} +3 -3
  361. package/server/{stack-health-CbyiYS9H.js → stack-health-ypIKtkbE.js} +1 -1
  362. package/server/{stale-task-claims-PzFee70R.js → stale-task-claims-C2e1zdMT.js} +5 -5
  363. package/server/{staleness-BjOAq9-d.js → staleness-CRDK6LFG.js} +1 -1
  364. package/server/{staleness-D8UTEXV5.js → staleness-Fzx_3_Hr.js} +1 -1
  365. package/server/{stall-sweeper-DOyIfeLR.js → stall-sweeper-QNk4h9m6.js} +8 -8
  366. package/server/{state-home-DhAZlk5k.js → state-home-DdG8erBI.js} +2 -2
  367. package/server/{state-mapping-BVSs84bO.js → state-mapping-D2yC81Vy.js} +1 -1
  368. package/server/{state-migrate-CJKEwpB0.js → state-migrate-C6H3jfHE.js} +6 -6
  369. package/server/{state-mirror-Do7pag7W.js → state-mirror-DF4Lfxm0.js} +3 -3
  370. package/server/stuck-remediation-BDa_tXgB.js +774 -0
  371. package/server/stuck-remediation-BVNd9txd.js +2 -0
  372. package/server/{substrate-bug-weights-service-BTNjHBnl.js → substrate-bug-weights-service-BbbCZEtJ.js} +3 -3
  373. package/server/{summary-fork-CZ88rhVx.js → summary-fork-BvcW6bq0.js} +113 -30
  374. package/server/{summary-fork-CvB7Oyq9.js → summary-fork-DIQmtOuV.js} +2 -2
  375. package/server/supervisor/{pane-composer-BaLLspSj.js → pane-composer-CoiVkGIt.js} +8 -1
  376. package/server/supervisor/{paths-D6XUcR_g.js → paths-DTGbtcaP.js} +8 -4
  377. package/server/supervisor/pty-supervisor.js +3 -3
  378. package/server/supervisor/{pty-token-DjjHxoCq.js → pty-token-GVqnvU3U.js} +2 -2
  379. package/server/{supervisor-D4v0WfiQ.js → supervisor-D3jC2c7A.js} +4 -4
  380. package/server/supervisor-v0cYN2Vp.js +2 -0
  381. package/server/{swarm-readiness-D8R-LWX5.js → swarm-readiness-CMWAQuWM.js} +3 -3
  382. package/server/{synthesis-verdict-B6wvLGcA.js → synthesis-verdict-C-pJOPsn.js} +1 -1
  383. package/server/{synthesis-verdict-N5Z11pg7.js → synthesis-verdict-DVlrLF9A.js} +2 -2
  384. package/server/{system-prerequisites-BbGZ_WHF.js → system-prerequisites-QKtIYXI2.js} +2 -2
  385. package/server/{teardown-workspace-CYend-KY.js → teardown-workspace-cJea1OLo.js} +16 -16
  386. package/server/{test-agent-queue-BUtWhNcc.js → test-agent-queue-C5DI_gWX.js} +6 -6
  387. package/server/{test-verdict-BWm3hgDj.js → test-verdict-C7kmd2_Y.js} +1 -1
  388. package/server/{test-verdict-BWtRmdiR.js → test-verdict-DUbDHqeD.js} +2 -2
  389. package/server/{tldr-daemon-CneJ24eL.js → tldr-daemon-BNQHwblU.js} +1 -1
  390. package/server/{tldr-daemon-CMVBT4kT.js → tldr-daemon-CO08YlfQ.js} +2 -2
  391. package/server/tmux-B8zsqD_6.js +4 -0
  392. package/server/{tmux-BqXzRuaH.js → tmux-DWEc4Ld9.js} +91 -19
  393. package/server/{token-CO3INKbh.js → token-Bez-qCB2.js} +2 -2
  394. package/server/{token-util-DyJJyX_B.js → token-util-Crcay9j_.js} +1 -1
  395. package/server/token-util-DfUS3Lpp.js +3 -0
  396. package/server/{tracker-config-DVzhaUxO.js → tracker-config-CJzPhSHv.js} +2 -2
  397. package/server/{tracker-utils-xnVJVrrO.js → tracker-utils-DJAOAuMN.js} +2 -2
  398. package/server/{traefik-connect-A5k54mCv.js → traefik-connect-D3H5I6b9.js} +1 -1
  399. package/server/{tunnel-DauSR-rs.js → tunnel-BSdKnW0U.js} +1 -1
  400. package/server/{tunnel-CwOnS-PB.js → tunnel-Cr3ctqxp.js} +3 -3
  401. package/server/{typed-errors-B-gfU2RB.js → typed-errors-CZ3GFBvo.js} +1 -1
  402. package/server/{typed-errors-DzC4zXbI.js → typed-errors-DXqf3RnP.js} +1 -1
  403. package/server/{types-DjpLVpsj.js → types-fzBp9cYi.js} +1 -1
  404. package/server/{types-DbxY2QB6.js → types-pLpbsNto.js} +1 -1
  405. package/server/{uat-failure-feedback-BVqsWlrr.js → uat-failure-feedback-IZQ-J8jt.js} +5 -5
  406. package/server/{uat-promote-verification-DmG097QS.js → uat-promote-verification-DXApKcc2.js} +5 -5
  407. package/server/{uat-train-COSy-vEX.js → uat-train-CycEzpbE.js} +1 -1
  408. package/server/{uat-train-DVUNW03P.js → uat-train-IIZlz7r3.js} +0 -0
  409. package/server/{validate-Dvv83iBx.js → validate-Ur4xH5bN.js} +3 -3
  410. package/server/{validation-BdCjzWLN.js → validation-CHovCoTT.js} +1 -1
  411. package/server/{validation-DlHafKzu.js → validation-Dr6V4PXx.js} +9 -6
  412. package/server/{verification-artifact-CaSbxUVg.js → verification-artifact-D3viYe_t.js} +1 -1
  413. package/server/{verification-artifact-0Zku8N-W.js → verification-artifact-k5Ftpg0c.js} +1 -1
  414. package/server/{verification-runner-C6wdZda2.js → verification-runner-BuqGwm2t.js} +1 -1
  415. package/server/{verification-runner-DwP2fUEF.js → verification-runner-Dl13mmsI.js} +53 -27
  416. package/server/{vtt-parser-luerJpYT.js → vtt-parser-BSnAB-Og.js} +1 -1
  417. package/server/work-agent-prompt-CJJ4tXci.js +3 -0
  418. package/server/{work-agent-prompt--9AWNYwZ.js → work-agent-prompt-CioeOuM4.js} +14 -14
  419. package/server/{work-agent-start-BNQO65W7.js → work-agent-start-B65Gqn9N.js} +2 -2
  420. package/server/{work-agent-start-DkzseQFl.js → work-agent-start-Ct1HVh6z.js} +1 -1
  421. package/server/{workflows-BYwR2aIN.js → workflows-AgFul1xc.js} +114 -41
  422. package/server/workflows-CfHm8lVd.js +2 -0
  423. package/server/{workspace-B-QJa3Ps.js → workspace-Cu3XlMXt.js} +1 -1
  424. package/server/{workspace-iTnTycOB.js → workspace-Cy4sDd3q.js} +3 -3
  425. package/server/{workspace-anchor-drift-DTt6h2Em.js → workspace-anchor-drift-BI0Hz6zI.js} +1 -1
  426. package/server/{workspace-anchor-drift-CHiGg8iu.js → workspace-anchor-drift-CMaqvizr.js} +4 -4
  427. package/server/{workspace-config-D0CavVtz.js → workspace-config-DRYDO7Zr.js} +1 -1
  428. package/server/{workspace-manager-W1OnbvU5.js → workspace-manager-CgovxDrO.js} +17 -17
  429. package/server/{workspace-manager-5BKPV6SY.js → workspace-manager-jfkKAEuO.js} +1 -1
  430. package/server/{workspace-metadata-tbbevEmP.js → workspace-metadata-BDqXzGGK.js} +1 -1
  431. package/server/{workspace-metadata-dJhXvZGQ.js → workspace-metadata-BNzODIv6.js} +2 -2
  432. package/server/{workspaces-BlpbOPZ7.js → workspaces-BJdPqx_J.js} +131 -127
  433. package/sync-sources/dev-skills/pan-style-guide/SKILL.md +90 -15
  434. package/sync-sources/hooks/linear-mcp-auth-hook +6 -1
  435. package/sync-sources/rules/handoff-isolate-cwd.md +4 -4
  436. package/sync-sources/rules/pan-handoff-focus-limit.md +12 -5
  437. package/sync-sources/rules/ste-writing.md +17 -0
  438. package/sync-sources/rules/work-agents-via-pan.md +2 -1
  439. package/sync-sources/rules/writing-style.md +3 -2
  440. package/sync-sources/skills/{skill-creator → claude-skill-creator}/SKILL.md +1 -1
  441. package/sync-sources/skills/{skill-creator → claude-skill-creator}/scripts/init_skill.py +1 -1
  442. package/sync-sources/skills/{skill-creator → claude-skill-creator}/scripts/package_skill.py +1 -1
  443. package/sync-sources/skills/pan-gauntlet-loop/SKILL.md +182 -0
  444. package/sync-sources/skills/pan-gauntlet-loop/assets/PROMPT.template.md +92 -0
  445. package/sync-sources/skills/pan-gauntlet-loop/assets/REFERENCE-BAR.template.md +53 -0
  446. package/sync-sources/skills/pan-gauntlet-loop/assets/STYLE.template.md +41 -0
  447. package/sync-sources/skills/pan-gauntlet-loop/assets/gauntlet-index.html +237 -0
  448. package/sync-sources/skills/pan-gauntlet-loop/references/domains.md +106 -0
  449. package/sync-sources/skills/pan-gauntlet-loop/references/lessons.md +60 -0
  450. package/sync-sources/skills/pan-handoff/SKILL.md +13 -6
  451. package/sync-sources/skills/pan-help/SKILL.md +1 -1
  452. package/sync-sources/skills/pan-peer-review/SKILL.md +3 -3
  453. package/sync-sources/skills/pan-restart/SKILL.md +6 -3
  454. package/sync-sources/skills/pan-start/SKILL.md +3 -0
  455. package/sync-sources/skills/pan-swarm/SKILL.md +32 -44
  456. package/sync-sources/skills/pan-sync/SKILL.md +1 -1
  457. package/server/activity-logger-BejO16Am.js +0 -3
  458. package/server/agent-state-DH_-Jkua.js +0 -3
  459. package/server/agents-megfmQHM.js +0 -3
  460. package/server/archive-planning-C-H9cM_J.js +0 -2
  461. package/server/build-info-PQlh_Rhb.js +0 -2
  462. package/server/cli-TaZspPHS.js +0 -2
  463. package/server/cliproxy-36ncAXlu.js +0 -3
  464. package/server/context-layers-CF6zHws4.js +0 -4
  465. package/server/conversations-AnGJ5rtX.js +0 -3
  466. package/server/deacon-BEH-IY0v.js +0 -5
  467. package/server/deacon-swarm-BHX-kR1b.js +0 -2
  468. package/server/deacon-swarm-BiLfNm_v.js +0 -1522
  469. package/server/dead-end-trip-BWpDg1Qd.js +0 -2
  470. package/server/delivery-cJM6zRjJ.js +0 -3
  471. package/server/deploy-queue-CmVBZEja.js +0 -2
  472. package/server/dist-VKBfkdi7.js +0 -3
  473. package/server/durable-review-pipeline-DgcVCYDL.js +0 -3
  474. package/server/factory-D4V2wd_V.js +0 -717
  475. package/server/forge-CrP1L3i6.js +0 -2
  476. package/server/hume-1ubD_6O7.js +0 -3
  477. package/server/inspect-agent-CfxERkNt.js +0 -2
  478. package/server/merge-ops-DtHx17Vd.js +0 -2
  479. package/server/merge-rebase-BvB4UuNS.js +0 -2
  480. package/server/project-repos-BJiShUsN.js +0 -3
  481. package/server/providers-CStNGwze.js +0 -3
  482. package/server/public/assets/index-BFEwfmqX.js +0 -860
  483. package/server/public/assets/index-_USwyTAT.css +0 -1
  484. package/server/public/assets/mermaid-GHXKKRXX-Dsln95SK.js +0 -1
  485. package/server/pull-requests-C1Cqp2yo.js +0 -2
  486. package/server/rally-CjayjUIl.js +0 -3
  487. package/server/resume-D7JuMCRQ.js +0 -3
  488. package/server/review-agent-BUNTVJK2.js +0 -2
  489. package/server/settings-DBWB1gsG.js +0 -2
  490. package/server/specialists-D8gsOCwh.js +0 -3
  491. package/server/specs-BqkrRnU9.js +0 -3
  492. package/server/stuck-remediation-Di5JYkoo.js +0 -1164
  493. package/server/stuck-remediation-TNM1VhZb.js +0 -2
  494. package/server/supervisor-DX8VsPnb.js +0 -2
  495. package/server/tmux-CqNapnrr.js +0 -4
  496. package/server/token-util-Bu8bPF9f.js +0 -3
  497. package/server/workflows-Cf4LAnhg.js +0 -2
@@ -1,28 +1,34 @@
1
- import { Fi as init_paths, On as resolveProjectFromIssueSync, fn as init_projects, si as AGENTS_DIR } from "./config-yaml-BwOEANMr.js";
2
- import { a as emitActivityEntrySync, c as init_activity_logger } from "./activity-logger-BAVLrkR7.js";
3
- import { L as sendKeys, S as init_tmux, V as sessionExistsSync } from "./tmux-BqXzRuaH.js";
4
- import { G as init_agents, H as getAgentRuntimeStateSync, m as getAgentStateSync, un as listRunningAgentsSync } from "./agent-state-Bb3UUxQm.js";
5
- import { i as loadCloisterConfig, r as init_config } from "./config-DC75T4Mr.js";
6
- import { n as resolveGitHubIssueSync, t as init_tracker_utils } from "./tracker-utils-xnVJVrrO.js";
7
- import { _ as markMerged, c as init_merge_sync, f as listActiveAutoMerges, m as listProblemAutoMerges, t as cancelPending } from "./merge-sync-Ct0-cxMX.js";
8
- import { i as init_merge_set, r as getMergeSetSync } from "./merge-set-eiE2nC6C.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-DBnR5t4z.js";
10
- import { M as withConcurrencyLimit, j as init_concurrency } from "./github-app-4UX8VIr8.js";
11
- import { o as isAgentIdleForNudge } from "./stuck-remediation-Di5JYkoo.js";
12
- import { n as sweepAutoCloseOutCache, t as getAutoCloseOutCanonicalState } from "./deacon-canonical-state-DFYymrDw.js";
13
- import { n as getForgeAdapter } from "./forge-DYX9sKzG.js";
14
- import { i as observeForgeMergeState } from "./merge-completeness-CP347umA.js";
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";
16
+ import { join } from "node:path";
15
17
  import { Effect } from "effect";
16
18
  import { existsSync, readdirSync } from "fs";
17
- import { join } from "path";
19
+ import { join as join$1 } from "path";
20
+ import { promises as promises$1 } from "node:fs";
18
21
  import { exec, execFile } from "node:child_process";
19
22
  import { promisify } from "node:util";
20
23
  import { promisify as promisify$1 } from "util";
21
24
  //#region ../../lib/cloister/deacon-stuck-merging.ts
22
25
  init_paths();
26
+ init_state_read_home();
27
+ init_record();
23
28
  init_activity_logger();
24
29
  init_tmux();
25
30
  init_config();
31
+ init_agent_state();
26
32
  init_merge_sync();
27
33
  init_review_status_record_sync();
28
34
  init_concurrency();
@@ -70,7 +76,7 @@ function isStuckMergingState(status, now) {
70
76
  }
71
77
  async function readSpecStatus(projectPath, issueId) {
72
78
  try {
73
- const { findSpecByIssue } = await import("./specs-BqkrRnU9.js");
79
+ const { findSpecByIssue } = await import("./specs-IYsFlM-L.js");
74
80
  return (await Effect.runPromise(findSpecByIssue(projectPath, issueId)))?.status;
75
81
  } catch {
76
82
  return;
@@ -152,7 +158,7 @@ async function reconcileStuckMergingStates() {
152
158
  reviewGatesPassed: reviewGatesPassedSync,
153
159
  setReviewStatus: setReviewStatusSync,
154
160
  enqueuePostMerge: async (issueId, projectPath, branch) => {
155
- const { enqueuePostMergeLifecycle } = await import("./post-merge-lifecycle-worker-KK1RTKRE.js");
161
+ const { enqueuePostMergeLifecycle } = await import("./post-merge-lifecycle-worker-DAWgzXQA.js");
156
162
  return enqueuePostMergeLifecycle(issueId, projectPath, branch);
157
163
  },
158
164
  warn: (message) => console.warn(message)
@@ -392,7 +398,7 @@ async function reconcileStaleMergeStatus() {
392
398
  ].includes(status.mergeStatus ?? "") || ["merging", "failed"].includes(mergeSet?.status ?? "");
393
399
  let specStatus;
394
400
  try {
395
- const { findSpecByIssue } = await import("./specs-BqkrRnU9.js");
401
+ const { findSpecByIssue } = await import("./specs-IYsFlM-L.js");
396
402
  const spec = await Effect.runPromise(findSpecByIssue(project.projectPath, issueId));
397
403
  specStatus = spec?.status;
398
404
  if (spec && (spec.status === "completed" || spec.status === "cancelled")) {
@@ -402,7 +408,7 @@ async function reconcileStaleMergeStatus() {
402
408
  } catch {}
403
409
  const branch = `feature/${issueId.toLowerCase()}`;
404
410
  if (postMergeIncomplete) {
405
- const { enqueuePostMergeLifecycle } = await import("./post-merge-lifecycle-worker-KK1RTKRE.js");
411
+ const { enqueuePostMergeLifecycle } = await import("./post-merge-lifecycle-worker-DAWgzXQA.js");
406
412
  const action = enqueuePostMergeLifecycle(issueId, project.projectPath, branch);
407
413
  if (action) actions.push(action);
408
414
  continue;
@@ -414,7 +420,7 @@ async function reconcileStaleMergeStatus() {
414
420
  } catch {}
415
421
  if (!isMerged) isMerged = (await observeGitHubBranchMerge(issueId, branch, project.projectPath)).merged;
416
422
  if (shouldObserveForge && mergeRelevant) try {
417
- const observation = await (await import("./merge-completeness-7ajHAIR-.js")).observeForgeMergeState(issueId);
423
+ const observation = await (await import("./merge-completeness-DkdabVch.js")).observeForgeMergeState(issueId);
418
424
  const blocker = observation.repos.find((repo) => repo.state === "unverifiable");
419
425
  if (blocker) {
420
426
  console.warn(`[deacon] ${issueId}: forge merge state is unverifiable — ${blocker.reason}`);
@@ -441,7 +447,7 @@ async function reconcileStaleMergeStatus() {
441
447
  const msg = `Reconciled stale mergeStatus for ${issueId} — branch ${branch} is merged to main`;
442
448
  actions.push(msg);
443
449
  console.log(`[deacon] ${msg}`);
444
- const { enqueuePostMergeLifecycle } = await import("./post-merge-lifecycle-worker-KK1RTKRE.js");
450
+ const { enqueuePostMergeLifecycle } = await import("./post-merge-lifecycle-worker-DAWgzXQA.js");
445
451
  const action = enqueuePostMergeLifecycle(issueId, project.projectPath, branch);
446
452
  if (action) actions.push(action);
447
453
  }
@@ -464,7 +470,7 @@ const falseMergedReset = /* @__PURE__ */ new Set();
464
470
  async function reconcileFalseMerged() {
465
471
  const actions = [];
466
472
  try {
467
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-C33lDk9Z.js");
473
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-Oi5hdn1n.js");
468
474
  if (!isGitHubAppConfigured()) return actions;
469
475
  const statuses = loadReviewStatuses();
470
476
  for (const [issueId, status] of Object.entries(statuses)) {
@@ -509,7 +515,7 @@ const CLOSED_PR_RECONCILE_COOLDOWN_MS = 600 * 1e3;
509
515
  async function reconcileClosedPrReadyForMerge() {
510
516
  const actions = [];
511
517
  try {
512
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-C33lDk9Z.js");
518
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-Oi5hdn1n.js");
513
519
  if (!isGitHubAppConfigured()) return actions;
514
520
  const statuses = loadReviewStatuses();
515
521
  const now = Date.now();
@@ -581,7 +587,7 @@ const STALE_MERGE_BLOCKER_COOLDOWN_MS = 120 * 1e3;
581
587
  async function reconcileStaleMergeBlockers() {
582
588
  const actions = [];
583
589
  try {
584
- const { resolveConflictGate, buildRealConflictGateDeps } = await import("./conflict-gate-DlpWCMd7.js");
590
+ const { resolveConflictGate, buildRealConflictGateDeps } = await import("./conflict-gate-D4XCtrm2.js");
585
591
  const statuses = loadReviewStatuses();
586
592
  const now = Date.now();
587
593
  const deps = buildRealConflictGateDeps();
@@ -593,7 +599,7 @@ async function reconcileStaleMergeBlockers() {
593
599
  staleMergeBlockerCooldowns.set(issueId, now + STALE_MERGE_BLOCKER_COOLDOWN_MS);
594
600
  const resolved = resolveProjectFromIssueSync(issueId);
595
601
  if (!resolved) continue;
596
- const workspacePath = join(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
602
+ const workspacePath = join$1(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
597
603
  if (!existsSync(workspacePath)) continue;
598
604
  try {
599
605
  if ((await resolveConflictGate(issueId, workspacePath, "main", deps)).clearedStaleBlocker) {
@@ -724,7 +730,7 @@ async function checkFailedMergeRetry() {
724
730
  if (ciEntry.count === 5) {
725
731
  console.log(`[deacon] CI check failure for ${issueId} — retries exhausted, notifying work agent`);
726
732
  const ciNotes = status.mergeNotes || "CI checks are failing on the PR";
727
- const { writeFeedbackFile } = await import("./feedback-writer-DfuVjvH0.js");
733
+ const { writeFeedbackFile } = await import("./feedback-writer-CH2846DP.js");
728
734
  const ciFileResult = await Effect.runPromise(writeFeedbackFile({
729
735
  issueId,
730
736
  specialist: "merge-agent",
@@ -756,7 +762,7 @@ async function checkFailedMergeRetry() {
756
762
  ciRetryMap.set(issueId, ciEntry);
757
763
  console.log(`[deacon] CI check failure for ${issueId} — notifying agent to re-submit (attempt ${ciEntry.count}/5)`);
758
764
  const ciNotes = status.mergeNotes || "CI checks are failing on the PR";
759
- const { writeFeedbackFile } = await import("./feedback-writer-DfuVjvH0.js");
765
+ const { writeFeedbackFile } = await import("./feedback-writer-CH2846DP.js");
760
766
  const ciFileResult2 = await Effect.runPromise(writeFeedbackFile({
761
767
  issueId,
762
768
  specialist: "merge-agent",
@@ -784,7 +790,7 @@ async function checkFailedMergeRetry() {
784
790
  const lastNudge = timeoutNudgeCooldowns.get(issueIdForFb);
785
791
  if (!lastNudge || now - lastNudge >= TIMEOUT_NUDGE_COOLDOWN_MS) {
786
792
  const timeoutNotes = status.mergeNotes;
787
- const { writeFeedbackFile } = await import("./feedback-writer-DfuVjvH0.js");
793
+ const { writeFeedbackFile } = await import("./feedback-writer-CH2846DP.js");
788
794
  await Effect.runPromise(writeFeedbackFile({
789
795
  issueId: issueIdForFb,
790
796
  specialist: "merge-agent",
@@ -889,7 +895,7 @@ async function autoCloseOut(now = /* @__PURE__ */ new Date()) {
889
895
  } } : {}
890
896
  };
891
897
  try {
892
- const { closeOut } = await import("./workflows-Cf4LAnhg.js");
898
+ const { closeOut } = await import("./workflows-CfHm8lVd.js");
893
899
  const result = await Effect.runPromise(closeOut(ctx));
894
900
  if (!result.success) {
895
901
  const failed = result.steps.find((step) => !step.success && !step.skipped);
@@ -936,8 +942,8 @@ async function checkFirstCompletionAgents() {
936
942
  const agentId = agent.id;
937
943
  if (!agentId || !agentId.startsWith("agent-") || !agent.tmuxActive) continue;
938
944
  if (agentId.startsWith("specialist-")) continue;
939
- const completedFile = join(AGENTS_DIR, agent.id, "completed");
940
- const processedMarker = join(AGENTS_DIR, agent.id, "completed.processed");
945
+ const completedFile = join$1(AGENTS_DIR, agent.id, "completed");
946
+ const processedMarker = join$1(AGENTS_DIR, agent.id, "completed.processed");
941
947
  if (existsSync(completedFile) || existsSync(processedMarker)) continue;
942
948
  if (!isAgentIdleForNudge(agent.id, FIRST_COMPLETION_IDLE_MS)) continue;
943
949
  const runtimeState = getAgentRuntimeStateSync(agent.id);
@@ -958,7 +964,7 @@ async function checkFirstCompletionAgents() {
958
964
  } catch {}
959
965
  const agentStateForGate = getAgentStateSync(agent.id);
960
966
  if (agentStateForGate?.workspace) {
961
- const feedbackDir = join(agentStateForGate.workspace, ".pan", "feedback");
967
+ const feedbackDir = join$1(agentStateForGate.workspace, ".pan", "feedback");
962
968
  if (existsSync(feedbackDir)) try {
963
969
  const feedbackFiles = readdirSync(feedbackDir);
964
970
  if (feedbackFiles.length > 0) {
@@ -981,7 +987,7 @@ async function checkFirstCompletionAgents() {
981
987
  try {
982
988
  const subdirs = readdirSync(agentState.workspace, { withFileTypes: true }).filter((d) => d.isDirectory() && !d.name.startsWith("."));
983
989
  for (const sub of subdirs) try {
984
- const { stdout: subLog } = await execAsync("git log --oneline -3 2>/dev/null", { cwd: join(agentState.workspace, sub.name) });
990
+ const { stdout: subLog } = await execAsync("git log --oneline -3 2>/dev/null", { cwd: join$1(agentState.workspace, sub.name) });
985
991
  if (subLog.trim().length > 0) {
986
992
  hasCommits = true;
987
993
  break;
@@ -1009,6 +1015,115 @@ async function checkFirstCompletionAgents() {
1009
1015
  return actions;
1010
1016
  }
1011
1017
  //#endregion
1012
- export { ciRetryMap as a, reconcileMergedButReviewing as c, reconcileStuckReadyForMerge as d, reconcileAutoMergeRows as f, checkReadyForMergeStuck as i, reconcileStaleMergeBlockers as l, checkFailedMergeRetry as n, reconcileClosedPrReadyForMerge as o, reconcileStuckMergingStates as p, checkFirstCompletionAgents as r, reconcileFalseMerged as s, autoCloseOut as t, reconcileStaleMergeStatus as u };
1018
+ //#region ../../lib/pan-dir/record-list.ts
1019
+ /** Canonical bounded enumeration facet of the issue-record read door. */
1020
+ async function readIssueRecordDirectory(recordsDir, records) {
1021
+ const entries = await promises$1.readdir(recordsDir, { withFileTypes: true }).catch(() => []);
1022
+ await Promise.all(entries.filter((entry) => entry.isFile() && entry.name.endsWith(".json")).map(async (entry) => {
1023
+ try {
1024
+ const record = JSON.parse(await promises$1.readFile(join(recordsDir, entry.name), "utf-8"));
1025
+ if (record.issueId) records.set(record.issueId.toUpperCase(), record);
1026
+ } catch (error) {
1027
+ console.warn(`[record] Preserving unreadable issue record ${join(recordsDir, entry.name)} during enumeration: ${error instanceof Error ? error.message : String(error)}`);
1028
+ }
1029
+ }));
1030
+ }
1031
+ async function listIssueRecords(project) {
1032
+ const stateHome = resolveStateReadHomeSync(project);
1033
+ const records = /* @__PURE__ */ new Map();
1034
+ if (stateHome.migrated) {
1035
+ await readIssueRecordDirectory(join(stateHome.root, RECORD_DIRNAME), records);
1036
+ return [...records.values()];
1037
+ }
1038
+ await readIssueRecordDirectory(join(project.path, ".pan", RECORD_DIRNAME), records);
1039
+ const workspacesDir = join(project.path, "workspaces");
1040
+ const workspaces = await promises$1.readdir(workspacesDir, { withFileTypes: true }).catch(() => []);
1041
+ await Promise.all(workspaces.filter((entry) => entry.isDirectory()).map((entry) => readIssueRecordDirectory(join(workspacesDir, entry.name, ".pan", RECORD_DIRNAME), records)));
1042
+ return [...records.values()];
1043
+ }
1044
+ //#endregion
1045
+ //#region ../../lib/cloister/parked-residue.ts
1046
+ init_recovery_trip();
1047
+ /**
1048
+ * Record-level terminality: closedOut is the durable close-out marker, and a
1049
+ * mergeStatus of 'merged' with no reopenedAt means the issue merged and was
1050
+ * never reopened afterward (reopen drops the stale mergeStatus — see
1051
+ * clearRecordPipelineClosedOut in record-update.ts). Shared with the parked
1052
+ * resolver's record-first terminality check (PAN-3727) so both surfaces agree
1053
+ * by construction on what counts as terminal.
1054
+ */
1055
+ function isRecordPipelineTerminal(record) {
1056
+ if (!record.pipeline) return false;
1057
+ return record.pipeline.closedOut === true || record.pipeline.mergeStatus === "merged" && !record.pipeline.reopenedAt;
1058
+ }
1059
+ function defaultDeps() {
1060
+ return {
1061
+ listRecords: listIssueRecords,
1062
+ ackTrips: acknowledgeAllOpenRecoveryTrips,
1063
+ clearGatesForIssues: clearAgentOperatorGatesForIssuesSync
1064
+ };
1065
+ }
1066
+ /**
1067
+ * Sweep every project's terminal-issue records for parked-population residue
1068
+ * left over from before close-out started acknowledging it (PAN-3727): open
1069
+ * recovery trips and operator-gate flags (stoppedByUser/paused/troubled) on a
1070
+ * terminal issue's stopped agent rows. Runs on the state-plane patrol cadence
1071
+ * so the backlog existing before this fix self-heals without a manual sweep,
1072
+ * and any future leak path is caught on the next cycle.
1073
+ *
1074
+ * Three passes, each isolating its own failure mode (review findings,
1075
+ * PAN-3727):
1076
+ * 1. Gather every terminal record across every project. A project whose
1077
+ * record listing fails is warned and skipped — it must never abort the
1078
+ * sweep for the remaining projects.
1079
+ * 2. Clear operator-gate residue for every terminal issue in ONE batched
1080
+ * agent-table scan (not one scan per issue — cost scales with the agent
1081
+ * table once per patrol run, not with the number of terminal issues).
1082
+ * 3. Acknowledge open recovery trips per issue (the record-write door is
1083
+ * inherently per-record). A trip-ack failure for one issue is isolated
1084
+ * to that issue and never suppresses the gate clearing already done in
1085
+ * pass 2 — the two cleanup operations are independent residue.
1086
+ */
1087
+ async function reconcileTerminalIssueResidue(projects, deps = defaultDeps()) {
1088
+ const actions = [];
1089
+ const terminalIssueIds = [];
1090
+ for (const { config } of projects) {
1091
+ if (!config.path) continue;
1092
+ let records;
1093
+ try {
1094
+ records = await deps.listRecords(config);
1095
+ } catch (error) {
1096
+ actions.push({
1097
+ message: `Failed to list records for ${config.name ?? config.path}: ${error instanceof Error ? error.message : String(error)}`,
1098
+ level: "warn"
1099
+ });
1100
+ continue;
1101
+ }
1102
+ for (const record of records) if (isRecordPipelineTerminal(record)) terminalIssueIds.push(record.issueId.toUpperCase());
1103
+ }
1104
+ if (terminalIssueIds.length === 0) return actions;
1105
+ const gatesByIssue = deps.clearGatesForIssues(new Set(terminalIssueIds));
1106
+ for (const issueId of terminalIssueIds) {
1107
+ const gates = gatesByIssue.get(issueId) ?? [];
1108
+ let trips = 0;
1109
+ try {
1110
+ trips = await deps.ackTrips(issueId);
1111
+ } catch (error) {
1112
+ const message = error instanceof Error ? error.message : String(error);
1113
+ actions.push({
1114
+ message: `Failed to acknowledge open trips for ${issueId}: ${message}` + (gates.length > 0 ? `; cleared operator gates on ${gates.length} agent row(s)` : ""),
1115
+ level: "warn"
1116
+ });
1117
+ continue;
1118
+ }
1119
+ if (trips > 0 || gates.length > 0) actions.push({
1120
+ message: `Cleaned parked residue for ${issueId}: acked ${trips} open trip(s), cleared operator gates on ${gates.length} agent row(s)`,
1121
+ level: "action"
1122
+ });
1123
+ }
1124
+ return actions;
1125
+ }
1126
+ //#endregion
1127
+ 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 };
1013
1128
 
1014
- //# sourceMappingURL=deacon-merge-BOGFEV8_.js.map
1129
+ //# sourceMappingURL=parked-residue-BiHb8cD7.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Fi as init_paths$1, Pi as getOverdeckHome } from "./config-yaml-BwOEANMr.js";
2
+ import { Li as getOverdeckHome, Ri as init_paths$1 } from "./config-yaml-D9nfpEx1.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-CRLnDgcI.js.map
65
+ //# sourceMappingURL=paths-DEe9j-kw.js.map
@@ -1,4 +1,4 @@
1
- import { n as init_review_status_source, s as resolveCanonicalReviewStatus } from "./review-status-source-Ct912fv_.js";
1
+ import { n as init_review_status_source, s as resolveCanonicalReviewStatus } from "./review-status-source-Jq0BXmn3.js";
2
2
  import { basename, dirname, join } from "node:path";
3
3
  import { readFile, readdir, rename, unlink } from "node:fs/promises";
4
4
  import { randomUUID } from "node:crypto";
@@ -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-CYgMiDAP.js.map
110
+ //# sourceMappingURL=pending-lifecycle-claim-J5uIIJPu.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-BjJsSX12.js.map
190
+ //# sourceMappingURL=pickup-D1UbSDPd.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-KTp9KV9u.js";
3
- import { a as getWorkspaceForIssue, o as init_resolver } from "./resolver-CuAULbLs.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";
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) {
@@ -125,11 +125,11 @@ function stateToOverdeckParamsForDb(state, updatedAt) {
125
125
  ];
126
126
  }
127
127
  function getOverdeckAgentStateSync(agentId) {
128
- const row = getOverdeckDatabaseSync().prepare(`${SELECT_AGENT_SQL} WHERE id = ?`).get(agentId);
128
+ const row = getOverdeckDatabaseSync(void 0, { readOnly: true }).prepare(`${SELECT_AGENT_SQL} WHERE id = ?`).get(agentId);
129
129
  return row ? overdeckRowToAgentState(row) : null;
130
130
  }
131
131
  function listOverdeckAgentStatesSync() {
132
- return getOverdeckDatabaseSync().prepare(SELECT_AGENT_SQL).all().map(overdeckRowToAgentState);
132
+ return getOverdeckDatabaseSync(void 0, { readOnly: true }).prepare(SELECT_AGENT_SQL).all().map(overdeckRowToAgentState);
133
133
  }
134
134
  function saveOverdeckAgentStateSync(state) {
135
135
  const db = getOverdeckDatabaseSync();
@@ -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-BLc43dVJ.js.map
244
+ //# sourceMappingURL=pipeline-agent-reader-D-6okryb.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-BHZp_ShY.js";
1
+ import { n as init_pipeline_membership, r as resolvePipelineMembership, t as PLANNED_BACKLOG_SPEC_ONLY_REASON } from "./pipeline-membership-PGX3Pe8V.js";
2
2
  init_pipeline_membership();
3
3
  export { PLANNED_BACKLOG_SPEC_ONLY_REASON, resolvePipelineMembership };
@@ -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-BHZp_ShY.js.map
60
+ //# sourceMappingURL=pipeline-membership-PGX3Pe8V.js.map
@@ -1,12 +1,12 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { $ as readIssueRecord, Y as init_record, et as readIssueRecordForWorkspaceSync, fn as init_projects, rn as getIssuePrefix, vn as listProjectsSync } from "./config-yaml-BwOEANMr.js";
3
- import { h as loadConfigSync, p as init_config } from "./config-tucKBCCc.js";
4
- import { r as init_factory, t as createTracker } from "./factory-D4V2wd_V.js";
5
- import { C as init_specs, w as listSpecs } from "./io-DfvO2xyh.js";
6
- import { n as resolveGitHubIssueSync, t as init_tracker_utils } from "./tracker-utils-xnVJVrrO.js";
7
- import { i as init_project_repos, n as getRepoForge, r as inferProjectForgeSync } from "./project-repos-B4MK48j4.js";
8
- import { A as createSettledTtlPromiseCache, N as withConcurrencyLimitPromise, _ as listOpenIssuesWithLabelsPromise, f as init_github_app, h as listIssuesWithAnyLabelPromise, j as init_concurrency } from "./github-app-4UX8VIr8.js";
9
- import { a as PARKED_LABEL, c as VETOED_LABEL, h as init_pickup, i as OBJECTION_LABEL, o as READY_LABEL, s as RELEASED_LABEL, t as BLOCKS_MAIN_LABEL } from "./pickup-BjJsSX12.js";
2
+ import { $ as readIssueRecord, Y as init_record, et as readIssueRecordForWorkspaceSync, fn as init_projects, rn as getIssuePrefix, vn as listProjectsSync } from "./config-yaml-D9nfpEx1.js";
3
+ import { h as loadConfigSync, p as init_config } from "./config-ZGjvuR6J.js";
4
+ import { r as init_factory, t as createTracker } from "./factory-BrdqXBeK.js";
5
+ import { C as init_specs, w as listSpecs } from "./io-DKrWd3gX.js";
6
+ import { i as init_project_repos, n as getRepoForge, r as inferProjectForgeSync } from "./project-repos--QeCg7yQ.js";
7
+ import { n as resolveGitHubIssueSync, t as init_tracker_utils } from "./tracker-utils-DJAOAuMN.js";
8
+ import { A as createSettledTtlPromiseCache, N as withConcurrencyLimitPromise, _ as listOpenIssuesWithLabelsPromise, f as init_github_app, h as listIssuesWithAnyLabelPromise, j as init_concurrency } from "./github-app-7ywLhuZO.js";
9
+ import { a as PARKED_LABEL, c as VETOED_LABEL, h as init_pickup, i as OBJECTION_LABEL, o as READY_LABEL, s as RELEASED_LABEL, t as BLOCKS_MAIN_LABEL } from "./pickup-D1UbSDPd.js";
10
10
  import { join, resolve } from "node:path";
11
11
  import { Effect } from "effect";
12
12
  import { realpath } from "node:fs/promises";
@@ -488,14 +488,15 @@ async function gatherIssueBranchContainment(project, issueId, run = defaultDeps.
488
488
  const result = {
489
489
  unmergedRefs: [],
490
490
  mergedWorkRefs: [],
491
- pointerRefs: []
491
+ pointerRefs: [],
492
+ mergedWorkHeads: []
492
493
  };
493
494
  for (const { repository, snapshot } of snapshots) {
494
495
  const unmergedSet = new Set(snapshot.unmergedRefs.split("\n").map((ref) => ref.trim()).filter(Boolean));
495
496
  const firstParentShas = new Set(snapshot.firstParentShas.split("\n").map((sha) => sha.trim()).filter(Boolean));
496
497
  const refLines = snapshot.refs.split("\n").map((line) => line.trim()).filter(Boolean);
497
498
  for (const line of refLines) {
498
- const { ref } = parseBranchRefLine(line);
499
+ const { ref, tipSha } = parseBranchRefLine(line);
499
500
  const qualifiedRef = `${repository.path}:${ref}`;
500
501
  switch (classifyBranchRefLine(line, unmergedSet, firstParentShas)) {
501
502
  case "unmerged":
@@ -503,6 +504,10 @@ async function gatherIssueBranchContainment(project, issueId, run = defaultDeps.
503
504
  break;
504
505
  case "merged-work":
505
506
  result.mergedWorkRefs.push(qualifiedRef);
507
+ if (tipSha) result.mergedWorkHeads.push({
508
+ ref: qualifiedRef,
509
+ head: tipSha
510
+ });
506
511
  break;
507
512
  case "pointer":
508
513
  result.pointerRefs.push(qualifiedRef);
@@ -727,7 +732,7 @@ var init_pipeline_membership_gather = __esmMin((() => {
727
732
  },
728
733
  batchHasTerminalCloseOutRecords: async (project, issueIds) => {
729
734
  const result = /* @__PURE__ */ new Map();
730
- const { batchReadIssueRecords } = await import("./record-By-wp6pg.js");
735
+ const { batchReadIssueRecords } = await import("./record-Ug18Cp4V.js");
731
736
  const batchResults = await batchReadIssueRecords(project, issueIds);
732
737
  for (const id of issueIds) {
733
738
  const record = batchResults.get(id);
@@ -750,4 +755,4 @@ var init_pipeline_membership_gather = __esmMin((() => {
750
755
  //#endregion
751
756
  export { removeIssueParkedLabel as A, applyIssueParkedLabel as C, init_label_ops as D, applyIssueVetoedLabel as E, removeIssueReleasedLabel as M, removeIssueVetoedLabel as N, removeIssueBlocksMainLabel as O, applyIssueObjectionLabel as S, applyIssueReleasedLabel as T, init_gitlab_merge_requests as _, gatherProjectLensSignals as a, reconcilePipelineLabelsPatrol as b, listIssueStatesBatched as c, mapPipelineProjects as d, projectRepositories as f, parseIssueIdFromTextSync as g, init_resource_utils as h, gatherIssueBranchContainment as i, removeIssueReadyLabel as j, removeIssueObjectionLabel as k, listMergedPullRequestHeadsBatched as l, snapshotBranchRefs as m, PipelineMembershipUnavailableError as n, gatherProjectLensSignalsForProjects as o, resolveRepositoryDefaultBranch as p, classifyBranchRefLine as r, init_pipeline_membership_gather as s, PIPELINE_PROJECT_CONCURRENCY as t, listOpenPullRequestsSnapshot as u, listOpenGitLabMergeRequests as v, applyIssueReadyLabel as w, applyIssueBlocksMainLabel as x, init_label_reconciler as y };
752
757
 
753
- //# sourceMappingURL=pipeline-membership-gather-CGFY1v-y.js.map
758
+ //# sourceMappingURL=pipeline-membership-gather-BK4dzh0X.js.map
@@ -1,3 +1,3 @@
1
- import { a as gatherProjectLensSignals, c as listIssueStatesBatched, d as mapPipelineProjects, f as projectRepositories, i as gatherIssueBranchContainment, l as listMergedPullRequestHeadsBatched, m as snapshotBranchRefs, n as PipelineMembershipUnavailableError, o as gatherProjectLensSignalsForProjects, p as resolveRepositoryDefaultBranch, r as classifyBranchRefLine, s as init_pipeline_membership_gather, t as PIPELINE_PROJECT_CONCURRENCY, u as listOpenPullRequestsSnapshot } from "./pipeline-membership-gather-CGFY1v-y.js";
1
+ import { a as gatherProjectLensSignals, c as listIssueStatesBatched, d as mapPipelineProjects, f as projectRepositories, i as gatherIssueBranchContainment, l as listMergedPullRequestHeadsBatched, m as snapshotBranchRefs, n as PipelineMembershipUnavailableError, o as gatherProjectLensSignalsForProjects, p as resolveRepositoryDefaultBranch, r as classifyBranchRefLine, s as init_pipeline_membership_gather, t as PIPELINE_PROJECT_CONCURRENCY, u as listOpenPullRequestsSnapshot } from "./pipeline-membership-gather-BK4dzh0X.js";
2
2
  init_pipeline_membership_gather();
3
3
  export { PIPELINE_PROJECT_CONCURRENCY, PipelineMembershipUnavailableError, classifyBranchRefLine, gatherIssueBranchContainment, gatherProjectLensSignals, gatherProjectLensSignalsForProjects, listIssueStatesBatched, listMergedPullRequestHeadsBatched, listOpenPullRequestsSnapshot, mapPipelineProjects, projectRepositories, resolveRepositoryDefaultBranch, snapshotBranchRefs };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-zY75jrRJ.js";
2
+ import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-DoVzb4b7.js";
3
3
  import { Effect } from "effect";
4
4
  //#region ../../lib/pipeline-notifier.ts
5
5
  /**
@@ -60,4 +60,4 @@ var init_pipeline_notifier = __esmMin((() => {
60
60
  //#endregion
61
61
  export { setPipelineHandlerSync as a, setPipelineHandler as i, notifyPipeline as n, notifyPipelineSync as r, init_pipeline_notifier as t };
62
62
 
63
- //# sourceMappingURL=pipeline-notifier-BmsLWM_2.js.map
63
+ //# sourceMappingURL=pipeline-notifier-BNAV9kpa.js.map
@@ -1,3 +1,3 @@
1
- import { a as setPipelineHandlerSync, i as setPipelineHandler, n as notifyPipeline, r as notifyPipelineSync, t as init_pipeline_notifier } from "./pipeline-notifier-BmsLWM_2.js";
1
+ import { a as setPipelineHandlerSync, i as setPipelineHandler, n as notifyPipeline, r as notifyPipelineSync, t as init_pipeline_notifier } from "./pipeline-notifier-BNAV9kpa.js";
2
2
  init_pipeline_notifier();
3
3
  export { notifyPipeline, notifyPipelineSync, setPipelineHandler, setPipelineHandlerSync };
@@ -1,4 +1,4 @@
1
- import { n as init_review_status_source, s as resolveCanonicalReviewStatus } from "./review-status-source-Ct912fv_.js";
1
+ import { n as init_review_status_source, s as resolveCanonicalReviewStatus } from "./review-status-source-Jq0BXmn3.js";
2
2
  //#region ../../lib/cloister/post-merge-lifecycle-worker.ts
3
3
  init_review_status_source();
4
4
  const queue = /* @__PURE__ */ new Map();
@@ -15,7 +15,7 @@ async function drainQueue() {
15
15
  continue;
16
16
  }
17
17
  try {
18
- const { postMergeLifecycle } = await import("./merge-agent-BRSz26Oh.js");
18
+ const { postMergeLifecycle } = await import("./merge-agent-BuoC_PRZ.js");
19
19
  await postMergeLifecycle(entry.issueId, entry.projectPath, entry.sourceBranch, { skipDeploy: true });
20
20
  console.log(`[deacon] Completed pending post-merge lifecycle for ${entry.issueId}`);
21
21
  } catch (error) {
@@ -47,4 +47,4 @@ function enqueuePostMergeLifecycle(issueId, projectPath, sourceBranch) {
47
47
  //#endregion
48
48
  export { enqueuePostMergeLifecycle };
49
49
 
50
- //# sourceMappingURL=post-merge-lifecycle-worker-KK1RTKRE.js.map
50
+ //# sourceMappingURL=post-merge-lifecycle-worker-DAWgzXQA.js.map
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { t as init_config_yaml } from "./config-yaml-BwOEANMr.js";
3
- import { r as updateFeatureRegistryOwnership, t as init_feature_registry_storage } from "./feature-registry-storage-ewNSIVsQ.js";
4
- import { t as init_providers } from "./providers-DrfK0Ip8.js";
2
+ import { t as init_config_yaml } from "./config-yaml-D9nfpEx1.js";
3
+ import { r as updateFeatureRegistryOwnership, t as init_feature_registry_storage } from "./feature-registry-storage-zh3ZXW6f.js";
4
+ import { t as init_providers } from "./providers-BL1I66sM.js";
5
5
  import { basename } from "node:path";
6
6
  import { Schema } from "effect";
7
7
  //#region ../../lib/registry/feature-registry-population.ts
@@ -51,4 +51,4 @@ var init_post_merge_state = __esmMin((() => {
51
51
  //#endregion
52
52
  export { init_feature_registry_population as a, resetPostMergeState as i, init_post_merge_state as n, recordFeatureRegistryLifecycle as o, postMergeInFlight as r, completedPostMerge as t };
53
53
 
54
- //# sourceMappingURL=post-merge-state-_Lj3LDLh.js.map
54
+ //# sourceMappingURL=post-merge-state-DC2_0t12.js.map