@overdeck/desktop 0.45.13 → 0.45.16
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.
- package/package.json +1 -1
- package/server/{acceptance-criteria-CfujPRrz.js → acceptance-criteria-BZ_nQS1f.js} +2 -2
- package/server/{advancing-selfheal-Bn5QiLtn.js → advancing-selfheal-DJYAvGv-.js} +6 -5
- package/server/{agent-gc-Cl9Nm0Zu.js → agent-gc-D0wDIeV1.js} +3 -3
- package/server/{agent-state-C6Rm6FPR.js → agent-state-lGvgPP4m.js} +1 -1
- package/server/{agent-state-service-U8feBf8t.js → agent-state-service-CZrayD_G.js} +1 -1
- package/server/{agent-state-service-JhFzYCP_.js → agent-state-service-DFslS5go.js} +9 -52
- package/server/{agents-DqQa4Dq_.js → agents-B9GwfCyp.js} +155 -153
- package/server/{agents-CxbuBjID.js → agents-CEcaxSkR.js} +1 -1
- package/server/{archive-planning-CPitEZo4.js → archive-planning-CbghE9-o.js} +5 -5
- package/server/{archive-planning-DmpT1_14.js → archive-planning-CoyIbgGK.js} +1 -1
- package/server/{artifact-index-jobs-sMnNtPhy.js → artifact-index-jobs-CcSrUoSE.js} +2 -2
- package/server/auto-commit-IW-eik_b.js +3 -0
- package/server/{backlog-auto-trigger-Cf9C8fwD.js → backlog-auto-trigger-BfgDsII0.js} +3 -3
- package/server/{bd-process-lock-D1aJxeYv.js → bd-process-lock-XAXAet9O.js} +32 -11
- package/server/{beads-CivpXztb.js → beads-B1u04n3o.js} +1 -1
- package/server/{beads-DRoj6-e1.js → beads-BeSMEjGT.js} +96 -196
- package/server/{beads-query-tOsAYP5h.js → beads-query-Dl4FhT8J.js} +24 -99
- package/server/beads-restore-BUItPOjI.js +23 -0
- package/server/behavior-BTpYbAv4.js +10 -0
- package/server/{briefing-freshness-BL3Q6p7R.js → briefing-freshness-DESTCWo-.js} +4 -4
- package/server/{checkpoint-manager-DCxjQvP_.js → checkpoint-manager-BwFdegJF.js} +2 -2
- package/server/{checkpoint-manager-j5URlFY7.js → checkpoint-manager-DWSXooZV.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-BoX1H2Hf.js → checkpoints-BtUonbs3.js} +2 -2
- package/server/{checkpoints-Bu_M_Q9W.js → checkpoints-fjadfOKF.js} +1 -1
- package/server/{claude-hooks-provision-D-jGXmu1.js → claude-hooks-provision-DAtxutOs.js} +132 -114
- package/server/claude-hooks-provision-DiK62u0k.js +3 -0
- package/server/{claude-permissions-DxIjkOVl.js → claude-permissions-CThLgf8d.js} +2 -2
- package/server/{claude-settings-overlay-BPDS6GfE.js → claude-settings-overlay-BF9MPIwx.js} +2 -2
- package/server/{claude-settings-overlay-5b9X2S0C.js → claude-settings-overlay-Dx_Uqcmv.js} +1 -1
- package/server/{cli-s7bPWy-E.js → cli-ByKIIMfT.js} +9 -9
- package/server/cli-D9cUTbBr.js +3 -0
- package/server/{cliproxy-BituqWtR.js → cliproxy-B4c1BUvs.js} +2 -2
- package/server/{cliproxy-D3sHB0sI.js → cliproxy-C_GuT5DU.js} +1 -1
- package/server/{close-issue-CrBE7voz.js → close-issue-BOuLKr6e.js} +5 -5
- package/server/{closed-issue-reaper-BRQBc7Xa.js → closed-issue-reaper-CksfuiFD.js} +1 -1
- package/server/{closed-issue-reaper-DX9mYUji.js → closed-issue-reaper-DCAYzNXW.js} +102 -30
- package/server/{codex-Bi1ITSOo.js → codex-BYPz6ZdF.js} +1 -1
- package/server/{codex-CO0HrK3j.js → codex-BbqIRZjd.js} +6 -5
- package/server/{behavior-D3d2mVyD.js → codex-parser-mFYZh8vR.js} +3 -9
- package/server/{compact-beads-DUkCUFxA.js → compact-beads-CyJtoXJi.js} +15 -8
- package/server/{compact-beads-CrA8-k10.js → compact-beads-N00E4EVa.js} +1 -1
- package/server/{config-DsCxzjXK.js → config-DVLdmnMJ.js} +2 -2
- package/server/{config-B4_d7z7z.js → config-Dj6N8EP9.js} +1 -1
- package/server/{config-yaml-C_djSurJ.js → config-yaml-cNOZcEww.js} +118 -23
- package/server/{conflict-gate-D47Kl78u.js → conflict-gate-BMKm_5DV.js} +3 -3
- package/server/{conflict-gate-CpOn9KC-.js → conflict-gate-CuXUv-bP.js} +1 -1
- package/server/{context-layers-CHl3Nroz.js → context-layers-CeAwSYNt.js} +2 -2
- package/server/{context-layers-BNhUBTkf.js → context-layers-c0JqYHcS.js} +3 -3
- package/server/{control-settings-KyYNXZLv.js → control-settings-D4EFsRBd.js} +4 -4
- package/server/{conversation-compaction-D3aS5PnS.js → conversation-compaction-BCggyih4.js} +8 -8
- package/server/{conversation-compaction-D4Wed1BJ.js → conversation-compaction-kHVfVRg3.js} +1 -1
- package/server/{conversation-service-CFZIjs-M.js → conversation-service-B8LFQQm1.js} +6 -5
- package/server/{conversation-service-DcDB5usR.js → conversation-service-BTzObqGi.js} +1 -1
- package/server/{conversations-BSOU5qnu.js → conversations-B-lcHv-5.js} +4 -4
- package/server/{conversations-BbDPrz89.js → conversations-BM7zlXjr.js} +1 -1
- package/server/{cost-BE_ulOrw.js → cost-BcpRQ-7o.js} +3 -3
- package/server/{cost-CaiG63FG.js → cost-D9kPIY_5.js} +2 -2
- package/server/{cost-sync-D6AX8jv-.js → cost-sync-DF6odxK9.js} +3 -3
- package/server/{dag-BQFtXOuJ.js → dag-DKI3sOmX.js} +3 -3
- package/server/{dangerous-git-ops-04Ba-Qu3.js → dangerous-git-ops-Bn18PEcN.js} +1 -1
- package/server/dashboard-db-worker.js +6 -6
- package/server/{deacon-Bz-6Wjmn.js → deacon-DONuopff.js} +3 -3
- package/server/{deacon-2EvA9Ci3.js → deacon-DdARMjZq.js} +188 -1601
- package/server/{deacon-swarm-DYYOzHRH.js → deacon-swarm-BNGkmYR_.js} +12 -105
- package/server/deacon-swarm-CvdFekIO.js +2 -0
- package/server/deacon.js +7 -7
- package/server/{devcontainer-renderer-Dx0C7VWJ.js → devcontainer-renderer-C-34Sxyz.js} +3 -3
- package/server/{dist-ya66D9ze.js → dist-BMXvKiZP.js} +1 -1
- package/server/dist-BNwrgsUO.js +3 -0
- package/server/{dist-src-Byxt1ifL.js → dist-src-BgGUblXg.js} +1 -1
- package/server/{docker-D2TbXDO6.js → docker-apZ9pBYw.js} +67 -28
- package/server/{ensure-devcontainer-BTiMfFp5.js → ensure-devcontainer-Bqi1EF1P.js} +4 -4
- package/server/{ensure-devcontainer-BIShzs3M.js → ensure-devcontainer-Dq3KoOIl.js} +1 -1
- package/server/{esm-shims-DiV9jHa_.js → esm-shims-BEjvINX3.js} +1 -1
- package/server/{event-store-C02Gprug.js → event-store-CqDgfbAs.js} +1 -1
- package/server/{event-store-C71x6h0i.js → event-store-D89fMfXS.js} +3 -3
- package/server/{events-BFDuPV6n.js → events-S_C0pvl6.js} +3 -3
- package/server/{events-D2gP2-Yv.js → events-rIGncmP1.js} +1 -1
- package/server/export-BJHSVwKP.js +87 -0
- package/server/{factory-ByfbrCab.js → factory-DV18m0rc.js} +5 -5
- package/server/{feature-registry-population-CSH66UO8.js → feature-registry-population-CqZSnqQi.js} +4 -4
- package/server/{feature-registry-storage-DW7dUefc.js → feature-registry-storage-BeXmNBwK.js} +2 -2
- package/server/{features-x_aLR7U9.js → features-u5XeMaOK.js} +2 -2
- package/server/{feedback-target-BFo9fScH.js → feedback-target-CwyWf0Dg.js} +6 -6
- package/server/{feedback-target-C4VMPTZu.js → feedback-target-DDG1PWl3.js} +1 -1
- package/server/{feedback-writer-DCyd75yJ.js → feedback-writer-BsJiw5aT.js} +1 -1
- package/server/{feedback-writer-B9ZqnnX3.js → feedback-writer-D20HSXre.js} +4 -4
- package/server/{flywheel-DwQCoZQG.js → flywheel-9Y1X7IM-.js} +13 -13
- package/server/{flywheel-D9NKvWqb.js → flywheel-Dczmgchd.js} +23 -15
- package/server/{flywheel-DB48X7Nn.js → flywheel-RCnHAgc4.js} +1 -1
- package/server/{flywheel-merge-order-DrjmFXg4.js → flywheel-merge-order-CtCYsFJP.js} +7 -7
- package/server/{flywheel-merge-order-f1bi5XIf.js → flywheel-merge-order-DEtEd3aK.js} +1 -1
- package/server/forge-8y6aEPTB.js +2 -0
- package/server/{forge-C-SoKy8U.js → forge-DFDThFil.js} +2 -2
- package/server/{from-fu7ZumnY.js → from-NSJypkI8.js} +1 -1
- package/server/{fts-db-CL-YzSRG.js → fts-db-C5A_TTOM.js} +2 -2
- package/server/{fts-operations-Bylu5NjM.js → fts-operations-DvCSimfU.js} +2 -2
- package/server/{git-utils-Ym380hJZ.js → git-utils-C0neHvQx.js} +1 -1
- package/server/{git-utils-C8koBs8j.js → git-utils-Dr0L7mFk.js} +2 -2
- package/server/{github-app-DIr70YLg.js → github-app-Bwt9lK4A.js} +1 -1
- package/server/{github-app-DhycHVLF.js → github-app-u9-SX7Gc.js} +2 -2
- package/server/{github-client-7gkcXcBS.js → github-client-Btyy3uan.js} +3 -3
- package/server/{github-client-Ji9lUTNF.js → github-client-Do3k-N1W.js} +1 -1
- package/server/{github-pr-lookup-rt7T9FwA.js → github-pr-lookup-DOF1U2WW.js} +2 -2
- package/server/{harness-resolve-CvGXUnAF.js → harness-resolve-C6g2R0Cd.js} +3 -3
- package/server/{health-events-D4E1DLN-.js → health-events-B4u-2a9m.js} +2 -2
- package/server/{health-events-DDfkoO5a.js → health-events-Bos3sk5g.js} +1 -1
- package/server/{hooks-D_6pAbuJ.js → hooks-BCoOjL_R.js} +2 -2
- package/server/{hooks-DvdnCVv6.js → hooks-uEr8WTx_.js} +1 -1
- package/server/{hume-DkVOs1Qi.js → hume-BqxYKbUf.js} +2 -2
- package/server/hume-CerGi2RH.js +3 -0
- package/server/{idle-stack-reaper-cDRXDpgE.js → idle-stack-reaper-DbZ8ukMd.js} +2 -2
- package/server/{idle-stack-reaper-DNbV9-fj.js → idle-stack-reaper-H0W6XtHh.js} +1 -1
- package/server/{infra-Clew3DpF.js → infra-Ba9mS6e6.js} +3 -3
- package/server/{injection-QCIHOpk6.js → injection-C1DKXeIZ.js} +1 -1
- package/server/{injection-ql0Nddcn.js → injection-yrMBxzVq.js} +7 -7
- package/server/{inspect-agent-DY18KEx4.js → inspect-agent-B-mnb4uh.js} +9 -9
- package/server/inspect-agent-CWkeAB7J.js +2 -0
- package/server/{internal-token-C90jBp-y.js → internal-token-BPYEaXFh.js} +1 -1
- package/server/{internal-token-BeXjPLKy.js → internal-token-BtqSbKTx.js} +2 -2
- package/server/{io-CbAFXQge.js → io-VEGSAqsd.js} +15 -22
- package/server/{issue-closed-BYC2TCk-.js → issue-closed-BxcePXL-.js} +4 -4
- package/server/{issue-lifecycle-BoJa6qIt.js → issue-lifecycle--8MRxrG1.js} +22 -22
- package/server/{issue-lifecycle-CLHbj8RS.js → issue-lifecycle-CdMUauyb.js} +1 -1
- package/server/{issue-service-singleton-BS9NENuR.js → issue-service-singleton-CkTUI-eu.js} +10 -10
- package/server/{issue-service-singleton-3g_CCY-1.js → issue-service-singleton-MZsDhAob.js} +1 -1
- package/server/{issues-BPcqPqfV.js → issues-CBAsuoAO.js} +2 -2
- package/server/jsonl-parser-BUW5_sSK.js +245 -0
- package/server/{label-cleanup-CwiCSZrb.js → label-cleanup-htK6fBRU.js} +3 -3
- package/server/{layers-OHHLphl0.js → layers-jjL16At6.js} +2 -2
- package/server/{lifecycle-B8IdvUbt.js → lifecycle-Ck2UR27D.js} +7 -7
- package/server/{lifecycle-io-BMCH1Bxg.js → lifecycle-io-DXv8Utct.js} +1 -1
- package/server/{lifecycle-io-C73m5e6R.js → lifecycle-io-IehcRt2v.js} +36 -47
- package/server/{linear-client-BMxgycoy.js → linear-client-By7hjwuN.js} +1 -1
- package/server/{linear-client-CgQlM4aT.js → linear-client-D9cSQfvD.js} +3 -3
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-BRkVaIx-.js → merge-BLcEZNXz.js} +1 -1
- package/server/{merge-B7Oi-g6k.js → merge-BN8FGJ2q.js} +3 -3
- package/server/{merge-agent-DNFFsiEm.js → merge-agent-B3u2szOL.js} +29 -29
- package/server/{merge-agent-Bwm34MZ5.js → merge-agent-ejC7Wos8.js} +1 -1
- package/server/{merge-batch-BpYXUaqJ.js → merge-batch-DyqlgYGp.js} +1 -1
- package/server/{merge-blockers-DIOZmqdK.js → merge-blockers-cq-aS2KG.js} +2 -2
- package/server/merge-ops-CFkQtXEj.js +2 -0
- package/server/{merge-rebase-C8WH39MB.js → merge-rebase-Dl7yIxtV.js} +2 -2
- package/server/{merge-set-CsEE2CyQ.js → merge-set-CZ9Nbay0.js} +3 -3
- package/server/{merge-set-DOsBTBQc.js → merge-set-Dy0D0r3i.js} +1 -1
- package/server/{merge-sync-CcLM2vwW.js → merge-sync-CG9kDCdT.js} +1 -1
- package/server/{merge-sync-C2B322Ot.js → merge-sync-D7jWLgCC.js} +2 -2
- package/server/{merge-train-BIm7-7cy.js → merge-train-CH33XJOH.js} +3 -3
- package/server/{merge-train-deps-DG1oQ2DT.js → merge-train-deps-JoVdGnOg.js} +4 -4
- package/server/{merge-verification-BAbjxEd5.js → merge-verification-D4wTChdX.js} +4 -4
- package/server/{multipart-parser-jKtKAXtl.js → multipart-parser-Csn8U-K9.js} +2 -2
- package/server/{no-resume-mode-yrPEQ_pC.js → no-resume-mode-Gh5R_YLF.js} +1 -1
- package/server/node_modules/.package-lock.json +1 -1
- package/server/{orphan-proposed-reconciler-BqVGaOIj.js → orphan-proposed-reconciler-BIcNu4tl.js} +1 -1
- package/server/{orphan-proposed-reconciler-zHrwJ3xr.js → orphan-proposed-reconciler-DI_IS1p_.js} +15 -39
- package/server/package-lock.json +2 -2
- package/server/package.json +1 -1
- package/server/{pan-dir-BlNrLzW7.js → pan-dir-CQIfKG8c.js} +4 -4
- package/server/{paths-CiVeo4N_.js → paths-Blj6A9AJ.js} +2 -2
- package/server/{pickup-KLRUhThD.js → pickup-BtvRBbvI.js} +1 -1
- package/server/{pipeline-notifier-nkWCe042.js → pipeline-notifier-BH4PAi-w.js} +1 -1
- package/server/{pipeline-notifier-DBF6dHxH.js → pipeline-notifier-D_WYtEwl.js} +2 -2
- package/server/project-pipelines-jMTitpeO.js +162 -0
- package/server/projects-CrBE6IhN.js +3 -0
- package/server/{prompts-CXbQvevY.js → prompts-B3njaImU.js} +2 -2
- package/server/{providers-CUdAb5Qu.js → providers-BbEyFhPX.js} +7 -7
- package/server/providers-DnPxkHoG.js +3 -0
- package/server/public/assets/chunk-BO2N2NFS-3qh9TUJi.js +103 -0
- package/server/public/assets/{diagram-OG6HWLK6-NACO1xW5.js → diagram-OG6HWLK6-D8UVTPj7.js} +1 -1
- package/server/public/assets/{dist-DQD-ZjQY.js → dist-BvLLn1YC.js} +3 -3
- package/server/public/assets/{dist-D1FjqGgm.js → dist-CyubL7Wj.js} +1 -1
- package/server/public/assets/{ganttDiagram-6RSMTGT7-CEMAKgmE.js → ganttDiagram-6RSMTGT7-BI4E1LbQ.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-D5lC7FW8.js → highlighted-body-OFNGDK62-D_bapWkF.js} +1 -1
- package/server/public/assets/index-BAZxZ-8I.js +796 -0
- package/server/public/assets/index-FBG3JBfq.css +1 -0
- package/server/public/assets/{linear-DDHAMRPB.js → linear-CEdobObr.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-BYP8MI37.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-DwBdeKBb.js → pieDiagram-4H26LBE5-DT79L01f.js} +1 -1
- package/server/public/assets/{prod-DAZt0c4G.js → prod-CR_K2DFV.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-CNDLp-_m.js → quadrantDiagram-W4KKPZXB-BEkKXXrL.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-oIUL_uO1.js → sankeyDiagram-5OEKKPKP-BxSCqn-j.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-B-IM6Cck.js → xychartDiagram-2RQKCTM6-DicwJGG_.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests-DZ-V7_LB.js → pull-requests-43LPDfM8.js} +1 -1
- package/server/{pull-requests-kTRl7cWC.js → pull-requests-DyUkQl4W.js} +3 -3
- package/server/{rally-xCTZ-UcI.js → rally-BtWjybOa.js} +3 -3
- package/server/{rally-api-jOk4vit_.js → rally-api-B-YA_oXx.js} +1 -1
- package/server/{rally-api-DpZo3WwF.js → rally-api-B-osULNL.js} +2 -2
- package/server/{rally-client-BQjm3aaq.js → rally-client-CzFymP7P.js} +1 -1
- package/server/{rally-client-CoWZeVEj.js → rally-client-sErNQBO0.js} +5 -5
- package/server/rally-oggyp4cs.js +3 -0
- package/server/{reap-terminal-sessions-CAmURC2h.js → reap-terminal-sessions-2s-fvilz.js} +1 -1
- package/server/{reap-terminal-sessions-BwJb2DLJ.js → reap-terminal-sessions-DnDQ7pf9.js} +1 -1
- package/server/{rebuild-stack-BZ7j27xY.js → rebuild-stack-CoU-HqZj.js} +6 -6
- package/server/{rebuild-stack-r-cxcr26.js → rebuild-stack-nGD_nPZo.js} +1 -1
- package/server/{reconstruct-cache-13EkMg_i.js → reconstruct-cache-Wj8GrYB0.js} +6 -6
- package/server/record-lEYK__LD.js +3 -0
- package/server/recovery-trip-BT7nb9OV.js +98 -0
- package/server/{release-engine-YLTnEO_K.js → release-engine-CBLQXDlH.js} +5 -5
- package/server/{release-set-DwvT_Opu.js → release-set-BNiqi7hy.js} +3 -3
- package/server/{remote-B062S1Kc.js → remote-DW_TWQnr.js} +3 -3
- package/server/{remote-9u9WL0NJ.js → remote-DcO9An_f.js} +3 -3
- package/server/{remote-agents-BBTg-vLT.js → remote-agents-C4cyxHQS.js} +6 -6
- package/server/{remote-agents-B4eWgwNd.js → remote-agents-Cv-U-_V8.js} +1 -1
- package/server/{remote-completion-B0rmBnbL.js → remote-completion-PhXGGFQy.js} +13 -13
- package/server/resolver-C7dLn8OK.js +158 -0
- package/server/resume-BYZBIab-.js +3 -0
- package/server/{review-agent-tfR5RDzG.js → review-agent-Dn-yn7Zj.js} +23 -23
- package/server/{review-agent-Bf9XjLnl.js → review-agent-u5q3ip7H.js} +1 -1
- package/server/{review-artifacts-D0_IE6DQ.js → review-artifacts-D4T04aYI.js} +6 -6
- package/server/{review-context-CXO5ml5D.js → review-context-Rc0VDLG_.js} +8 -8
- package/server/{review-monitor-DfFUSx0J.js → review-monitor-BC--miCO.js} +2 -2
- package/server/{review-status-B0Axo-Ma.js → review-status-CG0iDuWa.js} +1 -1
- package/server/{review-status-BcfwcAcO.js → review-status-Dc1l4dVz.js} +18 -18
- package/server/{review-status-enrichment-Cp5kFTGl.js → review-status-enrichment-C1a1OG_1.js} +3 -3
- package/server/{review-status-sync-CEFty1pW.js → review-status-sync-CAr-hfnJ.js} +2 -2
- package/server/{review-status-sync-Bc0c_u12.js → review-status-sync-CfSixhhX.js} +1 -1
- package/server/{review-verdict-feedback-BOKRLLDf.js → review-verdict-feedback-CVDbIDBe.js} +7 -7
- package/server/{review-verdict-feedback-BnGtT0vN.js → review-verdict-feedback-D2Q960wX.js} +1 -1
- package/server/{rollup-BVqFuiS9.js → rollup-CakjztPl.js} +1 -1
- package/server/{rollup-C22QDVxh.js → rollup-DctoIu-A.js} +8 -8
- package/server/{scanner-BLCnuXqY.js → scanner-BTM1jc_u.js} +7 -7
- package/server/{sequence-io-BozlUb6f.js → sequence-io-pnoIDGv4.js} +4 -4
- package/server/{sequencer-agent-BEDEHfd2.js → sequencer-agent-9Soi-WL-.js} +10 -6
- package/server/server.js +1239 -1836
- package/server/{service-C8jKYZ0w.js → service-DfTVoqJg.js} +1668 -1408
- package/server/{session-fork-BDGksK4e.js → session-fork-C4jAFHj8.js} +2 -2
- package/server/session-history-DanhhiCw.js +168 -0
- package/server/{settings-CSLhh6qR.js → settings-Cuc12oP_.js} +2 -2
- package/server/settings-Cy7SCFO9.js +2 -0
- package/server/{settings-DrRQCren.js → settings-DfT3f86D.js} +3 -3
- package/server/{shadow-engineering-BMcBN-Of.js → shadow-engineering-bKuKTCn-.js} +3 -3
- package/server/{shadow-state-CHqWHD3T.js → shadow-state-CVHpRWlb.js} +1 -1
- package/server/{shadow-state-B4ayC7nx.js → shadow-state-DJz6_pb_.js} +2 -2
- package/server/{ship-log-CDVmOlZP.js → ship-log-CwqPFfqx.js} +1 -1
- package/server/{smart-compaction-V9DBrGcr.js → smart-compaction-B4KlpZGN.js} +1 -1
- package/server/{smart-compaction-C-F5sP9P.js → smart-compaction-CiWfGfRZ.js} +7 -7
- package/server/{spawn-planning-session-dSpOU0lP.js → spawn-planning-session-CU-DwyDl.js} +15 -15
- package/server/{spawn-planning-session-Bz4_JES2.js → spawn-planning-session-D5N3RuLG.js} +1 -1
- package/server/{specialist-completion-Coz3eTSr.js → specialist-completion-CJcv-NXH.js} +1 -1
- package/server/{specialist-context-fmb03vXQ.js → specialist-context-B2HlbNxS.js} +5 -5
- package/server/{specialist-handoff-logger-B9HK_lRu.js → specialist-handoff-logger-CQyF1ygu.js} +2 -2
- package/server/{specialist-logs-B24R2B9Y.js → specialist-logs-CdcUpfjj.js} +3 -3
- package/server/{specialists-CL7E8yUg.js → specialists-CFgw_0Q6.js} +1657 -113
- package/server/{specialists-BGNZ0_ZW.js → specialists-CwzFdapR.js} +20 -256
- package/server/{specialists-B6f5-5nG.js → specialists-D7AcFi1u.js} +1 -1
- package/server/{specialists-Chvvwf5z.js → specialists-k22_Btaq.js} +1 -1
- package/server/specs-RzcDgozr.js +3 -0
- package/server/{src-DGAEtABV.js → src-B4TTzNSr.js} +84 -2
- package/server/{src-BVxZuHMg.js → src-BvpMg4EB.js} +3 -3
- package/server/{src-D-VXCC9C.js → src-D4YUZrwR.js} +6 -6
- package/server/{stack-health-C-le5erA.js → stack-health-CSgcYcr8.js} +2 -2
- package/server/{stack-health-BKbTTOT2.js → stack-health-DVN7zRnL.js} +1 -1
- package/server/{state-home-CoyWsECg.js → state-home-CEvD_v5F.js} +6 -6
- package/server/{state-mapping-BvAgFK8n.js → state-mapping-C13UaCL7.js} +1 -1
- package/server/stuck-remediation-CxsyxwFO.js +1513 -0
- package/server/stuck-remediation-nTIvhGOR.js +2 -0
- package/server/{summary-fork-BF_0vxrq.js → summary-fork-CnRMPCYd.js} +2 -2
- package/server/{summary-fork-BlE30Q-I.js → summary-fork-gKSoFAnK.js} +8 -8
- package/server/{supervisor-BSeML_p0.js → supervisor-CZMs8s0M.js} +2 -2
- package/server/supervisor-CfX192ma.js +2 -0
- package/server/{swarm-readiness-CQ4sjrXc.js → swarm-readiness-h6-pwY8w.js} +3 -3
- package/server/{system-prerequisites-DnmLYOnU.js → system-prerequisites-DZZTi2G6.js} +1 -1
- package/server/{teardown-workspace-CpcjDrZ4.js → teardown-workspace-B4D-oCVg.js} +37 -68
- package/server/{test-agent-queue-Bq298zZl.js → test-agent-queue-CnuYku4B.js} +6 -6
- package/server/{test-verdict-CCDd25uN.js → test-verdict-CRsPpByy.js} +1 -1
- package/server/{test-verdict-Bm4uv_AA.js → test-verdict-CXMLATGc.js} +1 -1
- package/server/{tldr-daemon-Rn1Zue0P.js → tldr-daemon-CgZQ3jmZ.js} +1 -1
- package/server/{tldr-daemon-CaSUXd9r.js → tldr-daemon-CuA8hz21.js} +2 -2
- package/server/{tmux-CbcrkUx5.js → tmux-By8E_Yv_.js} +1 -1
- package/server/{tmux-BVc-NeKM.js → tmux-C3g9VFcg.js} +2 -2
- package/server/{token-D2OC_9ms.js → token-g_sJ19g3.js} +2 -2
- package/server/token-util-C9u4An3K.js +3 -0
- package/server/{token-util-CROoF5ic.js → token-util-DiwnnbJo.js} +1 -1
- package/server/{tracker-config-EsBoOWEy.js → tracker-config-BzfVj41Z.js} +1 -1
- package/server/{tracker-config-C1Y_2CIo.js → tracker-config-dQxC15vH.js} +2 -2
- package/server/{tracker-utils-lph9C3Pw.js → tracker-utils--z8FLSWn.js} +2 -2
- package/server/{tracker-utils-DSb9cfrF.js → tracker-utils-DkKyRT0H.js} +1 -1
- package/server/{traefik-connect-5EP1WS_Z.js → traefik-connect-CZYB3dlm.js} +1 -1
- package/server/{tunnel-BFBCeo97.js → tunnel-BpWZs0Jy.js} +3 -3
- package/server/{tunnel-DDe-ATFF.js → tunnel-CN2px87h.js} +1 -1
- package/server/{typed-errors-DSPn_xWP.js → typed-errors-CrN1AByg.js} +1 -1
- package/server/{typed-errors-BEJhbjJg.js → typed-errors-sLpGfegz.js} +1 -1
- package/server/{types-CE1m_daD.js → types-BLS_Zbmd.js} +1 -1
- package/server/{types-B5u3NxMl.js → types-tlXf80x3.js} +1 -1
- package/server/{uat-train-DtKHHy1U.js → uat-train-BRo6DM7p.js} +24 -24
- package/server/{uat-train-8T24rPzc.js → uat-train-utGVmqdm.js} +1 -1
- package/server/{validation-lyudzPvD.js → validation-CsPVsoA0.js} +4 -4
- package/server/{validation-COOXwNXU.js → validation-Dq_wwcw3.js} +1 -1
- package/server/{verification-runner-DO0nYTJx.js → verification-runner-CMT5WRMS.js} +12 -12
- package/server/{verification-runner-Dd1FX8Qk.js → verification-runner-D0Uh-9jc.js} +1 -1
- package/server/{vtt-parser-C57tEF7-.js → vtt-parser-C_XPlifj.js} +1 -1
- package/server/{work-agent-prompt-B2F3ZwKm.js → work-agent-prompt-ZTAb2Hyf.js} +12 -12
- package/server/workflows-BLwxUMP7.js +2 -0
- package/server/{workflows-Clz_AFwR.js → workflows-CXRwhw_o.js} +14 -14
- package/server/{workspace-D0rCFemz.js → workspace-9UEsKuiP.js} +1 -1
- package/server/{workspace-CY_2-Ddv.js → workspace-CNfuj1-5.js} +3 -3
- package/server/{workspace-config-DA8U97k9.js → workspace-config-ChWOECy0.js} +1 -1
- package/server/{workspace-manager-BIfpzqdU.js → workspace-manager-BO-6k3sP.js} +1 -1
- package/server/{workspace-manager-D6NgGkiF.js → workspace-manager-D8AByFIT.js} +13 -13
- package/server/{workspace-metadata-C8yn8kAH.js → workspace-metadata-CvC268MN.js} +2 -2
- package/server/{workspace-metadata-DfgR40YU.js → workspace-metadata-DZiJtnuF.js} +1 -1
- package/server/{workspaces-DOeHyKmA.js → workspaces-D-uIoqbg.js} +104 -122
- package/server/writer-BUweuRPx.js +3 -0
- package/server/writer-CrP2xuBn.js +251 -0
- package/sync-sources/hooks/ask-user-question-hook +7 -1
- package/sync-sources/hooks/record-cost-event.js +4 -3
- package/sync-sources/hooks/record-cost-event.js.map +1 -1
- package/server/agent-runtime-mirror-DrWxopNA.js +0 -37
- package/server/auto-commit-wZ9X7Isd.js +0 -3
- package/server/bd-mutex-BItGvLQ8.js +0 -35
- package/server/beads-restore-CMbDSB5R.js +0 -60
- package/server/cli-CqgiSAU8.js +0 -3
- package/server/deacon-swarm-B8pgK2a7.js +0 -2
- package/server/dist-BYSj075e.js +0 -3
- package/server/forge-CUCYK7h_.js +0 -2
- package/server/hume-x9voULey.js +0 -3
- package/server/inspect-agent-D8UBDgfR.js +0 -2
- package/server/merge-ops-B7m-hBEZ.js +0 -2
- package/server/projects-BqRMlDOv.js +0 -3
- package/server/providers-gZ0cUgQM.js +0 -3
- package/server/public/assets/chunk-BO2N2NFS-C-6y8VFI.js +0 -103
- package/server/public/assets/index-BDqWyuZQ.js +0 -796
- package/server/public/assets/index-CZiADHcL.css +0 -1
- package/server/public/assets/mermaid-GHXKKRXX-DRM2ANcR.js +0 -1
- package/server/rally-CRteqXe0.js +0 -3
- package/server/record-CJsjvRO4.js +0 -3
- package/server/resume-R7xkSmLW.js +0 -3
- package/server/settings-CSaXtkoA.js +0 -2
- package/server/specs-oaaYaA5c.js +0 -3
- package/server/supervisor-03Tj_Wra.js +0 -2
- package/server/token-util-xNaV-00f.js +0 -3
- package/server/workflows-B4fIN8VP.js +0 -2
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Br as encodeClaudeProjectDir, Fn as init_projects, Jr as init_paths, bn as extractTeamPrefix, dn as init_state_plane, dr as FsError, er as extractNumberSync, fn as isStatePlaneOnlyStatus, fr as GitError, ir as parseIssueIdSync, kn as getProjectSync, nr as init_issue_id, or as resolveIssueIdSync, qn as resolveProjectFromIssueSync, qr as getOverdeckHome, tr as extractPrefixSync, wn as findProjectByTeamSync, xr as init_errors, zn as listProjectsSync } from "./config-yaml-cNOZcEww.js";
|
|
2
|
+
import { Q as getWorkAgentLifecycleStateSync, ct as getTrustedOrigins, gt as jsonResponse, mt as httpHandler, n as _serverManagedMerges, st as getHeaderFromMap, ut as normalizeOrigin } from "./specialists-CFgw_0Q6.js";
|
|
3
3
|
import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-pcbf-e30.js";
|
|
4
|
-
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-
|
|
5
|
-
import { K as buildChildEnvWithoutTmuxSync, L as sessionExists, O as listSessionNames, i as capturePane, q as init_child_env, x as init_tmux } from "./tmux-
|
|
6
|
-
import { _ as setDeaconIgnored, c as init_review_status, f as markWorkspaceStuck, g as setAutoMerge, s as getReviewStatusSync, u as loadReviewStatuses, y as setReviewStatusSync } from "./review-status-
|
|
7
|
-
import { _ as init_queue_position, a as EventStoreService, g as findPositionInQueueSync, h as computeQueuePositionFromStatusSync, s as init_domain_services } from "./issue-lifecycle
|
|
8
|
-
import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-
|
|
9
|
-
import { Mn as getAgentState, Rt as transitionIssueToInReview, U as spawnAgent, Z as listRunningAgents,
|
|
10
|
-
import { f as CostWriter, l as CostDoorLive } from "./service-
|
|
11
|
-
import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-
|
|
12
|
-
import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils
|
|
13
|
-
import { o as getInternalTokenSync, s as init_internal_token } from "./internal-token-
|
|
14
|
-
import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME, p as init_types } from "./types-
|
|
15
|
-
import { o as init_merge_sync, r as getAllActiveQueues } from "./merge-sync-
|
|
16
|
-
import { A as
|
|
17
|
-
import { f as init_config, m as loadConfigSync$1 } from "./config-
|
|
18
|
-
import { it as findConversationForCostSessionSync, k as init_conversations } from "./conversations-
|
|
19
|
-
import { a as init_stack_health, i as getWorkspaceStackHealth, n as collectDockerContainerLifecycleSnapshot } from "./stack-health-
|
|
20
|
-
import { o as criticalPath, t as actionableDoc, u as init_dag } from "./dag-
|
|
21
|
-
import { a as queryBeadsForIssue, r as init_beads_query } from "./beads-query-
|
|
22
|
-
import { a as readEventsFromLineSync, i as init_events, l as init_wal, o as readEventsSync, r as getLastEventMetadataSync, t as appendCostEventSync } from "./events-
|
|
23
|
-
import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-
|
|
24
|
-
import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import { n as enrichReviewStatusFromSessions } from "./review-status-enrichment-
|
|
31
|
-
import { n as generateDailySummary, r as init_cli } from "./cli-
|
|
32
|
-
import { a as getDiffStat, i as getDiffBase, o as init_review_context, r as getChangedFiles } from "./review-context-
|
|
33
|
-
import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-
|
|
34
|
-
import { C as init_operations, S as gitPush, T as listGitOperationsSync, a as init_merge_agent, w as init_git_activity, x as MainDivergedError, y as syncMainIntoWorkspace } from "./merge-agent-
|
|
35
|
-
import { F as enqueueMerge, I as getAllActiveQueues$1, L as getCurrentMerge, P as dequeueMerge, z as markMergeProcessing } from "./merge-
|
|
36
|
-
import { n as init_release_set, t as getReleaseSetSync } from "./release-set-
|
|
37
|
-
import { i as init_conflict_gate, r as getCachedConflictGateMergeability } from "./conflict-gate-
|
|
38
|
-
import { n as runVerificationForIssue } from "./verification-runner-
|
|
39
|
-
import { t as teardownWorkspace } from "./teardown-workspace-
|
|
40
|
-
import { n as init_rebuild_stack, t as composeProjectNameForWorkspace } from "./rebuild-stack-
|
|
4
|
+
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-Ba9mS6e6.js";
|
|
5
|
+
import { K as buildChildEnvWithoutTmuxSync, L as sessionExists, O as listSessionNames, i as capturePane, q as init_child_env, x as init_tmux } from "./tmux-C3g9VFcg.js";
|
|
6
|
+
import { _ as setDeaconIgnored, c as init_review_status, f as markWorkspaceStuck, g as setAutoMerge, s as getReviewStatusSync, u as loadReviewStatuses, y as setReviewStatusSync } from "./review-status-Dc1l4dVz.js";
|
|
7
|
+
import { _ as init_queue_position, a as EventStoreService, g as findPositionInQueueSync, h as computeQueuePositionFromStatusSync, s as init_domain_services } from "./issue-lifecycle--8MRxrG1.js";
|
|
8
|
+
import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-D9kPIY_5.js";
|
|
9
|
+
import { Mn as getAgentState, Rt as transitionIssueToInReview, U as spawnAgent, Z as listRunningAgents, hr as saveAgentRuntimeState, j as messageAgent, pr as getAgentRuntimeStateSync, t as init_agents } from "./agents-B9GwfCyp.js";
|
|
10
|
+
import { f as CostWriter, l as CostDoorLive } from "./service-DfTVoqJg.js";
|
|
11
|
+
import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-dQxC15vH.js";
|
|
12
|
+
import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils--z8FLSWn.js";
|
|
13
|
+
import { o as getInternalTokenSync, s as init_internal_token } from "./internal-token-BtqSbKTx.js";
|
|
14
|
+
import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME, p as init_types } from "./types-BLS_Zbmd.js";
|
|
15
|
+
import { o as init_merge_sync, r as getAllActiveQueues } from "./merge-sync-D7jWLgCC.js";
|
|
16
|
+
import { A as init_vbrief_index, M as readVBriefDocument, b as init_types$1, c as mergeRecordStatusOverrides, k as findVBriefByIssue, o as init_io, r as findPlan, s as isPlanningComplete, u as readPlan, y as VBRIEF_INSPECTION_POLICIES } from "./io-VEGSAqsd.js";
|
|
17
|
+
import { f as init_config, m as loadConfigSync$1 } from "./config-DVLdmnMJ.js";
|
|
18
|
+
import { it as findConversationForCostSessionSync, k as init_conversations } from "./conversations-B-lcHv-5.js";
|
|
19
|
+
import { a as init_stack_health, i as getWorkspaceStackHealth, n as collectDockerContainerLifecycleSnapshot } from "./stack-health-CSgcYcr8.js";
|
|
20
|
+
import { o as criticalPath, t as actionableDoc, u as init_dag } from "./dag-DKI3sOmX.js";
|
|
21
|
+
import { a as queryBeadsForIssue, r as init_beads_query } from "./beads-query-Dl4FhT8J.js";
|
|
22
|
+
import { a as readEventsFromLineSync, i as init_events, l as init_wal, o as readEventsSync, r as getLastEventMetadataSync, t as appendCostEventSync } from "./events-S_C0pvl6.js";
|
|
23
|
+
import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-D8AByFIT.js";
|
|
24
|
+
import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-C-34Sxyz.js";
|
|
25
|
+
import { a as init_jsonl_parser, t as getActiveSessionModelSync } from "./jsonl-parser-BUW5_sSK.js";
|
|
26
|
+
import { i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-CbghE9-o.js";
|
|
27
|
+
import { T as verifyAppCanMerge, f as init_github_app, m as isIntegrationPermissionError } from "./github-app-u9-SX7Gc.js";
|
|
28
|
+
import { a as loadWorkspaceMetadataSync, i as listWorkspaceMetadataSync } from "./workspace-metadata-CvC268MN.js";
|
|
29
|
+
import { n as restoreTrackedBeadsExport, t as init_beads_restore } from "./beads-restore-BUItPOjI.js";
|
|
30
|
+
import { n as enrichReviewStatusFromSessions } from "./review-status-enrichment-C1a1OG_1.js";
|
|
31
|
+
import { n as generateDailySummary, r as init_cli } from "./cli-ByKIIMfT.js";
|
|
32
|
+
import { a as getDiffStat, i as getDiffBase, o as init_review_context, r as getChangedFiles } from "./review-context-Rc0VDLG_.js";
|
|
33
|
+
import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-CuA8hz21.js";
|
|
34
|
+
import { C as init_operations, S as gitPush, T as listGitOperationsSync, a as init_merge_agent, w as init_git_activity, x as MainDivergedError, y as syncMainIntoWorkspace } from "./merge-agent-B3u2szOL.js";
|
|
35
|
+
import { F as enqueueMerge, I as getAllActiveQueues$1, L as getCurrentMerge, P as dequeueMerge, z as markMergeProcessing } from "./merge-BN8FGJ2q.js";
|
|
36
|
+
import { n as init_release_set, t as getReleaseSetSync } from "./release-set-BNiqi7hy.js";
|
|
37
|
+
import { i as init_conflict_gate, r as getCachedConflictGateMergeability } from "./conflict-gate-BMKm_5DV.js";
|
|
38
|
+
import { n as runVerificationForIssue } from "./verification-runner-CMT5WRMS.js";
|
|
39
|
+
import { t as teardownWorkspace } from "./teardown-workspace-B4D-oCVg.js";
|
|
40
|
+
import { n as init_rebuild_stack, t as composeProjectNameForWorkspace } from "./rebuild-stack-CoU-HqZj.js";
|
|
41
41
|
import { basename, dirname, join, resolve, sep } from "node:path";
|
|
42
42
|
import { Effect, Layer, Option } from "effect";
|
|
43
43
|
import { closeSync, existsSync, fstatSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, renameSync, writeFileSync } from "fs";
|
|
@@ -974,7 +974,7 @@ const postWorkspaceContainerActionRoute = HttpRouter.add("POST", "/api/workspace
|
|
|
974
974
|
}
|
|
975
975
|
if (!workspacePath) return jsonResponse({ error: `Workspace not found for ${issueId}` }, { status: 404 });
|
|
976
976
|
if (!composeFile && ["start", "restart"].includes(action)) {
|
|
977
|
-
const { ensureDevcontainerSync } = yield* Effect.promise(() => import("./ensure-devcontainer-
|
|
977
|
+
const { ensureDevcontainerSync } = yield* Effect.promise(() => import("./ensure-devcontainer-Dq3KoOIl.js"));
|
|
978
978
|
if (ensureDevcontainerSync({
|
|
979
979
|
workspacePath,
|
|
980
980
|
issueId
|
|
@@ -2594,7 +2594,7 @@ async function reconcileGitHubMergeStatus(issueId, status) {
|
|
|
2594
2594
|
const prRef = parseGitHubPullRequestUrl(status.prUrl);
|
|
2595
2595
|
if (!prRef) return false;
|
|
2596
2596
|
try {
|
|
2597
|
-
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-
|
|
2597
|
+
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-Bwt9lK4A.js");
|
|
2598
2598
|
if (!isGitHubAppConfigured()) return false;
|
|
2599
2599
|
const prState = await Effect.runPromise(getPullRequestState(prRef.owner, prRef.repo, prRef.number));
|
|
2600
2600
|
console.log(`[merge] reconcileGitHubMergeStatus: ${issueId} PR #${prRef.number} merged=${prState.merged} state=${prState.state}`);
|
|
@@ -2611,31 +2611,6 @@ async function reconcileGitHubMergeStatus(issueId, status) {
|
|
|
2611
2611
|
return false;
|
|
2612
2612
|
}
|
|
2613
2613
|
}
|
|
2614
|
-
async function readBeadsFromJsonl(workspacePath, issueId) {
|
|
2615
|
-
try {
|
|
2616
|
-
const jsonlPath = join(workspacePath, ".beads", "issues.jsonl");
|
|
2617
|
-
if (!existsSync$1(jsonlPath)) return [];
|
|
2618
|
-
const raw = await readFile(jsonlPath, "utf-8");
|
|
2619
|
-
const issueLower = issueId.toLowerCase();
|
|
2620
|
-
const beads = [];
|
|
2621
|
-
for (const line of raw.split("\n")) {
|
|
2622
|
-
if (!line.trim()) continue;
|
|
2623
|
-
try {
|
|
2624
|
-
const entry = JSON.parse(line);
|
|
2625
|
-
const labels = Array.isArray(entry.labels) ? entry.labels : [];
|
|
2626
|
-
if (labels.some((l) => l.toLowerCase() === issueLower)) beads.push({
|
|
2627
|
-
id: String(entry.id ?? ""),
|
|
2628
|
-
title: String(entry.title ?? ""),
|
|
2629
|
-
status: String(entry.status ?? "open"),
|
|
2630
|
-
labels
|
|
2631
|
-
});
|
|
2632
|
-
} catch {}
|
|
2633
|
-
}
|
|
2634
|
-
return beads;
|
|
2635
|
-
} catch {
|
|
2636
|
-
return [];
|
|
2637
|
-
}
|
|
2638
|
-
}
|
|
2639
2614
|
/**
|
|
2640
2615
|
* Build a rich PR body with issue link, beads task summary, and AC checklist
|
|
2641
2616
|
* from the vBRIEF plan. Exported for testing.
|
|
@@ -2661,8 +2636,7 @@ async function buildRichPRBody(issueId, workspacePath) {
|
|
|
2661
2636
|
}
|
|
2662
2637
|
} catch {}
|
|
2663
2638
|
try {
|
|
2664
|
-
|
|
2665
|
-
if (beads.length === 0) beads = await readBeadsFromJsonl(workspacePath, issueId);
|
|
2639
|
+
const beads = (await Effect.runPromise(queryBeadsForIssue(workspacePath, issueId, { acquisitionTimeoutMs: 500 }))).beads;
|
|
2666
2640
|
if (beads.length > 0) {
|
|
2667
2641
|
lines.push("## Implementation Tasks");
|
|
2668
2642
|
lines.push("");
|
|
@@ -2872,8 +2846,8 @@ async function triggerMerge(issueId) {
|
|
|
2872
2846
|
try {
|
|
2873
2847
|
if (workspaceInfo.isRemote && workspaceInfo.vmName) {
|
|
2874
2848
|
console.log(`[merge] Remote workspace detected for ${issueId}, using review artifact merge...`);
|
|
2875
|
-
const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-
|
|
2876
|
-
const { getForgeAdapter } = await import("./forge-
|
|
2849
|
+
const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-Dy0D0r3i.js");
|
|
2850
|
+
const { getForgeAdapter } = await import("./forge-8y6aEPTB.js");
|
|
2877
2851
|
const remotePrimaryRepo = (getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId))?.repos[0];
|
|
2878
2852
|
const remoteTargetBranch = remotePrimaryRepo?.targetBranch || "main";
|
|
2879
2853
|
const remoteForge = remotePrimaryRepo?.forge || "github";
|
|
@@ -2908,7 +2882,7 @@ async function triggerMerge(issueId) {
|
|
|
2908
2882
|
readyForMerge: false
|
|
2909
2883
|
});
|
|
2910
2884
|
completePendingOperation(issueId, null);
|
|
2911
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
2885
|
+
const { postMergeLifecycle } = await import("./merge-agent-ejC7Wos8.js");
|
|
2912
2886
|
await postMergeLifecycle(issueId, projectPath);
|
|
2913
2887
|
return {
|
|
2914
2888
|
success: true,
|
|
@@ -2945,10 +2919,10 @@ async function triggerMerge(issueId) {
|
|
|
2945
2919
|
const projectConfig = findProjectByTeamSync(issuePrefix);
|
|
2946
2920
|
if (projectConfig?.workspace?.type === "polyrepo" && projectConfig?.workspace?.repos) {
|
|
2947
2921
|
console.log(`[merge] Polyrepo detected for ${issueId}, coordinating merge set...`);
|
|
2948
|
-
const { getMergeSetSync, ensureMergeSetForIssueSync, upsertMergeSetSync, withRepoStateSync } = await import("./merge-set-
|
|
2949
|
-
const { runQualityGates } = await import("./validation-
|
|
2950
|
-
const { getForgeAdapter } = await import("./forge-
|
|
2951
|
-
const { messageAgent } = await import("./agents-
|
|
2922
|
+
const { getMergeSetSync, ensureMergeSetForIssueSync, upsertMergeSetSync, withRepoStateSync } = await import("./merge-set-Dy0D0r3i.js");
|
|
2923
|
+
const { runQualityGates } = await import("./validation-Dq_wwcw3.js");
|
|
2924
|
+
const { getForgeAdapter } = await import("./forge-8y6aEPTB.js");
|
|
2925
|
+
const { messageAgent } = await import("./agents-CEcaxSkR.js");
|
|
2952
2926
|
let mergeSet = getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId);
|
|
2953
2927
|
if (!mergeSet) {
|
|
2954
2928
|
const error = `No merge set found for ${issueId}`;
|
|
@@ -3218,7 +3192,7 @@ async function triggerMerge(issueId) {
|
|
|
3218
3192
|
readyForMerge: false
|
|
3219
3193
|
});
|
|
3220
3194
|
completePendingOperation(issueId, null);
|
|
3221
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
3195
|
+
const { postMergeLifecycle } = await import("./merge-agent-ejC7Wos8.js");
|
|
3222
3196
|
advanceQueue();
|
|
3223
3197
|
await postMergeLifecycle(issueId, projectPath);
|
|
3224
3198
|
return {
|
|
@@ -3229,8 +3203,8 @@ async function triggerMerge(issueId) {
|
|
|
3229
3203
|
repos: mergeResults
|
|
3230
3204
|
};
|
|
3231
3205
|
}
|
|
3232
|
-
const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-
|
|
3233
|
-
const { getForgeAdapter } = await import("./forge-
|
|
3206
|
+
const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-Dy0D0r3i.js");
|
|
3207
|
+
const { getForgeAdapter } = await import("./forge-8y6aEPTB.js");
|
|
3234
3208
|
const primaryRepo = (getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId))?.repos[0];
|
|
3235
3209
|
const targetBranch = primaryRepo?.targetBranch || "main";
|
|
3236
3210
|
const primaryForge = primaryRepo?.forge || "github";
|
|
@@ -3272,7 +3246,7 @@ async function triggerMerge(issueId) {
|
|
|
3272
3246
|
};
|
|
3273
3247
|
}
|
|
3274
3248
|
if (githubPrRef) try {
|
|
3275
|
-
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-
|
|
3249
|
+
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-Bwt9lK4A.js");
|
|
3276
3250
|
if (isGitHubAppConfigured()) {
|
|
3277
3251
|
const prState = await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number));
|
|
3278
3252
|
if (prState.state !== "OPEN" && !prState.merged) {
|
|
@@ -3333,7 +3307,7 @@ async function triggerMerge(issueId) {
|
|
|
3333
3307
|
readyForMerge: false
|
|
3334
3308
|
});
|
|
3335
3309
|
completePendingOperation(issueId, null);
|
|
3336
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
3310
|
+
const { postMergeLifecycle } = await import("./merge-agent-ejC7Wos8.js");
|
|
3337
3311
|
await postMergeLifecycle(issueId, projectPath, branchName);
|
|
3338
3312
|
return {
|
|
3339
3313
|
success: true,
|
|
@@ -3347,13 +3321,13 @@ async function triggerMerge(issueId) {
|
|
|
3347
3321
|
} catch (prStateErr) {
|
|
3348
3322
|
console.warn(`[merge] Pre-merge PR state check failed for ${issueId}: ${prStateErr.message} — proceeding (check is best-effort)`);
|
|
3349
3323
|
}
|
|
3350
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
3324
|
+
const { postMergeLifecycle } = await import("./merge-agent-ejC7Wos8.js");
|
|
3351
3325
|
const agentId = `agent-${issueId.toLowerCase()}`;
|
|
3352
3326
|
const rebaseMsg = `MERGE REQUESTED: The human has clicked MERGE for ${issueId}. Please rebase onto ${targetBranch} and push:\n\n1. git fetch origin ${targetBranch}\n2. git rebase origin/${targetBranch}\n3. If conflicts: resolve them, git add, git rebase --continue\n4. git push --force-with-lease\n\nAfter pushing, the server will handle verification and merge automatically. Do NOT run gh pr merge yourself.`;
|
|
3353
3327
|
setReviewStatus(issueId, { mergeStep: "rebasing" });
|
|
3354
3328
|
console.log(`[merge] Rebasing ${branchName} onto ${targetBranch} for ${issueId} (agent=${await Effect.runPromise(sessionExists(agentId)) ? "running" : "stopped"})...`);
|
|
3355
3329
|
{
|
|
3356
|
-
const { beginShipLog, appendShipLog } = await import("./ship-log-
|
|
3330
|
+
const { beginShipLog, appendShipLog } = await import("./ship-log-CwqPFfqx.js");
|
|
3357
3331
|
beginShipLog(issueId);
|
|
3358
3332
|
appendShipLog(issueId, `Ship started: rebasing ${branchName} onto ${targetBranch}…`, "rebasing");
|
|
3359
3333
|
}
|
|
@@ -3481,7 +3455,7 @@ async function triggerMerge(issueId) {
|
|
|
3481
3455
|
});
|
|
3482
3456
|
let skipLocalVerification = false;
|
|
3483
3457
|
if (primaryForge === "github" && artifactUrl) try {
|
|
3484
|
-
const { parsePullRequestRef, getCiCheckRunsStatePromise, isGitHubAppConfigured } = await import("./github-app-
|
|
3458
|
+
const { parsePullRequestRef, getCiCheckRunsStatePromise, isGitHubAppConfigured } = await import("./github-app-Bwt9lK4A.js");
|
|
3485
3459
|
if (isGitHubAppConfigured()) {
|
|
3486
3460
|
const ref = parsePullRequestRef({ url: artifactUrl });
|
|
3487
3461
|
if (ref) {
|
|
@@ -3502,12 +3476,12 @@ async function triggerMerge(issueId) {
|
|
|
3502
3476
|
} catch (ciErr) {
|
|
3503
3477
|
console.warn(`[merge] CI-state check failed (${ciErr.message?.slice(0, 120)}) — falling back to local verification for ${issueId}`);
|
|
3504
3478
|
}
|
|
3505
|
-
const { appendShipLog } = await import("./ship-log-
|
|
3479
|
+
const { appendShipLog } = await import("./ship-log-CwqPFfqx.js");
|
|
3506
3480
|
if (skipLocalVerification) appendShipLog(issueId, "✓ Local verification skipped — CI already green on this exact commit", "verifying");
|
|
3507
3481
|
const verifyResult = skipLocalVerification ? { outcome: "passed" } : await (async () => {
|
|
3508
3482
|
console.log(`[merge] Running post-rebase verification for ${issueId}...`);
|
|
3509
3483
|
appendShipLog(issueId, "Running post-rebase verification (full quality-gate suite)…", "verifying");
|
|
3510
|
-
const { runVerificationForIssue } = await import("./verification-runner-
|
|
3484
|
+
const { runVerificationForIssue } = await import("./verification-runner-D0Uh-9jc.js");
|
|
3511
3485
|
return Effect.runPromise(runVerificationForIssue(issueId, workspacePath, { isRemote: false }, "merge-verify", {
|
|
3512
3486
|
syncTargetBranch: false,
|
|
3513
3487
|
onGateLog: (line) => appendShipLog(issueId, line, "verifying")
|
|
@@ -3540,7 +3514,7 @@ async function triggerMerge(issueId) {
|
|
|
3540
3514
|
console.log(`[merge] Post-rebase verification ${verifyResult.outcome} for ${issueId}`);
|
|
3541
3515
|
setReviewStatus(issueId, { mergeStep: "reporting-statuses" });
|
|
3542
3516
|
try {
|
|
3543
|
-
const { getPullRequestState, isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-
|
|
3517
|
+
const { getPullRequestState, isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-Bwt9lK4A.js");
|
|
3544
3518
|
if (githubPrRef && isGitHubAppConfigured()) {
|
|
3545
3519
|
const sha = (await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number))).headSha.trim();
|
|
3546
3520
|
if (sha) {
|
|
@@ -3568,7 +3542,7 @@ async function triggerMerge(issueId) {
|
|
|
3568
3542
|
} catch (prMergeErr) {
|
|
3569
3543
|
console.error(`[merge] Review artifact merge threw for ${issueId}:`, prMergeErr);
|
|
3570
3544
|
try {
|
|
3571
|
-
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-
|
|
3545
|
+
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-Bwt9lK4A.js");
|
|
3572
3546
|
if (githubPrRef && isGitHubAppConfigured()) {
|
|
3573
3547
|
artifactMerged = (await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number))).merged;
|
|
3574
3548
|
if (artifactMerged) console.log(`[merge] Race-detected: PR #${githubPrRef.number} for ${issueId} was already merged despite thrown error; proceeding`);
|
|
@@ -3685,8 +3659,8 @@ const postForgeApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/forge
|
|
|
3685
3659
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
3686
3660
|
if (!/^[A-Z]+-\d+$/i.test(issueId)) return jsonResponse({ error: "Invalid issue ID format" }, { status: 400 });
|
|
3687
3661
|
return yield* Effect.promise(async () => {
|
|
3688
|
-
const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-
|
|
3689
|
-
const { getForgeAdapter } = await import("./forge-
|
|
3662
|
+
const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-Dy0D0r3i.js");
|
|
3663
|
+
const { getForgeAdapter } = await import("./forge-8y6aEPTB.js");
|
|
3690
3664
|
let mergeSet = getMergeSetSync(issueId);
|
|
3691
3665
|
if (!mergeSet) return jsonResponse({ error: `No merge set found for ${issueId}` }, { status: 404 });
|
|
3692
3666
|
const results = [];
|
|
@@ -3774,8 +3748,8 @@ const postForgeMergeRoute = HttpRouter.add("POST", "/api/issues/:issueId/forge-m
|
|
|
3774
3748
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
3775
3749
|
if (!/^[A-Z]+-\d+$/i.test(issueId)) return jsonResponse({ error: "Invalid issue ID format" }, { status: 400 });
|
|
3776
3750
|
return yield* Effect.promise(async () => {
|
|
3777
|
-
const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-
|
|
3778
|
-
const { getForgeAdapter } = await import("./forge-
|
|
3751
|
+
const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-Dy0D0r3i.js");
|
|
3752
|
+
const { getForgeAdapter } = await import("./forge-8y6aEPTB.js");
|
|
3779
3753
|
let mergeSet = getMergeSetSync(issueId);
|
|
3780
3754
|
if (!mergeSet) return jsonResponse({ error: `No merge set found for ${issueId}` }, { status: 404 });
|
|
3781
3755
|
const results = [];
|
|
@@ -3968,7 +3942,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
|
|
|
3968
3942
|
console.log(`[approve] Starting role pipeline for ${issueId}...`);
|
|
3969
3943
|
let reviewResult;
|
|
3970
3944
|
try {
|
|
3971
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
3945
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
|
|
3972
3946
|
reviewResult = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
3973
3947
|
issueId,
|
|
3974
3948
|
workspace: workspacePath,
|
|
@@ -4015,7 +3989,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
|
|
|
4015
3989
|
}
|
|
4016
3990
|
console.log(`[approve] Step 3/3: Running server-side rebase for ${issueId}...`);
|
|
4017
3991
|
try {
|
|
4018
|
-
const { rebaseFeatureBranch } = await import("./merge-rebase-
|
|
3992
|
+
const { rebaseFeatureBranch } = await import("./merge-rebase-Dl7yIxtV.js");
|
|
4019
3993
|
const workspacePathForRebase = join(projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
4020
3994
|
const rebaseResult = await Effect.runPromise(rebaseFeatureBranch(workspacePathForRebase, branchName, "main", issueId));
|
|
4021
3995
|
if (!rebaseResult.success) {
|
|
@@ -4035,7 +4009,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
|
|
|
4035
4009
|
completePendingOperation(issueId, pushResult.error);
|
|
4036
4010
|
return jsonResponse({ error: pushResult.error }, { status: pushResult.httpStatus });
|
|
4037
4011
|
}
|
|
4038
|
-
const { approve: lifecycleApprove } = await import("./lifecycle-
|
|
4012
|
+
const { approve: lifecycleApprove } = await import("./lifecycle-Ck2UR27D.js");
|
|
4039
4013
|
const ghResolved = resolveGitHubIssueSync(issueId);
|
|
4040
4014
|
const isGitHubIssueFlag = ghResolved.isGitHub;
|
|
4041
4015
|
const lifecycleCtx = {
|
|
@@ -4069,7 +4043,7 @@ const getMergeQueueRoute = HttpRouter.add("GET", "/api/merge-queue", httpHandler
|
|
|
4069
4043
|
})));
|
|
4070
4044
|
const postInternalPipelineNotifyRoute = HttpRouter.add("POST", "/api/internal/pipeline/notify", httpHandler(Effect.gen(function* () {
|
|
4071
4045
|
const request = yield* HttpServerRequest.HttpServerRequest;
|
|
4072
|
-
const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-
|
|
4046
|
+
const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-BPYEaXFh.js"));
|
|
4073
4047
|
const expected = getInternalTokenSync();
|
|
4074
4048
|
if (!expected) return jsonResponse({
|
|
4075
4049
|
ok: false,
|
|
@@ -4083,7 +4057,7 @@ const postInternalPipelineNotifyRoute = HttpRouter.add("POST", "/api/internal/pi
|
|
|
4083
4057
|
}, 403);
|
|
4084
4058
|
const event = yield* readJsonBody;
|
|
4085
4059
|
const type = event.type;
|
|
4086
|
-
const { notifyPipelineSync } = yield* Effect.promise(() => import("./pipeline-notifier-
|
|
4060
|
+
const { notifyPipelineSync } = yield* Effect.promise(() => import("./pipeline-notifier-BH4PAi-w.js"));
|
|
4087
4061
|
switch (type) {
|
|
4088
4062
|
case "status_changed": {
|
|
4089
4063
|
const issueId = event.issueId;
|
|
@@ -4858,7 +4832,7 @@ const patchWorkspaceTieredExecutionRoute = HttpRouter.add("PATCH", "/api/workspa
|
|
|
4858
4832
|
if (override !== "on" && override !== "off" && override !== null && override !== void 0) return jsonResponse({ error: "Invalid tiered-execution override" }, { status: 400 });
|
|
4859
4833
|
const project = getProjectSync(extractPrefixSync(issueId) ?? issueId.split("-")[0]);
|
|
4860
4834
|
if (!project) return jsonResponse({ error: "Project not found" }, { status: 404 });
|
|
4861
|
-
yield* Effect.promise(() => import("./record-
|
|
4835
|
+
yield* Effect.promise(() => import("./record-lEYK__LD.js").then((m) => m.writeRecordTieredExecutionOverride(project, issueId, override)));
|
|
4862
4836
|
const projectPath = project.path;
|
|
4863
4837
|
const location = yield* resolvePlanLocation(projectPath, issueId);
|
|
4864
4838
|
if (!location) return jsonResponse({ error: "No vBRIEF plan found for this workspace" }, { status: 404 });
|
|
@@ -5295,7 +5269,7 @@ const postWorkspaceReviewRoute = HttpRouter.add("POST", "/api/review/:issueId/tr
|
|
|
5295
5269
|
console.log(`Feature branch push note: ${errorMessage(pushErr)}`);
|
|
5296
5270
|
}
|
|
5297
5271
|
try {
|
|
5298
|
-
const { createReviewArtifactsForIssue } = await import("./review-artifacts-
|
|
5272
|
+
const { createReviewArtifactsForIssue } = await import("./review-artifacts-D4T04aYI.js");
|
|
5299
5273
|
const artifactResult = await Effect.runPromise(createReviewArtifactsForIssue(issueId, workspacePath));
|
|
5300
5274
|
const primaryArtifact = artifactResult.mergeSet?.repos.find((repo) => !!repo.artifactUrl);
|
|
5301
5275
|
artifactResult.mergeSet?.repos.find((repo) => repo.mergeStatus !== "skipped")?.targetBranch;
|
|
@@ -5350,7 +5324,7 @@ const postWorkspaceReviewRoute = HttpRouter.add("POST", "/api/review/:issueId/tr
|
|
|
5350
5324
|
} catch {}
|
|
5351
5325
|
return;
|
|
5352
5326
|
}
|
|
5353
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
5327
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
|
|
5354
5328
|
const prUrl = getReviewStatusSync(issueId)?.prUrl;
|
|
5355
5329
|
const reviewResult = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
5356
5330
|
issueId,
|
|
@@ -5490,7 +5464,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
|
|
|
5490
5464
|
console.log(`[request-review] Feature branch push note: ${errorMessage(pushErr)}`);
|
|
5491
5465
|
}
|
|
5492
5466
|
const prUrl = getReviewStatusSync(issueId)?.prUrl;
|
|
5493
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
5467
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
|
|
5494
5468
|
const result = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
5495
5469
|
issueId,
|
|
5496
5470
|
workspace: workspacePathRerun,
|
|
@@ -5540,7 +5514,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
|
|
|
5540
5514
|
});
|
|
5541
5515
|
} else {
|
|
5542
5516
|
const workspacePath = join(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
5543
|
-
const { spawnRun } = yield* Effect.promise(() => import("./agents-
|
|
5517
|
+
const { spawnRun } = yield* Effect.promise(() => import("./agents-CEcaxSkR.js"));
|
|
5544
5518
|
try {
|
|
5545
5519
|
const testRun = yield* Effect.promise(() => spawnRun(issueId, "test", { workspace: workspacePath }));
|
|
5546
5520
|
setReviewStatus(issueId, { testStatus: "testing" });
|
|
@@ -5629,7 +5603,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
|
|
|
5629
5603
|
autoRequeueCount: newCount
|
|
5630
5604
|
}, { status: 500 });
|
|
5631
5605
|
const result = yield* Effect.promise(async () => {
|
|
5632
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
5606
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
|
|
5633
5607
|
return await Effect.runPromise(spawnReviewRoleForIssue({
|
|
5634
5608
|
issueId,
|
|
5635
5609
|
workspace: workspacePath,
|
|
@@ -5933,7 +5907,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
|
|
|
5933
5907
|
const result = processResetReviewPipeline(issueId, resetWorkspace.exists);
|
|
5934
5908
|
if (result.httpStatus !== 200) return jsonResponse(result.body, { status: result.httpStatus });
|
|
5935
5909
|
try {
|
|
5936
|
-
const { resetPostMergeState } = yield* Effect.promise(() => import("./merge-agent-
|
|
5910
|
+
const { resetPostMergeState } = yield* Effect.promise(() => import("./merge-agent-ejC7Wos8.js"));
|
|
5937
5911
|
resetPostMergeState(issueId);
|
|
5938
5912
|
} catch (err) {
|
|
5939
5913
|
console.warn(`[reset-review] resetPostMergeState best-effort failed for ${issueId}:`, err);
|
|
@@ -5942,7 +5916,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
|
|
|
5942
5916
|
const rerun = body?.rerun === true;
|
|
5943
5917
|
if (rerun) try {
|
|
5944
5918
|
yield* Effect.promise(async () => {
|
|
5945
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
5919
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
|
|
5946
5920
|
const dispatchArgs = buildReviewRedispatchArgs(issueId, resetWorkspace, workspaceInfo, resolved);
|
|
5947
5921
|
if (dispatchArgs) {
|
|
5948
5922
|
const result = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
@@ -5971,7 +5945,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
|
|
|
5971
5945
|
const postWorkspaceReviewPurgeRoute = HttpRouter.add("POST", "/api/review/:issueId/purge", httpHandler(Effect.gen(function* () {
|
|
5972
5946
|
const issueId = (yield* HttpRouter.params)["issueId"] ?? "";
|
|
5973
5947
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
5974
|
-
const { purgeReviewAgentsForIssue } = yield* Effect.promise(() => import("./review-agent-
|
|
5948
|
+
const { purgeReviewAgentsForIssue } = yield* Effect.promise(() => import("./review-agent-u5q3ip7H.js"));
|
|
5975
5949
|
const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
|
|
5976
5950
|
const purge = yield* Effect.promise(() => purgeReviewAgentsForIssue(projectKey, issueId));
|
|
5977
5951
|
const workspaceInfo = getWorkspaceInfoForIssue(issueId);
|
|
@@ -6001,8 +5975,8 @@ const postWorkspaceAbortReviewRoute = HttpRouter.add("POST", "/api/review/:issue
|
|
|
6001
5975
|
success: false,
|
|
6002
5976
|
error: "Workspace does not exist"
|
|
6003
5977
|
}, { status: 400 });
|
|
6004
|
-
const { resolveProjectFromIssueSync } = yield* Effect.promise(() => import("./projects-
|
|
6005
|
-
const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-
|
|
5978
|
+
const { resolveProjectFromIssueSync } = yield* Effect.promise(() => import("./projects-CrBE6IhN.js"));
|
|
5979
|
+
const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-u5q3ip7H.js"));
|
|
6006
5980
|
const { killed, failed } = yield* killAllReviewerSessions(resolveProjectFromIssueSync(issueId)?.projectKey, issueId);
|
|
6007
5981
|
setReviewStatus(issueId, {
|
|
6008
5982
|
reviewStatus: "pending",
|
|
@@ -6074,8 +6048,8 @@ const getReviewConfigRoute = HttpRouter.add("GET", "/api/review/:issueId/config"
|
|
|
6074
6048
|
const issueId = ((yield* HttpRouter.params)["issueId"] ?? "").toUpperCase();
|
|
6075
6049
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
6076
6050
|
return jsonResponse(yield* Effect.promise(async () => {
|
|
6077
|
-
const { readIssueRecordSync, resolveProjectForIssue } = await import("./record-
|
|
6078
|
-
const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-
|
|
6051
|
+
const { readIssueRecordSync, resolveProjectForIssue } = await import("./record-lEYK__LD.js");
|
|
6052
|
+
const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-u5q3ip7H.js");
|
|
6079
6053
|
const project = resolveProjectForIssue(issueId);
|
|
6080
6054
|
const record = project ? readIssueRecordSync(project, issueId) : null;
|
|
6081
6055
|
return {
|
|
@@ -6101,8 +6075,8 @@ const postReviewConfigRoute = HttpRouter.add("POST", "/api/review/:issueId/confi
|
|
|
6101
6075
|
if (hasMode && body.reviewMode !== null && body.reviewMode !== "quick" && body.reviewMode !== "full" && body.reviewMode !== "none") return jsonResponse({ error: "reviewMode must be quick, full, none, or null" }, { status: 400 });
|
|
6102
6076
|
if (hasScope && body.reReviewScope !== null && body.reReviewScope !== "all" && body.reReviewScope !== "changed" && body.reReviewScope !== "blockers") return jsonResponse({ error: "reReviewScope must be all, changed, blockers, or null" }, { status: 400 });
|
|
6103
6077
|
return jsonResponse(yield* Effect.promise(async () => {
|
|
6104
|
-
const { ensureIssueRecordSync, readIssueRecordSync, resolveProjectForIssue, writeIssueRecordSync } = await import("./record-
|
|
6105
|
-
const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-
|
|
6078
|
+
const { ensureIssueRecordSync, readIssueRecordSync, resolveProjectForIssue, writeIssueRecordSync } = await import("./record-lEYK__LD.js");
|
|
6079
|
+
const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-u5q3ip7H.js");
|
|
6106
6080
|
const project = resolveProjectForIssue(issueId);
|
|
6107
6081
|
const record = readIssueRecordSync(project, issueId) ?? ensureIssueRecordSync(project, issueId);
|
|
6108
6082
|
if (hasMode) if (body.reviewMode === null) delete record.reviewMode;
|
|
@@ -6496,7 +6470,7 @@ async function readWorkspacePlanningMarkdown(issueId, fileName) {
|
|
|
6496
6470
|
*/
|
|
6497
6471
|
async function readWorkspaceContinueFile(_projectPath, workspacePath, issueId) {
|
|
6498
6472
|
try {
|
|
6499
|
-
const { readRecordContinueViewSync, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-
|
|
6473
|
+
const { readRecordContinueViewSync, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-lEYK__LD.js");
|
|
6500
6474
|
const recordView = readRecordContinueViewSync(resolveProjectForIssue(issueId) ?? getProjectConfigFromWorkspacePath(workspacePath), issueId);
|
|
6501
6475
|
return recordView ? JSON.stringify(recordView, null, 2) : null;
|
|
6502
6476
|
} catch {
|
|
@@ -7265,7 +7239,7 @@ const getWorkspaceReviewStatusRoute = HttpRouter.add("GET", "/api/review/:issueI
|
|
|
7265
7239
|
if (queuePosition === null) try {
|
|
7266
7240
|
const resolved = resolveProjectFromIssueSync(issueId);
|
|
7267
7241
|
if (resolved) {
|
|
7268
|
-
const { getQueueForProject } = yield* Effect.promise(() => import("./merge-
|
|
7242
|
+
const { getQueueForProject } = yield* Effect.promise(() => import("./merge-BLcEZNXz.js"));
|
|
7269
7243
|
const mergePos = findPositionInQueueSync(issueId, getQueueForProject(resolved.projectKey).map((e) => ({
|
|
7270
7244
|
id: String(e.id),
|
|
7271
7245
|
type: "task",
|
|
@@ -7303,7 +7277,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7303
7277
|
const workspaceInfo = getWorkspaceInfoForIssue(issueId);
|
|
7304
7278
|
if (workspaceInfo.exists && workspaceInfo.localPath) {
|
|
7305
7279
|
const localPath = workspaceInfo.localPath;
|
|
7306
|
-
const { getWorkspaceGitInfo } = yield* Effect.promise(() => import("./git-utils-
|
|
7280
|
+
const { getWorkspaceGitInfo } = yield* Effect.promise(() => import("./git-utils-C0neHvQx.js"));
|
|
7307
7281
|
try {
|
|
7308
7282
|
const gitInfo = yield* getWorkspaceGitInfo(localPath);
|
|
7309
7283
|
if (gitInfo.HEAD) update.reviewedAtCommit = gitInfo.HEAD;
|
|
@@ -7318,7 +7292,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7318
7292
|
if (verificationStatus) update.verificationStatus = verificationStatus;
|
|
7319
7293
|
if (readyForMerge !== void 0) update.readyForMerge = readyForMerge;
|
|
7320
7294
|
const status = setReviewStatus(issueId, update);
|
|
7321
|
-
const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-
|
|
7295
|
+
const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-k22_Btaq.js"));
|
|
7322
7296
|
const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
|
|
7323
7297
|
if (reviewStatus && [
|
|
7324
7298
|
"passed",
|
|
@@ -7336,7 +7310,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7336
7310
|
const agentId = `agent-${issueId.toLowerCase()}`;
|
|
7337
7311
|
const feedbackBody = `CODE REVIEW ${reviewStatus.toUpperCase()} for ${issueId}:\n\n${reviewNotes}\n\n## REQUIRED: Fix ALL issues above, then invoke the /rebase-and-submit skill\n\n1. Read each blocking issue carefully\n2. Fix the code for EVERY issue listed\n3. Run tests locally to verify your fixes\n4. Commit every change\n5. Invoke the /rebase-and-submit skill for ${issueId} — this is an atomic task that runs pan done (which handles rebase + push + re-submit internally)\n\nDo NOT stop between steps. Do NOT run git push manually — the skill handles it. Do NOT stop until pan done has completed successfully.`;
|
|
7338
7312
|
try {
|
|
7339
|
-
const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-
|
|
7313
|
+
const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-BsJiw5aT.js"));
|
|
7340
7314
|
const wsInfo = getWorkspaceInfoForIssue(issueId);
|
|
7341
7315
|
const fileResult = yield* Effect.promise(() => writeFeedbackFile({
|
|
7342
7316
|
issueId,
|
|
@@ -7400,7 +7374,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7400
7374
|
const agentId = `agent-${issueId.toLowerCase()}`;
|
|
7401
7375
|
const feedbackBody = `TESTS FAILED for ${issueId}:\n\n${testNotes}\n\n## REQUIRED: Fix ALL test failures, then invoke the /rebase-and-submit skill\n\n1. Read each test failure carefully\n2. Fix the code causing EVERY failure\n3. Run the test suite locally to verify your fixes pass\n4. Commit every change\n5. Invoke the /rebase-and-submit skill for ${issueId} — this is an atomic task that runs pan done (which handles rebase + push + re-submit internally)\n\nDo NOT stop between steps. Do NOT run git push manually — the skill handles it. Do NOT stop until pan done has completed successfully.`;
|
|
7402
7376
|
try {
|
|
7403
|
-
const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-
|
|
7377
|
+
const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-BsJiw5aT.js"));
|
|
7404
7378
|
const wsInfo = getWorkspaceInfoForIssue(issueId);
|
|
7405
7379
|
const fileResult = yield* Effect.promise(() => writeFeedbackFile({
|
|
7406
7380
|
issueId,
|
|
@@ -7423,16 +7397,24 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7423
7397
|
if (testStatus === "passed") {
|
|
7424
7398
|
setReviewStatus(issueId, { readyForMerge: true });
|
|
7425
7399
|
console.log(`[review-status] ${issueId} marked ready for merge after test=passed`);
|
|
7400
|
+
emitActivityEntrySync({
|
|
7401
|
+
source: "ship",
|
|
7402
|
+
level: "success",
|
|
7403
|
+
issueId,
|
|
7404
|
+
message: `${issueId} is ready. Open Awaiting Merge and click MERGE when you are ready to land it.`,
|
|
7405
|
+
link: "/awaiting-merge",
|
|
7406
|
+
desktop: true
|
|
7407
|
+
});
|
|
7426
7408
|
yield* Effect.promise(async () => {
|
|
7427
7409
|
try {
|
|
7428
|
-
const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-
|
|
7410
|
+
const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-CrBE6IhN.js");
|
|
7429
7411
|
const project = resolveProjectFromIssueSync(issueId);
|
|
7430
7412
|
const repo = (project ? getProjectSync(project.projectKey) : null)?.github_repo;
|
|
7431
7413
|
if (!repo || !repo.includes("/")) return;
|
|
7432
7414
|
const [owner, name] = repo.split("/");
|
|
7433
7415
|
const wsInfo = getWorkspaceInfoForIssue(issueId);
|
|
7434
7416
|
if (!wsInfo?.localPath) return;
|
|
7435
|
-
const { postOverdeckTestsStatus } = await import("./github-app-
|
|
7417
|
+
const { postOverdeckTestsStatus } = await import("./github-app-Bwt9lK4A.js");
|
|
7436
7418
|
await postOverdeckTestsStatus(wsInfo.localPath, owner, name, "success", "Test specialist passed");
|
|
7437
7419
|
} catch (err) {
|
|
7438
7420
|
console.warn(`[review-status] Failed to post overdeck/tests for ${issueId}: ${err.message}`);
|
|
@@ -7447,7 +7429,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7447
7429
|
}
|
|
7448
7430
|
})));
|
|
7449
7431
|
const notifyAgentId = `agent-${issueId.toLowerCase()}`;
|
|
7450
|
-
yield* Effect.tryPromise(() => messageAgent(notifyAgentId, `ALL CHECKS PASSED for ${issueId}. Review: passed. Tests: passed. Your work is complete
|
|
7432
|
+
yield* Effect.tryPromise(() => messageAgent(notifyAgentId, `ALL CHECKS PASSED for ${issueId}. Review: passed. Tests: passed. Your work is complete. Tell the operator to open Overdeck's Awaiting Merge page and click MERGE when ready. You may stop working on this issue.`)).pipe(Effect.tap(() => Effect.sync(() => console.log(`[review-status] Notified ${notifyAgentId} that all checks passed`))), Effect.catch((err) => Effect.sync(() => console.log(`[review-status] Could not notify work agent for ${issueId} (may not be running): ${err instanceof Error ? err.message : String(err)}`))));
|
|
7451
7433
|
}
|
|
7452
7434
|
}
|
|
7453
7435
|
return jsonResponse(status);
|
|
@@ -7474,7 +7456,7 @@ const postWorkspaceRefreshTokenRoute = HttpRouter.add("POST", "/api/workspaces/:
|
|
|
7474
7456
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
7475
7457
|
const issueLower = issueId.toLowerCase();
|
|
7476
7458
|
const workspacePath = join(getProjectPath(void 0, extractPrefixSync(issueId) ?? issueId.split("-")[0]), "workspaces", `feature-${issueLower}`);
|
|
7477
|
-
const { refreshWorkspaceToken, isGitHubAppConfigured } = yield* Effect.promise(() => import("./github-app-
|
|
7459
|
+
const { refreshWorkspaceToken, isGitHubAppConfigured } = yield* Effect.promise(() => import("./github-app-Bwt9lK4A.js"));
|
|
7478
7460
|
if (!isGitHubAppConfigured()) return jsonResponse({
|
|
7479
7461
|
success: false,
|
|
7480
7462
|
error: "GitHub App not configured"
|
|
@@ -7489,4 +7471,4 @@ const workspacesRouteLayer = Layer.mergeAll(workspaceDataRouteLayer, postWorkspa
|
|
|
7489
7471
|
//#endregion
|
|
7490
7472
|
export { hasDashboardInternalToken as C, getWorkspacePathForIssue as D, rejectUnsafeDashboardMutationRequest as E, dashboardSessionCookieHeader as S, rejectUnauthorizedDashboardSessionMintRequest as T, syncCacheSync as _, pushApproveMain as a, resolveIssueHeadlineCost as b, triggerMerge as c, reconcile as d, reconcilePiTranscripts as f, rebuildCacheSync as g, getCostsForIssueSync as h, mergeOpsRouteLayer as i, resumeQueuedMerges as l, migrateAllSessionsSync as m, buildRichPRBody as n, reconcileGitHubMergeStatus as o, reclassifyUnknownCostEventsSync as p, isBranchAlreadyRebased as r, shouldBlockApproveForDirtyStatus as s, workspacesRouteLayer as t, syncWalFromAllProjects as u, processPendingFeedbackDeliveries as v, rejectUnauthorizedDashboardRequest as w, dashboardCsrfToken as x, getCachedRunningAgents as y };
|
|
7491
7473
|
|
|
7492
|
-
//# sourceMappingURL=workspaces-
|
|
7474
|
+
//# sourceMappingURL=workspaces-D-uIoqbg.js.map
|