@overdeck/desktop 0.47.1 → 0.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/drizzle/overdeck/0000_overdeck_init.sql +59 -0
- package/package.json +1 -1
- package/server/{acceptance-criteria-Cd7ZGZCq.js → acceptance-criteria-DmtLDbtt.js} +2 -2
- package/server/{activity-logger-CyteR4JO.js → activity-logger-Co5qljIj.js} +55 -4
- package/server/activity-logger-K7FYGF_z.js +3 -0
- package/server/{advancing-selfheal-DieFp3qi.js → advancing-selfheal-8AR68Asf.js} +6 -6
- package/server/{agent-gc-BMcgTDl7.js → agent-gc-BmYeT6eH.js} +5 -5
- package/server/agent-state-Dq3s84-P.js +3 -0
- package/server/{agent-state-service-DFO6qvHp.js → agent-state-service-DK1Vay1E.js} +1 -1
- package/server/{agent-state-service-BOzQhLjU.js → agent-state-service-rjnzpHDx.js} +6 -6
- package/server/{agent-state-source-Ca_zCaII.js → agent-state-source-Ds968-j6.js} +1 -1
- package/server/{agents-CtACUuVG.js → agents-Dls7tfJH.js} +5 -5
- package/server/agents-IPSa5kzn.js +3 -0
- package/server/{archive-planning-Binfb99i.js → archive-planning-Cq7cyinS.js} +51 -24
- package/server/archive-planning-MbkGCBIY.js +2 -0
- package/server/{artifact-index-jobs-Jn7BGOtV.js → artifact-index-jobs-Dj_8kpTd.js} +3 -3
- package/server/{assemble-DsqK9OAq.js → assemble-BTCmbcfH.js} +20 -13
- package/server/{auto-spawn-consent-BooqhC3L.js → auto-spawn-consent-lXqRJ1Dr.js} +304 -121
- package/server/{backlog-auto-trigger-BADGPxov.js → backlog-auto-trigger-Dn-amzt6.js} +3 -3
- package/server/{behavior-B7biGtFT.js → behavior-DIMQMRzs.js} +2 -2
- package/server/{boot-reconciled-stop-events-bQUzU8ns.js → boot-reconciled-stop-events-D6SeUTIr.js} +1 -1
- package/server/{bridge-pool-patrol-DsPj6F7t.js → bridge-pool-patrol-BEjt-xF3.js} +2 -2
- package/server/{briefing-freshness-CUerZqWd.js → briefing-freshness-3PNmL_p3.js} +2 -2
- package/server/{build-info-D0q_i8WM.js → build-info-CJg813Hm.js} +3 -3
- package/server/{build-info-Du74MKiP.js → build-info-CXyeFsXu.js} +1 -1
- package/server/{checkpoint-manager-Cu-R5Uzg.js → checkpoint-manager-9t7G5c1V.js} +1 -1
- package/server/{checkpoint-manager-R5tnaxEY.js → checkpoint-manager-B2G38R3p.js} +3 -3
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-wF84ubZ8.js → checkpoints-CuBgiXO-.js} +1 -1
- package/server/{checkpoints-DYtLu-PB.js → checkpoints-VTZMd4Qm.js} +2 -2
- package/server/{claude-hooks-provision-DXI3Wqlm.js → claude-hooks-provision-55SyQaPz.js} +2 -2
- package/server/{claude-hooks-provision-UKxCeOyj.js → claude-hooks-provision-CEUT-CZd.js} +1 -1
- package/server/{claude-permissions-DYVLnX9t.js → claude-permissions-Cn0dIu2i.js} +2 -2
- package/server/{claude-settings-overlay-DxP2F_gY.js → claude-settings-overlay-B19hdzSA.js} +1 -1
- package/server/{claude-settings-overlay-DsbpIq2d.js → claude-settings-overlay-Yg_ANh81.js} +2 -2
- package/server/{cli-DzRKxxP_.js → cli-C9S84iTy.js} +79 -22
- package/server/cli-M1cwZ__d.js +3 -0
- package/server/{cliproxy-CG4meRFc.js → cliproxy-CJq3KXU6.js} +2 -2
- package/server/{cliproxy-Cwzw39yN.js → cliproxy-DgEZlr7Y.js} +1 -1
- package/server/{close-issue-BX1bATJy.js → close-issue-DPxRddGR.js} +5 -5
- package/server/{closed-issue-reaper-hLt0W86J.js → closed-issue-reaper-C5Zn4GRS.js} +13 -13
- package/server/{closed-issue-reaper-DvnTSN6a.js → closed-issue-reaper-D-2B48Ri.js} +1 -1
- package/server/{codex-rnJN3v3_.js → codex-B3n_rkwn.js} +1 -1
- package/server/{codex-BYwi1uyW.js → codex-CjkD1PJu.js} +6 -6
- package/server/{codex-parser-Poyz29GE.js → codex-parser-DpB1Il-P.js} +2 -2
- package/server/{compaction-continuation-DtMfHN0f.js → compaction-continuation-DZD9ukSE.js} +3 -3
- package/server/{config-R793W0yA.js → config-C5saf4Ja.js} +1 -1
- package/server/{config-CX4vk1CV.js → config-DnLJATZk.js} +2 -2
- package/server/{config-ktAVnp4s.js → config-DvM8jtQK.js} +2 -2
- package/server/{config-yaml-CxdwhAIA.js → config-yaml-BSCqwmX0.js} +11299 -10972
- package/server/{conflict-gate-BSTlwCtF.js → conflict-gate-DXa_L28t.js} +1 -1
- package/server/{conflict-gate-BNv6UolH.js → conflict-gate-WfVqgalf.js} +4 -4
- package/server/{context-layers-DCdaGsRG.js → context-layers-D7UqH9Ab.js} +2 -2
- package/server/{context-layers-DlWsDiRF.js → context-layers-Dpz3Vd6d.js} +3 -3
- package/server/{control-settings-qYYHrIqy.js → control-settings-DVf6pKyv.js} +4 -4
- package/server/{conversation-compaction-BxUKObHb.js → conversation-compaction-5XuH6OBn.js} +1 -1
- package/server/{conversation-compaction-CXQrN3I_.js → conversation-compaction-COrbnX1J.js} +8 -8
- package/server/{conversation-service-CZiUE8Uw.js → conversation-service-BufdtnZF.js} +169 -10
- package/server/{conversation-service-CDnQ3ayN.js → conversation-service-DnUyIiLb.js} +1 -1
- package/server/{conversations-D7lR670u.js → conversations-B4rxz-Wl.js} +17 -10
- package/server/{conversations-DXl5YTf4.js → conversations-D1bwxQMy.js} +1 -1
- package/server/{cost-Aat8HfO_.js → cost-CpFDrJUS.js} +46 -2
- package/server/{cost-CWvN9FP2.js → cost-KLuwKCW9.js} +3 -3
- package/server/{cost-sync-DiUBXwl6.js → cost-sync-cesi9dp8.js} +3 -3
- package/server/{dag-5QlmH0oC.js → dag-BYiFMqpU.js} +2 -2
- package/server/{dangerous-git-ops-DWX6Og8c.js → dangerous-git-ops-BKvd3-Hk.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/{deacon-PW_bg4uL.js → deacon-BbsWw8a6.js} +3 -3
- package/server/{deacon-B1LD5cJU.js → deacon-HdEh0Esp.js} +672 -181
- package/server/deacon-event-client-C93rvOT7.js +237 -0
- package/server/deacon-event-client-Ck5Ei7Mn.js +3 -0
- package/server/{deacon-nudge-log-DPHsO14z.js → deacon-nudge-log-BND_97Wo.js} +4 -3
- package/server/{deacon-pending-lifecycle-2ZflPxgo.js → deacon-pending-lifecycle-CD3YsiQK.js} +3 -3
- package/server/deacon-swarm-DgWADWd_.js +2 -0
- package/server/{deacon-swarm-DwGUgSVp.js → deacon-swarm-rqrl4TMs.js} +39 -18
- package/server/deacon.js +12 -210
- package/server/{dead-end-trip-B06RFIr2.js → dead-end-trip-DSF23CLX.js} +4 -3
- package/server/dead-end-trip-zKlS4v6f.js +2 -0
- package/server/delivery-CsbQdZkS.js +3 -0
- package/server/{deploy-patrol-BNjeCL8u.js → deploy-patrol-kARAkji4.js} +17 -21
- package/server/{deploy-queue-CKT_Ia9p.js → deploy-queue-Bj0HJT1i.js} +2 -2
- package/server/{deploy-queue-DMMYhFC8.js → deploy-queue-rjTUy1RM.js} +1 -1
- package/server/{deploy-window-DC8lze3d.js → deploy-window-B2IM-9G5.js} +10 -44
- package/server/{deploy-window-D_AimdNN.js → deploy-window-BNFWnA8D.js} +1 -1
- package/server/{dev-supervisor-C4F0vbno.js → dev-supervisor-B1mZYXz4.js} +2 -2
- package/server/{devcontainer-renderer-66sqMQIi.js → devcontainer-renderer-B-o68Z5B.js} +3 -3
- package/server/{dist-C5FT9lTG.js → dist-3W--cGMa.js} +1 -1
- package/server/dist-BR0QtwmS.js +3 -0
- package/server/{dist-src-B-AlGWSl.js → dist-src-C-Vk2jNk.js} +1 -1
- package/server/{docker-BxrFhTZ_.js → docker-DH3jUYg1.js} +1 -1
- package/server/{docker-CoAT8R0J.js → docker-meuLKLzV.js} +27 -20
- package/server/{dod-Bg6wsKTV.js → dod-D7-9dCOD.js} +1 -1
- package/server/{driver-CKVGi51s.js → driver-CmsY2RLl.js} +1 -1
- package/server/{durable-review-pipeline-D_DcfIGP.js → durable-review-pipeline-CStTgOAf.js} +1 -1
- package/server/{durable-review-pipeline-HkAgnx0L.js → durable-review-pipeline-Chq0lzjL.js} +1 -1
- package/server/{ensure-devcontainer-Bg5HJAcO.js → ensure-devcontainer-BE3llBWP.js} +1 -1
- package/server/{ensure-devcontainer-DTxChVuA.js → ensure-devcontainer-BXrY7C2Z.js} +4 -4
- package/server/{esm-shims-CaBWIR7f.js → esm-shims-Bzy4ZzNU.js} +1 -1
- package/server/event-store-COd2tOx8.js +3 -0
- package/server/{event-store-CrHcVC5_.js → event-store-D_AR-Y78.js} +184 -11
- package/server/{events-ChEFB7Jp.js → events-CCkFWa7X.js} +1 -1
- package/server/{events-DhRN-6vM.js → events-zjDQozet.js} +3 -3
- package/server/{factory-BezSPaTd.js → factory-DhavwKVc.js} +5 -5
- package/server/{feature-registry-population-DhswNiXx.js → feature-registry-population-DWGBKyWd.js} +4 -4
- package/server/{feature-registry-storage-CUVNpAso.js → feature-registry-storage-C5DkXmCM.js} +3 -3
- package/server/{features-B2CfNPFw.js → features-CC47YcCX.js} +2 -2
- package/server/{feedback-target-CMrEAoeA.js → feedback-target-D9Tex35_.js} +1 -1
- package/server/{feedback-target-VBr9gKgX.js → feedback-target-DoRCR3L-.js} +8 -8
- package/server/{feedback-writer-CY91ckuw.js → feedback-writer-CTSuA6lw.js} +1 -1
- package/server/{feedback-writer-xpFgU632.js → feedback-writer-DdsBdtNL.js} +5 -5
- package/server/{flywheel-DsICCjTR.js → flywheel-DHWHzaYK.js} +1 -1
- package/server/{flywheel-DQqsSm7P.js → flywheel-DJQa9az8.js} +14 -14
- package/server/{flywheel-CTVY3yCG.js → flywheel-TacAI9MA.js} +21 -17
- package/server/{flywheel-merge-order-C-TI4JGu.js → flywheel-merge-order-D2foPh88.js} +1 -1
- package/server/{flywheel-merge-order-CMGz-imq.js → flywheel-merge-order-DRtex2Dt.js} +7 -7
- package/server/forge-CdlCG9aS.js +3 -0
- package/server/{forge-RTNqJe6a.js → forge-c8LeC-tw.js} +2 -2
- package/server/{from-DxGcivc9.js → from-BogSwvr2.js} +1 -1
- package/server/{fs-lock-Bre3sGoz.js → fs-lock-D_GeJtXl.js} +3 -3
- package/server/{fts-operations-BuTdlZFA.js → fts-operations-DP9R-8Q3.js} +3 -3
- package/server/{git-utils-CedsVume.js → git-utils-C31x1lpE.js} +1 -1
- package/server/{git-utils-DtdoEXJk.js → git-utils-xQ74FoSn.js} +5 -4
- package/server/{github-app-DIE8BkHI.js → github-app-CpQSDlv8.js} +1 -1
- package/server/{github-app-gVnZcP9B.js → github-app-D2QuvZ3j.js} +3 -3
- package/server/{github-client-BrAC6ELh.js → github-client-D9YvJX5D.js} +3 -3
- package/server/{github-client-CBOkvBUl.js → github-client-Tpi3PmKX.js} +1 -1
- package/server/{github-pr-lookup-CgMULTPf.js → github-pr-lookup-DvBMv-IW.js} +2 -2
- package/server/{harness-binary-CnBHpd57.js → harness-binary-BHxWf_sX.js} +7 -6
- package/server/{harness-resolve-BVj6sI8m.js → harness-resolve-bj9WMABA.js} +4 -4
- package/server/{health-events-BBWO_Dh9.js → health-events-bCDPn59Z.js} +2 -2
- package/server/{health-events-Der6bOkm.js → health-events-qo7Ss34U.js} +1 -1
- package/server/{hooks-BOavco-e.js → hooks-Dyxtg5fk.js} +2 -2
- package/server/{hooks-BJNal-bs.js → hooks-X2XHBB2b.js} +1 -1
- package/server/{hume-DBocJFkA.js → hume-DrZEGpqc.js} +2 -2
- package/server/hume-YPsy4UA8.js +3 -0
- package/server/{idle-stack-reaper-DQFh8rDh.js → idle-stack-reaper-CJ1ygW0p.js} +37 -7
- package/server/{idle-stack-reaper-CyGxXOfC.js → idle-stack-reaper-uJGOb-vu.js} +1 -1
- package/server/{in-flight-guard-nXEKoxI7.js → in-flight-guard-CG2Eo-rr.js} +1 -1
- package/server/{infra-BDQDRopn.js → infra-CTrmVqc_.js} +111 -6
- package/server/{injection-DfFFEMKL.js → injection-BisQ0lpX.js} +1 -1
- package/server/{injection-CCopdUKz.js → injection-C9sxqbc2.js} +73 -193
- package/server/{inspect-agent-FCDlNT_i.js → inspect-agent-BoSO51YC.js} +12 -12
- package/server/inspect-agent-BykeOH4a.js +2 -0
- package/server/{internal-token-BG6yQKNL.js → internal-token-AvXePaQT.js} +2 -2
- package/server/{internal-token-BJZa40Ld.js → internal-token-Djkj-yqK.js} +1 -1
- package/server/{io-C0NV7y6C.js → io-mxOWMZ7I.js} +6 -6
- package/server/{issue-closed-CNNGbhWm.js → issue-closed-Bj_bCv_0.js} +7 -7
- package/server/{issue-lifecycle-DSH0GpWC.js → issue-lifecycle-A5YIpDZE.js} +1 -1
- package/server/{issue-lifecycle-BXfzxFCD.js → issue-lifecycle-BXUqaHzF.js} +32 -28
- package/server/{issue-service-singleton-F3A5VP6M.js → issue-service-singleton-BPNEXczv.js} +11 -11
- package/server/{issue-service-singleton-lwFJ4dHk.js → issue-service-singleton-CcaHjKPR.js} +1 -1
- package/server/{issues-DA-U_MpR.js → issues-AX-YBeAQ.js} +2 -2
- package/server/{jsonl-parser-BXiGANOh.js → jsonl-parser-CgYWQ20q.js} +7 -3
- package/server/kimi-code-BYbme0aV.js +579 -0
- package/server/kimi-code-D_Ppt82c.js +3 -0
- package/server/kimi-parser-B-JBg3Pv.js +147 -0
- package/server/{label-cleanup-BnxRk0Eo.js → label-cleanup-sXUlgdM0.js} +3 -3
- package/server/{lifecycle-DOgGnpIv.js → lifecycle-D2X3al0D.js} +2 -2
- package/server/{lifecycle-Di48-w4x.js → lifecycle-DjlljAZ1.js} +6 -6
- package/server/{lifecycle-io-eVG6v_8-.js → lifecycle-io-C5nVk55o.js} +1 -1
- package/server/{lifecycle-io-1XSeczTr.js → lifecycle-io-NPm1YtIG.js} +5 -5
- package/server/{linear-client-CvGo9n7M.js → linear-client--luYwCZg.js} +1 -1
- package/server/{linear-client-CYZRrcjp.js → linear-client-B8pLegW1.js} +3 -3
- package/server/{linear-mcp-auth-Cp0XaP96.js → linear-mcp-auth-BQVWV0I3.js} +6 -6
- package/server/{linear-mcp-auth-DoJnjdPZ.js → linear-mcp-auth-Dx81Zl4G.js} +1 -1
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-DO14mOr3.js → merge-Bx5Bh9pi.js} +3 -3
- package/server/{merge-ZF99ig6A.js → merge-Dqmh_zja.js} +1 -1
- package/server/{merge-agent-gpiRkcvj.js → merge-agent-DP9AUY29.js} +33 -33
- package/server/{merge-agent-C1-9zbP_.js → merge-agent-DWd0KfiS.js} +1 -1
- package/server/{merge-batch-C11ocNkO.js → merge-batch-BdmvTEAC.js} +1 -1
- package/server/{merge-completeness-CghMbyX7.js → merge-completeness-BfRwFjRx.js} +1 -1
- package/server/{merge-completeness-BUzPZy0E.js → merge-completeness-C1FevcDT.js} +4 -4
- package/server/merge-ops-B98tKc1e.js +2 -0
- package/server/merge-rebase-BLykMwPO.js +2 -0
- package/server/{merge-rebase-iwlUzZjr.js → merge-rebase-BX1xKsrE.js} +2 -2
- package/server/{merge-set-Dbnx4chw.js → merge-set-DsLjjLEV.js} +4 -4
- package/server/{merge-set-BymrheTj.js → merge-set-H6epHOsw.js} +1 -1
- package/server/{merge-sync-CM978zez.js → merge-sync-BEdfsQV4.js} +2 -2
- package/server/{merge-sync-CqEtqjI2.js → merge-sync-BebcWWGA.js} +1 -1
- package/server/{merge-train-DvLcAn1G.js → merge-train-D1I0lNOT.js} +4 -4
- package/server/{merge-train-deps-Cl_kcRbO.js → merge-train-deps-D_-C0Pk2.js} +4 -4
- package/server/{merge-verification-c9Y9mllw.js → merge-verification-DN1Ov9bU.js} +6 -6
- package/server/{merged-docker-cleanup-worker-CGiDOdv8.js → merged-docker-cleanup-worker-CfXSr2pA.js} +4 -4
- package/server/{merged-docker-cleanup-worker-DgsLOx3E.js → merged-docker-cleanup-worker-ybsPyHjB.js} +1 -1
- package/server/{multipart-parser-D0twwRjz.js → multipart-parser-CL5QG8iv.js} +2 -2
- package/server/{no-resume-mode-DZvP0M_S.js → no-resume-mode-DUR7Hi98.js} +1 -1
- package/server/node_modules/.package-lock.json +7 -7
- package/server/node_modules/brace-expansion/README.md +23 -1
- package/server/node_modules/brace-expansion/index.js +206 -85
- package/server/node_modules/brace-expansion/package.json +1 -1
- package/server/node_modules/msgpackr/dist/index-no-eval.cjs +34 -28
- package/server/node_modules/msgpackr/dist/index-no-eval.cjs.map +1 -1
- package/server/node_modules/msgpackr/dist/index-no-eval.min.js +1 -1
- package/server/node_modules/msgpackr/dist/index-no-eval.min.js.map +1 -1
- package/server/node_modules/msgpackr/dist/index.js +34 -28
- package/server/node_modules/msgpackr/dist/index.js.map +1 -1
- package/server/node_modules/msgpackr/dist/index.min.js +1 -1
- package/server/node_modules/msgpackr/dist/index.min.js.map +1 -1
- package/server/node_modules/msgpackr/dist/node.cjs +36 -29
- package/server/node_modules/msgpackr/dist/node.cjs.map +1 -1
- package/server/node_modules/msgpackr/dist/test.js +63 -32
- package/server/node_modules/msgpackr/dist/test.js.map +1 -1
- package/server/node_modules/msgpackr/dist/unpack-no-eval.cjs +34 -28
- package/server/node_modules/msgpackr/dist/unpack-no-eval.cjs.map +1 -1
- package/server/node_modules/msgpackr/package.json +1 -1
- package/server/node_modules/msgpackr/unpack.js +34 -28
- package/server/{orphan-proposed-reconciler-6r2OEfYd.js → orphan-proposed-reconciler-CEW1maPl.js} +1 -1
- package/server/{orphan-proposed-reconciler-DtQP6oE_.js → orphan-proposed-reconciler-DfqHZftT.js} +23 -22
- package/server/package-lock.json +8 -8
- package/server/package.json +1 -1
- package/server/{pan-dir-DAOb1V2-.js → pan-dir-DhgKfO86.js} +21 -6
- package/server/{paths-DuATV5iE.js → paths-BUuhi6jM.js} +17 -17
- package/server/{pending-lifecycle-claim-DQUHIDfX.js → pending-lifecycle-claim-DJlA1rTR.js} +2 -2
- package/server/{persistent-logger-CBj016pT.js → persistent-logger-s8cbpFNV.js} +2 -2
- package/server/{pickup-zXZl5lQI.js → pickup-2AxtB3dW.js} +1 -1
- package/server/{pipeline-membership-DHOXmvba.js → pipeline-membership-2_okL5bm.js} +1 -1
- package/server/{pipeline-membership-B2yUcBz7.js → pipeline-membership-Dqv6_0ig.js} +1 -1
- package/server/{pipeline-membership-gather-OkLXuvxR.js → pipeline-membership-gather-4F1-tXKI.js} +1 -1
- package/server/{pipeline-membership-gather-BIcJ-N0W.js → pipeline-membership-gather-CtJ_7aGf.js} +149 -17
- package/server/{pipeline-notifier-BmwrVKsO.js → pipeline-notifier-CO9rxJgB.js} +1 -1
- package/server/{pipeline-notifier-CxMes51i.js → pipeline-notifier-DDfVBJhJ.js} +2 -2
- package/server/{post-merge-lifecycle-worker-3u_rA4R0.js → post-merge-lifecycle-worker-DmSOkeNp.js} +3 -3
- package/server/{project-pipelines-C3SPFJ38.js → project-pipelines-72WE8GVK.js} +2 -2
- package/server/{project-repos-BOpBzkO6.js → project-repos-BAqDwtvi.js} +16 -11
- package/server/project-repos-Df90Zw7Y.js +3 -0
- package/server/projects-WqMWCdpa.js +3 -0
- package/server/{prompts-B0TtboFm.js → prompts-XkL10m8M.js} +2 -2
- package/server/{providers-O2smCvSz.js → providers-ClGPGkQ8.js} +15 -12
- package/server/providers-DFUOed8u.js +3 -0
- package/server/public/assets/{chunk-BO2N2NFS-D_pGACYN.js → chunk-BO2N2NFS-CeQUdPxr.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-BO6fe3hH.js → diagram-OG6HWLK6-B7rgk4yT.js} +1 -1
- package/server/public/assets/{dist-5zingMiA.js → dist-2RPazfXY.js} +3 -3
- package/server/public/assets/{dist-CVxhbI2E.js → dist-B9NInrVZ.js} +1 -1
- package/server/public/assets/{ganttDiagram-6RSMTGT7-Bgj4A7kp.js → ganttDiagram-6RSMTGT7-Bxp0gV14.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-DNPK7_cm.js → highlighted-body-OFNGDK62-CzoRTVlC.js} +1 -1
- package/server/public/assets/index-Cml-kHo6.css +1 -0
- package/server/public/assets/{index-DEpY-D1O.js → index-CvN8cEgs.js} +216 -215
- package/server/public/assets/{linear-BB0jQT16.js → linear-CFEEl3ND.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-CpV7nCBM.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-DeGIzzpZ.js → pieDiagram-4H26LBE5-BeR8R0cr.js} +1 -1
- package/server/public/assets/{prod-XBLvikex.js → prod-CYjzjCrn.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-BV9SLeWz.js → quadrantDiagram-W4KKPZXB-BpcTkFuW.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-Dwja0gj8.js → sankeyDiagram-5OEKKPKP-Bx2ETEV5.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-DCB4qvfw.js → xychartDiagram-2RQKCTM6-BKgEAFaj.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests-BonZ4WVG.js → pull-requests-B-KrUph5.js} +3 -3
- package/server/{pull-requests-DNcJUVWA.js → pull-requests-DK5k92B4.js} +1 -1
- package/server/{queries-DCX27GRr.js → queries-DVpl1vsU.js} +1212 -193
- package/server/{rally-Cxe7lKYX.js → rally-DbE561hD.js} +3 -3
- package/server/rally-O_st_X7n.js +3 -0
- package/server/{rally-api-CzkKenoi.js → rally-api-CZLeEd2C.js} +2 -2
- package/server/{rally-api-Cp50exEi.js → rally-api-DaHtn5QN.js} +1 -1
- package/server/{rally-client-Bu3Cekkw.js → rally-client-C-MAl8ur.js} +1 -1
- package/server/{rally-client-CyBBEDHu.js → rally-client-Ch3zRsBX.js} +5 -5
- package/server/{reap-terminal-sessions-CtAhr6L0.js → reap-terminal-sessions-C1n0ALRb.js} +2 -2
- package/server/{reap-terminal-sessions-DvFqQUnq.js → reap-terminal-sessions-DegFS2p1.js} +2 -2
- package/server/{rebuild-stack-hCQtprWC.js → rebuild-stack-C9Li44A3.js} +20 -10
- package/server/{rebuild-stack-BKYpIPDL.js → rebuild-stack-qC0jCNm6.js} +2 -2
- package/server/{reconstruct-cache-CF2avArx.js → reconstruct-cache-BHyiAg02.js} +7 -7
- package/server/record-aVzu-LGm.js +3 -0
- package/server/record-update-CZh46a2f.js +617 -0
- package/server/{record-update-DhI7eySG.js → record-update-DtdJK2Iw.js} +1 -1
- package/server/recovery-trip-CSNWSLDn.js +77 -0
- package/server/recovery-trip-_16hFKv4.js +3 -0
- package/server/{release-engine-_eO3VFth.js → release-engine-Be5MX5GP.js} +5 -5
- package/server/{release-set-vxgZwwZV.js → release-set-DJv_O6PS.js} +3 -3
- package/server/{remote-BienmcrZ.js → remote-BMM3uH2J.js} +3 -3
- package/server/{remote-CVPCc7Vy.js → remote-C0xVTHA5.js} +3 -3
- package/server/{remote-agents-kwsEZvXu.js → remote-agents-BIIoc5pD.js} +1 -1
- package/server/{remote-agents-kxraOCGT.js → remote-agents-EUiZ26bj.js} +7 -7
- package/server/{remote-completion-BtmZ42aP.js → remote-completion-BS4tJUn8.js} +13 -13
- package/server/resolver-BvHd6RE4.js +163 -0
- package/server/resume-9thEqAQR.js +3 -0
- package/server/{review-agent-CIRr0yYt.js → review-agent-BHGaBoBu.js} +29 -29
- package/server/{review-agent-UpAM4DmT.js → review-agent-CD3RQ-tc.js} +1 -1
- package/server/{review-artifacts-BCODM9ww.js → review-artifacts-DyhajWso.js} +6 -6
- package/server/{review-context-BBsNrDri.js → review-context-B-dlsPnx.js} +9 -9
- package/server/{review-convoy-liveness-l06_LYCt.js → review-convoy-liveness-D7M-s_nS.js} +2 -2
- package/server/{review-status-CacDM78F.js → review-status-B6wYcOtP.js} +1 -1
- package/server/{review-status-CwhA9wmd.js → review-status-CKLk5aZ-.js} +306 -59
- package/server/{review-status-emit-BPJwYcRy.js → review-status-emit-CJ7UmEVU.js} +3 -3
- package/server/{review-status-enrichment-DvyZAbGR.js → review-status-enrichment-DJRgGX7-.js} +3 -3
- package/server/review-status-limits-4EJDCGHO.js +7 -0
- package/server/{review-status-source-DWnFE0b6.js → review-status-source-7nU3Z2wL.js} +1 -1
- package/server/{review-status-source-B70ekARK.js → review-status-source-BsDYGfyv.js} +1 -1
- package/server/{review-status-sync-B0IS6Beh.js → review-status-sync-BLssMTEW.js} +1 -1
- package/server/{review-status-sync-h2CJX6ju.js → review-status-sync-BxBeHRde.js} +35 -11
- package/server/{review-verdict-feedback-yrrmgps_.js → review-verdict-feedback-5jWuzgpc.js} +22 -10
- package/server/{review-verdict-feedback-qRohbFG2.js → review-verdict-feedback-HRY9P4bN.js} +1 -1
- package/server/{rollup-CUoav0Op.js → rollup-BGIrCEkU.js} +79 -44
- package/server/rollup-CZB4UL9q.js +3 -0
- package/server/{scanner-ChURu_b-.js → scanner-DydjXPrz.js} +16 -9
- package/server/search-DdtIjAiu.js +395 -0
- package/server/{sequence-io-D9ITDxzq.js → sequence-io-Fw-cLyDs.js} +4 -4
- package/server/{sequencer-agent-m7gmaakW.js → sequencer-agent-BcpGMt5x.js} +15 -10
- package/server/server.js +1258 -438
- package/server/{service-BzFG0Us_.js → service-BFFkGsG4.js} +58 -58
- package/server/{session-fork-KBq4HIHF.js → session-fork-D0V-3e5P.js} +2 -2
- package/server/{session-history-C_EMhIIF.js → session-history-Bta5l9jY.js} +5 -5
- package/server/{settings-DejgzzLs.js → settings-Ce8B1daF.js} +2 -2
- package/server/{settings-BLbcDqUp.js → settings-E3FnEIUx.js} +3 -3
- package/server/settings-eOOJpxi_.js +2 -0
- package/server/{shadow-engineering-D8R9I8Yl.js → shadow-engineering-Mt9nJO4i.js} +3 -3
- package/server/{shadow-state-C0Af4clN.js → shadow-state-Bzj_AZCV.js} +1 -1
- package/server/{shadow-state-fzIqIMDD.js → shadow-state-DrkhoVSx.js} +2 -2
- package/server/{shadow-utils-Ugca_9ND.js → shadow-utils-H1GfqP06.js} +2 -2
- package/server/{ship-log-VAv-lHrF.js → ship-log-CFUIo4PR.js} +1 -1
- package/server/{smart-compaction-BcYY_Suf.js → smart-compaction-DSTq-Wua.js} +1 -1
- package/server/{smart-compaction-B2Xu5XEb.js → smart-compaction-Hzp3KCJX.js} +7 -7
- package/server/{spawn-planning-session-Dsv-350T.js → spawn-planning-session-C0uSA2SL.js} +2 -2
- package/server/{spawn-planning-session-DhCoBPct.js → spawn-planning-session-DN4son31.js} +23 -21
- package/server/{specialist-completion-z6v3ZqJE.js → specialist-completion-Cf6tpIh1.js} +1 -1
- package/server/{specialist-context-CrA5azkJ.js → specialist-context-DEUEkjIQ.js} +5 -5
- package/server/{specialist-handoff-logger-CmpZYJMB.js → specialist-handoff-logger-D_LmQDj3.js} +2 -2
- package/server/{specialist-logs-BorrIu0x.js → specialist-logs-7Ynue0R7.js} +3 -3
- package/server/{specialists-ZdrifiKx.js → specialists-CQwBEGlD.js} +1 -1
- package/server/{specialists-2yLmqph9.js → specialists-DAjPgYs_.js} +504 -238
- package/server/{specialists-Dfx9_Wzb.js → specialists-Hr6iW9fU.js} +18 -18
- package/server/{specialists-CH6ah6D-.js → specialists-MOoeB4A8.js} +1 -1
- package/server/specs-Dl88cbKY.js +3 -0
- package/server/{src-B948bGVR.js → src-BYdwL_n-.js} +668 -64
- package/server/{src-Dm_NV7f6.js → src-DQnkPN2i.js} +3 -3
- package/server/{src-B2e5rGu2.js → src-DhfDV0o4.js} +6 -6
- package/server/{stack-health-Bf2WdG4E.js → stack-health-D_iKwNRg.js} +107 -16
- package/server/stack-health-deVSdDwn.js +3 -0
- package/server/{stale-task-claims-D1Ll8fI5.js → stale-task-claims-BYJGqhLI.js} +5 -5
- package/server/{staleness-CuED1Psm.js → staleness-CopBDKnA.js} +1 -1
- package/server/{staleness-45qZ_a60.js → staleness-D8WeMUHd.js} +1 -1
- package/server/{state-home-B4EWfIxF.js → state-home-DjN8qduI.js} +24 -3
- package/server/{state-mapping-BEONzr8P.js → state-mapping-DlM7OYRW.js} +1 -1
- package/server/{state-migrate-Cd8BH33U.js → state-migrate-a2p1gtD7.js} +4 -4
- package/server/state-mirror-Cv_XgvT5.js +121 -0
- package/server/{stuck-remediation-ChcooZuk.js → stuck-remediation-CXJX_kki.js} +1 -1
- package/server/{stuck-remediation-DmY5UJLg.js → stuck-remediation-CbCRSz1v.js} +31 -732
- package/server/{substrate-bug-weights-service-BvTWrFUz.js → substrate-bug-weights-service-DxpopNd9.js} +3 -3
- package/server/{summary-fork--Jr8duYh.js → summary-fork-B61fjRJn.js} +2 -2
- package/server/{summary-fork-Ct514_Jl.js → summary-fork-B9pszUJN.js} +91 -10
- package/server/supervisor/{injection-budget-B3UyEONL.js → injection-budget-Ar7hgyJq.js} +1 -1
- package/server/supervisor/pty-supervisor.js +12 -3
- package/server/supervisor/{pty-token-CWRffcCa.js → pty-token-CXCFU0Z8.js} +1 -1
- package/server/{supervisor-B7BHGcNA.js → supervisor-BvnxbuuF.js} +6 -4
- package/server/supervisor-C69kpqvd.js +2 -0
- package/server/{swarm-readiness-MNE5O8hn.js → swarm-readiness-vTw1kqGa.js} +3 -3
- package/server/{system-prerequisites-Cin9ZgDx.js → system-prerequisites-LLzTEqsK.js} +3 -3
- package/server/{teardown-workspace-CvBpvc85.js → teardown-workspace-CqKKVJr1.js} +15 -15
- package/server/{test-agent-queue-DmSIqays.js → test-agent-queue-CWMq7oyG.js} +8 -7
- package/server/{test-verdict-BieVDAV1.js → test-verdict-NdtgRBuA.js} +1 -1
- package/server/{test-verdict-Cy2jJGTe.js → test-verdict-diIWE6hz.js} +15 -3
- package/server/{tldr-daemon-Ca0eovh3.js → tldr-daemon-B1Jhrtc8.js} +1 -1
- package/server/{tldr-daemon-IOssGwg7.js → tldr-daemon-Bpls1CJB.js} +2 -2
- package/server/{tmux-CfDHob9M.js → tmux-CImZaX4q.js} +10 -16
- package/server/tmux-Cjpx8L8u.js +4 -0
- package/server/{token-B10VFNOD.js → token-Bgpjo3tE.js} +2 -2
- package/server/token-util-BsjFll-k.js +3 -0
- package/server/{token-util-CZ8WPtdk.js → token-util-BymbpkJp.js} +1 -1
- package/server/{tracker-config-CHbrjg6m.js → tracker-config-4DaKVTfc.js} +2 -2
- package/server/{tracker-utils-DZZq_C0R.js → tracker-utils-BDeAXC-q.js} +2 -2
- package/server/{traefik-connect-GHomyBaD.js → traefik-connect-CC5FyxYj.js} +1 -1
- package/server/{tunnel-Dz7y434T.js → tunnel-CDWkeceJ.js} +1 -1
- package/server/{tunnel-Bdyb-sNq.js → tunnel-CPf5M-Pc.js} +3 -3
- package/server/{typed-errors-Bn_2WRU7.js → typed-errors-9K7Dq_Vn.js} +1 -1
- package/server/{typed-errors-BR_RmPS_.js → typed-errors-DrS5fb5z.js} +1 -1
- package/server/{types-D2ETIB8T.js → types-DzlUKiuf.js} +4 -3
- package/server/{types-Dh6RI5Vj.js → types-kI9ik8XO.js} +1 -1
- package/server/{uat-promote-verification-DyvQXvIn.js → uat-promote-verification-c_pxoxEc.js} +5 -5
- package/server/{uat-train-Dv0Bxer7.js → uat-train-CWGxBdJO.js} +0 -0
- package/server/{uat-train-diX_7shd.js → uat-train-CfCYd2ve.js} +1 -1
- package/server/{validate-606KcYZC.js → validate-f3ItVCfm.js} +3 -3
- package/server/{validation-Cf7aaV5A.js → validation-5G_wQtea.js} +1 -1
- package/server/{validation-CnrDul1x.js → validation-7tSiCM82.js} +4 -4
- package/server/{verification-artifact-GOaj8u2s.js → verification-artifact-9h9dH8uX.js} +1 -1
- package/server/{verification-artifact-D4b-bio9.js → verification-artifact-C_4WJnf6.js} +1 -1
- package/server/{verification-runner-DiPaUP-C.js → verification-runner-BV5F6wrA.js} +1 -1
- package/server/{verification-runner-B5MVxDvU.js → verification-runner-D58KmBhK.js} +18 -38
- package/server/{vtt-parser-CMU5EZ5R.js → vtt-parser-2iT9OHa9.js} +1 -1
- package/server/{work-agent-prompt-Csb3fbVR.js → work-agent-prompt-D03s4DD1.js} +9 -9
- package/server/{workflows-D87ajwV6.js → workflows-BMBwLYPV.js} +281 -98
- package/server/workflows-BOmWGpIh.js +2 -0
- package/server/{workspace-iD8oULqu.js → workspace-BgflNCH0.js} +3 -3
- package/server/{workspace-AIOM7n00.js → workspace-Cn9ywfSW.js} +1 -1
- package/server/{workspace-anchor-drift-19cJ1bH5.js → workspace-anchor-drift-C8Fy3shi.js} +1 -1
- package/server/{workspace-anchor-drift-C3mK5wNI.js → workspace-anchor-drift-CMiNncwq.js} +5 -8
- package/server/{workspace-config-CJ7RqQiP.js → workspace-config-aUc2nIz6.js} +1 -1
- package/server/{workspace-manager-CXfrw4rR.js → workspace-manager-Bem7ZBs9.js} +521 -292
- package/server/workspace-manager-C0CpNh3t.js +3 -0
- package/server/{workspace-metadata-BuMRco5P.js → workspace-metadata-C5iSlPRo.js} +1 -1
- package/server/{workspace-metadata-eHSj_NsP.js → workspace-metadata-UKmTYmDQ.js} +2 -2
- package/server/{workspaces-DbtMX2TM.js → workspaces-DqxgwDZ8.js} +143 -113
- package/sync-sources/hooks/notification-hook +12 -1
- package/sync-sources/hooks/pan-hook-lib.sh +226 -0
- package/sync-sources/hooks/session-start-hook +31 -4
- package/sync-sources/hooks/work-agent-stop-hook +23 -1
- package/sync-sources/skills/pan-memory/SKILL.md +19 -3
- package/sync-sources/skills/pan-projects/SKILL.md +9 -0
- package/sync-sources/skills/pan-restart/SKILL.md +26 -7
- package/sync-sources/skills/pan-workspace/SKILL.md +77 -0
- package/server/activity-logger-CMthG6Vd.js +0 -3
- package/server/agent-state-DyZJia9f.js +0 -3
- package/server/agents-Dnn4XgdB.js +0 -3
- package/server/archive-planning-BHCd_eL5.js +0 -2
- package/server/cli-D6mRfUE6.js +0 -3
- package/server/deacon-swarm-BkKR7SXu.js +0 -2
- package/server/delivery-C2M73sBg.js +0 -3
- package/server/dist-qcf9gAP0.js +0 -3
- package/server/event-store-5UKzh9Jf.js +0 -3
- package/server/forge-D647IMNa.js +0 -3
- package/server/fts-db-wROfFfje.js +0 -146
- package/server/hume-DtWN8oV5.js +0 -3
- package/server/inspect-agent-CPqXI81t.js +0 -2
- package/server/merge-ops-7QqziXAh.js +0 -2
- package/server/merge-rebase-B4pgzvQJ.js +0 -2
- package/server/node_modules/brace-expansion/.tap/coverage/8b906b8c-e21f-40b5-8c0d-214d8c2682c5.json +0 -757
- package/server/node_modules/brace-expansion/.tap/processinfo/8b906b8c-e21f-40b5-8c0d-214d8c2682c5.json +0 -719
- package/server/node_modules/brace-expansion/ADVISORY-CVE-2026-14257.md +0 -107
- package/server/node_modules/brace-expansion/dist/commonjs/index.d.ts +0 -8
- package/server/node_modules/brace-expansion/dist/commonjs/index.d.ts.map +0 -1
- package/server/node_modules/brace-expansion/dist/commonjs/index.js +0 -263
- package/server/node_modules/brace-expansion/dist/commonjs/index.js.map +0 -1
- package/server/node_modules/brace-expansion/dist/commonjs/package.json +0 -3
- package/server/node_modules/brace-expansion/dist/esm/index.d.ts +0 -8
- package/server/node_modules/brace-expansion/dist/esm/index.d.ts.map +0 -1
- package/server/node_modules/brace-expansion/dist/esm/index.js +0 -259
- package/server/node_modules/brace-expansion/dist/esm/index.js.map +0 -1
- package/server/node_modules/brace-expansion/dist/esm/package.json +0 -3
- package/server/project-repos-BgW4lcIa.js +0 -3
- package/server/projects-_n3Zui6K.js +0 -3
- package/server/providers-BI1mOBQ4.js +0 -3
- package/server/public/assets/index-Ddkcz3WT.css +0 -1
- package/server/public/assets/mermaid-GHXKKRXX-BzPfaQJ1.js +0 -1
- package/server/rally-x6ztTQo4.js +0 -3
- package/server/record-BTwWhtBb.js +0 -3
- package/server/record-update-DaOKS7Wb.js +0 -277
- package/server/recovery-trip-D-wM9EfB.js +0 -44
- package/server/resume-DXIIfJNk.js +0 -3
- package/server/rollup-DxCjJaAM.js +0 -3
- package/server/settings-9jSGHBPY.js +0 -2
- package/server/specs-DKV3jIEs.js +0 -3
- package/server/stack-health-CoWAhA99.js +0 -3
- package/server/supervisor-CyR_mW5B.js +0 -2
- package/server/tmux-Ctk6RV5l.js +0 -3
- package/server/token-util-CrfQ2FKf.js +0 -3
- package/server/workflows-DN6NyVGd.js +0 -2
- package/server/workspace-manager-B38rFWA1.js +0 -3
package/server/{orphan-proposed-reconciler-6r2OEfYd.js → orphan-proposed-reconciler-CEW1maPl.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as handleOrphanProposedSpec } from "./orphan-proposed-reconciler-
|
|
1
|
+
import { n as handleOrphanProposedSpec } from "./orphan-proposed-reconciler-DfqHZftT.js";
|
|
2
2
|
export { handleOrphanProposedSpec };
|
package/server/{orphan-proposed-reconciler-DtQP6oE_.js → orphan-proposed-reconciler-DfqHZftT.js}
RENAMED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { a as __toCommonJS } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { d as getReviewStatusSync, p as init_review_status } from "./review-status-
|
|
6
|
-
import { b as init_agents,
|
|
7
|
-
import { n as resolveGitHubIssueSync, t as init_tracker_utils } from "./tracker-utils-
|
|
8
|
-
import { n as init_issue_service_singleton, r as issue_service_singleton_exports } from "./issue-service-singleton-
|
|
9
|
-
import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-
|
|
10
|
-
import { o as init_lifecycle, s as isXBriefFilename } from "./lifecycle-
|
|
11
|
-
import {
|
|
12
|
-
import { a as readAutoSpawnOnFinalizeFlagAsync } from "./auto-spawn-consent-
|
|
13
|
-
import { c as init_control_settings, f as isFlywheelAutoPickupBacklog } from "./control-settings-
|
|
14
|
-
import { i as loadCloisterConfig, r as init_config } from "./config-
|
|
15
|
-
import { f as init_github_app, p as isGitHubAppConfigured, v as listPullRequestsForHead } from "./github-app-
|
|
16
|
-
import { h as init_pickup, r as LEGACY_PARKED_LABELS } from "./pickup-
|
|
17
|
-
import { r as activeOrderBookIssues } from "./flywheel-
|
|
18
|
-
import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-
|
|
19
|
-
import { t as recordDeadEndNeedsYou } from "./dead-end-trip-
|
|
20
|
-
import "./spawn-planning-session-
|
|
2
|
+
import { Sn as resolveProjectFromIssueSync, cn as init_projects, dn as listProjects } from "./config-yaml-BSCqwmX0.js";
|
|
3
|
+
import { a as emitActivityEntrySync, c as init_activity_logger } from "./activity-logger-Co5qljIj.js";
|
|
4
|
+
import { C as init_tmux, j as listSessionNames } from "./tmux-CImZaX4q.js";
|
|
5
|
+
import { d as getReviewStatusSync, p as init_review_status } from "./review-status-CKLk5aZ-.js";
|
|
6
|
+
import { b as init_agents, vr as getAgentState } from "./queries-DVpl1vsU.js";
|
|
7
|
+
import { n as resolveGitHubIssueSync, t as init_tracker_utils } from "./tracker-utils-BDeAXC-q.js";
|
|
8
|
+
import { n as init_issue_service_singleton, r as issue_service_singleton_exports } from "./issue-service-singleton-BPNEXczv.js";
|
|
9
|
+
import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-AvXePaQT.js";
|
|
10
|
+
import { o as init_lifecycle, s as isXBriefFilename } from "./lifecycle-D2X3al0D.js";
|
|
11
|
+
import { C as init_specs, N as getProjectPanPaths, P as init_paths, S as findSpecByIssue, f as readPlanSync, i as findPlanSync, s as init_io } from "./io-mxOWMZ7I.js";
|
|
12
|
+
import { a as readAutoSpawnOnFinalizeFlagAsync } from "./auto-spawn-consent-lXqRJ1Dr.js";
|
|
13
|
+
import { c as init_control_settings, f as isFlywheelAutoPickupBacklog } from "./control-settings-DVf6pKyv.js";
|
|
14
|
+
import { i as loadCloisterConfig, r as init_config } from "./config-DvM8jtQK.js";
|
|
15
|
+
import { f as init_github_app, p as isGitHubAppConfigured, v as listPullRequestsForHead } from "./github-app-D2QuvZ3j.js";
|
|
16
|
+
import { h as init_pickup, r as LEGACY_PARKED_LABELS } from "./pickup-2AxtB3dW.js";
|
|
17
|
+
import { r as activeOrderBookIssues } from "./flywheel-TacAI9MA.js";
|
|
18
|
+
import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-Bj_bCv_0.js";
|
|
19
|
+
import { t as recordDeadEndNeedsYou } from "./dead-end-trip-DSF23CLX.js";
|
|
20
|
+
import "./spawn-planning-session-DN4son31.js";
|
|
21
21
|
import { Effect } from "effect";
|
|
22
22
|
import { existsSync, readdirSync } from "fs";
|
|
23
23
|
import { join } from "path";
|
|
@@ -31,6 +31,7 @@ init_tracker_utils();
|
|
|
31
31
|
init_internal_token();
|
|
32
32
|
init_lifecycle();
|
|
33
33
|
init_review_status();
|
|
34
|
+
init_paths();
|
|
34
35
|
init_io();
|
|
35
36
|
init_agents();
|
|
36
37
|
init_github_app();
|
|
@@ -201,7 +202,7 @@ function hasReviewPipelinePresence(status) {
|
|
|
201
202
|
return false;
|
|
202
203
|
}
|
|
203
204
|
async function findSpecPathForIssue(projectPath, issueId) {
|
|
204
|
-
const specsDir =
|
|
205
|
+
const specsDir = getProjectPanPaths(projectPath).specsDir;
|
|
205
206
|
if (!existsSync(specsDir)) return null;
|
|
206
207
|
let filenames;
|
|
207
208
|
try {
|
|
@@ -277,7 +278,7 @@ async function findOrphanProposedSpecsForReconciler(options = {}) {
|
|
|
277
278
|
const getReviewStatus = options.getReviewStatusForIssue ?? getReviewStatusSync;
|
|
278
279
|
const candidates = [];
|
|
279
280
|
for (const { key, config } of projects) {
|
|
280
|
-
const specsDir =
|
|
281
|
+
const specsDir = getProjectPanPaths(config.path).specsDir;
|
|
281
282
|
if (!existsSync(specsDir)) continue;
|
|
282
283
|
const entries = await readdir(specsDir, { withFileTypes: true }).catch(() => []);
|
|
283
284
|
for (const entry of entries) {
|
|
@@ -690,4 +691,4 @@ async function reconcileOrphanProposedSpecs(options = {}) {
|
|
|
690
691
|
//#endregion
|
|
691
692
|
export { spawnWorkAgentThroughAgentsEndpoint as a, gatherAutonomousWorkDispatchInput as c, reconcileOrphanProposedSpecs as i, handleOrphanProposedSpec as n, triggerRebuildAndStart as o, hasReviewPipelinePresence as r, decideAutonomousWorkDispatch as s, findOrphanProposedSpecsForReconciler as t };
|
|
692
693
|
|
|
693
|
-
//# sourceMappingURL=orphan-proposed-reconciler-
|
|
694
|
+
//# sourceMappingURL=orphan-proposed-reconciler-DfqHZftT.js.map
|
package/server/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@overdeck/desktop-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.48.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@overdeck/desktop-server",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.48.0",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@effect/platform-node": "4.0.0-beta.73",
|
|
12
12
|
"@google-cloud/speech": "7.3.1",
|
|
@@ -551,9 +551,9 @@
|
|
|
551
551
|
}
|
|
552
552
|
},
|
|
553
553
|
"node_modules/brace-expansion": {
|
|
554
|
-
"version": "2.1.
|
|
555
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.
|
|
556
|
-
"integrity": "sha512-
|
|
554
|
+
"version": "2.1.4",
|
|
555
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.4.tgz",
|
|
556
|
+
"integrity": "sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==",
|
|
557
557
|
"license": "MIT",
|
|
558
558
|
"dependencies": {
|
|
559
559
|
"balanced-match": "^1.0.0"
|
|
@@ -1389,9 +1389,9 @@
|
|
|
1389
1389
|
"license": "MIT"
|
|
1390
1390
|
},
|
|
1391
1391
|
"node_modules/msgpackr": {
|
|
1392
|
-
"version": "2.0.
|
|
1393
|
-
"resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-2.0.
|
|
1394
|
-
"integrity": "sha512-
|
|
1392
|
+
"version": "2.0.5",
|
|
1393
|
+
"resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-2.0.5.tgz",
|
|
1394
|
+
"integrity": "sha512-cef05H/dSYpLpqp3sj/qyZh5vhUYCalnaLO7j1yOmpsR0y/XwLVtK7r5gn+U/F7CTEfMowcGhlUQJDLcLf7jcA==",
|
|
1395
1395
|
"license": "MIT",
|
|
1396
1396
|
"optionalDependencies": {
|
|
1397
1397
|
"msgpackr-extract": "^3.0.4"
|
package/server/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { Ar as FsError, St as init_auto_commit, Vr as init_errors, wt as queueAutoCommit, xt as flushAutoCommits } from "./config-yaml-BSCqwmX0.js";
|
|
3
|
+
import { m as init_types } from "./types-DzlUKiuf.js";
|
|
4
|
+
import { C as init_specs, F as ensureWorkspacePanDir, I as getLegacyWorkspacePanPaths, L as getReadableWorkspacePanPaths, N as getProjectPanPaths, R as getWorkspacePanPaths, x as ensurePanDirs, z as init_continue } from "./io-mxOWMZ7I.js";
|
|
5
5
|
import { Effect, FileSystem } from "effect";
|
|
6
6
|
import { join } from "path";
|
|
7
|
-
import { existsSync, readFileSync, rmSync } from "node:fs";
|
|
7
|
+
import { existsSync, readFileSync, readdirSync, rmSync } from "node:fs";
|
|
8
8
|
import * as NodeFileSystem from "@effect/platform-node/NodeFileSystem";
|
|
9
9
|
//#region ../../lib/pan-dir/sessions.ts
|
|
10
10
|
var init_sessions = __esmMin((() => {
|
|
@@ -91,8 +91,23 @@ function getDraftsDir(projectRoot) {
|
|
|
91
91
|
function getDraftPath(projectRoot, filename) {
|
|
92
92
|
return join(getDraftsDir(projectRoot), filename);
|
|
93
93
|
}
|
|
94
|
+
/** Exact-case existence check. `existsSync` is case-blind on case-insensitive
|
|
95
|
+
* filesystems (macOS APFS), which would mis-resolve a legacy uppercase draft
|
|
96
|
+
* to its lowercase name and queue a case-colliding path (PAN-3287). */
|
|
97
|
+
function hasExactCaseEntry(dir, filename) {
|
|
98
|
+
try {
|
|
99
|
+
return readdirSync(dir).includes(filename);
|
|
100
|
+
} catch {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
94
104
|
function getIssueDraftPath(projectRoot, issueId) {
|
|
95
|
-
|
|
105
|
+
const draftsDir = getDraftsDir(projectRoot);
|
|
106
|
+
const lowerFile = `${issueId.toLowerCase()}.md`;
|
|
107
|
+
if (hasExactCaseEntry(draftsDir, lowerFile)) return join(draftsDir, lowerFile);
|
|
108
|
+
const upperFile = `${issueId.toUpperCase()}.md`;
|
|
109
|
+
if (hasExactCaseEntry(draftsDir, upperFile)) return join(draftsDir, upperFile);
|
|
110
|
+
return join(draftsDir, lowerFile);
|
|
96
111
|
}
|
|
97
112
|
function writeIssueDraft(projectRoot, issueId, content) {
|
|
98
113
|
return Effect.gen(function* () {
|
|
@@ -291,4 +306,4 @@ var init_pan_dir = __esmMin((() => {
|
|
|
291
306
|
//#endregion
|
|
292
307
|
export { getDraftPath as a, clearFeedback as c, checkPrdGateSync as i, readFeedback as l, readWorkspaceContext as n, getIssueDraftPath as o, writeWorkspaceContext as r, promoteWorkspacePrdDraft as s, init_pan_dir as t, writeFeedback as u };
|
|
293
308
|
|
|
294
|
-
//# sourceMappingURL=pan-dir-
|
|
309
|
+
//# sourceMappingURL=pan-dir-DhgKfO86.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { hi as init_paths$1, mi as getOverdeckHome } from "./config-yaml-BSCqwmX0.js";
|
|
3
3
|
import { dirname, isAbsolute, join, relative, resolve } from "path";
|
|
4
4
|
import { mkdir } from "fs/promises";
|
|
5
5
|
//#region ../../lib/memory/paths.ts
|
|
@@ -20,26 +20,26 @@ function assertUnderMemoryBase(path) {
|
|
|
20
20
|
function resolveMemoryRoot(projectId) {
|
|
21
21
|
return assertUnderMemoryBase(join(resolveMemoryBase(), assertMemorySafeSegment(projectId, "projectId")));
|
|
22
22
|
}
|
|
23
|
-
function
|
|
24
|
-
return assertUnderMemoryBase(join(resolveMemoryRoot(projectId), assertMemorySafeSegment(
|
|
23
|
+
function resolveWorkspaceMemoryRoot(projectId, workspaceId) {
|
|
24
|
+
return assertUnderMemoryBase(join(resolveMemoryRoot(projectId), assertMemorySafeSegment(workspaceId, "workspaceId")));
|
|
25
25
|
}
|
|
26
|
-
function resolveObservationsFile(projectId,
|
|
27
|
-
return join(
|
|
26
|
+
function resolveObservationsFile(projectId, workspaceId, date) {
|
|
27
|
+
return join(resolveWorkspaceMemoryRoot(projectId, workspaceId), "observations", `${dateKey(date)}.jsonl`);
|
|
28
28
|
}
|
|
29
|
-
function resolvePendingDir(projectId,
|
|
30
|
-
return join(
|
|
29
|
+
function resolvePendingDir(projectId, workspaceId) {
|
|
30
|
+
return join(resolveWorkspaceMemoryRoot(projectId, workspaceId), "pending");
|
|
31
31
|
}
|
|
32
|
-
function resolveStatusFile(projectId,
|
|
33
|
-
return join(
|
|
32
|
+
function resolveStatusFile(projectId, workspaceId) {
|
|
33
|
+
return join(resolveWorkspaceMemoryRoot(projectId, workspaceId), "status.json");
|
|
34
34
|
}
|
|
35
|
-
function resolveArchiveDir(projectId,
|
|
36
|
-
return join(
|
|
35
|
+
function resolveArchiveDir(projectId, workspaceId) {
|
|
36
|
+
return join(resolveWorkspaceMemoryRoot(projectId, workspaceId), "archive");
|
|
37
37
|
}
|
|
38
|
-
function resolveSummariesDir(projectId,
|
|
39
|
-
return join(
|
|
38
|
+
function resolveSummariesDir(projectId, workspaceId) {
|
|
39
|
+
return join(resolveWorkspaceMemoryRoot(projectId, workspaceId), "summaries");
|
|
40
40
|
}
|
|
41
|
-
function resolveRagRunsFile(projectId,
|
|
42
|
-
return join(
|
|
41
|
+
function resolveRagRunsFile(projectId, workspaceId, date) {
|
|
42
|
+
return join(resolveWorkspaceMemoryRoot(projectId, workspaceId), "rag-runs", `${dateKey(date)}.jsonl`);
|
|
43
43
|
}
|
|
44
44
|
function resolveFtsDbPath(projectId) {
|
|
45
45
|
return join(resolveMemoryRoot(projectId), "memory-search.db");
|
|
@@ -60,6 +60,6 @@ var init_paths = __esmMin((() => {
|
|
|
60
60
|
SAFE_SEGMENT = /^[A-Za-z0-9._-]{1,128}$/;
|
|
61
61
|
}));
|
|
62
62
|
//#endregion
|
|
63
|
-
export { resolveArchiveDir as a, resolveMemoryRoot as c, resolveRagRunsFile as d, resolveStatusFile as f, init_paths as i, resolveObservationsFile as l, ensureDir as n, resolveFtsDbPath as o, resolveSummariesDir as p, ensureParentDir as r,
|
|
63
|
+
export { resolveArchiveDir as a, resolveMemoryRoot as c, resolveRagRunsFile as d, resolveStatusFile as f, init_paths as i, resolveObservationsFile as l, resolveWorkspaceMemoryRoot as m, ensureDir as n, resolveFtsDbPath as o, resolveSummariesDir as p, ensureParentDir as r, resolveMemoryBase as s, assertMemorySafeSegment as t, resolvePendingDir as u };
|
|
64
64
|
|
|
65
|
-
//# sourceMappingURL=paths-
|
|
65
|
+
//# sourceMappingURL=paths-BUuhi6jM.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as init_review_status_source, s as resolveCanonicalReviewStatus } from "./review-status-source-
|
|
1
|
+
import { n as init_review_status_source, s as resolveCanonicalReviewStatus } from "./review-status-source-7nU3Z2wL.js";
|
|
2
2
|
import { basename, dirname, join } from "node:path";
|
|
3
3
|
import { readFile, readdir, rename, unlink } from "node:fs/promises";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
@@ -107,4 +107,4 @@ async function settlePendingLifecycleClaim(claim, issueId, succeeded) {
|
|
|
107
107
|
//#endregion
|
|
108
108
|
export { settlePendingLifecycleClaim as n, claimPendingLifecycleFile as t };
|
|
109
109
|
|
|
110
|
-
//# sourceMappingURL=pending-lifecycle-claim-
|
|
110
|
+
//# sourceMappingURL=pending-lifecycle-claim-DJlA1rTR.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { hi as init_paths, mi as getOverdeckHome } from "./config-yaml-BSCqwmX0.js";
|
|
3
3
|
import "effect";
|
|
4
4
|
import { appendFileSync, mkdirSync } from "fs";
|
|
5
5
|
import { join } from "path";
|
|
@@ -54,4 +54,4 @@ var init_persistent_logger = __esmMin((() => {
|
|
|
54
54
|
//#endregion
|
|
55
55
|
export { logAgentLifecycleSync as n, logDeaconEventSync as r, init_persistent_logger as t };
|
|
56
56
|
|
|
57
|
-
//# sourceMappingURL=persistent-logger-
|
|
57
|
+
//# sourceMappingURL=persistent-logger-s8cbpFNV.js.map
|
|
@@ -187,4 +187,4 @@ var init_pickup = __esmMin((() => {
|
|
|
187
187
|
//#endregion
|
|
188
188
|
export { normalizeGate as _, PARKED_LABEL as a, VETOED_LABEL as c, computeEpicGroups as d, computeLanes as f, isAutoPickable as g, init_pickup as h, OBJECTION_LABEL as i, classifyIssue as l, computeWaves as m, EPIC_LABEL as n, READY_LABEL as o, computeStats as p, LEGACY_PARKED_LABELS as r, RELEASED_LABEL as s, BLOCKS_MAIN_LABEL as t, computeCohort as u, selectNeedsPlanning as v };
|
|
189
189
|
|
|
190
|
-
//# sourceMappingURL=pickup-
|
|
190
|
+
//# sourceMappingURL=pickup-2AxtB3dW.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as init_pipeline_membership, r as resolvePipelineMembership, t as PLANNED_BACKLOG_SPEC_ONLY_REASON } from "./pipeline-membership-
|
|
1
|
+
import { n as init_pipeline_membership, r as resolvePipelineMembership, t as PLANNED_BACKLOG_SPEC_ONLY_REASON } from "./pipeline-membership-Dqv6_0ig.js";
|
|
2
2
|
init_pipeline_membership();
|
|
3
3
|
export { PLANNED_BACKLOG_SPEC_ONLY_REASON, resolvePipelineMembership };
|
|
@@ -54,4 +54,4 @@ var init_pipeline_membership = __esmMin((() => {
|
|
|
54
54
|
//#endregion
|
|
55
55
|
export { init_pipeline_membership as n, resolvePipelineMembership as r, PLANNED_BACKLOG_SPEC_ONLY_REASON as t };
|
|
56
56
|
|
|
57
|
-
//# sourceMappingURL=pipeline-membership-
|
|
57
|
+
//# sourceMappingURL=pipeline-membership-Dqv6_0ig.js.map
|
package/server/{pipeline-membership-gather-OkLXuvxR.js → pipeline-membership-gather-4F1-tXKI.js}
RENAMED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as gatherProjectLensSignals, c as listIssueStatesBatched, d as mapPipelineProjects, f as projectRepositories, i as gatherIssueBranchContainment, l as listMergedPullRequestHeadsBatched, m as snapshotBranchRefs, n as PipelineMembershipUnavailableError, o as gatherProjectLensSignalsForProjects, p as resolveRepositoryDefaultBranch, r as classifyBranchRefLine, s as init_pipeline_membership_gather, t as PIPELINE_PROJECT_CONCURRENCY, u as listOpenPullRequestsSnapshot } from "./pipeline-membership-gather-
|
|
1
|
+
import { a as gatherProjectLensSignals, c as listIssueStatesBatched, d as mapPipelineProjects, f as projectRepositories, i as gatherIssueBranchContainment, l as listMergedPullRequestHeadsBatched, m as snapshotBranchRefs, n as PipelineMembershipUnavailableError, o as gatherProjectLensSignalsForProjects, p as resolveRepositoryDefaultBranch, r as classifyBranchRefLine, s as init_pipeline_membership_gather, t as PIPELINE_PROJECT_CONCURRENCY, u as listOpenPullRequestsSnapshot } from "./pipeline-membership-gather-CtJ_7aGf.js";
|
|
2
2
|
init_pipeline_membership_gather();
|
|
3
3
|
export { PIPELINE_PROJECT_CONCURRENCY, PipelineMembershipUnavailableError, classifyBranchRefLine, gatherIssueBranchContainment, gatherProjectLensSignals, gatherProjectLensSignalsForProjects, listIssueStatesBatched, listMergedPullRequestHeadsBatched, listOpenPullRequestsSnapshot, mapPipelineProjects, projectRepositories, resolveRepositoryDefaultBranch, snapshotBranchRefs };
|
package/server/{pipeline-membership-gather-BIcJ-N0W.js → pipeline-membership-gather-CtJ_7aGf.js}
RENAMED
|
@@ -1,16 +1,119 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
2
|
+
import { $t as getIssuePrefix, Z as readIssueRecordForWorkspaceSync, cn as init_projects, fn as listProjectsSync, q as init_record } from "./config-yaml-BSCqwmX0.js";
|
|
3
|
+
import { f as init_config, m as loadConfigSync } from "./config-DnLJATZk.js";
|
|
4
|
+
import { n as resolveGitHubIssueSync, t as init_tracker_utils } from "./tracker-utils-BDeAXC-q.js";
|
|
5
|
+
import { i as init_project_repos, n as getRepoForge, r as inferProjectForgeSync } from "./project-repos-BAqDwtvi.js";
|
|
6
|
+
import { C as init_specs, w as listSpecs } from "./io-mxOWMZ7I.js";
|
|
7
|
+
import { r as init_factory, t as createTracker } from "./factory-DhavwKVc.js";
|
|
8
|
+
import { A as createSettledTtlPromiseCache, N as withConcurrencyLimitPromise, _ as listOpenIssuesWithLabelsPromise, f as init_github_app, h as listIssuesWithAnyLabelPromise, j as init_concurrency } from "./github-app-D2QuvZ3j.js";
|
|
9
|
+
import { a as PARKED_LABEL, c as VETOED_LABEL, h as init_pickup, i as OBJECTION_LABEL, o as READY_LABEL, s as RELEASED_LABEL, t as BLOCKS_MAIN_LABEL } from "./pickup-2AxtB3dW.js";
|
|
9
10
|
import { join, resolve } from "node:path";
|
|
10
11
|
import { Effect } from "effect";
|
|
11
12
|
import { realpath } from "node:fs/promises";
|
|
12
13
|
import { exec, execFile } from "node:child_process";
|
|
13
14
|
import { promisify } from "node:util";
|
|
15
|
+
//#region ../../lib/gitlab-merge-requests.ts
|
|
16
|
+
/**
|
|
17
|
+
* Default glab runner using child_process.execFile
|
|
18
|
+
*/
|
|
19
|
+
async function defaultGitLabRunner(args, cwd) {
|
|
20
|
+
const { stdout } = await execFileAsync$1("glab", args, {
|
|
21
|
+
encoding: "utf-8",
|
|
22
|
+
timeout: 3e4,
|
|
23
|
+
maxBuffer: 16 * 1024 * 1024,
|
|
24
|
+
cwd
|
|
25
|
+
});
|
|
26
|
+
return stdout;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* List all open merge requests in a GitLab repository.
|
|
30
|
+
* Results are paginated (100 per page) and cached for 30 seconds.
|
|
31
|
+
*
|
|
32
|
+
* @param repoPath - Path to the git repository (used as cwd for glab)
|
|
33
|
+
* @param runner - Optional custom runner for testing; defaults to glab execFileAsync
|
|
34
|
+
* @returns Array of open merge requests with source_branch and web_url
|
|
35
|
+
*/
|
|
36
|
+
async function listOpenGitLabMergeRequests(repoPath, runner = defaultGitLabRunner) {
|
|
37
|
+
return cachedOpenMergeRequests(repoPath.toLowerCase(), async () => {
|
|
38
|
+
const rows = [];
|
|
39
|
+
let page = 1;
|
|
40
|
+
while (true) {
|
|
41
|
+
const stdout = await runner([
|
|
42
|
+
"mr",
|
|
43
|
+
"list",
|
|
44
|
+
"--output",
|
|
45
|
+
"json",
|
|
46
|
+
"--per-page",
|
|
47
|
+
"100",
|
|
48
|
+
"--page",
|
|
49
|
+
String(page)
|
|
50
|
+
], repoPath);
|
|
51
|
+
if (!stdout.trim()) break;
|
|
52
|
+
const pageRows = JSON.parse(stdout);
|
|
53
|
+
if (!Array.isArray(pageRows)) throw new Error(`Expected array from glab mr list, got ${typeof pageRows}`);
|
|
54
|
+
if (pageRows.length === 0) break;
|
|
55
|
+
rows.push(...pageRows);
|
|
56
|
+
if (pageRows.length < 100) break;
|
|
57
|
+
page++;
|
|
58
|
+
}
|
|
59
|
+
return rows;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get the subset of heads that have at least one merged merge request.
|
|
64
|
+
* Results are paginated (100 per page) and cached per repository for 30 seconds.
|
|
65
|
+
*
|
|
66
|
+
* PAN-3267: this used to run one `glab mr list --merged --source-branch <head>`
|
|
67
|
+
* per head, so a polyrepo project cost one subprocess per (repo × head) —
|
|
68
|
+
* mind-your-now spawned on the order of 240 glab processes per membership
|
|
69
|
+
* refresh. That was slow enough to stall the dashboard's issue list, and
|
|
70
|
+
* unreliable enough that something failed every cycle; a single failure aborts
|
|
71
|
+
* the whole gather as `forge_unavailable`, so membership never refreshed. One
|
|
72
|
+
* repo-wide list answers every head from the same data, matching how
|
|
73
|
+
* listOpenGitLabMergeRequests already reads open MRs.
|
|
74
|
+
*
|
|
75
|
+
* @param repoPath - Path to the git repository (used as cwd for glab)
|
|
76
|
+
* @param heads - Array of branch names to check for merged MRs
|
|
77
|
+
* @param runner - Optional custom runner for testing
|
|
78
|
+
* @returns Subset of heads with at least one merged MR
|
|
79
|
+
*/
|
|
80
|
+
async function listGitLabMergedMergeRequestHeads(repoPath, heads, runner = defaultGitLabRunner) {
|
|
81
|
+
if (!heads.length) return [];
|
|
82
|
+
const mergedSourceBranches = await cachedMergedSourceBranches(repoPath.toLowerCase(), async () => {
|
|
83
|
+
const branches = /* @__PURE__ */ new Set();
|
|
84
|
+
let page = 1;
|
|
85
|
+
while (true) {
|
|
86
|
+
const stdout = await runner([
|
|
87
|
+
"mr",
|
|
88
|
+
"list",
|
|
89
|
+
"--merged",
|
|
90
|
+
"--output",
|
|
91
|
+
"json",
|
|
92
|
+
"--per-page",
|
|
93
|
+
"100",
|
|
94
|
+
"--page",
|
|
95
|
+
String(page)
|
|
96
|
+
], repoPath);
|
|
97
|
+
if (!stdout.trim()) break;
|
|
98
|
+
const pageRows = JSON.parse(stdout);
|
|
99
|
+
if (!Array.isArray(pageRows)) throw new Error(`Expected array from glab mr list, got ${typeof pageRows}`);
|
|
100
|
+
if (pageRows.length === 0) break;
|
|
101
|
+
for (const row of pageRows) if (row.source_branch) branches.add(row.source_branch);
|
|
102
|
+
if (pageRows.length < 100) break;
|
|
103
|
+
page++;
|
|
104
|
+
}
|
|
105
|
+
return branches;
|
|
106
|
+
});
|
|
107
|
+
return heads.filter((head) => mergedSourceBranches.has(head));
|
|
108
|
+
}
|
|
109
|
+
var execFileAsync$1, cachedOpenMergeRequests, cachedMergedSourceBranches;
|
|
110
|
+
var init_gitlab_merge_requests = __esmMin((() => {
|
|
111
|
+
init_concurrency();
|
|
112
|
+
execFileAsync$1 = promisify(execFile);
|
|
113
|
+
cachedOpenMergeRequests = createSettledTtlPromiseCache(3e4);
|
|
114
|
+
cachedMergedSourceBranches = createSettledTtlPromiseCache(3e4);
|
|
115
|
+
}));
|
|
116
|
+
//#endregion
|
|
14
117
|
//#region ../../lib/backlog/label-ops.ts
|
|
15
118
|
/**
|
|
16
119
|
* Add or remove a GitHub label on an issue. Non-GitHub issues are silently
|
|
@@ -221,9 +324,9 @@ function resolveProjectTrackerType(project) {
|
|
|
221
324
|
throw new PipelineMembershipUnavailableError("tracker_unconfigured", `Cannot resolve tracker for ${project.name}`);
|
|
222
325
|
}
|
|
223
326
|
async function listProjectTrackerIssues(project) {
|
|
327
|
+
const trackerType = resolveProjectTrackerType(project);
|
|
224
328
|
const issuePrefix = getIssuePrefix(project)?.toUpperCase();
|
|
225
329
|
if (!issuePrefix) throw new PipelineMembershipUnavailableError("missing_issue_prefix", `Missing issue_prefix for project ${project.name}`);
|
|
226
|
-
const trackerType = resolveProjectTrackerType(project);
|
|
227
330
|
const trackerConfig = loadConfigSync().trackers[trackerType];
|
|
228
331
|
const tracker = createTracker({
|
|
229
332
|
type: trackerType,
|
|
@@ -271,11 +374,14 @@ function issueIdFromRef(ref, issuePrefix) {
|
|
|
271
374
|
function projectRepositories(project) {
|
|
272
375
|
if (!project.workspace?.repos?.length) return [{
|
|
273
376
|
path: project.path,
|
|
274
|
-
defaultBranch: project.workspace?.default_branch ?? "main"
|
|
377
|
+
defaultBranch: project.workspace?.default_branch ?? "main",
|
|
378
|
+
forge: inferProjectForgeSync(project) || "github"
|
|
275
379
|
}];
|
|
276
380
|
return project.workspace.repos.map((repo) => ({
|
|
277
381
|
path: join(project.path, repo.path),
|
|
278
|
-
defaultBranch: repo.default_branch ?? project.workspace?.default_branch ?? "main"
|
|
382
|
+
defaultBranch: repo.default_branch ?? project.workspace?.default_branch ?? "main",
|
|
383
|
+
forge: getRepoForge(repo, project),
|
|
384
|
+
repoKey: repo.name
|
|
279
385
|
}));
|
|
280
386
|
}
|
|
281
387
|
async function normalizeRepoPath(path) {
|
|
@@ -407,6 +513,7 @@ async function gatherIssueBranchContainment(project, issueId, run = defaultDeps.
|
|
|
407
513
|
}
|
|
408
514
|
/** Gather all durable pipeline lenses for one project in batches. */
|
|
409
515
|
async function gatherProjectLensSignals(project, deps = defaultDeps) {
|
|
516
|
+
resolveProjectTrackerType(project);
|
|
410
517
|
const issuePrefix = getIssuePrefix(project)?.toUpperCase();
|
|
411
518
|
if (!issuePrefix) throw new PipelineMembershipUnavailableError("missing_issue_prefix", `Missing issue_prefix for project ${project.name}`);
|
|
412
519
|
const githubRepository = project.github_repo?.split("/");
|
|
@@ -414,6 +521,7 @@ async function gatherProjectLensSignals(project, deps = defaultDeps) {
|
|
|
414
521
|
const repo = githubRepository?.[1];
|
|
415
522
|
if (project.github_repo && (!owner || !repo)) throw new Error(`Invalid github_repo for ${project.name}: ${project.github_repo}`);
|
|
416
523
|
const repositories = projectRepositories(project);
|
|
524
|
+
const gitlabRepos = repositories.filter((r) => r.forge === "gitlab");
|
|
417
525
|
const branchRefPatterns = [
|
|
418
526
|
"refs/heads/feature/*",
|
|
419
527
|
"refs/remotes/origin/feature/*",
|
|
@@ -421,11 +529,12 @@ async function gatherProjectLensSignals(project, deps = defaultDeps) {
|
|
|
421
529
|
"refs/remotes/origin/strike/*"
|
|
422
530
|
];
|
|
423
531
|
const branchSnapshots = repositories.map((repository) => snapshotBranchRefs(repository.path, repository.defaultBranch, branchRefPatterns, deps.run));
|
|
424
|
-
const [trackerIssues, openIssues, phaseLabeledIssues, openPrs, branches, specIssueIds] = await Promise.all([
|
|
532
|
+
const [trackerIssues, openIssues, phaseLabeledIssues, openPrs, openMrs, branches, specIssueIds] = await Promise.all([
|
|
425
533
|
project.github_repo ? Promise.resolve([]) : withUnavailableReason("forge_unavailable", () => deps.listTrackerIssues(project)),
|
|
426
534
|
owner && repo ? withUnavailableReason("forge_unavailable", () => deps.listOpenIssues(owner, repo)) : Promise.resolve([]),
|
|
427
535
|
owner && repo ? withUnavailableReason("forge_unavailable", () => deps.listPhaseLabeledIssues(owner, repo)) : Promise.resolve([]),
|
|
428
536
|
owner && repo ? withUnavailableReason("forge_unavailable", () => deps.listOpenPullRequests(owner, repo)) : Promise.resolve([]),
|
|
537
|
+
!(owner && repo) && gitlabRepos.length > 0 ? withUnavailableReason("forge_unavailable", () => Promise.all(gitlabRepos.map((r) => deps.listOpenMergeRequests(r.path)))) : Promise.resolve([]),
|
|
429
538
|
Promise.all(branchSnapshots),
|
|
430
539
|
withUnavailableReason("gather_failed", () => deps.listSpecIssueIds(project.path))
|
|
431
540
|
]);
|
|
@@ -459,7 +568,7 @@ async function gatherProjectLensSignals(project, deps = defaultDeps) {
|
|
|
459
568
|
knownStateByIssue.set(id, issue.state);
|
|
460
569
|
}
|
|
461
570
|
for (const pr of openPrs) {
|
|
462
|
-
if (
|
|
571
|
+
if (owner && repo && pr.headRepoFullName.toLowerCase() !== `${owner}/${repo}`.toLowerCase()) continue;
|
|
463
572
|
const id = issueIdFromRef(pr.headRefName, issuePrefix);
|
|
464
573
|
if (id) {
|
|
465
574
|
candidates.add(id);
|
|
@@ -467,6 +576,15 @@ async function gatherProjectLensSignals(project, deps = defaultDeps) {
|
|
|
467
576
|
headRefsByIssue.set(id, new Set([...headRefsByIssue.get(id) ?? [], pr.headRefName]));
|
|
468
577
|
}
|
|
469
578
|
}
|
|
579
|
+
const gitlabMrs = openMrs.flat();
|
|
580
|
+
for (const mr of gitlabMrs) {
|
|
581
|
+
const id = issueIdFromRef(mr.source_branch, issuePrefix);
|
|
582
|
+
if (id) {
|
|
583
|
+
candidates.add(id);
|
|
584
|
+
openPrIssues.add(id);
|
|
585
|
+
headRefsByIssue.set(id, new Set([...headRefsByIssue.get(id) ?? [], mr.source_branch]));
|
|
586
|
+
}
|
|
587
|
+
}
|
|
470
588
|
for (const snapshot of branches) {
|
|
471
589
|
const refLines = snapshot.refs.split("\n").map((line) => line.trim()).filter(Boolean);
|
|
472
590
|
const unmerged = new Set(snapshot.unmergedRefs.split("\n").map((ref) => ref.trim()).filter(Boolean));
|
|
@@ -498,13 +616,23 @@ async function gatherProjectLensSignals(project, deps = defaultDeps) {
|
|
|
498
616
|
if (state) knownStateByIssue.set(id, state);
|
|
499
617
|
else candidates.delete(id);
|
|
500
618
|
}
|
|
501
|
-
|
|
502
|
-
|
|
619
|
+
}
|
|
620
|
+
const openCandidates = [...candidates].filter((id) => knownStateByIssue.get(id) === "open");
|
|
621
|
+
const candidateHeads = [...new Set(openCandidates.flatMap((id) => [
|
|
622
|
+
...headRefsByIssue.get(id) ?? [],
|
|
623
|
+
`feature/${id.toLowerCase()}`,
|
|
624
|
+
`strike/${id.toLowerCase()}`
|
|
625
|
+
]))];
|
|
626
|
+
if (owner && repo) {
|
|
627
|
+
const mergedHeads = new Set(await withUnavailableReason("forge_unavailable", () => deps.listMergedPullRequestHeads(owner, repo, candidateHeads)));
|
|
628
|
+
for (const id of openCandidates) if ([
|
|
503
629
|
...headRefsByIssue.get(id) ?? [],
|
|
504
630
|
`feature/${id.toLowerCase()}`,
|
|
505
631
|
`strike/${id.toLowerCase()}`
|
|
506
|
-
]))
|
|
507
|
-
|
|
632
|
+
].some((head) => mergedHeads.has(head))) mergedPrIssues.add(id);
|
|
633
|
+
} else if (gitlabRepos.length > 0) {
|
|
634
|
+
const allMergedHeads = await withConcurrencyLimitPromise(gitlabRepos.map((repo) => () => withUnavailableReason("forge_unavailable", () => deps.listMergedMergeRequestHeads(repo.path, candidateHeads))), 5);
|
|
635
|
+
const mergedHeads = new Set(allMergedHeads.flat());
|
|
508
636
|
for (const id of openCandidates) if ([
|
|
509
637
|
...headRefsByIssue.get(id) ?? [],
|
|
510
638
|
`feature/${id.toLowerCase()}`,
|
|
@@ -550,10 +678,12 @@ var execFileAsync, GRAPHQL_ALIAS_CHUNK_SIZE, cachedOpenPullRequests, PipelineMem
|
|
|
550
678
|
var init_pipeline_membership_gather = __esmMin((() => {
|
|
551
679
|
init_github_app();
|
|
552
680
|
init_concurrency();
|
|
681
|
+
init_gitlab_merge_requests();
|
|
553
682
|
init_label_reconciler();
|
|
554
683
|
init_config();
|
|
555
684
|
init_specs();
|
|
556
685
|
init_projects();
|
|
686
|
+
init_project_repos();
|
|
557
687
|
init_resource_utils();
|
|
558
688
|
init_factory();
|
|
559
689
|
execFileAsync = promisify(execFile);
|
|
@@ -571,7 +701,9 @@ var init_pipeline_membership_gather = __esmMin((() => {
|
|
|
571
701
|
listOpenIssues: listOpenIssuesWithLabelsPromise,
|
|
572
702
|
listPhaseLabeledIssues: (owner, repo) => listIssuesWithAnyLabelPromise(owner, repo, STALE_PIPELINE_LABELS),
|
|
573
703
|
listOpenPullRequests: listOpenPullRequestsSnapshot,
|
|
704
|
+
listOpenMergeRequests: listOpenGitLabMergeRequests,
|
|
574
705
|
listMergedPullRequestHeads: listMergedPullRequestHeadsBatched,
|
|
706
|
+
listMergedMergeRequestHeads: listGitLabMergedMergeRequestHeads,
|
|
575
707
|
listIssueStates: listIssueStatesBatched,
|
|
576
708
|
listTrackerIssues: listProjectTrackerIssues,
|
|
577
709
|
listSpecIssueIds: async (projectPath) => (await Effect.runPromise(listSpecs(projectPath))).map((entry) => entry.issueId),
|
|
@@ -590,4 +722,4 @@ var init_pipeline_membership_gather = __esmMin((() => {
|
|
|
590
722
|
//#endregion
|
|
591
723
|
export { removeIssueReleasedLabel as A, applyIssueReleasedLabel as C, removeIssueObjectionLabel as D, removeIssueBlocksMainLabel as E, removeIssueParkedLabel as O, applyIssueReadyLabel as S, init_label_ops as T, init_label_reconciler as _, gatherProjectLensSignals as a, applyIssueObjectionLabel as b, listIssueStatesBatched as c, mapPipelineProjects as d, projectRepositories as f, parseIssueIdFromTextSync as g, init_resource_utils as h, gatherIssueBranchContainment as i, removeIssueVetoedLabel as j, removeIssueReadyLabel as k, listMergedPullRequestHeadsBatched as l, snapshotBranchRefs as m, PipelineMembershipUnavailableError as n, gatherProjectLensSignalsForProjects as o, resolveRepositoryDefaultBranch as p, classifyBranchRefLine as r, init_pipeline_membership_gather as s, PIPELINE_PROJECT_CONCURRENCY as t, listOpenPullRequestsSnapshot as u, reconcilePipelineLabelsPatrol as v, applyIssueVetoedLabel as w, applyIssueParkedLabel as x, applyIssueBlocksMainLabel as y };
|
|
592
724
|
|
|
593
|
-
//# sourceMappingURL=pipeline-membership-gather-
|
|
725
|
+
//# sourceMappingURL=pipeline-membership-gather-CtJ_7aGf.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as setPipelineHandlerSync, i as setPipelineHandler, n as notifyPipeline, r as notifyPipelineSync, t as init_pipeline_notifier } from "./pipeline-notifier-
|
|
1
|
+
import { a as setPipelineHandlerSync, i as setPipelineHandler, n as notifyPipeline, r as notifyPipelineSync, t as init_pipeline_notifier } from "./pipeline-notifier-DDfVBJhJ.js";
|
|
2
2
|
init_pipeline_notifier();
|
|
3
3
|
export { notifyPipeline, notifyPipelineSync, setPipelineHandler, setPipelineHandlerSync };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-
|
|
2
|
+
import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-AvXePaQT.js";
|
|
3
3
|
import { Effect } from "effect";
|
|
4
4
|
//#region ../../lib/pipeline-notifier.ts
|
|
5
5
|
/**
|
|
@@ -60,4 +60,4 @@ var init_pipeline_notifier = __esmMin((() => {
|
|
|
60
60
|
//#endregion
|
|
61
61
|
export { setPipelineHandlerSync as a, setPipelineHandler as i, notifyPipeline as n, notifyPipelineSync as r, init_pipeline_notifier as t };
|
|
62
62
|
|
|
63
|
-
//# sourceMappingURL=pipeline-notifier-
|
|
63
|
+
//# sourceMappingURL=pipeline-notifier-DDfVBJhJ.js.map
|
package/server/{post-merge-lifecycle-worker-3u_rA4R0.js → post-merge-lifecycle-worker-DmSOkeNp.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as init_review_status_source, s as resolveCanonicalReviewStatus } from "./review-status-source-
|
|
1
|
+
import { n as init_review_status_source, s as resolveCanonicalReviewStatus } from "./review-status-source-7nU3Z2wL.js";
|
|
2
2
|
//#region ../../lib/cloister/post-merge-lifecycle-worker.ts
|
|
3
3
|
init_review_status_source();
|
|
4
4
|
const queue = /* @__PURE__ */ new Map();
|
|
@@ -15,7 +15,7 @@ async function drainQueue() {
|
|
|
15
15
|
continue;
|
|
16
16
|
}
|
|
17
17
|
try {
|
|
18
|
-
const { postMergeLifecycle } = await import("./merge-agent-
|
|
18
|
+
const { postMergeLifecycle } = await import("./merge-agent-DWd0KfiS.js");
|
|
19
19
|
await postMergeLifecycle(entry.issueId, entry.projectPath, entry.sourceBranch, { skipDeploy: true });
|
|
20
20
|
console.log(`[deacon] Completed pending post-merge lifecycle for ${entry.issueId}`);
|
|
21
21
|
} catch (error) {
|
|
@@ -47,4 +47,4 @@ function enqueuePostMergeLifecycle(issueId, projectPath, sourceBranch) {
|
|
|
47
47
|
//#endregion
|
|
48
48
|
export { enqueuePostMergeLifecycle };
|
|
49
49
|
|
|
50
|
-
//# sourceMappingURL=post-merge-lifecycle-worker-
|
|
50
|
+
//# sourceMappingURL=post-merge-lifecycle-worker-DmSOkeNp.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { cn as init_projects, fn as listProjectsSync } from "./config-yaml-BSCqwmX0.js";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { existsSync, readFileSync } from "node:fs";
|
|
4
4
|
import { execFile } from "node:child_process";
|
|
@@ -159,4 +159,4 @@ async function fetchProjectReleaseStatus(projectKey, deps = {}) {
|
|
|
159
159
|
//#endregion
|
|
160
160
|
export { fetchProjectReleaseStatus };
|
|
161
161
|
|
|
162
|
-
//# sourceMappingURL=project-pipelines-
|
|
162
|
+
//# sourceMappingURL=project-pipelines-72WE8GVK.js.map
|