@overdeck/desktop 0.45.23 → 0.45.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +2 -0
  2. package/package.json +1 -1
  3. package/server/{acceptance-criteria-DOA0KgXx.js → acceptance-criteria-DDCnXF58.js} +2 -2
  4. package/server/{advancing-selfheal-BBu6DSNm.js → advancing-selfheal-BVwW4qRn.js} +6 -6
  5. package/server/{agent-gc-BV1q_2EV.js → agent-gc-CHcnvonI.js} +4 -4
  6. package/server/agent-state-Bc3tzUC8.js +3 -0
  7. package/server/{agent-state-service-HoK8U4jW.js → agent-state-service-BsgWxZuB.js} +5 -5
  8. package/server/{agent-state-service-CnzFKSAQ.js → agent-state-service-D5UGKIJL.js} +1 -1
  9. package/server/{agents-B4Bjbkfv.js → agents-EbI0zCJl.js} +4 -4
  10. package/server/agents-wi9NWzs2.js +3 -0
  11. package/server/{archive-planning-zkJb3BeM.js → archive-planning-BZDgzoEj.js} +1 -1
  12. package/server/{archive-planning-DYrYojxl.js → archive-planning-Du25Jtst.js} +4 -4
  13. package/server/{artifact-index-jobs-C-xy7Z5v.js → artifact-index-jobs-CbEDfCDu.js} +2 -2
  14. package/server/assemble-J2ZZ2C15.js +339 -0
  15. package/server/{backlog-auto-trigger-GtG71X8H.js → backlog-auto-trigger-2R2jog7n.js} +3 -3
  16. package/server/{behavior-B_-4EKF3.js → behavior-B3exJ42O.js} +2 -2
  17. package/server/{briefing-freshness-DWdW7vUm.js → briefing-freshness-D1wzUIWv.js} +2 -2
  18. package/server/{build-info-DgTqZkL5.js → build-info-CZk_TITh.js} +1 -1
  19. package/server/{build-info-BT096lEl.js → build-info-Ie_D0_BT.js} +3 -3
  20. package/server/{checkpoint-manager-DDqcGyu8.js → checkpoint-manager-BI1Wxoku.js} +2 -2
  21. package/server/{checkpoint-manager-B7Bt29J0.js → checkpoint-manager-DwbQoqrC.js} +1 -1
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-CpgCjAlN.js → checkpoints-BJIs5QIA.js} +1 -1
  24. package/server/{checkpoints-C-AXLfYT.js → checkpoints-CQB1h765.js} +2 -2
  25. package/server/{claude-hooks-provision-C8wdRnN1.js → claude-hooks-provision-8Ngo8TpT.js} +1 -1
  26. package/server/{claude-hooks-provision-but-_qGY.js → claude-hooks-provision-D8GXF3_s.js} +2 -2
  27. package/server/{claude-permissions-H_5wHQZQ.js → claude-permissions-DNWEVV6z.js} +2 -2
  28. package/server/{claude-settings-overlay-CbSz0Dvb.js → claude-settings-overlay-CEdaqpWI.js} +2 -2
  29. package/server/{claude-settings-overlay-BTENVmYf.js → claude-settings-overlay-DWy-Bb4Y.js} +1 -1
  30. package/server/cli-B86rejVV.js +3 -0
  31. package/server/{cli-vBeXbPrq.js → cli-RoOx5DUf.js} +9 -9
  32. package/server/{cliproxy-Bgb2XCqi.js → cliproxy-C8a1vtTU.js} +2 -2
  33. package/server/{cliproxy-DW0V86F8.js → cliproxy-fHfIeiGd.js} +1 -1
  34. package/server/{close-issue-Dn_4c4G8.js → close-issue-DoOifFIK.js} +5 -5
  35. package/server/{closed-issue-reaper-hANY_ehE.js → closed-issue-reaper-Bk3SU4RC.js} +9 -9
  36. package/server/{closed-issue-reaper-CWpY2uBw.js → closed-issue-reaper-CktPXo8m.js} +1 -1
  37. package/server/{codex-TmSi-yTv.js → codex-BZXGhUVB.js} +7 -7
  38. package/server/{codex-Dg7Is5yb.js → codex-GcHuUF-k.js} +1 -1
  39. package/server/{codex-parser-C4gSH-IR.js → codex-parser-CFZ1_1Jl.js} +2 -2
  40. package/server/{config-CCvjQf27.js → config-BZ0sHTju.js} +2 -2
  41. package/server/{config-DjLOdbgT.js → config-CKxYiCmX.js} +2 -2
  42. package/server/{config-DUIhMN_T.js → config-DzV30TOm.js} +1 -1
  43. package/server/{config-yaml-DvyMuOle.js → config-yaml-DySPNmKN.js} +23 -9
  44. package/server/{conflict-gate-CmrYpa47.js → conflict-gate-BaCVrH-N.js} +3 -3
  45. package/server/{conflict-gate-BSJkNTdp.js → conflict-gate-BhAY7TUd.js} +1 -1
  46. package/server/context-layers-BrPmE__h.js +4 -0
  47. package/server/context-layers-igZ4FI4_.js +37 -0
  48. package/server/{control-settings-aP1ANIlI.js → control-settings-BQp7_4uD.js} +4 -4
  49. package/server/{conversation-compaction-CNbTLB86.js → conversation-compaction-CgrR8YYp.js} +8 -8
  50. package/server/{conversation-compaction-DiG5zWQq.js → conversation-compaction-eQB5CkOe.js} +1 -1
  51. package/server/{conversation-service-Up7FEzIC.js → conversation-service-BLd3MYsG.js} +1 -1
  52. package/server/{conversation-service-Du-MTNpJ.js → conversation-service-DPJ71F33.js} +329 -19
  53. package/server/{conversations-DbOs1e9Q.js → conversations-6AfUfbwc.js} +5 -5
  54. package/server/{conversations-6mPANqvL.js → conversations-CAsJF9kh.js} +1 -1
  55. package/server/{cost-Ca0YTWDw.js → cost-B2ddP6wq.js} +2 -2
  56. package/server/{cost-CW4WSe72.js → cost-R-m6Yi-W.js} +3 -3
  57. package/server/{cost-sync-C0VdGme1.js → cost-sync-BsN6ER0n.js} +3 -3
  58. package/server/{dag-CdOjJVDT.js → dag-B1ucnjDU.js} +2 -2
  59. package/server/{dangerous-git-ops-CT-IypG3.js → dangerous-git-ops-BXqeWVSf.js} +1 -1
  60. package/server/dashboard-db-worker.js +7 -7
  61. package/server/{deacon-pRnyD5w9.js → deacon-CU_cAYSR.js} +254 -144
  62. package/server/{deacon-DYSEJb48.js → deacon-kiQrb4ZT.js} +3 -3
  63. package/server/{deacon-nudge-log-Bjg8U4Y9.js → deacon-nudge-log-6wVqAaqz.js} +3 -3
  64. package/server/{deacon-swarm-DftYRDo8.js → deacon-swarm-BXZZ1Z2-.js} +13 -13
  65. package/server/deacon-swarm-C-GwfjJy.js +2 -0
  66. package/server/deacon.js +8 -8
  67. package/server/{deploy-patrol-Bjsho_ha.js → deploy-patrol-AiFoP8dw.js} +6 -6
  68. package/server/{deploy-window-DeP_OIRk.js → deploy-window-C3F-tihF.js} +6 -6
  69. package/server/{deploy-window-CM6W1-c6.js → deploy-window-DkZraDyj.js} +1 -1
  70. package/server/{dev-supervisor-BpMoHlkR.js → dev-supervisor-bcOWqdQE.js} +2 -2
  71. package/server/{devcontainer-renderer-CtUgrVKW.js → devcontainer-renderer-_d6XhyND.js} +3 -3
  72. package/server/dist-Bzy0y69j.js +3 -0
  73. package/server/{dist-DyRx4cI7.js → dist-Cb_0uvpS.js} +1 -1
  74. package/server/{docker-BK7HIcBj.js → docker-DcMTFTUC.js} +2 -2
  75. package/server/{dod-BrSfUHm0.js → dod-C6n9RV3G.js} +1 -1
  76. package/server/{ensure-devcontainer-DRqaAkBR.js → ensure-devcontainer-BZgOhRo7.js} +1 -1
  77. package/server/{ensure-devcontainer-DseivYEy.js → ensure-devcontainer-DNi-ono3.js} +4 -4
  78. package/server/{esm-shims-CbI3BVkl.js → esm-shims-OSHAYaS1.js} +1 -1
  79. package/server/{event-store-tdiY5eDZ.js → event-store-CQL6NeqB.js} +3 -3
  80. package/server/{event-store-Cr5PQwFC.js → event-store-EV2cMiXj.js} +1 -1
  81. package/server/{events-CvvGK6LT.js → events-BTdrdEq8.js} +1 -1
  82. package/server/{events-CC1dgUpx.js → events-DTfAe4My.js} +3 -3
  83. package/server/{factory-CynerjXO.js → factory-CFibJuaw.js} +4 -4
  84. package/server/{feature-registry-population-B0pmAz0a.js → feature-registry-population-DKZFMbFt.js} +4 -4
  85. package/server/{feature-registry-storage-_wUBRD3J.js → feature-registry-storage-BdPuLcBX.js} +2 -2
  86. package/server/{features-Dhxz-wLc.js → features-ez2271oH.js} +2 -2
  87. package/server/{feedback-target-CPS15Vte.js → feedback-target-7mqqwrX6.js} +7 -7
  88. package/server/{feedback-target-iygZwmMc.js → feedback-target-CoFDHiM8.js} +1 -1
  89. package/server/{feedback-writer-C9b6ccN1.js → feedback-writer-CY5L1lB7.js} +5 -5
  90. package/server/{feedback-writer-qmiMbqTZ.js → feedback-writer-D3a22RCd.js} +1 -1
  91. package/server/flywheel-DHrgCphM.js +1084 -0
  92. package/server/flywheel-DzGtWnJ1.js +477 -0
  93. package/server/flywheel-SVF02Jpq.js +2 -0
  94. package/server/{flywheel-merge-order-DxbQKE1d.js → flywheel-merge-order-UU0tiUld.js} +9 -8
  95. package/server/{flywheel-merge-order-C-6zRLvM.js → flywheel-merge-order-UUcsCDb6.js} +1 -1
  96. package/server/{forge-Ch9gCFod.js → forge-CNFnyqps.js} +2 -2
  97. package/server/forge-DXnS_YFH.js +2 -0
  98. package/server/{from-CJ_aH5jD.js → from-kNxT0bZC.js} +1 -1
  99. package/server/{fts-db-CKgg0VKg.js → fts-db-CE46vDkZ.js} +2 -2
  100. package/server/{fts-operations-BrL_VTRr.js → fts-operations-CqY6zl-i.js} +2 -2
  101. package/server/{git-utils-BVa07a4a.js → git-utils-CRw2zLPC.js} +68 -3
  102. package/server/git-utils-D0_yhCgF.js +3 -0
  103. package/server/{github-app-CMBdIFBQ.js → github-app-C3QrAUd0.js} +18 -7
  104. package/server/{github-app-CPfoFAdV.js → github-app-ClZ2lk8D.js} +1 -1
  105. package/server/{github-client--XVlDpwM.js → github-client-BnIsSrEN.js} +2 -2
  106. package/server/{github-client-B4QsdE-X.js → github-client-DfQYVUaw.js} +1 -1
  107. package/server/{github-pr-lookup-BRbDW-qk.js → github-pr-lookup-D16NGsSO.js} +2 -2
  108. package/server/{harness-binary-CVio2m-u.js → harness-binary-DPUi-Pv8.js} +32 -6
  109. package/server/{harness-resolve-qHJBhy3Z.js → harness-resolve-3lNZkyT4.js} +18 -9
  110. package/server/{health-events-C9B8y1Hm.js → health-events-BBcTYQKU.js} +2 -2
  111. package/server/{health-events-CpfvuVmm.js → health-events-BDOHby5Q.js} +1 -1
  112. package/server/{hooks-DUXw8A0-.js → hooks-CKZgXlJb.js} +2 -2
  113. package/server/{hooks-ltecuFqZ.js → hooks-DPVX1rwQ.js} +1 -1
  114. package/server/{hume-BEq0bUDg.js → hume-Cz8igP9E.js} +2 -2
  115. package/server/hume-ccTf4wTX.js +3 -0
  116. package/server/{idle-stack-reaper-D7w9t3fE.js → idle-stack-reaper-CuLF0j2H.js} +1 -1
  117. package/server/{idle-stack-reaper-w1ISSlhs.js → idle-stack-reaper-DDIRwxUY.js} +2 -2
  118. package/server/{in-flight-guard-aQ1IxeI3.js → in-flight-guard-CAAkqPLu.js} +2 -2
  119. package/server/{infra-CzaSOgul.js → infra-BEqFxlJc.js} +14 -4
  120. package/server/{injection-DZ0PfYa4.js → injection-C8aiVJrF.js} +191 -183
  121. package/server/{injection-oNZeoDhL.js → injection-CPUIqNhI.js} +1 -1
  122. package/server/{inspect-agent-DJKLWcVT.js → inspect-agent-BLuJ1AkT.js} +135 -79
  123. package/server/inspect-agent-Brtz0URj.js +2 -0
  124. package/server/{internal-token-DXdfprGr.js → internal-token-BrcU6qfe.js} +1 -1
  125. package/server/{internal-token-Bb4XeV2x.js → internal-token-s0-oKybJ.js} +2 -2
  126. package/server/{io-B3_AHDfr.js → io-C9kF1wtJ.js} +3 -3
  127. package/server/{issue-closed-zhdvQicO.js → issue-closed-CDJk4pIp.js} +7 -7
  128. package/server/{issue-lifecycle-Dy4vd0Oa.js → issue-lifecycle-B8sZHVHh.js} +1 -1
  129. package/server/{issue-lifecycle-CreaCkjW.js → issue-lifecycle-ojZAzDBP.js} +21 -21
  130. package/server/{issue-service-singleton-DabvBWUp.js → issue-service-singleton-BvJ09SaR.js} +1 -1
  131. package/server/{issue-service-singleton-B5ushCvE.js → issue-service-singleton-Yx5DdmVJ.js} +8 -8
  132. package/server/{issues-B6ToV6x1.js → issues-BMmP_77e.js} +2 -2
  133. package/server/{jsonl-parser-Dhflo1SH.js → jsonl-parser-BXSlHwEh.js} +3 -3
  134. package/server/{label-cleanup-BKPJm4Hv.js → label-cleanup-B0UJwnv5.js} +3 -3
  135. package/server/{label-reconciler-DdWbHEBu.js → label-reconciler-B4iOAjlC.js} +4 -4
  136. package/server/{launcher-generator-CHVm7bGT.js → launcher-generator-BBWG_SiS.js} +101 -7
  137. package/server/{lifecycle-io-D8iNBcux.js → lifecycle-io-BREGpnLk.js} +5 -5
  138. package/server/{lifecycle-io-Bsnr2K4F.js → lifecycle-io-DPo7x11I.js} +1 -1
  139. package/server/{lifecycle-sycO16hj.js → lifecycle-xmBfK2GJ.js} +6 -6
  140. package/server/{lifecycle-DfeyBDwA.js → lifecycle-yPd___5E.js} +2 -2
  141. package/server/{linear-client-D4zqMnX7.js → linear-client-BsuUvkdA.js} +2 -2
  142. package/server/{linear-client-DqhDQO9k.js → linear-client-CTskEeT_.js} +1 -1
  143. package/server/memory-fts-worker.js +1 -1
  144. package/server/{merge-DK23JEdS.js → merge-B1DiziGU.js} +1 -1
  145. package/server/{merge-C_ZEhbqI.js → merge-CefQNAnq.js} +3 -3
  146. package/server/{merge-agent-XrB80vfT.js → merge-agent-4WOWlSYA.js} +28 -28
  147. package/server/{merge-agent-BQM3a8z5.js → merge-agent-CKkgIBPB.js} +1 -1
  148. package/server/{merge-batch-Bwoyr8Je.js → merge-batch-ClFn2T-y.js} +1 -1
  149. package/server/merge-ops-CR44oU9-.js +2 -0
  150. package/server/{merge-rebase-C1KIVr0s.js → merge-rebase-BfaTyXsw.js} +2 -2
  151. package/server/merge-set-DJ8-UErs.js +83 -0
  152. package/server/{merge-set-DnSYdBEp.js → merge-set-bUqbm3yc.js} +1 -1
  153. package/server/{merge-sync-SSv3E-pl.js → merge-sync-BJYeOODr.js} +1 -1
  154. package/server/{merge-sync-DZ9dojJn.js → merge-sync-VPV28g0g.js} +2 -2
  155. package/server/{merge-train-DxDfBTjr.js → merge-train-CHopycP0.js} +3 -3
  156. package/server/{merge-train-deps-CyYQUksx.js → merge-train-deps-D1cOZzy2.js} +4 -4
  157. package/server/{merge-verification-CSizH3HY.js → merge-verification-BkaOqPsw.js} +4 -4
  158. package/server/{multipart-parser-Dt8YPN5S.js → multipart-parser-duPAfSBw.js} +2 -2
  159. package/server/{no-resume-mode-Cx3K0hHi.js → no-resume-mode-Nw29vaFb.js} +1 -1
  160. package/server/node_modules/.package-lock.json +8 -8
  161. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
  162. package/server/node_modules/undici/README.md +5 -0
  163. package/server/node_modules/undici/docs/docs/api/Client.md +4 -0
  164. package/server/node_modules/undici/docs/docs/api/Dispatcher.md +6 -0
  165. package/server/node_modules/undici/docs/docs/api/Interceptors.md +59 -0
  166. package/server/node_modules/undici/docs/docs/api/MockAgent.md +27 -0
  167. package/server/node_modules/undici/docs/docs/api/MockPool.md +28 -1
  168. package/server/node_modules/undici/docs/docs/index.md +5 -0
  169. package/server/node_modules/undici/lib/core/request.js +1 -1
  170. package/server/node_modules/undici/lib/core/util.js +6 -1
  171. package/server/node_modules/undici/lib/dispatcher/agent.js +3 -3
  172. package/server/node_modules/undici/lib/dispatcher/client-h1.js +31 -6
  173. package/server/node_modules/undici/lib/dispatcher/client-h2.js +34 -43
  174. package/server/node_modules/undici/lib/handler/cache-handler.js +93 -5
  175. package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
  176. package/server/node_modules/undici/lib/handler/redirect-handler.js +5 -2
  177. package/server/node_modules/undici/lib/handler/retry-handler.js +6 -4
  178. package/server/node_modules/undici/lib/interceptor/cache.js +21 -4
  179. package/server/node_modules/undici/lib/interceptor/decompress.js +4 -0
  180. package/server/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
  181. package/server/node_modules/undici/lib/mock/mock-utils.js +39 -10
  182. package/server/node_modules/undici/lib/util/cache.js +49 -7
  183. package/server/node_modules/undici/lib/web/fetch/body.js +2 -1
  184. package/server/node_modules/undici/lib/web/fetch/response.js +1 -3
  185. package/server/node_modules/undici/package.json +2 -2
  186. package/server/node_modules/undici/types/client.d.ts +2 -2
  187. package/server/node_modules/undici/types/dispatcher.d.ts +3 -3
  188. package/server/node_modules/undici/types/mock-interceptor.d.ts +5 -1
  189. package/server/{orphan-proposed-reconciler-neK8dHQk.js → orphan-proposed-reconciler-BvKkWMJQ.js} +12 -12
  190. package/server/{orphan-proposed-reconciler-BTkDrl4R.js → orphan-proposed-reconciler-CTSGcK8p.js} +1 -1
  191. package/server/package-lock.json +9 -9
  192. package/server/package.json +1 -1
  193. package/server/{pan-dir-DeVUgwA7.js → pan-dir-B0c3w0Ya.js} +3 -3
  194. package/server/{paths-_zEts6wc.js → paths-D-xWGHdh.js} +2 -2
  195. package/server/{pickup-Dd0Znxxy.js → pickup-DUCLWrJY.js} +17 -16
  196. package/server/{pipeline-membership-0HaEGDlH.js → pipeline-membership-mY3GprlK.js} +7 -7
  197. package/server/{pipeline-notifier-6iCJplFZ.js → pipeline-notifier-BJr8gQX6.js} +1 -1
  198. package/server/{pipeline-notifier-D0ykk59O.js → pipeline-notifier-BXkJzDC4.js} +2 -2
  199. package/server/{project-pipelines-2sK1apsO.js → project-pipelines-C0MWUeCU.js} +2 -2
  200. package/server/project-repos-B6GycDh9.js +94 -0
  201. package/server/project-repos-DXKQsc_m.js +3 -0
  202. package/server/{projects-9SkRpES9.js → projects-vjjcmiN8.js} +1 -1
  203. package/server/{prompts-Dp4Tpk39.js → prompts-DxzFXuLl.js} +2 -2
  204. package/server/{providers-DV7ec8l7.js → providers-qQAwGQDW.js} +7 -7
  205. package/server/{providers-DKkBXhxU.js → providers-u4Ga0jOr.js} +1 -1
  206. package/server/public/assets/{chunk-BO2N2NFS-CltymLRg.js → chunk-BO2N2NFS-BamJdinX.js} +4 -4
  207. package/server/public/assets/{diagram-OG6HWLK6-D2f6pjgA.js → diagram-OG6HWLK6-DfOB8-w4.js} +1 -1
  208. package/server/public/assets/{dist-DEmlBBNQ.js → dist-ByIuzMQW.js} +3 -3
  209. package/server/public/assets/{dist-BWR4qFiV.js → dist-D7zYSEA6.js} +1 -1
  210. package/server/public/assets/{ganttDiagram-6RSMTGT7-DnfiViPK.js → ganttDiagram-6RSMTGT7-EdmRyXL3.js} +1 -1
  211. package/server/public/assets/{highlighted-body-OFNGDK62-B8Wrmj9H.js → highlighted-body-OFNGDK62-MerOfTX8.js} +1 -1
  212. package/server/public/assets/{index-CsSuZQBI.js → index-CWeMerGO.js} +146 -144
  213. package/server/public/assets/{index-CUr1xv8w.css → index-CenuJ3Cw.css} +1 -1
  214. package/server/public/assets/{linear-C9zFQpkX.js → linear-BBbArIcK.js} +1 -1
  215. package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +1 -0
  216. package/server/public/assets/{pieDiagram-4H26LBE5-lR8H7Yjd.js → pieDiagram-4H26LBE5-BKIddiJN.js} +1 -1
  217. package/server/public/assets/{prod-B1jCQihw.js → prod-B8vYiu52.js} +4 -4
  218. package/server/public/assets/{quadrantDiagram-W4KKPZXB-CVQ2guem.js → quadrantDiagram-W4KKPZXB-D6RtoULk.js} +1 -1
  219. package/server/public/assets/{sankeyDiagram-5OEKKPKP-eD1RB4gm.js → sankeyDiagram-5OEKKPKP-CLrCedZX.js} +1 -1
  220. package/server/public/assets/{xychartDiagram-2RQKCTM6-ChEC6dQn.js → xychartDiagram-2RQKCTM6-hznR8DYl.js} +1 -1
  221. package/server/public/index.html +2 -2
  222. package/server/{pull-requests--Ib2jTgy.js → pull-requests-7N8WKseP.js} +1 -1
  223. package/server/{pull-requests-CXIhdCYD.js → pull-requests-_lHueOHW.js} +3 -3
  224. package/server/{queries-6d7Cdtm7.js → queries-CjNIf-Ub.js} +576 -166
  225. package/server/{rally-B708-nZn.js → rally-CyWT_lNO.js} +3 -3
  226. package/server/{rally-api-nY0ZANw3.js → rally-api-C8e_1JRi.js} +2 -2
  227. package/server/{rally-api-yjQ0TfHd.js → rally-api-ClOSd-Tt.js} +1 -1
  228. package/server/{rally-client-B1EJhfV0.js → rally-client-lc-nokqr.js} +4 -4
  229. package/server/{rally-client-CULK2XAY.js → rally-client-sgtVqzNU.js} +1 -1
  230. package/server/rally-zhhtXuDP.js +3 -0
  231. package/server/{reap-terminal-sessions-MWnqdLCJ.js → reap-terminal-sessions-7KeHv1R1.js} +1 -1
  232. package/server/{reap-terminal-sessions-N3BTkmX_.js → reap-terminal-sessions-BtHPo6Xc.js} +1 -1
  233. package/server/rebuild-stack-CFvcBHsS.js +4 -0
  234. package/server/{rebuild-stack-Dp4eLkt4.js → rebuild-stack-lwtsW0GO.js} +26 -35
  235. package/server/{reconstruct-cache-uWbZfjms.js → reconstruct-cache-C3Ui7ojV.js} +6 -6
  236. package/server/{record-t6V-3Dcj.js → record-CN0pj4_5.js} +1 -1
  237. package/server/{record-update-DACtKh6_.js → record-update-bLJxAXH4.js} +1 -1
  238. package/server/{record-update-Dq0t2uBG.js → record-update-dE1Aw83j.js} +2 -2
  239. package/server/{recovery-trip-BJtIQuag.js → recovery-trip-BvRWfUXM.js} +2 -2
  240. package/server/{release-engine-DZpmGGzb.js → release-engine-Cx48W7z8.js} +5 -5
  241. package/server/{release-set-hnXd_kga.js → release-set-CQfuN9-v.js} +3 -3
  242. package/server/{remote-Br-ZWVIP.js → remote-C_2hasl7.js} +3 -3
  243. package/server/{remote-4tiENDaI.js → remote-ChgimyYa.js} +3 -3
  244. package/server/{remote-agents-nmty1mLu.js → remote-agents-By1ige5O.js} +6 -6
  245. package/server/{remote-agents-CRCg1L4H.js → remote-agents-CA3Ihlxj.js} +1 -1
  246. package/server/{remote-completion-BbWNd10K.js → remote-completion-fVe9e_3u.js} +12 -12
  247. package/server/resume-BFv1PGpA.js +3 -0
  248. package/server/{review-agent-sKkE1FEL.js → review-agent-CIGOQYBD.js} +29 -25
  249. package/server/{review-agent-DJRO8EG8.js → review-agent-DNboMyW4.js} +1 -1
  250. package/server/{review-artifacts-BLbSC4ke.js → review-artifacts-nRDPuMxd.js} +5 -5
  251. package/server/{review-context-BgX3lcCx.js → review-context-2uj-YQ8J.js} +69 -25
  252. package/server/{review-status-C6n6-9f_.js → review-status-btEYlaxA.js} +1 -1
  253. package/server/{review-status-enrichment-tbOn_A_u.js → review-status-enrichment-Dci-ZwEt.js} +3 -3
  254. package/server/{review-status-A7quS5KJ.js → review-status-kZj_KyCk.js} +42 -26
  255. package/server/{review-status-sync-BhSQ0d0l.js → review-status-sync-BTOpxtTC.js} +10 -5
  256. package/server/{review-status-sync-To3-iS-N.js → review-status-sync-DSDK3OMy.js} +1 -1
  257. package/server/{review-verdict-feedback-CTRNtzXO.js → review-verdict-feedback-CCjVA7Uk.js} +6 -6
  258. package/server/{review-verdict-feedback-C1Kg8n7t.js → review-verdict-feedback-CTd4QMBu.js} +1 -1
  259. package/server/{rollup-B53Y81xK.js → rollup-BKQC7jp4.js} +1 -1
  260. package/server/{rollup-WA0VD-Rr.js → rollup-FGsKki9R.js} +8 -8
  261. package/server/{scanner-D2743cp8.js → scanner-CnqEZeDy.js} +41 -14
  262. package/server/{sequence-io-Cg0zYj_E.js → sequence-io-D909zgeH.js} +4 -4
  263. package/server/{sequencer-agent-BGY8gjg-.js → sequencer-agent-CzkcK6P5.js} +5 -5
  264. package/server/server.js +2194 -341
  265. package/server/{service-DCpB_SGd.js → service-CLeAoU6G.js} +51 -50
  266. package/server/{session-fork-BQ8_6H32.js → session-fork-CHI1XvL9.js} +2 -2
  267. package/server/{session-history-CVZDpS3c.js → session-history-BT3IvqhC.js} +4 -4
  268. package/server/settings-66A6uvIA.js +2 -0
  269. package/server/{settings-BZ5m1UCl.js → settings-BTMvpNFU.js} +3 -3
  270. package/server/{settings-ylxwqwQG.js → settings-C0zgxOGf.js} +2 -2
  271. package/server/{shadow-engineering-BlxG6Xye.js → shadow-engineering-BJfgm-hX.js} +2 -2
  272. package/server/{shadow-state-Dh-HzF2J.js → shadow-state-7a-524T8.js} +2 -2
  273. package/server/{shadow-state-C2_epgx2.js → shadow-state-DnDyjujH.js} +1 -1
  274. package/server/{shadow-utils-4bvjn9b3.js → shadow-utils-Db3oroFG.js} +2 -2
  275. package/server/{ship-log-ClSMIzZX.js → ship-log-D9MlVzYU.js} +1 -1
  276. package/server/{smart-compaction-CHIxLr_d.js → smart-compaction-CV2ukKND.js} +1 -1
  277. package/server/{smart-compaction-r4pHQBIr.js → smart-compaction-KCYScAU1.js} +7 -7
  278. package/server/{spawn-planning-session-DWAorh2B.js → spawn-planning-session-DKpdFyOC.js} +30 -23
  279. package/server/{spawn-planning-session-KC_UduxD.js → spawn-planning-session-qUC2VWu3.js} +1 -1
  280. package/server/{specialist-completion-BXhav38U.js → specialist-completion-Ky9wCDpb.js} +1 -1
  281. package/server/{specialist-context-DtrYvGJ-.js → specialist-context-Bn3dCGS2.js} +5 -5
  282. package/server/{specialist-handoff-logger-C45ouoZ6.js → specialist-handoff-logger-CMEwYxa2.js} +2 -2
  283. package/server/{specialist-logs-DJ3RzKxW.js → specialist-logs-C5p8G7tx.js} +3 -3
  284. package/server/{specialists-JVO00bs7.js → specialists-CC4r-c2s.js} +776 -347
  285. package/server/{specialists-D5fRZXmN.js → specialists-CShuVGWT.js} +1 -1
  286. package/server/{specialists-DVj0hvaL.js → specialists-DM6bWjsi.js} +1 -1
  287. package/server/{specialists-DyFeedjn.js → specialists-jiuuyVkp.js} +21 -19
  288. package/server/specs-C8Wsn2XO.js +3 -0
  289. package/server/{src-CG9mCkP6.js → src-CXmtj0im.js} +6 -6
  290. package/server/{src-CMTQGyCK.js → src-CdmnTM2m.js} +5 -5
  291. package/server/{src-U7_kTPEE.js → src-DtcUOZCq.js} +111 -18
  292. package/server/stack-health-Bn3o8FBX.js +3 -0
  293. package/server/{stack-health-puygdaMd.js → stack-health-DxSdG9cW.js} +63 -9
  294. package/server/{stale-task-claims-BbFwCTb0.js → stale-task-claims-KJKxxiiQ.js} +4 -4
  295. package/server/{staleness-Cbl_w4Bw.js → staleness-CT34nwr9.js} +1 -1
  296. package/server/{staleness-Bpy41ngS.js → staleness-DPm7ClwA.js} +1 -1
  297. package/server/{state-home-CIGjwNfJ.js → state-home-Cn_Qu8IX.js} +2 -2
  298. package/server/{state-migrate-Dkzaxvny.js → state-migrate-BGg2ZaOt.js} +4 -4
  299. package/server/{stuck-remediation-CzEov_fq.js → stuck-remediation-DYuPRYYw.js} +300 -23
  300. package/server/{stuck-remediation-sY_MHHgQ.js → stuck-remediation-s9_2qfi6.js} +1 -1
  301. package/server/{substrate-bug-weights-service-BH66lhm7.js → substrate-bug-weights-service-B-FwCs5V.js} +3 -3
  302. package/server/{summary-fork-DHhJIsAL.js → summary-fork-D1RAk9rJ.js} +78 -12
  303. package/server/{summary-fork-D8bXjCr7.js → summary-fork-DpcxN9tf.js} +2 -2
  304. package/server/supervisor/{injection-budget-C1iPirFS.js → injection-budget-Csw5tqfJ.js} +2 -41
  305. package/server/supervisor/pty-supervisor.js +2 -1
  306. package/server/supervisor/pty-token-x-ea28Us.js +43 -0
  307. package/server/supervisor-FTJAIsAK.js +2 -0
  308. package/server/{supervisor-BO-Zk_h-.js → supervisor-wM4ooB5O.js} +3 -3
  309. package/server/{swarm-readiness-CQ_fwUWF.js → swarm-readiness-DlP_UjHq.js} +3 -3
  310. package/server/{system-prerequisites-Bza0ffAh.js → system-prerequisites-DUDj1YHf.js} +56 -29
  311. package/server/{teardown-workspace-CEgauF4U.js → teardown-workspace-DeTTImn-.js} +15 -15
  312. package/server/{test-agent-queue-DXDt0Xa-.js → test-agent-queue-MbxX5vqq.js} +6 -6
  313. package/server/{test-verdict-CmUBK5cT.js → test-verdict-bWYBtqBg.js} +1 -1
  314. package/server/{test-verdict-DFjjIHR5.js → test-verdict-gscuksPv.js} +1 -1
  315. package/server/{tldr-daemon-DL566HbH.js → tldr-daemon-BYFkts95.js} +1 -1
  316. package/server/{tldr-daemon-BDtLOIlO.js → tldr-daemon-C-69c3OI.js} +2 -2
  317. package/server/{tmux-DoThH6aj.js → tmux-B6z7h_vZ.js} +1 -1
  318. package/server/{tmux-ftABRAmc.js → tmux-R7N7y-Mh.js} +2 -2
  319. package/server/{token-CsOhvw42.js → token-BK6t8BIT.js} +2 -2
  320. package/server/token-util-DuPuNriz.js +3 -0
  321. package/server/{token-util-CTmczIfW.js → token-util-DxXu-vd1.js} +1 -1
  322. package/server/{tracker-config-B4itFzDo.js → tracker-config-G6latr8C.js} +2 -2
  323. package/server/{tracker-utils-BePq_oj-.js → tracker-utils-B4ylXZQK.js} +1 -1
  324. package/server/{tracker-utils-tnxxqROg.js → tracker-utils-DHv5pSDT.js} +2 -2
  325. package/server/{traefik-connect-m73vGebA.js → traefik-connect-Df2uXPsQ.js} +1 -1
  326. package/server/{tunnel-B2vxjx_b.js → tunnel-CDVKJpRv.js} +3 -3
  327. package/server/{tunnel-Cgj-IGIl.js → tunnel-DGdUkGoZ.js} +1 -1
  328. package/server/{types-BBNjPcqU.js → types-5M0lupud.js} +1 -1
  329. package/server/{uat-train-cKfM-_WW.js → uat-train-B05BWkp-.js} +1 -1
  330. package/server/{uat-train-CuEn0t9M.js → uat-train-DDSrSoV1.js} +25 -25
  331. package/server/validate-IfDGkaVR.js +177 -0
  332. package/server/{validation-CIi6pnI2.js → validation-CC9OPqJZ.js} +1 -1
  333. package/server/{validation-B5JxoPUS.js → validation-Dw1pzDzr.js} +4 -4
  334. package/server/{verification-artifact-C-lIHfUa.js → verification-artifact-B3itKTxu.js} +1 -1
  335. package/server/{verification-artifact-BcnIbigL.js → verification-artifact-TVFSz_q1.js} +1 -1
  336. package/server/{verification-runner-CDj4lD4t.js → verification-runner-BW4HOKAz.js} +1 -1
  337. package/server/{verification-runner-Br0S_Ous.js → verification-runner-CkgX6EtI.js} +91 -106
  338. package/server/{vtt-parser-DKpNNW5i.js → vtt-parser-DYPbKcIJ.js} +1 -1
  339. package/server/{work-agent-prompt-Yb2bd3Fq.js → work-agent-prompt-Du8Vh2aJ.js} +9 -9
  340. package/server/workflows-BQu4RFQ-.js +2 -0
  341. package/server/{workflows-C9WmILql.js → workflows-mbQzh6mQ.js} +18 -18
  342. package/server/{workspace-DuUdndHe.js → workspace--8tnhDI0.js} +1 -1
  343. package/server/{workspace-BVl4rihN.js → workspace-BPUws1-_.js} +3 -3
  344. package/server/{workspace-config-cEGcO6UT.js → workspace-config-CIVWZOQr.js} +1 -1
  345. package/server/{workspace-manager-hLUv3ADC.js → workspace-manager-CBhNdzE4.js} +66 -15
  346. package/server/workspace-manager-CWT55qeI.js +3 -0
  347. package/server/{workspace-metadata-DNpMixRq.js → workspace-metadata-BzHnwwX4.js} +1 -1
  348. package/server/{workspace-metadata-CskwzzhL.js → workspace-metadata-_WygnyoX.js} +2 -2
  349. package/server/{workspaces-hWvy9eKs.js → workspaces-Do_9J0LQ.js} +130 -111
  350. package/sync-sources/hooks/record-cost-event.js +6 -4
  351. package/sync-sources/skills/okf/README.md +11 -3
  352. package/sync-sources/skills/okf/SKILL.md +12 -1
  353. package/sync-sources/skills/okf/docs/USAGE.md +15 -0
  354. package/sync-sources/skills/okf/references/overdeck.md +28 -0
  355. package/sync-sources/skills/pan-flywheel/SKILL.md +18 -1
  356. package/sync-sources/skills/pan-knowledge/SKILL.md +10 -0
  357. package/sync-sources/skills/pan-orders/SKILL.md +33 -0
  358. package/sync-sources/skills/pan-start/SKILL.md +4 -0
  359. package/sync-sources/templates/traefik/dynamic/overdeck.yml.template +10 -0
  360. package/server/agent-state-Bg0lhqwj.js +0 -3
  361. package/server/agents-FlIgQ3ql.js +0 -3
  362. package/server/cli-BsVIHwzC.js +0 -3
  363. package/server/context-layers-B3Nt58jl.js +0 -4
  364. package/server/context-layers-ZYFcWiyc.js +0 -165
  365. package/server/deacon-swarm-9jRLS5Ke.js +0 -2
  366. package/server/dist-Bd3vn0Hw.js +0 -3
  367. package/server/flywheel-DMCUzDWg.js +0 -2
  368. package/server/flywheel-DSSpWmqF.js +0 -522
  369. package/server/flywheel-DcBkQvgE.js +0 -207
  370. package/server/forge-B-ZWyTRm.js +0 -2
  371. package/server/git-utils-Dry_Ka_D.js +0 -3
  372. package/server/hume-B_DbflNM.js +0 -3
  373. package/server/inspect-agent-ch-F-5Ci.js +0 -2
  374. package/server/layers-DzxSTGNA.js +0 -93
  375. package/server/merge-blockers-BsFjGrQ8.js +0 -41
  376. package/server/merge-ops-DlB1IM0Y.js +0 -2
  377. package/server/merge-set-DLz0MkGT.js +0 -139
  378. package/server/public/assets/mermaid-GHXKKRXX-BUAB8hqt.js +0 -1
  379. package/server/rally-njs_mJrt.js +0 -3
  380. package/server/rebuild-stack-kA7XngID.js +0 -3
  381. package/server/resume-CcKqnTvE.js +0 -3
  382. package/server/settings-D0OSwos5.js +0 -2
  383. package/server/specs-nN45DG2X.js +0 -3
  384. package/server/stack-health-Df0YEZKa.js +0 -3
  385. package/server/supervisor-BPy-o1A8.js +0 -2
  386. package/server/token-util-DrHg8abn.js +0 -3
  387. package/server/workflows-D90rMOya.js +0 -2
  388. package/server/workspace-manager-ZTdJAy9M.js +0 -3
