@overdeck/desktop 0.45.15 → 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-DHZk2ceV.js → acceptance-criteria-BZ_nQS1f.js} +2 -2
- package/server/{advancing-selfheal-CSuZ31bB.js → advancing-selfheal-DJYAvGv-.js} +6 -5
- package/server/{agent-gc-D_DxfBHR.js → agent-gc-D0wDIeV1.js} +3 -3
- package/server/{agent-state-EP2QFV9n.js → agent-state-lGvgPP4m.js} +1 -1
- package/server/{agent-state-service-C_2ZAQRP.js → agent-state-service-CZrayD_G.js} +1 -1
- package/server/{agent-state-service-BZkvgQf4.js → agent-state-service-DFslS5go.js} +9 -52
- package/server/{agents-CsOzAmRg.js → agents-B9GwfCyp.js} +99 -140
- package/server/{agents-DCvyTXNU.js → agents-CEcaxSkR.js} +1 -1
- package/server/{archive-planning-DkivCk1A.js → archive-planning-CbghE9-o.js} +5 -5
- package/server/{archive-planning-CTILQRnV.js → archive-planning-CoyIbgGK.js} +1 -1
- package/server/{artifact-index-jobs-CmsvQ1ey.js → artifact-index-jobs-CcSrUoSE.js} +2 -2
- package/server/{auto-commit-QAfsu3Sb.js → auto-commit-IW-eik_b.js} +1 -1
- package/server/{backlog-auto-trigger-ueRaT8Dy.js → backlog-auto-trigger-BfgDsII0.js} +3 -3
- package/server/{bd-process-lock-D3S4T4o-.js → bd-process-lock-XAXAet9O.js} +2 -2
- package/server/{beads-CYsLiyIM.js → beads-B1u04n3o.js} +1 -1
- package/server/{beads-BGGxrkZ5.js → beads-BeSMEjGT.js} +7 -7
- package/server/{beads-query-B1DlJVp9.js → beads-query-Dl4FhT8J.js} +2 -2
- package/server/{beads-restore-CyygSmmn.js → beads-restore-BUItPOjI.js} +2 -2
- package/server/behavior-BTpYbAv4.js +10 -0
- package/server/{briefing-freshness-Kh5V8RTh.js → briefing-freshness-DESTCWo-.js} +4 -4
- package/server/{checkpoint-manager-fu9oVsR-.js → checkpoint-manager-BwFdegJF.js} +2 -2
- package/server/{checkpoint-manager-CAFos8e1.js → checkpoint-manager-DWSXooZV.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-1BqOlS4q.js → checkpoints-BtUonbs3.js} +2 -2
- package/server/{checkpoints-DvhGi8P_.js → checkpoints-fjadfOKF.js} +1 -1
- package/server/{claude-hooks-provision-s_wdpeVj.js → claude-hooks-provision-DAtxutOs.js} +132 -114
- package/server/claude-hooks-provision-DiK62u0k.js +3 -0
- package/server/{claude-permissions-CaWqysff.js → claude-permissions-CThLgf8d.js} +2 -2
- package/server/{claude-settings-overlay-CcTf0xzG.js → claude-settings-overlay-BF9MPIwx.js} +2 -2
- package/server/{claude-settings-overlay-BbA4FbVI.js → claude-settings-overlay-Dx_Uqcmv.js} +1 -1
- package/server/{cli-BwCvCUBK.js → cli-ByKIIMfT.js} +9 -9
- package/server/cli-D9cUTbBr.js +3 -0
- package/server/{cliproxy-BsoNNDAj.js → cliproxy-B4c1BUvs.js} +2 -2
- package/server/{cliproxy-C2xC-3vH.js → cliproxy-C_GuT5DU.js} +1 -1
- package/server/{close-issue-BleIwP3f.js → close-issue-BOuLKr6e.js} +5 -5
- package/server/{closed-issue-reaper-BwUUvjEW.js → closed-issue-reaper-CksfuiFD.js} +1 -1
- package/server/{closed-issue-reaper-mC5pujeb.js → closed-issue-reaper-DCAYzNXW.js} +9 -9
- package/server/{codex-B7DTpwEw.js → codex-BYPz6ZdF.js} +1 -1
- package/server/{codex-DW60_5j2.js → codex-BbqIRZjd.js} +6 -5
- package/server/{behavior-Cpj03N4v.js → codex-parser-mFYZh8vR.js} +3 -9
- package/server/{compact-beads-DKL54y6j.js → compact-beads-CyJtoXJi.js} +5 -5
- package/server/{compact-beads-CK_hHEnB.js → compact-beads-N00E4EVa.js} +1 -1
- package/server/{config-ZNnMpIlh.js → config-DVLdmnMJ.js} +2 -2
- package/server/{config-BRNQJXhA.js → config-Dj6N8EP9.js} +1 -1
- package/server/{config-yaml-Dcz-8uit.js → config-yaml-cNOZcEww.js} +91 -22
- package/server/{conflict-gate-DTje2Ll7.js → conflict-gate-BMKm_5DV.js} +3 -3
- package/server/{conflict-gate-DGT8jCLp.js → conflict-gate-CuXUv-bP.js} +1 -1
- package/server/{context-layers-ByOWUjUg.js → context-layers-CeAwSYNt.js} +2 -2
- package/server/{context-layers-BdUCQ-cl.js → context-layers-c0JqYHcS.js} +3 -3
- package/server/{control-settings-DwkAeooY.js → control-settings-D4EFsRBd.js} +4 -4
- package/server/{conversation-compaction-OTYgd6eg.js → conversation-compaction-BCggyih4.js} +8 -8
- package/server/{conversation-compaction-WYQZUVDm.js → conversation-compaction-kHVfVRg3.js} +1 -1
- package/server/{conversation-service-BR1OgvxO.js → conversation-service-B8LFQQm1.js} +6 -5
- package/server/{conversation-service-C_kNZPLx.js → conversation-service-BTzObqGi.js} +1 -1
- package/server/{conversations-DG2M8WnT.js → conversations-B-lcHv-5.js} +4 -4
- package/server/{conversations-izHvSoAR.js → conversations-BM7zlXjr.js} +1 -1
- package/server/{cost-B2mj17iG.js → cost-BcpRQ-7o.js} +3 -3
- package/server/{cost-DQ2ajr_m.js → cost-D9kPIY_5.js} +2 -2
- package/server/{cost-sync-gTayEuWP.js → cost-sync-DF6odxK9.js} +3 -3
- package/server/{dag-CqTehWpY.js → dag-DKI3sOmX.js} +3 -3
- package/server/{dangerous-git-ops-DDWQlPC3.js → dangerous-git-ops-Bn18PEcN.js} +1 -1
- package/server/dashboard-db-worker.js +6 -6
- package/server/{deacon-BqW9HMew.js → deacon-DONuopff.js} +3 -3
- package/server/{deacon-DrKDBeJL.js → deacon-DdARMjZq.js} +127 -107
- package/server/{deacon-nudge-log-D1wEK6zF.js → deacon-nudge-log-B-naf89q.js} +1 -1
- package/server/{deacon-swarm-CO_A7xyd.js → deacon-swarm-BNGkmYR_.js} +11 -11
- package/server/deacon-swarm-CvdFekIO.js +2 -0
- package/server/deacon.js +7 -7
- package/server/{devcontainer-renderer-BQolp_qZ.js → devcontainer-renderer-C-34Sxyz.js} +3 -3
- package/server/{dist-Bc32rWJB.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-s-esqZ__.js → docker-apZ9pBYw.js} +2 -2
- package/server/{ensure-devcontainer-DA4-jF6R.js → ensure-devcontainer-Bqi1EF1P.js} +4 -4
- package/server/{ensure-devcontainer-pUVaT0h3.js → ensure-devcontainer-Dq3KoOIl.js} +1 -1
- package/server/{esm-shims-CJHy8CZY.js → esm-shims-BEjvINX3.js} +1 -1
- package/server/{event-store-CcJAhKCl.js → event-store-CqDgfbAs.js} +1 -1
- package/server/{event-store-DRte2Rwt.js → event-store-D89fMfXS.js} +3 -3
- package/server/{events-Bej1w_k8.js → events-S_C0pvl6.js} +3 -3
- package/server/{events-CtsLScn8.js → events-rIGncmP1.js} +1 -1
- package/server/{export-Dx_qJ3h8.js → export-BJHSVwKP.js} +2 -2
- package/server/{factory-FN727tWr.js → factory-DV18m0rc.js} +5 -5
- package/server/{feature-registry-population-ie-yBcQC.js → feature-registry-population-CqZSnqQi.js} +4 -4
- package/server/{feature-registry-storage-CkZTFSsn.js → feature-registry-storage-BeXmNBwK.js} +2 -2
- package/server/{features-Dtm9ABuz.js → features-u5XeMaOK.js} +2 -2
- package/server/{feedback-target-BYtpyt1i.js → feedback-target-CwyWf0Dg.js} +6 -6
- package/server/{feedback-target-DVJQDiE4.js → feedback-target-DDG1PWl3.js} +1 -1
- package/server/{feedback-writer-DOUhyIW2.js → feedback-writer-BsJiw5aT.js} +1 -1
- package/server/{feedback-writer-fdE1BzeL.js → feedback-writer-D20HSXre.js} +4 -4
- package/server/{flywheel-CUErLAyN.js → flywheel-9Y1X7IM-.js} +13 -13
- package/server/{flywheel-Bv3wv2S6.js → flywheel-Dczmgchd.js} +12 -12
- package/server/{flywheel-Bi82iiNl.js → flywheel-RCnHAgc4.js} +1 -1
- package/server/{flywheel-merge-order-BaEN3iyN.js → flywheel-merge-order-CtCYsFJP.js} +7 -7
- package/server/{flywheel-merge-order-DXjeBnJ1.js → flywheel-merge-order-DEtEd3aK.js} +1 -1
- package/server/forge-8y6aEPTB.js +2 -0
- package/server/{forge-ButEdJ31.js → forge-DFDThFil.js} +2 -2
- package/server/{from-CbtTxftl.js → from-NSJypkI8.js} +1 -1
- package/server/{fts-db-CBgBLZcL.js → fts-db-C5A_TTOM.js} +2 -2
- package/server/{fts-operations-CI9Xuo_1.js → fts-operations-DvCSimfU.js} +2 -2
- package/server/{git-utils-BCLRWQ-y.js → git-utils-C0neHvQx.js} +1 -1
- package/server/{git-utils-ClfpP47N.js → git-utils-Dr0L7mFk.js} +2 -2
- package/server/{github-app-DRD2woO0.js → github-app-Bwt9lK4A.js} +1 -1
- package/server/{github-app-DscZ0_B6.js → github-app-u9-SX7Gc.js} +2 -2
- package/server/{github-client-DpiZnxGH.js → github-client-Btyy3uan.js} +3 -3
- package/server/{github-client-iFRw8f7e.js → github-client-Do3k-N1W.js} +1 -1
- package/server/{github-pr-lookup-D-EBexxC.js → github-pr-lookup-DOF1U2WW.js} +2 -2
- package/server/{harness-resolve-iMjyNUJ2.js → harness-resolve-C6g2R0Cd.js} +3 -3
- package/server/{health-events-CRdxDFN2.js → health-events-B4u-2a9m.js} +2 -2
- package/server/{health-events-B_WsQyYm.js → health-events-Bos3sk5g.js} +1 -1
- package/server/{hooks-C9b7Vqpw.js → hooks-BCoOjL_R.js} +2 -2
- package/server/{hooks-C1ScyVxP.js → hooks-uEr8WTx_.js} +1 -1
- package/server/{hume-TQ5pvOZ_.js → hume-BqxYKbUf.js} +2 -2
- package/server/hume-CerGi2RH.js +3 -0
- package/server/{idle-stack-reaper-B1kG7B_X.js → idle-stack-reaper-DbZ8ukMd.js} +2 -2
- package/server/{idle-stack-reaper-iFVOAoJy.js → idle-stack-reaper-H0W6XtHh.js} +1 -1
- package/server/{infra-bpq1MHKU.js → infra-Ba9mS6e6.js} +3 -3
- package/server/{injection-BLWfwTVZ.js → injection-C1DKXeIZ.js} +1 -1
- package/server/{injection-DJqWld1v.js → injection-yrMBxzVq.js} +7 -7
- package/server/{inspect-agent-DytCsltn.js → inspect-agent-B-mnb4uh.js} +9 -9
- package/server/inspect-agent-CWkeAB7J.js +2 -0
- package/server/{internal-token-CCaWaTwE.js → internal-token-BPYEaXFh.js} +1 -1
- package/server/{internal-token-CjlhdufS.js → internal-token-BtqSbKTx.js} +2 -2
- package/server/{io-BiQ2Cs3k.js → io-VEGSAqsd.js} +15 -22
- package/server/{issue-closed-FApNiOOs.js → issue-closed-BxcePXL-.js} +4 -4
- package/server/{issue-lifecycle-C-K53ASY.js → issue-lifecycle--8MRxrG1.js} +22 -22
- package/server/{issue-lifecycle-BkFWNjlD.js → issue-lifecycle-CdMUauyb.js} +1 -1
- package/server/{issue-service-singleton-CuHGpJJP.js → issue-service-singleton-CkTUI-eu.js} +10 -10
- package/server/{issue-service-singleton-bG1WdSdQ.js → issue-service-singleton-MZsDhAob.js} +1 -1
- package/server/{issues-CwQMphDH.js → issues-CBAsuoAO.js} +2 -2
- package/server/{jsonl-parser-dNIjHgym.js → jsonl-parser-BUW5_sSK.js} +3 -3
- package/server/{label-cleanup-DYvAZknd.js → label-cleanup-htK6fBRU.js} +3 -3
- package/server/{layers-CD6FysRU.js → layers-jjL16At6.js} +2 -2
- package/server/{lifecycle-C_73gi-C.js → lifecycle-Ck2UR27D.js} +7 -7
- package/server/{lifecycle-io-C_Wu0_i-.js → lifecycle-io-DXv8Utct.js} +1 -1
- package/server/{lifecycle-io-CeYxP3cE.js → lifecycle-io-IehcRt2v.js} +36 -47
- package/server/{linear-client-4qoKnuQu.js → linear-client-By7hjwuN.js} +1 -1
- package/server/{linear-client-EtVyblVz.js → linear-client-D9cSQfvD.js} +3 -3
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-brm721Es.js → merge-BLcEZNXz.js} +1 -1
- package/server/{merge-7rqkTUm2.js → merge-BN8FGJ2q.js} +3 -3
- package/server/{merge-agent-4Zhlgvqp.js → merge-agent-B3u2szOL.js} +29 -29
- package/server/{merge-agent-36wfYm2u.js → merge-agent-ejC7Wos8.js} +1 -1
- package/server/{merge-batch-itfnwdsT.js → merge-batch-DyqlgYGp.js} +1 -1
- package/server/{merge-blockers-Bto_Oe_o.js → merge-blockers-cq-aS2KG.js} +2 -2
- package/server/merge-ops-CFkQtXEj.js +2 -0
- package/server/{merge-rebase-Czfqfe4q.js → merge-rebase-Dl7yIxtV.js} +2 -2
- package/server/{merge-set-BIkGQL9j.js → merge-set-CZ9Nbay0.js} +3 -3
- package/server/{merge-set-G1RHcu3D.js → merge-set-Dy0D0r3i.js} +1 -1
- package/server/{merge-sync-DIrmlZUr.js → merge-sync-CG9kDCdT.js} +1 -1
- package/server/{merge-sync-B43Dybea.js → merge-sync-D7jWLgCC.js} +2 -2
- package/server/{merge-train-DGqVuNZV.js → merge-train-CH33XJOH.js} +3 -3
- package/server/{merge-train-deps-q15XLnAS.js → merge-train-deps-JoVdGnOg.js} +4 -4
- package/server/{merge-verification-Cqfxx6bE.js → merge-verification-D4wTChdX.js} +4 -4
- package/server/{multipart-parser-CiPxxfUH.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-DAD9FJtQ.js → orphan-proposed-reconciler-BIcNu4tl.js} +1 -1
- package/server/{orphan-proposed-reconciler-BWWHn4Lr.js → orphan-proposed-reconciler-DI_IS1p_.js} +10 -10
- package/server/package-lock.json +2 -2
- package/server/package.json +1 -1
- package/server/{pan-dir-Bj7Hy8iu.js → pan-dir-CQIfKG8c.js} +4 -4
- package/server/{paths-C9DkhIOT.js → paths-Blj6A9AJ.js} +2 -2
- package/server/{pickup-CKRuGDsB.js → pickup-BtvRBbvI.js} +1 -1
- package/server/{pipeline-notifier-BkKbQ8ji.js → pipeline-notifier-BH4PAi-w.js} +1 -1
- package/server/{pipeline-notifier-CAurUste.js → pipeline-notifier-D_WYtEwl.js} +2 -2
- package/server/{project-pipelines-BRWaGmI4.js → project-pipelines-jMTitpeO.js} +2 -2
- package/server/projects-CrBE6IhN.js +3 -0
- package/server/{prompts-DfI5qbTW.js → prompts-B3njaImU.js} +2 -2
- package/server/{providers-CWDXoaMA.js → providers-BbEyFhPX.js} +7 -7
- package/server/{providers-D-5txBRc.js → providers-DnPxkHoG.js} +1 -1
- package/server/public/assets/chunk-BO2N2NFS-3qh9TUJi.js +103 -0
- package/server/public/assets/{diagram-OG6HWLK6-Avtvq2qI.js → diagram-OG6HWLK6-D8UVTPj7.js} +1 -1
- package/server/public/assets/{dist-BEHQuasD.js → dist-BvLLn1YC.js} +3 -3
- package/server/public/assets/{dist-BvmY-qb1.js → dist-CyubL7Wj.js} +1 -1
- package/server/public/assets/{ganttDiagram-6RSMTGT7-7KhCd0fH.js → ganttDiagram-6RSMTGT7-BI4E1LbQ.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-iQoBMTf0.js → highlighted-body-OFNGDK62-D_bapWkF.js} +1 -1
- package/server/public/assets/index-BAZxZ-8I.js +796 -0
- package/server/public/assets/{index-DUFDmvmH.css → index-FBG3JBfq.css} +1 -1
- package/server/public/assets/{linear-CiJHW9g5.js → linear-CEdobObr.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-BYP8MI37.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-BOhmvUhW.js → pieDiagram-4H26LBE5-DT79L01f.js} +1 -1
- package/server/public/assets/{prod-DmLBBqat.js → prod-CR_K2DFV.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-Cjku660G.js → quadrantDiagram-W4KKPZXB-BEkKXXrL.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-D52w5oPh.js → sankeyDiagram-5OEKKPKP-BxSCqn-j.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-BTO07_Iv.js → xychartDiagram-2RQKCTM6-DicwJGG_.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests-CKZPWhjD.js → pull-requests-43LPDfM8.js} +1 -1
- package/server/{pull-requests-Bmre-Xlz.js → pull-requests-DyUkQl4W.js} +3 -3
- package/server/{rally-BBd9tQ__.js → rally-BtWjybOa.js} +3 -3
- package/server/{rally-api-DDc85HIz.js → rally-api-B-YA_oXx.js} +1 -1
- package/server/{rally-api-DxZFObI_.js → rally-api-B-osULNL.js} +2 -2
- package/server/{rally-client-BADHn0m_.js → rally-client-CzFymP7P.js} +1 -1
- package/server/{rally-client-DvvLiAQP.js → rally-client-sErNQBO0.js} +5 -5
- package/server/rally-oggyp4cs.js +3 -0
- package/server/{reap-terminal-sessions-D6JDJsqF.js → reap-terminal-sessions-2s-fvilz.js} +1 -1
- package/server/{reap-terminal-sessions-D_xvy-Mk.js → reap-terminal-sessions-DnDQ7pf9.js} +1 -1
- package/server/{rebuild-stack-D19i080j.js → rebuild-stack-CoU-HqZj.js} +6 -6
- package/server/{rebuild-stack-GOsWqXi3.js → rebuild-stack-nGD_nPZo.js} +1 -1
- package/server/{reconstruct-cache-lQrG4xGg.js → reconstruct-cache-Wj8GrYB0.js} +6 -6
- package/server/{record-pyB6VA32.js → record-lEYK__LD.js} +1 -1
- package/server/{recovery-trip-Dfh1tNHn.js → recovery-trip-BT7nb9OV.js} +2 -2
- package/server/{release-engine-DxcMWRuK.js → release-engine-CBLQXDlH.js} +5 -5
- package/server/{release-set-BYsgX7o6.js → release-set-BNiqi7hy.js} +3 -3
- package/server/{remote-DmeL21dF.js → remote-DW_TWQnr.js} +3 -3
- package/server/{remote-8W2Yhygw.js → remote-DcO9An_f.js} +3 -3
- package/server/{remote-agents-BfQBE6MN.js → remote-agents-C4cyxHQS.js} +6 -6
- package/server/{remote-agents-DlvbzO7m.js → remote-agents-Cv-U-_V8.js} +1 -1
- package/server/{remote-completion-BgkiSQmx.js → remote-completion-PhXGGFQy.js} +13 -13
- package/server/{resolver-dTpSSzaH.js → resolver-C7dLn8OK.js} +2 -2
- package/server/resume-BYZBIab-.js +3 -0
- package/server/{review-agent-D025Wt7w.js → review-agent-Dn-yn7Zj.js} +23 -23
- package/server/{review-agent-Rub0OpZc.js → review-agent-u5q3ip7H.js} +1 -1
- package/server/{review-artifacts-CX951jTU.js → review-artifacts-D4T04aYI.js} +6 -6
- package/server/{review-context-DGGGR_w5.js → review-context-Rc0VDLG_.js} +8 -8
- package/server/{review-monitor-0_qqMcnS.js → review-monitor-BC--miCO.js} +2 -2
- package/server/{review-status-Br6lAFGO.js → review-status-CG0iDuWa.js} +1 -1
- package/server/{review-status-4qqLkRMu.js → review-status-Dc1l4dVz.js} +18 -18
- package/server/{review-status-enrichment-Cr8m3uVL.js → review-status-enrichment-C1a1OG_1.js} +3 -3
- package/server/{review-status-sync-OC-l1lNt.js → review-status-sync-CAr-hfnJ.js} +2 -2
- package/server/{review-status-sync-D3KUhsdA.js → review-status-sync-CfSixhhX.js} +1 -1
- package/server/{review-verdict-feedback-DrWMuRaj.js → review-verdict-feedback-CVDbIDBe.js} +7 -7
- package/server/{review-verdict-feedback-YOzmsq9G.js → review-verdict-feedback-D2Q960wX.js} +1 -1
- package/server/{rollup-DmazRY0j.js → rollup-CakjztPl.js} +1 -1
- package/server/{rollup-CnxbwaLH.js → rollup-DctoIu-A.js} +8 -8
- package/server/{scanner-DE1MqAaF.js → scanner-BTM1jc_u.js} +7 -7
- package/server/{sequence-io-C0uoqfGx.js → sequence-io-pnoIDGv4.js} +4 -4
- package/server/{sequencer-agent-i-b2u4SJ.js → sequencer-agent-9Soi-WL-.js} +6 -6
- package/server/server.js +422 -1746
- package/server/{service-D0_gh2tl.js → service-DfTVoqJg.js} +46 -46
- package/server/{session-fork-DZ12vipL.js → session-fork-C4jAFHj8.js} +2 -2
- package/server/session-history-DanhhiCw.js +168 -0
- package/server/{settings-ByqjPtFO.js → settings-Cuc12oP_.js} +2 -2
- package/server/settings-Cy7SCFO9.js +2 -0
- package/server/{settings-DCC4BAqj.js → settings-DfT3f86D.js} +3 -3
- package/server/{shadow-engineering-BhnmtW5m.js → shadow-engineering-bKuKTCn-.js} +3 -3
- package/server/{shadow-state-ByXZehsy.js → shadow-state-CVHpRWlb.js} +1 -1
- package/server/{shadow-state-CKm8xWX9.js → shadow-state-DJz6_pb_.js} +2 -2
- package/server/{ship-log-DE_0Cv_i.js → ship-log-CwqPFfqx.js} +1 -1
- package/server/{smart-compaction-h4_ca6Uk.js → smart-compaction-B4KlpZGN.js} +1 -1
- package/server/{smart-compaction-D5Zen3AA.js → smart-compaction-CiWfGfRZ.js} +7 -7
- package/server/{spawn-planning-session-Dueit4WX.js → spawn-planning-session-CU-DwyDl.js} +15 -15
- package/server/{spawn-planning-session-Bgi7Ub02.js → spawn-planning-session-D5N3RuLG.js} +1 -1
- package/server/{specialist-completion-BZ8M-WZ0.js → specialist-completion-CJcv-NXH.js} +1 -1
- package/server/{specialist-context-BMq83C58.js → specialist-context-B2HlbNxS.js} +5 -5
- package/server/{specialist-handoff-logger-BxX1YefH.js → specialist-handoff-logger-CQyF1ygu.js} +2 -2
- package/server/{specialist-logs-BWZYcJ6P.js → specialist-logs-CdcUpfjj.js} +3 -3
- package/server/{specialists-BudKrjOu.js → specialists-CFgw_0Q6.js} +1657 -113
- package/server/{specialists-DrPrC9Y9.js → specialists-CwzFdapR.js} +18 -18
- package/server/{specialists-ZkW4Mb7U.js → specialists-D7AcFi1u.js} +1 -1
- package/server/{specialists-8ZAguXef.js → specialists-k22_Btaq.js} +1 -1
- package/server/specs-RzcDgozr.js +3 -0
- package/server/{src-DHn4Rd2F.js → src-B4TTzNSr.js} +72 -1
- package/server/{src-Dv6L03vW.js → src-BvpMg4EB.js} +3 -3
- package/server/{src-DNUUqkec.js → src-D4YUZrwR.js} +6 -6
- package/server/{stack-health-DxsTx7II.js → stack-health-CSgcYcr8.js} +2 -2
- package/server/{stack-health-Dclm7_tu.js → stack-health-DVN7zRnL.js} +1 -1
- package/server/{state-home-CRowbXqU.js → state-home-CEvD_v5F.js} +6 -6
- package/server/{state-mapping-BvAgFK8n.js → state-mapping-C13UaCL7.js} +1 -1
- package/server/{stuck-remediation-CFWUP8_I.js → stuck-remediation-CxsyxwFO.js} +43 -21
- package/server/{stuck-remediation-CLHd-lrF.js → stuck-remediation-nTIvhGOR.js} +1 -1
- package/server/{summary-fork-CKc01Our.js → summary-fork-CnRMPCYd.js} +2 -2
- package/server/{summary-fork-CtCwBJ2Z.js → summary-fork-gKSoFAnK.js} +8 -8
- package/server/{supervisor-BA5D72Qa.js → supervisor-CZMs8s0M.js} +2 -2
- package/server/supervisor-CfX192ma.js +2 -0
- package/server/{swarm-readiness-CL5sM9B1.js → swarm-readiness-h6-pwY8w.js} +3 -3
- package/server/{system-prerequisites-DmFSXIE5.js → system-prerequisites-DZZTi2G6.js} +1 -1
- package/server/{teardown-workspace-DWmFJzTw.js → teardown-workspace-B4D-oCVg.js} +17 -17
- package/server/{test-agent-queue-DjsQoV5X.js → test-agent-queue-CnuYku4B.js} +6 -6
- package/server/{test-verdict-BSqsQp3G.js → test-verdict-CRsPpByy.js} +1 -1
- package/server/{test-verdict-D1AmZ2c0.js → test-verdict-CXMLATGc.js} +1 -1
- package/server/{tldr-daemon-DD9rI5gA.js → tldr-daemon-CgZQ3jmZ.js} +1 -1
- package/server/{tldr-daemon-C-MGomL8.js → tldr-daemon-CuA8hz21.js} +2 -2
- package/server/{tmux-x291Gjjb.js → tmux-By8E_Yv_.js} +1 -1
- package/server/{tmux-C_d-lSIq.js → tmux-C3g9VFcg.js} +2 -2
- package/server/{token-DfBf1bsd.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-DItsdelv.js → tracker-config-BzfVj41Z.js} +1 -1
- package/server/{tracker-config-CNODpd11.js → tracker-config-dQxC15vH.js} +2 -2
- package/server/{tracker-utils-Ch2_5GGf.js → tracker-utils--z8FLSWn.js} +2 -2
- package/server/{tracker-utils-B9ZoVA9b.js → tracker-utils-DkKyRT0H.js} +1 -1
- package/server/{traefik-connect-BF4x_LUQ.js → traefik-connect-CZYB3dlm.js} +1 -1
- package/server/{tunnel-r_5nHAI6.js → tunnel-BpWZs0Jy.js} +3 -3
- package/server/{tunnel-YD80_IHr.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-33JEP4LZ.js → types-tlXf80x3.js} +1 -1
- package/server/{uat-train-DjkFWXge.js → uat-train-BRo6DM7p.js} +24 -24
- package/server/{uat-train-DDI00aqD.js → uat-train-utGVmqdm.js} +1 -1
- package/server/{validation-DUTiJnyz.js → validation-CsPVsoA0.js} +4 -4
- package/server/{validation-ict8hnXk.js → validation-Dq_wwcw3.js} +1 -1
- package/server/{verification-runner-inLgeQux.js → verification-runner-CMT5WRMS.js} +11 -11
- package/server/{verification-runner-ATaLbpr5.js → verification-runner-D0Uh-9jc.js} +1 -1
- package/server/{vtt-parser-QnRfcjiU.js → vtt-parser-C_XPlifj.js} +1 -1
- package/server/{work-agent-prompt-fZljjA1_.js → work-agent-prompt-ZTAb2Hyf.js} +11 -11
- package/server/workflows-BLwxUMP7.js +2 -0
- package/server/{workflows-oBnJ7Tm0.js → workflows-CXRwhw_o.js} +14 -14
- package/server/{workspace-B2WOW9Hw.js → workspace-9UEsKuiP.js} +1 -1
- package/server/{workspace-CNuW2j41.js → workspace-CNfuj1-5.js} +3 -3
- package/server/{workspace-config-CBgMGhWs.js → workspace-config-ChWOECy0.js} +1 -1
- package/server/{workspace-manager-DjUAJCSs.js → workspace-manager-BO-6k3sP.js} +1 -1
- package/server/{workspace-manager-CB-R07R3.js → workspace-manager-D8AByFIT.js} +13 -13
- package/server/{workspace-metadata-9Nn5kgRl.js → workspace-metadata-CvC268MN.js} +2 -2
- package/server/{workspace-metadata-Fd58uUQG.js → workspace-metadata-DZiJtnuF.js} +1 -1
- package/server/{workspaces-BjWXntty.js → workspaces-D-uIoqbg.js} +103 -95
- package/server/{writer-CQMGzEkw.js → writer-BUweuRPx.js} +1 -1
- package/server/{writer-fe1-8iGc.js → writer-CrP2xuBn.js} +3 -3
- package/sync-sources/hooks/ask-user-question-hook +7 -1
- package/sync-sources/hooks/record-cost-event.js +2 -2
- package/sync-sources/hooks/record-cost-event.js.map +1 -1
- package/server/agent-runtime-mirror-DrWxopNA.js +0 -37
- package/server/cli-ClIQwgMI.js +0 -3
- package/server/deacon-swarm-BY5hKNaU.js +0 -2
- package/server/dist-DGTwcZhI.js +0 -3
- package/server/forge-XlDgPQWs.js +0 -2
- package/server/hume-K1pi8jC4.js +0 -3
- package/server/inspect-agent-477VxQim.js +0 -2
- package/server/merge-ops-PzqsW69V.js +0 -2
- package/server/projects-KJ94e50I.js +0 -3
- package/server/public/assets/chunk-BO2N2NFS-ClukPsZQ.js +0 -103
- package/server/public/assets/index-DnTZ2QeN.js +0 -796
- package/server/public/assets/mermaid-GHXKKRXX-DZJOwgBG.js +0 -1
- package/server/rally-Dc2Wnxw2.js +0 -3
- package/server/resume-DhcIqsTm.js +0 -3
- package/server/settings-yydgaqhv.js +0 -2
- package/server/specs-DwoAEGrW.js +0 -3
- package/server/supervisor-DHjumXlL.js +0 -2
- package/server/token-util-xNaV-00f.js +0 -3
- package/server/workflows-tU7KKxQi.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 { a as init_jsonl_parser, t as getActiveSessionModelSync } from "./jsonl-parser-
|
|
26
|
-
import { i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-
|
|
27
|
-
import { T as verifyAppCanMerge, f as init_github_app, m as isIntegrationPermissionError } from "./github-app-
|
|
28
|
-
import { a as loadWorkspaceMetadataSync, i as listWorkspaceMetadataSync } from "./workspace-metadata-
|
|
29
|
-
import { n as restoreTrackedBeadsExport, t as init_beads_restore } from "./beads-restore-
|
|
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}`);
|
|
@@ -2846,8 +2846,8 @@ async function triggerMerge(issueId) {
|
|
|
2846
2846
|
try {
|
|
2847
2847
|
if (workspaceInfo.isRemote && workspaceInfo.vmName) {
|
|
2848
2848
|
console.log(`[merge] Remote workspace detected for ${issueId}, using review artifact merge...`);
|
|
2849
|
-
const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-
|
|
2850
|
-
const { getForgeAdapter } = await import("./forge-
|
|
2849
|
+
const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-Dy0D0r3i.js");
|
|
2850
|
+
const { getForgeAdapter } = await import("./forge-8y6aEPTB.js");
|
|
2851
2851
|
const remotePrimaryRepo = (getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId))?.repos[0];
|
|
2852
2852
|
const remoteTargetBranch = remotePrimaryRepo?.targetBranch || "main";
|
|
2853
2853
|
const remoteForge = remotePrimaryRepo?.forge || "github";
|
|
@@ -2882,7 +2882,7 @@ async function triggerMerge(issueId) {
|
|
|
2882
2882
|
readyForMerge: false
|
|
2883
2883
|
});
|
|
2884
2884
|
completePendingOperation(issueId, null);
|
|
2885
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
2885
|
+
const { postMergeLifecycle } = await import("./merge-agent-ejC7Wos8.js");
|
|
2886
2886
|
await postMergeLifecycle(issueId, projectPath);
|
|
2887
2887
|
return {
|
|
2888
2888
|
success: true,
|
|
@@ -2919,10 +2919,10 @@ async function triggerMerge(issueId) {
|
|
|
2919
2919
|
const projectConfig = findProjectByTeamSync(issuePrefix);
|
|
2920
2920
|
if (projectConfig?.workspace?.type === "polyrepo" && projectConfig?.workspace?.repos) {
|
|
2921
2921
|
console.log(`[merge] Polyrepo detected for ${issueId}, coordinating merge set...`);
|
|
2922
|
-
const { getMergeSetSync, ensureMergeSetForIssueSync, upsertMergeSetSync, withRepoStateSync } = await import("./merge-set-
|
|
2923
|
-
const { runQualityGates } = await import("./validation-
|
|
2924
|
-
const { getForgeAdapter } = await import("./forge-
|
|
2925
|
-
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");
|
|
2926
2926
|
let mergeSet = getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId);
|
|
2927
2927
|
if (!mergeSet) {
|
|
2928
2928
|
const error = `No merge set found for ${issueId}`;
|
|
@@ -3192,7 +3192,7 @@ async function triggerMerge(issueId) {
|
|
|
3192
3192
|
readyForMerge: false
|
|
3193
3193
|
});
|
|
3194
3194
|
completePendingOperation(issueId, null);
|
|
3195
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
3195
|
+
const { postMergeLifecycle } = await import("./merge-agent-ejC7Wos8.js");
|
|
3196
3196
|
advanceQueue();
|
|
3197
3197
|
await postMergeLifecycle(issueId, projectPath);
|
|
3198
3198
|
return {
|
|
@@ -3203,8 +3203,8 @@ async function triggerMerge(issueId) {
|
|
|
3203
3203
|
repos: mergeResults
|
|
3204
3204
|
};
|
|
3205
3205
|
}
|
|
3206
|
-
const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-
|
|
3207
|
-
const { getForgeAdapter } = await import("./forge-
|
|
3206
|
+
const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-Dy0D0r3i.js");
|
|
3207
|
+
const { getForgeAdapter } = await import("./forge-8y6aEPTB.js");
|
|
3208
3208
|
const primaryRepo = (getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId))?.repos[0];
|
|
3209
3209
|
const targetBranch = primaryRepo?.targetBranch || "main";
|
|
3210
3210
|
const primaryForge = primaryRepo?.forge || "github";
|
|
@@ -3246,7 +3246,7 @@ async function triggerMerge(issueId) {
|
|
|
3246
3246
|
};
|
|
3247
3247
|
}
|
|
3248
3248
|
if (githubPrRef) try {
|
|
3249
|
-
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-
|
|
3249
|
+
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-Bwt9lK4A.js");
|
|
3250
3250
|
if (isGitHubAppConfigured()) {
|
|
3251
3251
|
const prState = await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number));
|
|
3252
3252
|
if (prState.state !== "OPEN" && !prState.merged) {
|
|
@@ -3307,7 +3307,7 @@ async function triggerMerge(issueId) {
|
|
|
3307
3307
|
readyForMerge: false
|
|
3308
3308
|
});
|
|
3309
3309
|
completePendingOperation(issueId, null);
|
|
3310
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
3310
|
+
const { postMergeLifecycle } = await import("./merge-agent-ejC7Wos8.js");
|
|
3311
3311
|
await postMergeLifecycle(issueId, projectPath, branchName);
|
|
3312
3312
|
return {
|
|
3313
3313
|
success: true,
|
|
@@ -3321,13 +3321,13 @@ async function triggerMerge(issueId) {
|
|
|
3321
3321
|
} catch (prStateErr) {
|
|
3322
3322
|
console.warn(`[merge] Pre-merge PR state check failed for ${issueId}: ${prStateErr.message} — proceeding (check is best-effort)`);
|
|
3323
3323
|
}
|
|
3324
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
3324
|
+
const { postMergeLifecycle } = await import("./merge-agent-ejC7Wos8.js");
|
|
3325
3325
|
const agentId = `agent-${issueId.toLowerCase()}`;
|
|
3326
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.`;
|
|
3327
3327
|
setReviewStatus(issueId, { mergeStep: "rebasing" });
|
|
3328
3328
|
console.log(`[merge] Rebasing ${branchName} onto ${targetBranch} for ${issueId} (agent=${await Effect.runPromise(sessionExists(agentId)) ? "running" : "stopped"})...`);
|
|
3329
3329
|
{
|
|
3330
|
-
const { beginShipLog, appendShipLog } = await import("./ship-log-
|
|
3330
|
+
const { beginShipLog, appendShipLog } = await import("./ship-log-CwqPFfqx.js");
|
|
3331
3331
|
beginShipLog(issueId);
|
|
3332
3332
|
appendShipLog(issueId, `Ship started: rebasing ${branchName} onto ${targetBranch}…`, "rebasing");
|
|
3333
3333
|
}
|
|
@@ -3455,7 +3455,7 @@ async function triggerMerge(issueId) {
|
|
|
3455
3455
|
});
|
|
3456
3456
|
let skipLocalVerification = false;
|
|
3457
3457
|
if (primaryForge === "github" && artifactUrl) try {
|
|
3458
|
-
const { parsePullRequestRef, getCiCheckRunsStatePromise, isGitHubAppConfigured } = await import("./github-app-
|
|
3458
|
+
const { parsePullRequestRef, getCiCheckRunsStatePromise, isGitHubAppConfigured } = await import("./github-app-Bwt9lK4A.js");
|
|
3459
3459
|
if (isGitHubAppConfigured()) {
|
|
3460
3460
|
const ref = parsePullRequestRef({ url: artifactUrl });
|
|
3461
3461
|
if (ref) {
|
|
@@ -3476,12 +3476,12 @@ async function triggerMerge(issueId) {
|
|
|
3476
3476
|
} catch (ciErr) {
|
|
3477
3477
|
console.warn(`[merge] CI-state check failed (${ciErr.message?.slice(0, 120)}) — falling back to local verification for ${issueId}`);
|
|
3478
3478
|
}
|
|
3479
|
-
const { appendShipLog } = await import("./ship-log-
|
|
3479
|
+
const { appendShipLog } = await import("./ship-log-CwqPFfqx.js");
|
|
3480
3480
|
if (skipLocalVerification) appendShipLog(issueId, "✓ Local verification skipped — CI already green on this exact commit", "verifying");
|
|
3481
3481
|
const verifyResult = skipLocalVerification ? { outcome: "passed" } : await (async () => {
|
|
3482
3482
|
console.log(`[merge] Running post-rebase verification for ${issueId}...`);
|
|
3483
3483
|
appendShipLog(issueId, "Running post-rebase verification (full quality-gate suite)…", "verifying");
|
|
3484
|
-
const { runVerificationForIssue } = await import("./verification-runner-
|
|
3484
|
+
const { runVerificationForIssue } = await import("./verification-runner-D0Uh-9jc.js");
|
|
3485
3485
|
return Effect.runPromise(runVerificationForIssue(issueId, workspacePath, { isRemote: false }, "merge-verify", {
|
|
3486
3486
|
syncTargetBranch: false,
|
|
3487
3487
|
onGateLog: (line) => appendShipLog(issueId, line, "verifying")
|
|
@@ -3514,7 +3514,7 @@ async function triggerMerge(issueId) {
|
|
|
3514
3514
|
console.log(`[merge] Post-rebase verification ${verifyResult.outcome} for ${issueId}`);
|
|
3515
3515
|
setReviewStatus(issueId, { mergeStep: "reporting-statuses" });
|
|
3516
3516
|
try {
|
|
3517
|
-
const { getPullRequestState, isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-
|
|
3517
|
+
const { getPullRequestState, isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-Bwt9lK4A.js");
|
|
3518
3518
|
if (githubPrRef && isGitHubAppConfigured()) {
|
|
3519
3519
|
const sha = (await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number))).headSha.trim();
|
|
3520
3520
|
if (sha) {
|
|
@@ -3542,7 +3542,7 @@ async function triggerMerge(issueId) {
|
|
|
3542
3542
|
} catch (prMergeErr) {
|
|
3543
3543
|
console.error(`[merge] Review artifact merge threw for ${issueId}:`, prMergeErr);
|
|
3544
3544
|
try {
|
|
3545
|
-
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-
|
|
3545
|
+
const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-Bwt9lK4A.js");
|
|
3546
3546
|
if (githubPrRef && isGitHubAppConfigured()) {
|
|
3547
3547
|
artifactMerged = (await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number))).merged;
|
|
3548
3548
|
if (artifactMerged) console.log(`[merge] Race-detected: PR #${githubPrRef.number} for ${issueId} was already merged despite thrown error; proceeding`);
|
|
@@ -3659,8 +3659,8 @@ const postForgeApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/forge
|
|
|
3659
3659
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
3660
3660
|
if (!/^[A-Z]+-\d+$/i.test(issueId)) return jsonResponse({ error: "Invalid issue ID format" }, { status: 400 });
|
|
3661
3661
|
return yield* Effect.promise(async () => {
|
|
3662
|
-
const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-
|
|
3663
|
-
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");
|
|
3664
3664
|
let mergeSet = getMergeSetSync(issueId);
|
|
3665
3665
|
if (!mergeSet) return jsonResponse({ error: `No merge set found for ${issueId}` }, { status: 404 });
|
|
3666
3666
|
const results = [];
|
|
@@ -3748,8 +3748,8 @@ const postForgeMergeRoute = HttpRouter.add("POST", "/api/issues/:issueId/forge-m
|
|
|
3748
3748
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
3749
3749
|
if (!/^[A-Z]+-\d+$/i.test(issueId)) return jsonResponse({ error: "Invalid issue ID format" }, { status: 400 });
|
|
3750
3750
|
return yield* Effect.promise(async () => {
|
|
3751
|
-
const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-
|
|
3752
|
-
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");
|
|
3753
3753
|
let mergeSet = getMergeSetSync(issueId);
|
|
3754
3754
|
if (!mergeSet) return jsonResponse({ error: `No merge set found for ${issueId}` }, { status: 404 });
|
|
3755
3755
|
const results = [];
|
|
@@ -3942,7 +3942,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
|
|
|
3942
3942
|
console.log(`[approve] Starting role pipeline for ${issueId}...`);
|
|
3943
3943
|
let reviewResult;
|
|
3944
3944
|
try {
|
|
3945
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
3945
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
|
|
3946
3946
|
reviewResult = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
3947
3947
|
issueId,
|
|
3948
3948
|
workspace: workspacePath,
|
|
@@ -3989,7 +3989,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
|
|
|
3989
3989
|
}
|
|
3990
3990
|
console.log(`[approve] Step 3/3: Running server-side rebase for ${issueId}...`);
|
|
3991
3991
|
try {
|
|
3992
|
-
const { rebaseFeatureBranch } = await import("./merge-rebase-
|
|
3992
|
+
const { rebaseFeatureBranch } = await import("./merge-rebase-Dl7yIxtV.js");
|
|
3993
3993
|
const workspacePathForRebase = join(projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
3994
3994
|
const rebaseResult = await Effect.runPromise(rebaseFeatureBranch(workspacePathForRebase, branchName, "main", issueId));
|
|
3995
3995
|
if (!rebaseResult.success) {
|
|
@@ -4009,7 +4009,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
|
|
|
4009
4009
|
completePendingOperation(issueId, pushResult.error);
|
|
4010
4010
|
return jsonResponse({ error: pushResult.error }, { status: pushResult.httpStatus });
|
|
4011
4011
|
}
|
|
4012
|
-
const { approve: lifecycleApprove } = await import("./lifecycle-
|
|
4012
|
+
const { approve: lifecycleApprove } = await import("./lifecycle-Ck2UR27D.js");
|
|
4013
4013
|
const ghResolved = resolveGitHubIssueSync(issueId);
|
|
4014
4014
|
const isGitHubIssueFlag = ghResolved.isGitHub;
|
|
4015
4015
|
const lifecycleCtx = {
|
|
@@ -4043,7 +4043,7 @@ const getMergeQueueRoute = HttpRouter.add("GET", "/api/merge-queue", httpHandler
|
|
|
4043
4043
|
})));
|
|
4044
4044
|
const postInternalPipelineNotifyRoute = HttpRouter.add("POST", "/api/internal/pipeline/notify", httpHandler(Effect.gen(function* () {
|
|
4045
4045
|
const request = yield* HttpServerRequest.HttpServerRequest;
|
|
4046
|
-
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"));
|
|
4047
4047
|
const expected = getInternalTokenSync();
|
|
4048
4048
|
if (!expected) return jsonResponse({
|
|
4049
4049
|
ok: false,
|
|
@@ -4057,7 +4057,7 @@ const postInternalPipelineNotifyRoute = HttpRouter.add("POST", "/api/internal/pi
|
|
|
4057
4057
|
}, 403);
|
|
4058
4058
|
const event = yield* readJsonBody;
|
|
4059
4059
|
const type = event.type;
|
|
4060
|
-
const { notifyPipelineSync } = yield* Effect.promise(() => import("./pipeline-notifier-
|
|
4060
|
+
const { notifyPipelineSync } = yield* Effect.promise(() => import("./pipeline-notifier-BH4PAi-w.js"));
|
|
4061
4061
|
switch (type) {
|
|
4062
4062
|
case "status_changed": {
|
|
4063
4063
|
const issueId = event.issueId;
|
|
@@ -4832,7 +4832,7 @@ const patchWorkspaceTieredExecutionRoute = HttpRouter.add("PATCH", "/api/workspa
|
|
|
4832
4832
|
if (override !== "on" && override !== "off" && override !== null && override !== void 0) return jsonResponse({ error: "Invalid tiered-execution override" }, { status: 400 });
|
|
4833
4833
|
const project = getProjectSync(extractPrefixSync(issueId) ?? issueId.split("-")[0]);
|
|
4834
4834
|
if (!project) return jsonResponse({ error: "Project not found" }, { status: 404 });
|
|
4835
|
-
yield* Effect.promise(() => import("./record-
|
|
4835
|
+
yield* Effect.promise(() => import("./record-lEYK__LD.js").then((m) => m.writeRecordTieredExecutionOverride(project, issueId, override)));
|
|
4836
4836
|
const projectPath = project.path;
|
|
4837
4837
|
const location = yield* resolvePlanLocation(projectPath, issueId);
|
|
4838
4838
|
if (!location) return jsonResponse({ error: "No vBRIEF plan found for this workspace" }, { status: 404 });
|
|
@@ -5269,7 +5269,7 @@ const postWorkspaceReviewRoute = HttpRouter.add("POST", "/api/review/:issueId/tr
|
|
|
5269
5269
|
console.log(`Feature branch push note: ${errorMessage(pushErr)}`);
|
|
5270
5270
|
}
|
|
5271
5271
|
try {
|
|
5272
|
-
const { createReviewArtifactsForIssue } = await import("./review-artifacts-
|
|
5272
|
+
const { createReviewArtifactsForIssue } = await import("./review-artifacts-D4T04aYI.js");
|
|
5273
5273
|
const artifactResult = await Effect.runPromise(createReviewArtifactsForIssue(issueId, workspacePath));
|
|
5274
5274
|
const primaryArtifact = artifactResult.mergeSet?.repos.find((repo) => !!repo.artifactUrl);
|
|
5275
5275
|
artifactResult.mergeSet?.repos.find((repo) => repo.mergeStatus !== "skipped")?.targetBranch;
|
|
@@ -5324,7 +5324,7 @@ const postWorkspaceReviewRoute = HttpRouter.add("POST", "/api/review/:issueId/tr
|
|
|
5324
5324
|
} catch {}
|
|
5325
5325
|
return;
|
|
5326
5326
|
}
|
|
5327
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
5327
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
|
|
5328
5328
|
const prUrl = getReviewStatusSync(issueId)?.prUrl;
|
|
5329
5329
|
const reviewResult = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
5330
5330
|
issueId,
|
|
@@ -5464,7 +5464,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
|
|
|
5464
5464
|
console.log(`[request-review] Feature branch push note: ${errorMessage(pushErr)}`);
|
|
5465
5465
|
}
|
|
5466
5466
|
const prUrl = getReviewStatusSync(issueId)?.prUrl;
|
|
5467
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
5467
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
|
|
5468
5468
|
const result = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
5469
5469
|
issueId,
|
|
5470
5470
|
workspace: workspacePathRerun,
|
|
@@ -5514,7 +5514,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
|
|
|
5514
5514
|
});
|
|
5515
5515
|
} else {
|
|
5516
5516
|
const workspacePath = join(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
5517
|
-
const { spawnRun } = yield* Effect.promise(() => import("./agents-
|
|
5517
|
+
const { spawnRun } = yield* Effect.promise(() => import("./agents-CEcaxSkR.js"));
|
|
5518
5518
|
try {
|
|
5519
5519
|
const testRun = yield* Effect.promise(() => spawnRun(issueId, "test", { workspace: workspacePath }));
|
|
5520
5520
|
setReviewStatus(issueId, { testStatus: "testing" });
|
|
@@ -5603,7 +5603,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
|
|
|
5603
5603
|
autoRequeueCount: newCount
|
|
5604
5604
|
}, { status: 500 });
|
|
5605
5605
|
const result = yield* Effect.promise(async () => {
|
|
5606
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
5606
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
|
|
5607
5607
|
return await Effect.runPromise(spawnReviewRoleForIssue({
|
|
5608
5608
|
issueId,
|
|
5609
5609
|
workspace: workspacePath,
|
|
@@ -5907,7 +5907,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
|
|
|
5907
5907
|
const result = processResetReviewPipeline(issueId, resetWorkspace.exists);
|
|
5908
5908
|
if (result.httpStatus !== 200) return jsonResponse(result.body, { status: result.httpStatus });
|
|
5909
5909
|
try {
|
|
5910
|
-
const { resetPostMergeState } = yield* Effect.promise(() => import("./merge-agent-
|
|
5910
|
+
const { resetPostMergeState } = yield* Effect.promise(() => import("./merge-agent-ejC7Wos8.js"));
|
|
5911
5911
|
resetPostMergeState(issueId);
|
|
5912
5912
|
} catch (err) {
|
|
5913
5913
|
console.warn(`[reset-review] resetPostMergeState best-effort failed for ${issueId}:`, err);
|
|
@@ -5916,7 +5916,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
|
|
|
5916
5916
|
const rerun = body?.rerun === true;
|
|
5917
5917
|
if (rerun) try {
|
|
5918
5918
|
yield* Effect.promise(async () => {
|
|
5919
|
-
const { spawnReviewRoleForIssue } = await import("./review-agent-
|
|
5919
|
+
const { spawnReviewRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
|
|
5920
5920
|
const dispatchArgs = buildReviewRedispatchArgs(issueId, resetWorkspace, workspaceInfo, resolved);
|
|
5921
5921
|
if (dispatchArgs) {
|
|
5922
5922
|
const result = await Effect.runPromise(spawnReviewRoleForIssue({
|
|
@@ -5945,7 +5945,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
|
|
|
5945
5945
|
const postWorkspaceReviewPurgeRoute = HttpRouter.add("POST", "/api/review/:issueId/purge", httpHandler(Effect.gen(function* () {
|
|
5946
5946
|
const issueId = (yield* HttpRouter.params)["issueId"] ?? "";
|
|
5947
5947
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
5948
|
-
const { purgeReviewAgentsForIssue } = yield* Effect.promise(() => import("./review-agent-
|
|
5948
|
+
const { purgeReviewAgentsForIssue } = yield* Effect.promise(() => import("./review-agent-u5q3ip7H.js"));
|
|
5949
5949
|
const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
|
|
5950
5950
|
const purge = yield* Effect.promise(() => purgeReviewAgentsForIssue(projectKey, issueId));
|
|
5951
5951
|
const workspaceInfo = getWorkspaceInfoForIssue(issueId);
|
|
@@ -5975,8 +5975,8 @@ const postWorkspaceAbortReviewRoute = HttpRouter.add("POST", "/api/review/:issue
|
|
|
5975
5975
|
success: false,
|
|
5976
5976
|
error: "Workspace does not exist"
|
|
5977
5977
|
}, { status: 400 });
|
|
5978
|
-
const { resolveProjectFromIssueSync } = yield* Effect.promise(() => import("./projects-
|
|
5979
|
-
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"));
|
|
5980
5980
|
const { killed, failed } = yield* killAllReviewerSessions(resolveProjectFromIssueSync(issueId)?.projectKey, issueId);
|
|
5981
5981
|
setReviewStatus(issueId, {
|
|
5982
5982
|
reviewStatus: "pending",
|
|
@@ -6048,8 +6048,8 @@ const getReviewConfigRoute = HttpRouter.add("GET", "/api/review/:issueId/config"
|
|
|
6048
6048
|
const issueId = ((yield* HttpRouter.params)["issueId"] ?? "").toUpperCase();
|
|
6049
6049
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
6050
6050
|
return jsonResponse(yield* Effect.promise(async () => {
|
|
6051
|
-
const { readIssueRecordSync, resolveProjectForIssue } = await import("./record-
|
|
6052
|
-
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");
|
|
6053
6053
|
const project = resolveProjectForIssue(issueId);
|
|
6054
6054
|
const record = project ? readIssueRecordSync(project, issueId) : null;
|
|
6055
6055
|
return {
|
|
@@ -6075,8 +6075,8 @@ const postReviewConfigRoute = HttpRouter.add("POST", "/api/review/:issueId/confi
|
|
|
6075
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 });
|
|
6076
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 });
|
|
6077
6077
|
return jsonResponse(yield* Effect.promise(async () => {
|
|
6078
|
-
const { ensureIssueRecordSync, readIssueRecordSync, resolveProjectForIssue, writeIssueRecordSync } = await import("./record-
|
|
6079
|
-
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");
|
|
6080
6080
|
const project = resolveProjectForIssue(issueId);
|
|
6081
6081
|
const record = readIssueRecordSync(project, issueId) ?? ensureIssueRecordSync(project, issueId);
|
|
6082
6082
|
if (hasMode) if (body.reviewMode === null) delete record.reviewMode;
|
|
@@ -6470,7 +6470,7 @@ async function readWorkspacePlanningMarkdown(issueId, fileName) {
|
|
|
6470
6470
|
*/
|
|
6471
6471
|
async function readWorkspaceContinueFile(_projectPath, workspacePath, issueId) {
|
|
6472
6472
|
try {
|
|
6473
|
-
const { readRecordContinueViewSync, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-
|
|
6473
|
+
const { readRecordContinueViewSync, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-lEYK__LD.js");
|
|
6474
6474
|
const recordView = readRecordContinueViewSync(resolveProjectForIssue(issueId) ?? getProjectConfigFromWorkspacePath(workspacePath), issueId);
|
|
6475
6475
|
return recordView ? JSON.stringify(recordView, null, 2) : null;
|
|
6476
6476
|
} catch {
|
|
@@ -7239,7 +7239,7 @@ const getWorkspaceReviewStatusRoute = HttpRouter.add("GET", "/api/review/:issueI
|
|
|
7239
7239
|
if (queuePosition === null) try {
|
|
7240
7240
|
const resolved = resolveProjectFromIssueSync(issueId);
|
|
7241
7241
|
if (resolved) {
|
|
7242
|
-
const { getQueueForProject } = yield* Effect.promise(() => import("./merge-
|
|
7242
|
+
const { getQueueForProject } = yield* Effect.promise(() => import("./merge-BLcEZNXz.js"));
|
|
7243
7243
|
const mergePos = findPositionInQueueSync(issueId, getQueueForProject(resolved.projectKey).map((e) => ({
|
|
7244
7244
|
id: String(e.id),
|
|
7245
7245
|
type: "task",
|
|
@@ -7277,7 +7277,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7277
7277
|
const workspaceInfo = getWorkspaceInfoForIssue(issueId);
|
|
7278
7278
|
if (workspaceInfo.exists && workspaceInfo.localPath) {
|
|
7279
7279
|
const localPath = workspaceInfo.localPath;
|
|
7280
|
-
const { getWorkspaceGitInfo } = yield* Effect.promise(() => import("./git-utils-
|
|
7280
|
+
const { getWorkspaceGitInfo } = yield* Effect.promise(() => import("./git-utils-C0neHvQx.js"));
|
|
7281
7281
|
try {
|
|
7282
7282
|
const gitInfo = yield* getWorkspaceGitInfo(localPath);
|
|
7283
7283
|
if (gitInfo.HEAD) update.reviewedAtCommit = gitInfo.HEAD;
|
|
@@ -7292,7 +7292,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7292
7292
|
if (verificationStatus) update.verificationStatus = verificationStatus;
|
|
7293
7293
|
if (readyForMerge !== void 0) update.readyForMerge = readyForMerge;
|
|
7294
7294
|
const status = setReviewStatus(issueId, update);
|
|
7295
|
-
const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-
|
|
7295
|
+
const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-k22_Btaq.js"));
|
|
7296
7296
|
const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
|
|
7297
7297
|
if (reviewStatus && [
|
|
7298
7298
|
"passed",
|
|
@@ -7310,7 +7310,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7310
7310
|
const agentId = `agent-${issueId.toLowerCase()}`;
|
|
7311
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.`;
|
|
7312
7312
|
try {
|
|
7313
|
-
const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-
|
|
7313
|
+
const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-BsJiw5aT.js"));
|
|
7314
7314
|
const wsInfo = getWorkspaceInfoForIssue(issueId);
|
|
7315
7315
|
const fileResult = yield* Effect.promise(() => writeFeedbackFile({
|
|
7316
7316
|
issueId,
|
|
@@ -7374,7 +7374,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7374
7374
|
const agentId = `agent-${issueId.toLowerCase()}`;
|
|
7375
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.`;
|
|
7376
7376
|
try {
|
|
7377
|
-
const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-
|
|
7377
|
+
const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-BsJiw5aT.js"));
|
|
7378
7378
|
const wsInfo = getWorkspaceInfoForIssue(issueId);
|
|
7379
7379
|
const fileResult = yield* Effect.promise(() => writeFeedbackFile({
|
|
7380
7380
|
issueId,
|
|
@@ -7397,16 +7397,24 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7397
7397
|
if (testStatus === "passed") {
|
|
7398
7398
|
setReviewStatus(issueId, { readyForMerge: true });
|
|
7399
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
|
+
});
|
|
7400
7408
|
yield* Effect.promise(async () => {
|
|
7401
7409
|
try {
|
|
7402
|
-
const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-
|
|
7410
|
+
const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-CrBE6IhN.js");
|
|
7403
7411
|
const project = resolveProjectFromIssueSync(issueId);
|
|
7404
7412
|
const repo = (project ? getProjectSync(project.projectKey) : null)?.github_repo;
|
|
7405
7413
|
if (!repo || !repo.includes("/")) return;
|
|
7406
7414
|
const [owner, name] = repo.split("/");
|
|
7407
7415
|
const wsInfo = getWorkspaceInfoForIssue(issueId);
|
|
7408
7416
|
if (!wsInfo?.localPath) return;
|
|
7409
|
-
const { postOverdeckTestsStatus } = await import("./github-app-
|
|
7417
|
+
const { postOverdeckTestsStatus } = await import("./github-app-Bwt9lK4A.js");
|
|
7410
7418
|
await postOverdeckTestsStatus(wsInfo.localPath, owner, name, "success", "Test specialist passed");
|
|
7411
7419
|
} catch (err) {
|
|
7412
7420
|
console.warn(`[review-status] Failed to post overdeck/tests for ${issueId}: ${err.message}`);
|
|
@@ -7421,7 +7429,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
|
|
|
7421
7429
|
}
|
|
7422
7430
|
})));
|
|
7423
7431
|
const notifyAgentId = `agent-${issueId.toLowerCase()}`;
|
|
7424
|
-
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)}`))));
|
|
7425
7433
|
}
|
|
7426
7434
|
}
|
|
7427
7435
|
return jsonResponse(status);
|
|
@@ -7448,7 +7456,7 @@ const postWorkspaceRefreshTokenRoute = HttpRouter.add("POST", "/api/workspaces/:
|
|
|
7448
7456
|
if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
|
|
7449
7457
|
const issueLower = issueId.toLowerCase();
|
|
7450
7458
|
const workspacePath = join(getProjectPath(void 0, extractPrefixSync(issueId) ?? issueId.split("-")[0]), "workspaces", `feature-${issueLower}`);
|
|
7451
|
-
const { refreshWorkspaceToken, isGitHubAppConfigured } = yield* Effect.promise(() => import("./github-app-
|
|
7459
|
+
const { refreshWorkspaceToken, isGitHubAppConfigured } = yield* Effect.promise(() => import("./github-app-Bwt9lK4A.js"));
|
|
7452
7460
|
if (!isGitHubAppConfigured()) return jsonResponse({
|
|
7453
7461
|
success: false,
|
|
7454
7462
|
error: "GitHub App not configured"
|
|
@@ -7463,4 +7471,4 @@ const workspacesRouteLayer = Layer.mergeAll(workspaceDataRouteLayer, postWorkspa
|
|
|
7463
7471
|
//#endregion
|
|
7464
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 };
|
|
7465
7473
|
|
|
7466
|
-
//# sourceMappingURL=workspaces-
|
|
7474
|
+
//# sourceMappingURL=workspaces-D-uIoqbg.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { a as withBdProcessLock, n as init_bd_process_lock } from "./bd-process-lock-
|
|
3
|
-
import { n as init_export, t as exportBeadsJsonl } from "./export-
|
|
2
|
+
import { a as withBdProcessLock, n as init_bd_process_lock } from "./bd-process-lock-XAXAet9O.js";
|
|
3
|
+
import { n as init_export, t as exportBeadsJsonl } from "./export-BJHSVwKP.js";
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
import { readFile, readdir, stat } from "node:fs/promises";
|
|
6
6
|
import { execFile } from "node:child_process";
|
|
@@ -248,4 +248,4 @@ var init_writer = __esmMin((() => {
|
|
|
248
248
|
//#endregion
|
|
249
249
|
export { init_telemetry as a, getBeadsHealth as i, init_writer as n, recordBeadsPull as o, runMutationBatch as r, recordBeadsSyncError as s, formatMutationBatchFailure as t };
|
|
250
250
|
|
|
251
|
-
//# sourceMappingURL=writer-
|
|
251
|
+
//# sourceMappingURL=writer-CrP2xuBn.js.map
|
|
@@ -49,7 +49,13 @@ if declare -f pan_resolve_agent_id >/dev/null && pan_resolve_agent_id; then
|
|
|
49
49
|
fi
|
|
50
50
|
fi
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
# The literal "(PAN-1520)" marker is LOAD-BEARING: scanPendingInputsPromise
|
|
53
|
+
# (src/lib/agent-enrichment.ts, ASK_USER_QUESTION_HOOK_DENY_MARKER) keys on it
|
|
54
|
+
# to keep the question PENDING after this deny. A deny reason without the
|
|
55
|
+
# marker is treated as a real operator answer — the dashboard modal,
|
|
56
|
+
# notification, and needs-you entry never fire (this exact regression shipped
|
|
57
|
+
# in a rewording and silently killed AUQ detection until 2026-07-13).
|
|
58
|
+
REASON='Your question has been surfaced to the operator in the Overdeck dashboard, where they answer it directly. Restate the question and its options to the operator as a short plain-text message and wait for their reply (it arrives as a normal user message). (PAN-1520)'
|
|
53
59
|
|
|
54
60
|
CONTEXT=$(echo "$INPUT" | jq -r '
|
|
55
61
|
def fmt_option:
|
|
@@ -25530,12 +25530,12 @@ function resolveStateReadHomeSync(project, projectKey$1) {
|
|
|
25530
25530
|
}
|
|
25531
25531
|
promisify(execFile$1);
|
|
25532
25532
|
layer$4.pipe(provide(mergeAll(layer$2, layer)));
|
|
25533
|
-
const DEFAULT_STATE_FLUSH_WINDOW_MS =
|
|
25533
|
+
const DEFAULT_STATE_FLUSH_WINDOW_MS = 0;
|
|
25534
25534
|
parseStateFlushWindowMs(process.env.OVERDECK_STATE_FLUSH_WINDOW_MS);
|
|
25535
25535
|
function parseStateFlushWindowMs(value) {
|
|
25536
25536
|
if (!value) return DEFAULT_STATE_FLUSH_WINDOW_MS;
|
|
25537
25537
|
const parsed = Number(value);
|
|
25538
|
-
if (!Number.isFinite(parsed) || parsed
|
|
25538
|
+
if (!Number.isFinite(parsed) || parsed < 0) return DEFAULT_STATE_FLUSH_WINDOW_MS;
|
|
25539
25539
|
return parsed;
|
|
25540
25540
|
}
|
|
25541
25541
|
Promise.resolve();
|