@@ -1,8 +1,8 @@
1
- import { Yn as init_issue_id, qn as extractNumberSync } from "./config-yaml-DvyMuOle.js";
1
+ import { Yn as init_issue_id, qn as extractNumberSync } from "./config-yaml-DySPNmKN.js";
2
2
  import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-DDlOIAML.js";
3
- import { a as upsertMergeSetSync, i as init_merge_set, n as ensureMergeSetForIssueSync, o as withRepoArtifactUrlSync, s as withRepoStateSync } from "./merge-set-DLz0MkGT.js";
4
- import { i as findPlanSync, o as init_io } from "./io-B3_AHDfr.js";
5
- import { n as getForgeAdapter } from "./forge-Ch9gCFod.js";
3
+ import { a as upsertMergeSetSync, i as init_merge_set, n as ensureMergeSetForIssueSync, o as withRepoArtifactUrlSync, s as withRepoStateSync } from "./merge-set-DJ8-UErs.js";
4
+ import { i as findPlanSync, o as init_io } from "./io-C9kF1wtJ.js";
5
+ import { n as getForgeAdapter } from "./forge-CNFnyqps.js";
6
6
  import { join } from "node:path";
7
7
  import { Data, Effect } from "effect";
8
8
  import { existsSync } from "node:fs";
@@ -153,4 +153,4 @@ const createReviewArtifactsForIssue = (issueId, workspacePath) => Effect.tryProm
153
153
  //#endregion
154
154
  export { createReviewArtifactsForIssue };
155
155
 
156
- //# sourceMappingURL=review-artifacts-BLbSC4ke.js.map
156
+ //# sourceMappingURL=review-artifacts-nRDPuMxd.js.map
@@ -1,11 +1,12 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { ir as FsError, mr as init_errors } from "./config-yaml-DvyMuOle.js";
2
+ import { ir as FsError, mr as init_errors } from "./config-yaml-DySPNmKN.js";
3
3
  import { a as PAN_DIRNAME, p as init_types } from "./types-hraoaQIp.js";
4
- import { i as findPlanSync, o as init_io, u as readPlan } from "./io-B3_AHDfr.js";
5
- import { d as getDevrootPathSync, f as init_config } from "./config-CCvjQf27.js";
6
- import { a as init_lifecycle_io, i as findXBriefByIssueSync } from "./lifecycle-io-D8iNBcux.js";
7
- import { n as init_review_verdict_feedback } from "./review-verdict-feedback-CTRNtzXO.js";
8
- import { n as init_github_pr_lookup, r as lookupPullRequestNumberForBranch } from "./github-pr-lookup-BRbDW-qk.js";
4
+ import { c as resolveWorkspaceRepoRootsSync, r as init_project_repos } from "./project-repos-B6GycDh9.js";
5
+ import { i as findPlanSync, o as init_io, u as readPlan } from "./io-C9kF1wtJ.js";
6
+ import { d as getDevrootPathSync, f as init_config } from "./config-BZ0sHTju.js";
7
+ import { a as init_lifecycle_io, i as findXBriefByIssueSync } from "./lifecycle-io-BREGpnLk.js";
8
+ import { n as init_review_verdict_feedback } from "./review-verdict-feedback-CCjVA7Uk.js";
9
+ import { n as init_github_pr_lookup, r as lookupPullRequestNumberForBranch } from "./github-pr-lookup-D16NGsSO.js";
9
10
  import { Effect } from "effect";
10
11
  import { existsSync } from "fs";
11
12
  import { join } from "path";
@@ -339,26 +340,26 @@ async function getCurrentBranch(cwd) {
339
340
  return "unknown";
340
341
  }
341
342
  }
342
- async function getDiffBase(cwd) {
343
+ async function getDiffBase(cwd, targetBranch = "main") {
343
344
  try {
344
- const { stdout } = await execAsync("git merge-base origin/main HEAD", {
345
+ const { stdout } = await execAsync(`git merge-base origin/${targetBranch} HEAD`, {
345
346
  cwd,
346
347
  encoding: "utf-8"
347
348
  });
348
349
  return stdout.trim();
349
350
  } catch {
350
351
  try {
351
- const { stdout } = await execAsync("git merge-base main HEAD", {
352
+ const { stdout } = await execAsync(`git merge-base ${targetBranch} HEAD`, {
352
353
  cwd,
353
354
  encoding: "utf-8"
354
355
  });
355
356
  return stdout.trim();
356
357
  } catch {
357
- return "main";
358
+ return targetBranch;
358
359
  }
359
360
  }
360
361
  }
361
- async function getChangedFiles(cwd, base) {
362
+ async function getChangedFiles(cwd, base, pathPrefix = "") {
362
363
  let nameStatus = "";
363
364
  try {
364
365
  const { stdout } = await execAsync(`git diff --name-status "${base}"...HEAD`, {
@@ -400,12 +401,13 @@ async function getChangedFiles(cwd, base) {
400
401
  additions: 0,
401
402
  deletions: 0
402
403
  };
404
+ const prefixedPath = `${pathPrefix}${path}`;
403
405
  files.push({
404
- path,
406
+ path: prefixedPath,
405
407
  status: statusLetter,
406
408
  additions: counts.additions,
407
409
  deletions: counts.deletions,
408
- riskScore: riskScore(path)
410
+ riskScore: riskScore(prefixedPath)
409
411
  });
410
412
  }
411
413
  return files.sort((a, b) => b.riskScore - a.riskScore);
@@ -515,6 +517,10 @@ function formatTier1Summary(manifest) {
515
517
  lines.push(`Issue: ${manifest.issueId}`);
516
518
  lines.push(`Branch: ${manifest.branch}`);
517
519
  lines.push(`Head: ${manifest.headSha}`);
520
+ if (manifest.repos && manifest.repos.length > 1) {
521
+ lines.push("Polyrepo workspace — changed-file paths are prefixed with the sub-repo name:");
522
+ for (const repo of manifest.repos) lines.push(` ${repo.repoKey}: ${repo.branch} @ ${repo.headSha.slice(0, 8)} (${repo.fileCount} files changed)`);
523
+ }
518
524
  const highRisk = manifest.changedFiles.filter((f) => f.riskScore >= 5);
519
525
  const medRisk = manifest.changedFiles.filter((f) => f.riskScore >= 3 && f.riskScore < 5);
520
526
  const lowRisk = manifest.changedFiles.filter((f) => f.riskScore < 3);
@@ -582,19 +588,55 @@ function formatTier1Summary(manifest) {
582
588
  async function buildReviewContextPromise(opts) {
583
589
  const { runId, issueId, workspace } = opts;
584
590
  if (!existsSync(workspace)) throw new Error(`Workspace directory does not exist: ${workspace}`);
585
- const [headSha, currentBranch, diffBase] = await Promise.all([
586
- getHeadSha(workspace),
587
- opts.branch ? Promise.resolve(opts.branch) : getCurrentBranch(workspace),
588
- getDiffBase(workspace)
589
- ]);
590
- const [changedFiles, diff] = await Promise.all([getChangedFiles(workspace, diffBase), getDiffStat(workspace, diffBase)]);
591
- const [planRequirements, policyNotes, stubUiFindings, codeRabbitFindings] = await Promise.all([
591
+ const roots = resolveWorkspaceRepoRootsSync(issueId, workspace);
592
+ const isPolyrepo = roots.some((root) => root.isPolyrepo);
593
+ const perRepo = await Promise.all(roots.map(async (root) => {
594
+ const prefix = isPolyrepo ? `${root.repoKey}/` : "";
595
+ const [headSha, branch, diffBase] = await Promise.all([
596
+ getHeadSha(root.dir),
597
+ getCurrentBranch(root.dir),
598
+ getDiffBase(root.dir, root.targetBranch)
599
+ ]);
600
+ const [changedFiles, diffStat, stubUiFindings] = await Promise.all([
601
+ getChangedFiles(root.dir, diffBase, prefix),
602
+ getDiffStat(root.dir, diffBase),
603
+ scanStubUi(root.dir, diffBase).catch((err) => {
604
+ console.warn(`[buildReviewContext] scanStubUi failed for ${root.repoKey}: ${err instanceof Error ? err.message : String(err)}`);
605
+ return [];
606
+ })
607
+ ]);
608
+ return {
609
+ root,
610
+ headSha,
611
+ branch,
612
+ diffBase,
613
+ changedFiles,
614
+ diffStat,
615
+ stubUiFindings: prefix ? stubUiFindings.map((finding) => ({
616
+ ...finding,
617
+ filePath: `${prefix}${finding.filePath}`
618
+ })) : stubUiFindings
619
+ };
620
+ }));
621
+ const primary = perRepo.find((repo) => repo.changedFiles.length > 0) ?? perRepo[0];
622
+ const headSha = primary.headSha;
623
+ const currentBranch = isPolyrepo ? primary.branch : opts.branch ?? primary.branch;
624
+ const changedFiles = perRepo.flatMap((repo) => repo.changedFiles).sort((a, b) => b.riskScore - a.riskScore);
625
+ const diff = isPolyrepo ? {
626
+ stat: perRepo.filter((repo) => repo.changedFiles.length > 0).map((repo) => `── ${repo.root.repoKey} ──\n${repo.diffStat.stat}`).join("\n") || "No changes",
627
+ truncated: true
628
+ } : primary.diffStat;
629
+ const stubUiFindings = perRepo.flatMap((repo) => repo.stubUiFindings);
630
+ const repoContexts = perRepo.map((repo) => ({
631
+ repoKey: repo.root.repoKey,
632
+ branch: repo.branch,
633
+ headSha: repo.headSha,
634
+ diffBase: repo.diffBase,
635
+ fileCount: repo.changedFiles.length
636
+ }));
637
+ const [planRequirements, policyNotes, codeRabbitFindings] = await Promise.all([
592
638
  extractPlanReviewRequirements(workspace, issueId),
593
639
  readPolicyNotes(workspace),
594
- scanStubUi(workspace, diffBase).catch((err) => {
595
- console.warn(`[buildReviewContext] scanStubUi failed: ${err instanceof Error ? err.message : String(err)}`);
596
- return [];
597
- }),
598
640
  fetchCodeRabbitFindings({
599
641
  workspace,
600
642
  branch: currentBranch
@@ -619,6 +661,7 @@ async function buildReviewContextPromise(opts) {
619
661
  generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
620
662
  branch: currentBranch,
621
663
  headSha,
664
+ ...isPolyrepo ? { repos: repoContexts } : {},
622
665
  diff,
623
666
  changedFiles,
624
667
  largeChangeset,
@@ -642,6 +685,7 @@ var init_review_context = __esmMin((() => {
642
685
  init_lifecycle_io();
643
686
  init_config();
644
687
  init_errors();
688
+ init_project_repos();
645
689
  execAsync = promisify$1(exec$1);
646
690
  RISK_HIGH = 5;
647
691
  RISK_MED = 3;
@@ -700,4 +744,4 @@ var init_review_context = __esmMin((() => {
700
744
  //#endregion
701
745
  export { getDiffStat as a, getDiffBase as i, formatTier1Summary as n, init_review_context as o, getChangedFiles as r, buildReviewContext as t };
702
746
 
703
- //# sourceMappingURL=review-context-BgX3lcCx.js.map
747
+ //# sourceMappingURL=review-context-2uj-YQ8J.js.map
@@ -1,3 +1,3 @@
1
- import { b as setReviewStatusSync, c as getReviewStatusSync, d as loadReviewStatuses, l as init_review_status, m as mergeGateEligibility, n as clearReviewStatus, p as markWorkspaceStuck } from "./review-status-A7quS5KJ.js";
1
+ import { b as setReviewStatusSync, c as getReviewStatusSync, d as loadReviewStatuses, l as init_review_status, m as mergeGateEligibility, n as clearReviewStatus, p as markWorkspaceStuck } from "./review-status-kZj_KyCk.js";
2
2
  init_review_status();
3
3
  export { clearReviewStatus, getReviewStatusSync, loadReviewStatuses, markWorkspaceStuck, mergeGateEligibility, setReviewStatusSync };
@@ -1,5 +1,5 @@
1
- import { Tn as init_projects, zn as resolveProjectFromIssueSync } from "./config-yaml-DvyMuOle.js";
2
- import { M as listSessionNames, w as init_tmux } from "./tmux-ftABRAmc.js";
1
+ import { Tn as init_projects, zn as resolveProjectFromIssueSync } from "./config-yaml-DySPNmKN.js";
2
+ import { M as listSessionNames, w as init_tmux } from "./tmux-R7N7y-Mh.js";
3
3
  import { Data, Effect } from "effect";
4
4
  import { existsSync } from "fs";
5
5
  import { join } from "path";
@@ -124,4 +124,4 @@ const enrichReviewStatus = (issueId, status) => Effect.tryPromise({
124
124
  //#endregion
125
125
  export { enrichReviewStatusFromSessions as n, enrichReviewStatus as t };
126
126
 
127
- //# sourceMappingURL=review-status-enrichment-tbOn_A_u.js.map
127
+ //# sourceMappingURL=review-status-enrichment-Dci-ZwEt.js.map
@@ -1,15 +1,15 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Et as getIssueWorkspacePath, Nt as readIssueRecordSync, Ot as init_record, Tn as init_projects, fn as findProjectByPathSync, jt as readIssueRecord, nn as init_state_read_home, rn as resolveStateReadHomeSync, yn as getProjectSync, zn as resolveProjectFromIssueSync } from "./config-yaml-DvyMuOle.js";
2
+ import { Et as getIssueWorkspacePath, Nt as readIssueRecordSync, Ot as init_record, Tn as init_projects, fn as findProjectByPathSync, jt as readIssueRecord, nn as init_state_read_home, rn as resolveStateReadHomeSync, yn as getProjectSync, zn as resolveProjectFromIssueSync } from "./config-yaml-DySPNmKN.js";
3
3
  import { a as init_activity_logger, n as emitActivityEntrySync, r as emitActivityTtsSync } from "./activity-logger-DDlOIAML.js";
4
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-CzaSOgul.js";
5
- import { n as updateIssueRecord, t as init_record_update } from "./record-update-Dq0t2uBG.js";
6
- import { d as init_cost_sync, i as getCostBreakdownByStageAndModelSync, o as getCostForIssueSync } from "./cost-sync-C0VdGme1.js";
7
- import { r as notifyPipelineSync, t as init_pipeline_notifier } from "./pipeline-notifier-D0ykk59O.js";
8
- import { c as init_review_status_sync, d as init_review_status_normalize, f as normalizeReviewStatusSync, l as markWorkspaceStuck$1, n as deleteReviewStatus, o as getReviewStatusFromDbSync, r as getAllReviewStatusesFromDb, s as getReviewStatusesFromDb, t as clearWorkspaceStuck$1, u as upsertReviewStatusSync } from "./review-status-sync-BhSQ0d0l.js";
4
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BEqFxlJc.js";
5
+ import { n as updateIssueRecord, t as init_record_update } from "./record-update-dE1Aw83j.js";
6
+ import { d as init_cost_sync, i as getCostBreakdownByStageAndModelSync, o as getCostForIssueSync } from "./cost-sync-BsN6ER0n.js";
7
+ import { r as notifyPipelineSync, t as init_pipeline_notifier } from "./pipeline-notifier-BXkJzDC4.js";
8
+ import { c as init_review_status_sync, d as init_review_status_normalize, f as normalizeReviewStatusSync, l as markWorkspaceStuck$1, n as deleteReviewStatus, o as getReviewStatusFromDbSync, r as getAllReviewStatusesFromDb, s as getReviewStatusesFromDb, t as clearWorkspaceStuck$1, u as upsertReviewStatusSync } from "./review-status-sync-BTOpxtTC.js";
9
9
  import { a as registerReviewStatusMapReader, n as init_review_status_source } from "./review-status-source-CxuEjLGg.js";
10
10
  import { a as PAN_DIRNAME, p as init_types, r as PAN_CONTINUES_DIRNAME } from "./types-hraoaQIp.js";
11
- import { i as init_merge_set, r as getMergeSetSync } from "./merge-set-DLz0MkGT.js";
12
- import { o as init_lifecycle, r as XBRIEF_FILENAME_SUFFIX, t as LEGACY_VBRIEF_FILENAME_SUFFIX } from "./lifecycle-DfeyBDwA.js";
11
+ import { i as init_merge_set, r as getMergeSetSync } from "./merge-set-DJ8-UErs.js";
12
+ import { o as init_lifecycle, r as XBRIEF_FILENAME_SUFFIX, t as LEGACY_VBRIEF_FILENAME_SUFFIX } from "./lifecycle-yPd___5E.js";
13
13
  import { dirname, join } from "node:path";
14
14
  import { Data, Effect } from "effect";
15
15
  import { join as join$1 } from "path";
@@ -271,6 +271,8 @@ function projectPipeline(issueId, status, existing) {
271
271
  strikeReadyAt: status.strikeReadyAt,
272
272
  strikeLandingState: status.strikeLandingState,
273
273
  strikeRecoveryCount: status.strikeRecoveryCount,
274
+ strikeTransportRetryCount: status.strikeTransportRetryCount,
275
+ strikeNextAttemptAt: status.strikeNextAttemptAt,
274
276
  strikeLandingAttempts: status.strikeLandingAttempts
275
277
  };
276
278
  }
@@ -501,6 +503,8 @@ function durableSubset(p) {
501
503
  strikeReadyAt: p.strikeReadyAt,
502
504
  strikeLandingState: p.strikeLandingState,
503
505
  strikeRecoveryCount: p.strikeRecoveryCount,
506
+ strikeTransportRetryCount: p.strikeTransportRetryCount,
507
+ strikeNextAttemptAt: p.strikeNextAttemptAt,
504
508
  strikeLandingAttempts: p.strikeLandingAttempts,
505
509
  closedOut: p.closedOut,
506
510
  closedOutAt: p.closedOutAt
@@ -523,10 +527,12 @@ function writeWorkspaceVerdictFallbackSync(issueId, status) {
523
527
  return;
524
528
  }
525
529
  mkdirSync(dirname(path), { recursive: true });
530
+ const clearedFields = FALLBACK_CLEARABLE_FIELDS.filter((field) => status[field] === void 0);
526
531
  const payload = {
527
532
  issueId: issueId.toUpperCase(),
528
533
  updatedAt: status.updatedAt ?? (/* @__PURE__ */ new Date()).toISOString(),
529
- pipeline: durableSubset(status)
534
+ pipeline: durableSubset(status),
535
+ ...clearedFields.length > 0 ? { clearedFields } : {}
530
536
  };
531
537
  writeFileSync(path, JSON.stringify(payload, null, 2));
532
538
  console.warn(`[review-status] journal write failed for ${issueId} — durable verdict written to workspace fallback ${path}; the host sweeps it on the next status read (PAN-2583)`);
@@ -540,7 +546,11 @@ function readWorkspaceVerdictFallbackSync(issueId) {
540
546
  if (!path || !existsSync(path)) return null;
541
547
  const parsed = JSON.parse(readFileSync(path, "utf-8"));
542
548
  if (!parsed?.updatedAt || !parsed.pipeline) return null;
543
- return parsed;
549
+ const clearedFields = Array.isArray(parsed.clearedFields) ? parsed.clearedFields.filter((field) => typeof field === "string" && FALLBACK_CLEARABLE_FIELDS.includes(field)) : [];
550
+ return {
551
+ ...parsed,
552
+ clearedFields
553
+ };
544
554
  } catch {
545
555
  return null;
546
556
  }
@@ -568,12 +578,15 @@ function readJournalStatusSync(issueId) {
568
578
  if (fallback && fallbackNewer) {
569
579
  const base = p ? durableSubset(p) : {};
570
580
  const overlay = Object.fromEntries(Object.entries(fallback.pipeline).filter(([, value]) => value !== void 0));
581
+ const durable = {
582
+ ...base,
583
+ ...overlay
584
+ };
585
+ for (const field of fallback.clearedFields ?? []) delete durable[field];
571
586
  return {
572
587
  updatedAt: fallback.updatedAt,
573
- durable: {
574
- ...base,
575
- ...overlay
576
- }
588
+ durable,
589
+ ...fallback.clearedFields?.length ? { clearedFields: fallback.clearedFields } : {}
577
590
  };
578
591
  }
579
592
  if (!p) return null;
@@ -582,12 +595,13 @@ function readJournalStatusSync(issueId) {
582
595
  durable: durableSubset(p)
583
596
  };
584
597
  }
585
- var pendingJournalWrites;
598
+ var pendingJournalWrites, FALLBACK_CLEARABLE_FIELDS;
586
599
  var init_review_status_record_sync = __esmMin((() => {
587
600
  init_records();
588
601
  init_record();
589
602
  init_projects();
590
603
  pendingJournalWrites = /* @__PURE__ */ new Set();
604
+ FALLBACK_CLEARABLE_FIELDS = ["strikeTransportRetryCount", "strikeNextAttemptAt"];
591
605
  }));
592
606
  //#endregion
593
607
  //#region ../../lib/review-dispatch-decision.ts
@@ -700,6 +714,7 @@ function loadReadyForMergeFlags(issueIds) {
700
714
  readyForMerge: false
701
715
  } };
702
716
  for (const [key, value] of Object.entries(journal.durable)) if (value !== void 0) merged[key] = value;
717
+ for (const key of journal.clearedFields ?? []) delete merged[key];
703
718
  merged.issueId = issueId;
704
719
  merged.updatedAt = journal.updatedAt;
705
720
  merged.readyForMerge = (merged.blockerReasons?.length ?? 0) > 0 ? false : reviewGatesPassedSync(merged);
@@ -802,7 +817,7 @@ function setReviewStatusSync(issueId, update, existing) {
802
817
  });
803
818
  if (readyForMerge && !status.readyForMerge && updated.prUrl) (async () => {
804
819
  try {
805
- const { isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-CPfoFAdV.js");
820
+ const { isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-ClZ2lk8D.js");
806
821
  if (!isGitHubAppConfigured()) return;
807
822
  const prMatch = updated.prUrl.match(/github\.com\/([^/]+)\/([^/]+)\/pull/);
808
823
  if (!prMatch) return;
@@ -1085,7 +1100,7 @@ function resetPipelineVerdictsForWorkStartSync(issueId, options = {}) {
1085
1100
  */
1086
1101
  async function deliverReviewVerdictFeedbackHostSide(issueId, status) {
1087
1102
  try {
1088
- const { deliverReviewVerdictFeedback } = await import("./review-verdict-feedback-C1Kg8n7t.js");
1103
+ const { deliverReviewVerdictFeedback } = await import("./review-verdict-feedback-CTd4QMBu.js");
1089
1104
  if ((await Effect.runPromise(deliverReviewVerdictFeedback({
1090
1105
  issueId,
1091
1106
  verdict: status.reviewStatus === "failed" ? "failed" : "blocked",
@@ -1118,7 +1133,7 @@ function maybeAutoDispatchReviewHostSide(issueId, status) {
1118
1133
  }
1119
1134
  async function dispatchReviewHostSide(issueId, prUrl) {
1120
1135
  try {
1121
- const { resolveProjectFromIssueSync } = await import("./projects-9SkRpES9.js");
1136
+ const { resolveProjectFromIssueSync } = await import("./projects-vjjcmiN8.js");
1122
1137
  const resolved = resolveProjectFromIssueSync(issueId);
1123
1138
  if (!resolved) return;
1124
1139
  const { existsSync } = await import("fs");
@@ -1134,7 +1149,7 @@ async function dispatchReviewHostSide(issueId, prUrl) {
1134
1149
  });
1135
1150
  branch = stdout.trim() || branch;
1136
1151
  } catch {}
1137
- const { spawnReviewRoleForIssue } = await import("./review-agent-DJRO8EG8.js");
1152
+ const { spawnReviewRoleForIssue } = await import("./review-agent-DNboMyW4.js");
1138
1153
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
1139
1154
  issueId,
1140
1155
  workspace,
@@ -1158,13 +1173,13 @@ function maybeRecoverTestVerdictHostSide(issueId, status) {
1158
1173
  }
1159
1174
  async function recoverTestVerdictHostSide(issueId) {
1160
1175
  try {
1161
- const { resolveProjectFromIssueSync } = await import("./projects-9SkRpES9.js");
1176
+ const { resolveProjectFromIssueSync } = await import("./projects-vjjcmiN8.js");
1162
1177
  const resolved = resolveProjectFromIssueSync(issueId);
1163
1178
  if (!resolved) return;
1164
1179
  const { existsSync } = await import("fs");
1165
1180
  const workspace = join$1(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
1166
1181
  if (!existsSync(workspace)) return;
1167
- const { readTestVerdictArtifact } = await import("./test-verdict-DFjjIHR5.js");
1182
+ const { readTestVerdictArtifact } = await import("./test-verdict-gscuksPv.js");
1168
1183
  const artifact = readTestVerdictArtifact(workspace);
1169
1184
  if (!artifact) return;
1170
1185
  setReviewStatusSync(issueId, {
@@ -1178,13 +1193,13 @@ async function recoverTestVerdictHostSide(issueId) {
1178
1193
  }
1179
1194
  async function deliverTestFailureToWorkAgentHostSide(issueId, status) {
1180
1195
  try {
1181
- const { resolveProjectFromIssueSync } = await import("./projects-9SkRpES9.js");
1196
+ const { resolveProjectFromIssueSync } = await import("./projects-vjjcmiN8.js");
1182
1197
  const resolved = resolveProjectFromIssueSync(issueId);
1183
1198
  const workspace = resolved ? join$1(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`) : void 0;
1184
1199
  const notes = status.testNotes;
1185
1200
  let feedbackPath;
1186
1201
  try {
1187
- const { writeFeedbackFile } = await import("./feedback-writer-qmiMbqTZ.js");
1202
+ const { writeFeedbackFile } = await import("./feedback-writer-D3a22RCd.js");
1188
1203
  const r = await Effect.runPromise(writeFeedbackFile({
1189
1204
  issueId,
1190
1205
  workspacePath: workspace,
@@ -1196,10 +1211,10 @@ async function deliverTestFailureToWorkAgentHostSide(issueId, status) {
1196
1211
  if (r.success) feedbackPath = r.filePath;
1197
1212
  } catch {}
1198
1213
  const message = `SPECIALIST FEEDBACK: test-agent reported FAILED for ${issueId}.\n\n${feedbackPath ? `MUST READ: ${feedbackPath}\n\n` : ""}${notes ? `${notes.slice(0, 400)}\n\n` : ""}Fix the failing tests, commit and push, then re-run pan done ${issueId}. Do NOT stop at the prompt.`;
1199
- const { resolveIssueFeedbackTarget, surfaceIssueFeedbackNeedsYou } = await import("./feedback-target-iygZwmMc.js");
1214
+ const { resolveIssueFeedbackTarget, surfaceIssueFeedbackNeedsYou } = await import("./feedback-target-CoFDHiM8.js");
1200
1215
  const target = await resolveIssueFeedbackTarget(issueId);
1201
1216
  if ("agentId" in target) {
1202
- const { messageAgent } = await import("./agents-FlIgQ3ql.js");
1217
+ const { messageAgent } = await import("./agents-wi9NWzs2.js");
1203
1218
  await messageAgent(target.agentId, message, "internal", { owesRework: true });
1204
1219
  console.log(`[review-status] delivered test failure to ${target.agentId} for ${issueId} (host-side)`);
1205
1220
  } else await surfaceIssueFeedbackNeedsYou(issueId, target.reason, {
@@ -1229,6 +1244,7 @@ function getReviewStatusSync(issueId) {
1229
1244
  readyForMerge: false
1230
1245
  } };
1231
1246
  for (const [key, value] of Object.entries(journal.durable)) if (value !== void 0) merged[key] = value;
1247
+ for (const key of journal.clearedFields ?? []) delete merged[key];
1232
1248
  merged.issueId = issueId;
1233
1249
  merged.updatedAt = journal.updatedAt;
1234
1250
  merged.readyForMerge = (merged.blockerReasons?.length ?? 0) > 0 ? false : reviewGatesPassedSync(merged);
@@ -1451,4 +1467,4 @@ var init_review_status = __esmMin((() => {
1451
1467
  //#endregion
1452
1468
  export { needsReviewDispatch as C, listOverdeckAgentStatesSync as D, init_agent_state_sync as E, saveOverdeckAgentStateSync as O, init_review_dispatch_decision as S, getOverdeckAgentStateSync as T, setAutoMerge as _, fixStuckCommentedReviews as a, setReviewStatusSync as b, getReviewStatusSync as c, loadReviewStatuses as d, loadReviewStatusesForIssues as f, reviewGatesPassedSync as g, resetPipelineVerdictsForWorkStartSync as h, clearWorkspaceStuck as i, stateToOverdeckParamsForDb as k, init_review_status as l, mergeGateEligibility as m, clearReviewStatus as n, fixStuckReadyForMerge as o, markWorkspaceStuck as p, clearStuckMergeStatuses as r, getReviewStatus as s, ReviewStatusError as t, loadReadyForMergeFlags as u, setDeaconIgnored as v, AGENT_COLUMNS_FOR_DB as w, verificationSatisfied as x, setReviewStatus as y };
1453
1469
 
1454
- //# sourceMappingURL=review-status-A7quS5KJ.js.map
1470
+ //# sourceMappingURL=review-status-kZj_KyCk.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-CzaSOgul.js";
2
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BEqFxlJc.js";
3
3
  import { Effect } from "effect";
4
4
  //#region ../../lib/review-status-normalize.ts
5
5
  function normalizeReviewStatusSync(status) {
@@ -81,6 +81,8 @@ function rowToReviewStatus(row, history) {
81
81
  strikeReadyAt: msToIso(row.strike_ready_at),
82
82
  strikeLandingState: row.strike_landing_state ?? void 0,
83
83
  strikeRecoveryCount: row.strike_recovery_count ?? void 0,
84
+ strikeTransportRetryCount: row.strike_transport_retry_count ?? void 0,
85
+ strikeNextAttemptAt: msToIso(row.strike_next_attempt_at),
84
86
  strikeLandingAttempts: row.strike_landing_attempts ? JSON.parse(row.strike_landing_attempts) : void 0,
85
87
  history: history.length > 0 ? history : void 0
86
88
  });
@@ -117,9 +119,10 @@ function upsertReviewStatusSync(status) {
117
119
  deacon_ignored, deacon_ignored_at, deacon_ignored_reason,
118
120
  blocker_reasons, last_verified_commit, merge_step, auto_merge,
119
121
  strike_ready_head, strike_ready_at, strike_landing_state,
120
- strike_recovery_count, strike_landing_attempts
122
+ strike_recovery_count, strike_transport_retry_count,
123
+ strike_next_attempt_at, strike_landing_attempts
121
124
  ) VALUES (
122
- ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
125
+ ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
123
126
  )
124
127
  ON CONFLICT(issue_id) DO UPDATE SET
125
128
  review_status = excluded.review_status,
@@ -167,8 +170,10 @@ function upsertReviewStatusSync(status) {
167
170
  strike_ready_at = excluded.strike_ready_at,
168
171
  strike_landing_state = excluded.strike_landing_state,
169
172
  strike_recovery_count = excluded.strike_recovery_count,
173
+ strike_transport_retry_count = excluded.strike_transport_retry_count,
174
+ strike_next_attempt_at = excluded.strike_next_attempt_at,
170
175
  strike_landing_attempts = excluded.strike_landing_attempts
171
- `).run(s.issueId, s.reviewStatus, s.testStatus, s.mergeStatus ?? null, s.inspectStatus ?? null, null, isoToMs(s.inspectStartedAt), s.inspectBeadId ?? null, s.inspectOwnerSession ?? null, s.verificationStatus ?? null, null, s.verificationCycleCount ?? null, s.verificationMaxCycles ?? null, null, null, null, s.releaseStatus ?? null, s.releaseNotes ?? null, isoToMs(s.updatedAt) ?? Date.now(), s.readyForMerge ? 1 : 0, s.autoRequeueCount ?? null, s.mergeRetryCount ?? null, s.prUrl ?? null, s.prHeadSha ?? null, s.prNumber ?? null, s.stuck ? 1 : 0, s.stuckReason ?? null, isoToMs(s.stuckAt), s.stuckDetails ?? null, s.reviewedAtCommit ?? null, isoToMs(s.reviewSpawnedAt), isoToMs(s.conflictResolutionDispatchedAt), s.testRetryCount ?? null, s.reviewRetryCount ?? null, isoToMs(s.recoveryStartedAt), s.deaconIgnored ? 1 : 0, isoToMs(s.deaconIgnoredAt), s.deaconIgnoredReason ?? null, s.blockerReasons ? JSON.stringify(s.blockerReasons) : null, s.lastVerifiedCommit ?? null, s.mergeStep ?? null, s.autoMerge === void 0 ? null : s.autoMerge ? 1 : 0, s.strikeReadyHead ?? null, isoToMs(s.strikeReadyAt), s.strikeLandingState ?? null, s.strikeRecoveryCount ?? null, s.strikeLandingAttempts ? JSON.stringify(s.strikeLandingAttempts) : null);
176
+ `).run(s.issueId, s.reviewStatus, s.testStatus, s.mergeStatus ?? null, s.inspectStatus ?? null, null, isoToMs(s.inspectStartedAt), s.inspectBeadId ?? null, s.inspectOwnerSession ?? null, s.verificationStatus ?? null, null, s.verificationCycleCount ?? null, s.verificationMaxCycles ?? null, null, null, null, s.releaseStatus ?? null, s.releaseNotes ?? null, isoToMs(s.updatedAt) ?? Date.now(), s.readyForMerge ? 1 : 0, s.autoRequeueCount ?? null, s.mergeRetryCount ?? null, s.prUrl ?? null, s.prHeadSha ?? null, s.prNumber ?? null, s.stuck ? 1 : 0, s.stuckReason ?? null, isoToMs(s.stuckAt), s.stuckDetails ?? null, s.reviewedAtCommit ?? null, isoToMs(s.reviewSpawnedAt), isoToMs(s.conflictResolutionDispatchedAt), s.testRetryCount ?? null, s.reviewRetryCount ?? null, isoToMs(s.recoveryStartedAt), s.deaconIgnored ? 1 : 0, isoToMs(s.deaconIgnoredAt), s.deaconIgnoredReason ?? null, s.blockerReasons ? JSON.stringify(s.blockerReasons) : null, s.lastVerifiedCommit ?? null, s.mergeStep ?? null, s.autoMerge === void 0 ? null : s.autoMerge ? 1 : 0, s.strikeReadyHead ?? null, isoToMs(s.strikeReadyAt), s.strikeLandingState ?? null, s.strikeRecoveryCount ?? null, s.strikeTransportRetryCount ?? null, isoToMs(s.strikeNextAttemptAt), s.strikeLandingAttempts ? JSON.stringify(s.strikeLandingAttempts) : null);
172
177
  if (s.history && s.history.length > 0) {
173
178
  const insertHistory = db.prepare(`INSERT OR IGNORE INTO status_history (issue_id, type, status, timestamp, notes)
174
179
  VALUES (?, ?, ?, ?, ?)`);
@@ -291,4 +296,4 @@ var init_review_status_sync = __esmMin((() => {
291
296
  //#endregion
292
297
  export { getMergeBlockerReconcileCandidatesSync as a, init_review_status_sync as c, init_review_status_normalize as d, normalizeReviewStatusSync as f, getMergeBlockerReconcileCandidates as i, markWorkspaceStuck as l, deleteReviewStatus as n, getReviewStatusFromDbSync as o, getAllReviewStatusesFromDb as r, getReviewStatusesFromDb as s, clearWorkspaceStuck as t, upsertReviewStatusSync as u };
293
298
 
294
- //# sourceMappingURL=review-status-sync-BhSQ0d0l.js.map
299
+ //# sourceMappingURL=review-status-sync-BTOpxtTC.js.map
@@ -1,3 +1,3 @@
1
- import { c as init_review_status_sync, t as clearWorkspaceStuck } from "./review-status-sync-BhSQ0d0l.js";
1
+ import { c as init_review_status_sync, t as clearWorkspaceStuck } from "./review-status-sync-BTOpxtTC.js";
2
2
  init_review_status_sync();
3
3
  export { clearWorkspaceStuck };
@@ -1,10 +1,10 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Tn as init_projects, zn as resolveProjectFromIssueSync } from "./config-yaml-DvyMuOle.js";
3
- import { c as getReviewStatusSync, l as init_review_status } from "./review-status-A7quS5KJ.js";
4
- import { X as messageAgent, b as init_agents } from "./queries-6d7Cdtm7.js";
2
+ import { Tn as init_projects, zn as resolveProjectFromIssueSync } from "./config-yaml-DySPNmKN.js";
3
+ import { c as getReviewStatusSync, l as init_review_status } from "./review-status-kZj_KyCk.js";
4
+ import { X as messageAgent, b as init_agents } from "./queries-CjNIf-Ub.js";
5
5
  import { a as PAN_DIRNAME, p as init_types } from "./types-hraoaQIp.js";
6
- import { a as writeFeedbackFile, i as init_feedback_writer } from "./feedback-writer-C9b6ccN1.js";
7
- import { n as resolveIssueFeedbackTarget, r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-CPS15Vte.js";
6
+ import { a as writeFeedbackFile, i as init_feedback_writer } from "./feedback-writer-CY5L1lB7.js";
7
+ import { n as resolveIssueFeedbackTarget, r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-7mqqwrX6.js";
8
8
  import { join } from "node:path";
9
9
  import { Effect } from "effect";
10
10
  import { existsSync } from "node:fs";
@@ -144,4 +144,4 @@ var init_review_verdict_feedback = __esmMin((() => {
144
144
  //#endregion
145
145
  export { init_review_verdict_feedback as n, postPrComment as r, deliverReviewVerdictFeedback as t };
146
146
 
147
- //# sourceMappingURL=review-verdict-feedback-CTRNtzXO.js.map
147
+ //# sourceMappingURL=review-verdict-feedback-CCjVA7Uk.js.map
@@ -1,3 +1,3 @@
1
- import { n as init_review_verdict_feedback, t as deliverReviewVerdictFeedback } from "./review-verdict-feedback-CTRNtzXO.js";
1
+ import { n as init_review_verdict_feedback, t as deliverReviewVerdictFeedback } from "./review-verdict-feedback-CCjVA7Uk.js";
2
2
  init_review_verdict_feedback();
3
3
  export { deliverReviewVerdictFeedback };
@@ -1,3 +1,3 @@
1
- import { n as commitStatusRollup, r as init_rollup, s as synthesizeStatusRollup } from "./rollup-WA0VD-Rr.js";
1
+ import { n as commitStatusRollup, r as init_rollup, s as synthesizeStatusRollup } from "./rollup-FGsKki9R.js";
2
2
  init_rollup();
3
3
  export { commitStatusRollup, synthesizeStatusRollup };
@@ -1,8 +1,8 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { T as MemoryStatus, t as init_src } from "./src-U7_kTPEE.js";
3
- import { a as resolveArchiveDir, f as resolveStatusFile, i as init_paths, l as resolveObservationsFile, n as ensureDir, r as ensureParentDir, u as resolvePendingDir } from "./paths-_zEts6wc.js";
4
- import { i as init_settings, n as getMemoryRollupPendingThreshold } from "./settings-BZ5m1UCl.js";
5
- import { i as updateMemoryHealth, n as extractWithProviderPolicy, r as init_health, t as init_providers } from "./providers-DV7ec8l7.js";
2
+ import { O as MemoryStatus, t as init_src } from "./src-DtcUOZCq.js";
3
+ import { a as resolveArchiveDir, f as resolveStatusFile, i as init_paths, l as resolveObservationsFile, n as ensureDir, r as ensureParentDir, u as resolvePendingDir } from "./paths-D-xWGHdh.js";
4
+ import { i as init_settings, n as getMemoryRollupPendingThreshold } from "./settings-BTMvpNFU.js";
5
+ import { i as updateMemoryHealth, n as extractWithProviderPolicy, r as init_health, t as init_providers } from "./providers-qQAwGQDW.js";
6
6
  import { Result, Schema } from "effect";
7
7
  import { dirname } from "path";
8
8
  import { randomUUID } from "crypto";
@@ -98,8 +98,8 @@ async function enqueueStatusRollupEvent(job) {
98
98
  await configuredStatusRollupProcessor(job);
99
99
  return;
100
100
  }
101
- const { initEventStore } = await import("./event-store-Cr5PQwFC.js");
102
- const { synthesizeStatusRollup, commitStatusRollup } = await import("./rollup-B53Y81xK.js");
101
+ const { initEventStore } = await import("./event-store-EV2cMiXj.js");
102
+ const { synthesizeStatusRollup, commitStatusRollup } = await import("./rollup-BKQC7jp4.js");
103
103
  await (await initEventStore()).appendAsync({
104
104
  type: "memory.rollup_triggered",
105
105
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
@@ -295,7 +295,7 @@ async function clearPendingTurns(projectId, issueId, pendingTurns) {
295
295
  return cleared;
296
296
  }
297
297
  async function emitStatusUpdatedEvent(event) {
298
- const { initEventStore } = await import("./event-store-Cr5PQwFC.js");
298
+ const { initEventStore } = await import("./event-store-EV2cMiXj.js");
299
299
  await (await initEventStore()).appendAsync({
300
300
  type: "memory.status_updated",
301
301
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
@@ -446,4 +446,4 @@ var init_rollup = __esmMin((() => {
446
446
  //#endregion
447
447
  export { readCurrentStatus as a, init_pending as c, readArchivedStatuses as i, maybeTriggerStatusRollup as l, commitStatusRollup as n, readRecentObservations as o, init_rollup as r, synthesizeStatusRollup as s, buildStatusRollupPrompt as t, writePendingTurn as u };
448
448
 
449
- //# sourceMappingURL=rollup-WA0VD-Rr.js.map
449
+ //# sourceMappingURL=rollup-FGsKki9R.js.map