@overdeck/desktop 0.47.0 → 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-10Ur5Dne.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-BNwqxseD.js → advancing-selfheal-8AR68Asf.js} +6 -6
- package/server/{agent-gc-C3h9Or3a.js → agent-gc-BmYeT6eH.js} +5 -5
- package/server/agent-state-Dq3s84-P.js +3 -0
- package/server/{agent-state-service-C63p_ftq.js → agent-state-service-DK1Vay1E.js} +1 -1
- package/server/{agent-state-service-Ds6OeFvo.js → agent-state-service-rjnzpHDx.js} +6 -6
- package/server/agent-state-source-Ds968-j6.js +21 -0
- package/server/{agents-J5mEnekq.js → agents-Dls7tfJH.js} +5 -5
- package/server/agents-IPSa5kzn.js +3 -0
- package/server/{archive-planning-BwhxeP7C.js → archive-planning-Cq7cyinS.js} +51 -24
- package/server/archive-planning-MbkGCBIY.js +2 -0
- package/server/{artifact-index-jobs-D1q_vR3V.js → artifact-index-jobs-Dj_8kpTd.js} +3 -3
- package/server/{assemble-Bgwqv-Ro.js → assemble-BTCmbcfH.js} +20 -13
- package/server/{auto-spawn-consent-CQ9Bi9q6.js → auto-spawn-consent-lXqRJ1Dr.js} +304 -121
- package/server/{backlog-auto-trigger-n1lzPgN4.js → backlog-auto-trigger-Dn-amzt6.js} +3 -3
- package/server/{behavior-td6-xhQk.js → behavior-DIMQMRzs.js} +2 -2
- package/server/{boot-reconciled-stop-events-C7gGe3oB.js → boot-reconciled-stop-events-D6SeUTIr.js} +1 -1
- package/server/{bridge-pool-patrol-CYH2OLb5.js → bridge-pool-patrol-BEjt-xF3.js} +2 -2
- package/server/{briefing-freshness-DRqZ8lAz.js → briefing-freshness-3PNmL_p3.js} +2 -2
- package/server/{build-info-7yiEpl6u.js → build-info-CJg813Hm.js} +3 -3
- package/server/{build-info-CpG__c63.js → build-info-CXyeFsXu.js} +1 -1
- package/server/{checkpoint-manager-CkKmB0wZ.js → checkpoint-manager-9t7G5c1V.js} +1 -1
- package/server/{checkpoint-manager-DBcyNR8w.js → checkpoint-manager-B2G38R3p.js} +3 -3
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-Wm963lm8.js → checkpoints-CuBgiXO-.js} +1 -1
- package/server/{checkpoints-D95apurL.js → checkpoints-VTZMd4Qm.js} +2 -2
- package/server/{claude-hooks-provision-Bjitl9aI.js → claude-hooks-provision-55SyQaPz.js} +2 -2
- package/server/{claude-hooks-provision-4RPxNkE8.js → claude-hooks-provision-CEUT-CZd.js} +1 -1
- package/server/{claude-permissions-CpbpvUQ2.js → claude-permissions-Cn0dIu2i.js} +2 -2
- package/server/{claude-settings-overlay-BzkHYDwR.js → claude-settings-overlay-B19hdzSA.js} +1 -1
- package/server/{claude-settings-overlay-_H9Yrzab.js → claude-settings-overlay-Yg_ANh81.js} +2 -2
- package/server/{cli-Cte9ZFGn.js → cli-C9S84iTy.js} +79 -22
- package/server/cli-M1cwZ__d.js +3 -0
- package/server/{cliproxy-C5fMJ7rY.js → cliproxy-CJq3KXU6.js} +2 -2
- package/server/{cliproxy-DaAbWMjC.js → cliproxy-DgEZlr7Y.js} +1 -1
- package/server/{close-issue-BPh1ARCF.js → close-issue-DPxRddGR.js} +5 -5
- package/server/{closed-issue-reaper-DoOZqGFK.js → closed-issue-reaper-C5Zn4GRS.js} +13 -13
- package/server/{closed-issue-reaper-DHRfRMrp.js → closed-issue-reaper-D-2B48Ri.js} +1 -1
- package/server/{codex-o8FJwzmy.js → codex-B3n_rkwn.js} +1 -1
- package/server/{codex-BzGDW_d3.js → codex-CjkD1PJu.js} +6 -6
- package/server/{codex-parser-Dt-ycU8L.js → codex-parser-DpB1Il-P.js} +2 -2
- package/server/{compaction-continuation-CvXpbZ4w.js → compaction-continuation-DZD9ukSE.js} +3 -3
- package/server/{config-CL3Gyvja.js → config-C5saf4Ja.js} +1 -1
- package/server/{config-BvLe652W.js → config-DnLJATZk.js} +2 -2
- package/server/{config-Bi3u1VK7.js → config-DvM8jtQK.js} +2 -2
- package/server/{config-yaml-CxdwhAIA.js → config-yaml-BSCqwmX0.js} +11299 -10972
- package/server/{conflict-gate-CX80JYYS.js → conflict-gate-DXa_L28t.js} +1 -1
- package/server/{conflict-gate-E4nt7ZeS.js → conflict-gate-WfVqgalf.js} +4 -4
- package/server/{context-layers-DAG83UZt.js → context-layers-D7UqH9Ab.js} +2 -2
- package/server/{context-layers-C_IIysnm.js → context-layers-Dpz3Vd6d.js} +3 -3
- package/server/{control-settings-CiqGxXnc.js → control-settings-DVf6pKyv.js} +4 -4
- package/server/{conversation-compaction-BE3CNtHF.js → conversation-compaction-5XuH6OBn.js} +1 -1
- package/server/{conversation-compaction-D6-yLtqt.js → conversation-compaction-COrbnX1J.js} +8 -8
- package/server/{conversation-service-DBxoYMDl.js → conversation-service-BufdtnZF.js} +169 -10
- package/server/{conversation-service-D_TS2b1r.js → conversation-service-DnUyIiLb.js} +1 -1
- package/server/{conversations-D0UEdLtk.js → conversations-B4rxz-Wl.js} +17 -10
- package/server/{conversations-BKDVpB-3.js → conversations-D1bwxQMy.js} +1 -1
- package/server/{cost-DpgYmYqR.js → cost-CpFDrJUS.js} +46 -2
- package/server/{cost-DS1s0DbG.js → cost-KLuwKCW9.js} +3 -3
- package/server/{cost-sync-tOCCGnEt.js → cost-sync-cesi9dp8.js} +3 -3
- package/server/{dag-BtkgLeqY.js → dag-BYiFMqpU.js} +2 -2
- package/server/{dangerous-git-ops-CFLykHWt.js → dangerous-git-ops-BKvd3-Hk.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/{deacon-BIblC-WX.js → deacon-BbsWw8a6.js} +3 -3
- package/server/{deacon-pLRLbPvR.js → deacon-HdEh0Esp.js} +863 -214
- package/server/deacon-event-client-C93rvOT7.js +237 -0
- package/server/deacon-event-client-Ck5Ei7Mn.js +3 -0
- package/server/{deacon-nudge-log-B08gF0mh.js → deacon-nudge-log-BND_97Wo.js} +4 -3
- package/server/{deacon-pending-lifecycle-B-Io84AP.js → deacon-pending-lifecycle-CD3YsiQK.js} +3 -3
- package/server/deacon-swarm-DgWADWd_.js +2 -0
- package/server/{deacon-swarm-v5PMun-m.js → deacon-swarm-rqrl4TMs.js} +39 -18
- package/server/deacon.js +12 -210
- package/server/{dead-end-trip-D8A3msX9.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-sYgOxLeb.js → deploy-patrol-kARAkji4.js} +17 -21
- package/server/{deploy-queue-VfohaPN_.js → deploy-queue-Bj0HJT1i.js} +2 -2
- package/server/{deploy-queue-gHJBycaF.js → deploy-queue-rjTUy1RM.js} +1 -1
- package/server/{deploy-window-D4DQb8VP.js → deploy-window-B2IM-9G5.js} +10 -44
- package/server/{deploy-window-CFRZ0-kt.js → deploy-window-BNFWnA8D.js} +1 -1
- package/server/{dev-supervisor-DiOBDM1c.js → dev-supervisor-B1mZYXz4.js} +2 -2
- package/server/{devcontainer-renderer-BUOIlfgD.js → devcontainer-renderer-B-o68Z5B.js} +3 -3
- package/server/{dist-C3A8B8wM.js → dist-3W--cGMa.js} +1 -1
- package/server/dist-BR0QtwmS.js +3 -0
- package/server/{dist-src-C0adpegX.js → dist-src-C-Vk2jNk.js} +1 -1
- package/server/{docker-Y3PElJb0.js → docker-DH3jUYg1.js} +1 -1
- package/server/{docker-BJzlkqYB.js → docker-meuLKLzV.js} +27 -20
- package/server/{dod-DlNtcH6n.js → dod-D7-9dCOD.js} +1 -1
- package/server/{driver-CKVGi51s.js → driver-CmsY2RLl.js} +1 -1
- package/server/{durable-review-pipeline-DP6bIcOY.js → durable-review-pipeline-CStTgOAf.js} +1 -1
- package/server/{durable-review-pipeline-Cibps-Rg.js → durable-review-pipeline-Chq0lzjL.js} +1 -1
- package/server/{ensure-devcontainer-DMAbWqtQ.js → ensure-devcontainer-BE3llBWP.js} +1 -1
- package/server/{ensure-devcontainer-BAofzBPv.js → ensure-devcontainer-BXrY7C2Z.js} +4 -4
- package/server/{esm-shims-BeObUkaw.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-CF8QDbuV.js → events-CCkFWa7X.js} +1 -1
- package/server/{events-BNrvchBg.js → events-zjDQozet.js} +3 -3
- package/server/{factory-Cmm9Hsho.js → factory-DhavwKVc.js} +5 -5
- package/server/{feature-registry-population-B6HpNWRy.js → feature-registry-population-DWGBKyWd.js} +4 -4
- package/server/{feature-registry-storage-DJEFx1Pf.js → feature-registry-storage-C5DkXmCM.js} +3 -3
- package/server/{features-D5km80UI.js → features-CC47YcCX.js} +2 -2
- package/server/{feedback-target-BJ5ZADsu.js → feedback-target-D9Tex35_.js} +1 -1
- package/server/{feedback-target-DSxEL6lP.js → feedback-target-DoRCR3L-.js} +18 -7
- package/server/{feedback-writer-CoB9Z6aU.js → feedback-writer-CTSuA6lw.js} +1 -1
- package/server/{feedback-writer-C27Hak8a.js → feedback-writer-DdsBdtNL.js} +5 -5
- package/server/{flywheel-DZZdtiOL.js → flywheel-DHWHzaYK.js} +1 -1
- package/server/{flywheel-f662Q-y2.js → flywheel-DJQa9az8.js} +14 -14
- package/server/{flywheel-BHx8XuMr.js → flywheel-TacAI9MA.js} +21 -17
- package/server/{flywheel-merge-order-Dil0LmdN.js → flywheel-merge-order-D2foPh88.js} +1 -1
- package/server/{flywheel-merge-order-D_xLMbJU.js → flywheel-merge-order-DRtex2Dt.js} +7 -7
- package/server/forge-CdlCG9aS.js +3 -0
- package/server/{forge-BaKGCya6.js → forge-c8LeC-tw.js} +2 -2
- package/server/{from-B3tZbB55.js → from-BogSwvr2.js} +1 -1
- package/server/{fs-lock-Bre3sGoz.js → fs-lock-D_GeJtXl.js} +3 -3
- package/server/{fts-operations-B9jG8wa3.js → fts-operations-DP9R-8Q3.js} +3 -3
- package/server/{git-utils-Xg4PFN45.js → git-utils-C31x1lpE.js} +1 -1
- package/server/{git-utils-CsvYfJU3.js → git-utils-xQ74FoSn.js} +5 -4
- package/server/{github-app-Bmg4R9mv.js → github-app-CpQSDlv8.js} +1 -1
- package/server/{github-app-CmNk0zLU.js → github-app-D2QuvZ3j.js} +3 -3
- package/server/{github-client-qazkPrg0.js → github-client-D9YvJX5D.js} +3 -3
- package/server/{github-client-B6KM9_wA.js → github-client-Tpi3PmKX.js} +1 -1
- package/server/{github-pr-lookup-DAcVeRLK.js → github-pr-lookup-DvBMv-IW.js} +2 -2
- package/server/{harness-binary-BSpiXaLw.js → harness-binary-BHxWf_sX.js} +7 -6
- package/server/{harness-resolve-BAJu5MX8.js → harness-resolve-bj9WMABA.js} +4 -4
- package/server/{health-events-BwX32k8d.js → health-events-bCDPn59Z.js} +2 -2
- package/server/{health-events-2Z6Wa9SM.js → health-events-qo7Ss34U.js} +1 -1
- package/server/{hooks-DbtbimEf.js → hooks-Dyxtg5fk.js} +2 -2
- package/server/{hooks-D1g1jKLI.js → hooks-X2XHBB2b.js} +1 -1
- package/server/{hume-DXNiu6nQ.js → hume-DrZEGpqc.js} +2 -2
- package/server/hume-YPsy4UA8.js +3 -0
- package/server/{idle-stack-reaper-Cy-dQzW4.js → idle-stack-reaper-CJ1ygW0p.js} +37 -7
- package/server/{idle-stack-reaper-CRA1e0jr.js → idle-stack-reaper-uJGOb-vu.js} +1 -1
- package/server/{in-flight-guard-D-sSkADM.js → in-flight-guard-CG2Eo-rr.js} +1 -1
- package/server/{infra-BDQDRopn.js → infra-CTrmVqc_.js} +111 -6
- package/server/{injection-Bl8d_jHZ.js → injection-BisQ0lpX.js} +1 -1
- package/server/{injection-6AGnXxlj.js → injection-C9sxqbc2.js} +73 -193
- package/server/{inspect-agent-nXdIptyh.js → inspect-agent-BoSO51YC.js} +12 -12
- package/server/inspect-agent-BykeOH4a.js +2 -0
- package/server/{internal-token-DzK385vD.js → internal-token-AvXePaQT.js} +2 -2
- package/server/{internal-token-Ias7N8Kg.js → internal-token-Djkj-yqK.js} +1 -1
- package/server/{io-B00PBNku.js → io-mxOWMZ7I.js} +6 -6
- package/server/{issue-closed-BehTG1be.js → issue-closed-Bj_bCv_0.js} +7 -7
- package/server/{issue-lifecycle-BqSuQvbn.js → issue-lifecycle-A5YIpDZE.js} +1 -1
- package/server/{issue-lifecycle-Birk-ifu.js → issue-lifecycle-BXUqaHzF.js} +32 -28
- package/server/{issue-service-singleton-C6ZduvuY.js → issue-service-singleton-BPNEXczv.js} +11 -11
- package/server/{issue-service-singleton-B2wXiIlw.js → issue-service-singleton-CcaHjKPR.js} +1 -1
- package/server/{issues-DQ5-LatB.js → issues-AX-YBeAQ.js} +2 -2
- package/server/{jsonl-parser-BDpnGFCl.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-Dwnky8FG.js → label-cleanup-sXUlgdM0.js} +3 -3
- package/server/{lifecycle-B4Xdb4cY.js → lifecycle-D2X3al0D.js} +2 -2
- package/server/{lifecycle-B3s4sM1G.js → lifecycle-DjlljAZ1.js} +6 -6
- package/server/{lifecycle-io-CzTHEooc.js → lifecycle-io-C5nVk55o.js} +1 -1
- package/server/{lifecycle-io-DCo6s6ks.js → lifecycle-io-NPm1YtIG.js} +5 -5
- package/server/{linear-client-CnbtHiic.js → linear-client--luYwCZg.js} +1 -1
- package/server/{linear-client-9uq7fhiV.js → linear-client-B8pLegW1.js} +3 -3
- package/server/{linear-mcp-auth-BxUOzswy.js → linear-mcp-auth-BQVWV0I3.js} +6 -6
- package/server/{linear-mcp-auth-D46fBCLf.js → linear-mcp-auth-Dx81Zl4G.js} +1 -1
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-DiW9RdSB.js → merge-Bx5Bh9pi.js} +3 -3
- package/server/{merge-sr8Nrnmi.js → merge-Dqmh_zja.js} +1 -1
- package/server/{merge-agent-BLUgRsz3.js → merge-agent-DP9AUY29.js} +33 -33
- package/server/{merge-agent-DQTXZk8z.js → merge-agent-DWd0KfiS.js} +1 -1
- package/server/{merge-batch-Cp_j9BGk.js → merge-batch-BdmvTEAC.js} +1 -1
- package/server/{merge-completeness-BLbB5-6n.js → merge-completeness-BfRwFjRx.js} +1 -1
- package/server/{merge-completeness-B46KqhtY.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-DIkBjgwq.js → merge-rebase-BX1xKsrE.js} +2 -2
- package/server/{merge-set-CBgHfwM0.js → merge-set-DsLjjLEV.js} +4 -4
- package/server/{merge-set-DeUxFsC3.js → merge-set-H6epHOsw.js} +1 -1
- package/server/{merge-sync-kr4vqyjM.js → merge-sync-BEdfsQV4.js} +2 -2
- package/server/{merge-sync-CpGmk6Ch.js → merge-sync-BebcWWGA.js} +1 -1
- package/server/{merge-train-Dmrcus12.js → merge-train-D1I0lNOT.js} +4 -4
- package/server/{merge-train-deps-D_uGX91G.js → merge-train-deps-D_-C0Pk2.js} +4 -4
- package/server/{merge-verification-NvaAd8CZ.js → merge-verification-DN1Ov9bU.js} +6 -6
- package/server/{merged-docker-cleanup-worker-Y1R06TEl.js → merged-docker-cleanup-worker-CfXSr2pA.js} +4 -4
- package/server/{merged-docker-cleanup-worker-DH_hrGPI.js → merged-docker-cleanup-worker-ybsPyHjB.js} +1 -1
- package/server/{multipart-parser-R-oC8dQg.js → multipart-parser-CL5QG8iv.js} +2 -2
- package/server/{no-resume-mode-BgD0JUmM.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-DcgTPPFY.js → orphan-proposed-reconciler-CEW1maPl.js} +1 -1
- package/server/{orphan-proposed-reconciler-B6vJHxtX.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-DMzF5wne.js → pan-dir-DhgKfO86.js} +21 -6
- package/server/{paths-sJBSb7Ul.js → paths-BUuhi6jM.js} +17 -17
- package/server/{pending-lifecycle-claim-DilzGfgk.js → pending-lifecycle-claim-DJlA1rTR.js} +2 -2
- package/server/{persistent-logger-H_VjuOu7.js → persistent-logger-s8cbpFNV.js} +2 -2
- package/server/{pickup-DWhqzliO.js → pickup-2AxtB3dW.js} +1 -1
- package/server/{pipeline-membership-C88VBnhJ.js → pipeline-membership-2_okL5bm.js} +1 -1
- package/server/{pipeline-membership-D9SBvItj.js → pipeline-membership-Dqv6_0ig.js} +1 -1
- package/server/{pipeline-membership-gather-4eR-7Tqy.js → pipeline-membership-gather-4F1-tXKI.js} +1 -1
- package/server/{pipeline-membership-gather-CeVGnNJ2.js → pipeline-membership-gather-CtJ_7aGf.js} +149 -17
- package/server/{pipeline-notifier-DT6xLFao.js → pipeline-notifier-CO9rxJgB.js} +1 -1
- package/server/{pipeline-notifier-D0ALV6Nw.js → pipeline-notifier-DDfVBJhJ.js} +2 -2
- package/server/{post-merge-lifecycle-worker-8HIeS_J6.js → post-merge-lifecycle-worker-DmSOkeNp.js} +3 -3
- package/server/{project-pipelines-9SKt2bEc.js → project-pipelines-72WE8GVK.js} +2 -2
- package/server/{project-repos-B5pIphKg.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-CgzMBvQF.js → prompts-XkL10m8M.js} +2 -2
- package/server/{providers-BJQSnAAp.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-7BgLDsIo.js → pull-requests-B-KrUph5.js} +3 -3
- package/server/{pull-requests-Dq0y6IxE.js → pull-requests-DK5k92B4.js} +1 -1
- package/server/{queries-C-MUZaIy.js → queries-DVpl1vsU.js} +1212 -193
- package/server/{rally-CPysR4T_.js → rally-DbE561hD.js} +3 -3
- package/server/rally-O_st_X7n.js +3 -0
- package/server/{rally-api-8Ptlp2os.js → rally-api-CZLeEd2C.js} +2 -2
- package/server/{rally-api-CgosKdKL.js → rally-api-DaHtn5QN.js} +1 -1
- package/server/{rally-client-CCX0hADj.js → rally-client-C-MAl8ur.js} +1 -1
- package/server/{rally-client-iYMHWQD7.js → rally-client-Ch3zRsBX.js} +5 -5
- package/server/{reap-terminal-sessions-Qf-9LVQc.js → reap-terminal-sessions-C1n0ALRb.js} +2 -2
- package/server/{reap-terminal-sessions-4Xg9NGA8.js → reap-terminal-sessions-DegFS2p1.js} +2 -2
- package/server/{rebuild-stack-CMdgaylx.js → rebuild-stack-C9Li44A3.js} +20 -10
- package/server/{rebuild-stack-DqcOVmJO.js → rebuild-stack-qC0jCNm6.js} +2 -2
- package/server/{reconstruct-cache-CMZJ_Vjq.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-B2X9AfFC.js → release-engine-Be5MX5GP.js} +5 -5
- package/server/{release-set-G4XKyQ8K.js → release-set-DJv_O6PS.js} +3 -3
- package/server/{remote-BXarMvqf.js → remote-BMM3uH2J.js} +3 -3
- package/server/{remote-CUhyqjXk.js → remote-C0xVTHA5.js} +3 -3
- package/server/{remote-agents-CLZB3Coc.js → remote-agents-BIIoc5pD.js} +1 -1
- package/server/{remote-agents-Bba-MgSA.js → remote-agents-EUiZ26bj.js} +7 -7
- package/server/{remote-completion-CwAp79EC.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--pOptAEV.js → review-agent-BHGaBoBu.js} +29 -29
- package/server/{review-agent-BTCNkq2h.js → review-agent-CD3RQ-tc.js} +1 -1
- package/server/{review-artifacts-BNmw8dWE.js → review-artifacts-DyhajWso.js} +6 -6
- package/server/{review-context-DFxYOOJW.js → review-context-B-dlsPnx.js} +9 -9
- package/server/{review-convoy-liveness-BgU_1jJf.js → review-convoy-liveness-D7M-s_nS.js} +2 -2
- package/server/{review-status-Dma9SFaN.js → review-status-B6wYcOtP.js} +1 -1
- package/server/{review-status-CGvlA4o_.js → review-status-CKLk5aZ-.js} +308 -58
- package/server/{review-status-emit-DURrmGYX.js → review-status-emit-CJ7UmEVU.js} +3 -3
- package/server/{review-status-enrichment-8NiNXi5W.js → review-status-enrichment-DJRgGX7-.js} +3 -3
- package/server/review-status-limits-4EJDCGHO.js +7 -0
- package/server/{review-status-source-DIk1JSow.js → review-status-source-7nU3Z2wL.js} +1 -1
- package/server/{review-status-source-BLx_1siH.js → review-status-source-BsDYGfyv.js} +1 -1
- package/server/{review-status-sync-muT-EBp2.js → review-status-sync-BLssMTEW.js} +1 -1
- package/server/{review-status-sync-0GxOqeqF.js → review-status-sync-BxBeHRde.js} +35 -11
- package/server/{review-verdict-feedback-xJNdqBnX.js → review-verdict-feedback-5jWuzgpc.js} +90 -16
- package/server/{review-verdict-feedback-HwF6ODFy.js → review-verdict-feedback-HRY9P4bN.js} +1 -1
- package/server/{rollup-BQaol5TX.js → rollup-BGIrCEkU.js} +79 -44
- package/server/rollup-CZB4UL9q.js +3 -0
- package/server/{scanner-C-D2cFdX.js → scanner-DydjXPrz.js} +16 -9
- package/server/search-DdtIjAiu.js +395 -0
- package/server/{sequence-io-Bmf1EZM5.js → sequence-io-Fw-cLyDs.js} +4 -4
- package/server/{sequencer-agent-CigMyKh2.js → sequencer-agent-BcpGMt5x.js} +15 -10
- package/server/server.js +1258 -438
- package/server/{service-CD0DvFvD.js → service-BFFkGsG4.js} +58 -58
- package/server/{session-fork-B6cQ5eya.js → session-fork-D0V-3e5P.js} +2 -2
- package/server/{session-history-3ON_IJjm.js → session-history-Bta5l9jY.js} +5 -5
- package/server/{settings-PilbFZAM.js → settings-Ce8B1daF.js} +2 -2
- package/server/{settings-VN0qOh4U.js → settings-E3FnEIUx.js} +3 -3
- package/server/settings-eOOJpxi_.js +2 -0
- package/server/{shadow-engineering-DXvx77oE.js → shadow-engineering-Mt9nJO4i.js} +3 -3
- package/server/{shadow-state-CZBp7pwq.js → shadow-state-Bzj_AZCV.js} +1 -1
- package/server/{shadow-state-BBk_zacw.js → shadow-state-DrkhoVSx.js} +2 -2
- package/server/{shadow-utils-DdZ05AJS.js → shadow-utils-H1GfqP06.js} +2 -2
- package/server/{ship-log-7kJfjUX2.js → ship-log-CFUIo4PR.js} +1 -1
- package/server/{smart-compaction-8fA5k5XN.js → smart-compaction-DSTq-Wua.js} +1 -1
- package/server/{smart-compaction-ByhL9cRS.js → smart-compaction-Hzp3KCJX.js} +7 -7
- package/server/{spawn-planning-session-vLUJoFjy.js → spawn-planning-session-C0uSA2SL.js} +2 -2
- package/server/{spawn-planning-session-pcF-YeFE.js → spawn-planning-session-DN4son31.js} +23 -21
- package/server/{specialist-completion-B07XjWD2.js → specialist-completion-Cf6tpIh1.js} +1 -1
- package/server/{specialist-context-DJ-zFyL3.js → specialist-context-DEUEkjIQ.js} +5 -5
- package/server/{specialist-handoff-logger-aKSxbIgD.js → specialist-handoff-logger-D_LmQDj3.js} +2 -2
- package/server/{specialist-logs-Dae-n52_.js → specialist-logs-7Ynue0R7.js} +3 -3
- package/server/{specialists-KR3pKulN.js → specialists-CQwBEGlD.js} +1 -1
- package/server/{specialists-6PWdtWcg.js → specialists-DAjPgYs_.js} +504 -238
- package/server/{specialists-DUiExaxb.js → specialists-Hr6iW9fU.js} +18 -18
- package/server/{specialists-Bz-wFT7R.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-vHy2-oCv.js → src-DQnkPN2i.js} +3 -3
- package/server/{src-rac0Mepv.js → src-DhfDV0o4.js} +6 -6
- package/server/{stack-health-DqLTiEu4.js → stack-health-D_iKwNRg.js} +107 -16
- package/server/stack-health-deVSdDwn.js +3 -0
- package/server/{stale-task-claims-Cab_Fo_Z.js → stale-task-claims-BYJGqhLI.js} +5 -5
- package/server/{staleness-CGTZyp6V.js → staleness-CopBDKnA.js} +1 -1
- package/server/{staleness-C-a5rBxF.js → staleness-D8WeMUHd.js} +1 -1
- package/server/{state-home-722Dkx92.js → state-home-DjN8qduI.js} +24 -3
- package/server/{state-mapping-CybR81Uf.js → state-mapping-DlM7OYRW.js} +1 -1
- package/server/{state-migrate-2u8wIpoL.js → state-migrate-a2p1gtD7.js} +4 -4
- package/server/state-mirror-Cv_XgvT5.js +121 -0
- package/server/{stuck-remediation-r1TJu68G.js → stuck-remediation-CXJX_kki.js} +1 -1
- package/server/{stuck-remediation-CC6q3eqQ.js → stuck-remediation-CbCRSz1v.js} +31 -732
- package/server/{substrate-bug-weights-service-CzIyyWFT.js → substrate-bug-weights-service-DxpopNd9.js} +3 -3
- package/server/{summary-fork-BqgmgPDt.js → summary-fork-B61fjRJn.js} +2 -2
- package/server/{summary-fork-Df2WFijM.js → summary-fork-B9pszUJN.js} +91 -10
- package/server/supervisor/{injection-budget-Cg_KIb3o.js → injection-budget-Ar7hgyJq.js} +1 -1
- package/server/supervisor/pty-supervisor.js +12 -3
- package/server/supervisor/{pty-token-BbjwEUUM.js → pty-token-CXCFU0Z8.js} +1 -1
- package/server/{supervisor-BxqSpjcN.js → supervisor-BvnxbuuF.js} +6 -4
- package/server/supervisor-C69kpqvd.js +2 -0
- package/server/{swarm-readiness-DfFxa9-n.js → swarm-readiness-vTw1kqGa.js} +3 -3
- package/server/{system-prerequisites-ICLSkhhZ.js → system-prerequisites-LLzTEqsK.js} +3 -3
- package/server/{teardown-workspace-DRdi_CPa.js → teardown-workspace-CqKKVJr1.js} +15 -15
- package/server/{test-agent-queue-A_-p-i0I.js → test-agent-queue-CWMq7oyG.js} +8 -7
- package/server/{test-verdict-BHgTAwIG.js → test-verdict-NdtgRBuA.js} +1 -1
- package/server/{test-verdict-C4i9aqEP.js → test-verdict-diIWE6hz.js} +15 -3
- package/server/{tldr-daemon-CvWXBhX1.js → tldr-daemon-B1Jhrtc8.js} +1 -1
- package/server/{tldr-daemon-wvsU6bKv.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-DrxwytsZ.js → token-Bgpjo3tE.js} +2 -2
- package/server/token-util-BsjFll-k.js +3 -0
- package/server/{token-util-B48BlCba.js → token-util-BymbpkJp.js} +1 -1
- package/server/{tracker-config-BcPMElRB.js → tracker-config-4DaKVTfc.js} +2 -2
- package/server/{tracker-utils-CJ6BHjcD.js → tracker-utils-BDeAXC-q.js} +2 -2
- package/server/{traefik-connect-DZ6nMYMj.js → traefik-connect-CC5FyxYj.js} +1 -1
- package/server/{tunnel-Bp-dRHZz.js → tunnel-CDWkeceJ.js} +1 -1
- package/server/{tunnel-DUbUPElU.js → tunnel-CPf5M-Pc.js} +3 -3
- package/server/{typed-errors-DyjseiB6.js → typed-errors-9K7Dq_Vn.js} +1 -1
- package/server/{typed-errors-CKeoDdU3.js → typed-errors-DrS5fb5z.js} +1 -1
- package/server/{types-Cm5ASJbq.js → types-DzlUKiuf.js} +4 -3
- package/server/{types-Di8wdakq.js → types-kI9ik8XO.js} +1 -1
- package/server/{uat-promote-verification-CoJuh7XO.js → uat-promote-verification-c_pxoxEc.js} +5 -5
- package/server/{uat-train-4Q0k06CQ.js → uat-train-CWGxBdJO.js} +0 -0
- package/server/{uat-train-Dewoatps.js → uat-train-CfCYd2ve.js} +1 -1
- package/server/{validate-B0C8p66t.js → validate-f3ItVCfm.js} +3 -3
- package/server/{validation-hVOwQk8T.js → validation-5G_wQtea.js} +1 -1
- package/server/{validation-B_kIRfNe.js → validation-7tSiCM82.js} +4 -4
- package/server/{verification-artifact-BxlxTiYK.js → verification-artifact-9h9dH8uX.js} +1 -1
- package/server/{verification-artifact-D70AtckY.js → verification-artifact-C_4WJnf6.js} +1 -1
- package/server/{verification-runner-Bc3cJvpC.js → verification-runner-BV5F6wrA.js} +1 -1
- package/server/{verification-runner-KZTz6u72.js → verification-runner-D58KmBhK.js} +18 -38
- package/server/{vtt-parser-CE_i3Bcw.js → vtt-parser-2iT9OHa9.js} +1 -1
- package/server/{work-agent-prompt-ByrPAzOy.js → work-agent-prompt-D03s4DD1.js} +9 -9
- package/server/{workflows-D0vP1WrK.js → workflows-BMBwLYPV.js} +281 -98
- package/server/workflows-BOmWGpIh.js +2 -0
- package/server/{workspace-DQkRPLlQ.js → workspace-BgflNCH0.js} +3 -3
- package/server/{workspace-COWvdibH.js → workspace-Cn9ywfSW.js} +1 -1
- package/server/{workspace-anchor-drift-pwz23TI1.js → workspace-anchor-drift-C8Fy3shi.js} +1 -1
- package/server/{workspace-anchor-drift-DXYIAHzr.js → workspace-anchor-drift-CMiNncwq.js} +5 -8
- package/server/{workspace-config-BdZM4PvZ.js → workspace-config-aUc2nIz6.js} +1 -1
- package/server/{workspace-manager-BPgTrG66.js → workspace-manager-Bem7ZBs9.js} +521 -292
- package/server/workspace-manager-C0CpNh3t.js +3 -0
- package/server/{workspace-metadata-CdjzAP8x.js → workspace-metadata-C5iSlPRo.js} +1 -1
- package/server/{workspace-metadata-DkO_iTLo.js → workspace-metadata-UKmTYmDQ.js} +2 -2
- package/server/{workspaces-CRBJikLp.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-CYXJVG72.js +0 -3
- package/server/agents-ePFVoZbu.js +0 -3
- package/server/archive-planning-B2XplFzT.js +0 -2
- package/server/cli-CjOCSnfj.js +0 -3
- package/server/deacon-swarm-B1XkIvfr.js +0 -2
- package/server/delivery-BX9HR4wQ.js +0 -3
- package/server/dist-B3YPQa5A.js +0 -3
- package/server/event-store-5UKzh9Jf.js +0 -3
- package/server/forge-B5o319qI.js +0 -3
- package/server/fts-db-IVc4_M3f.js +0 -146
- package/server/hume-VUCNbTgn.js +0 -3
- package/server/inspect-agent-CUwVmr2h.js +0 -2
- package/server/merge-ops-1abz6O_P.js +0 -2
- package/server/merge-rebase-CJJVAJuz.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-DPjOdfPa.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-D_VW4bJv.js +0 -3
- package/server/record-BTwWhtBb.js +0 -3
- package/server/record-update-DaOKS7Wb.js +0 -277
- package/server/recovery-trip-DDH-02ng.js +0 -44
- package/server/resume-mOREjlYu.js +0 -3
- package/server/rollup-BR4t_wck.js +0 -3
- package/server/settings-CVmWiJ-r.js +0 -2
- package/server/specs--enInima.js +0 -3
- package/server/stack-health-BikqHSjn.js +0 -3
- package/server/supervisor-B4anCCSm.js +0 -2
- package/server/tmux-Ctk6RV5l.js +0 -3
- package/server/token-util-D411CAq9.js +0 -3
- package/server/workflows-DtDX08ed.js +0 -2
- package/server/workspace-manager-C1F3XsnS.js +0 -3
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { A as init_paths$1, d as getOverdeckDatabaseSync, f as init_infra, k as getOverdeckDatabasePath } from "./infra-
|
|
2
|
+
import { hi as init_paths, mi as getOverdeckHome } from "./config-yaml-BSCqwmX0.js";
|
|
3
|
+
import { c as init_activity_logger, l as setActivityEventStoreProvider } from "./activity-logger-Co5qljIj.js";
|
|
4
|
+
import { A as init_paths$1, d as getOverdeckDatabaseSync, f as init_infra, k as getOverdeckDatabasePath } from "./infra-CTrmVqc_.js";
|
|
5
|
+
import { a as getWorkspaceForIssue, o as init_resolver } from "./resolver-BvHd6RE4.js";
|
|
6
|
+
import { t as init_review_status_limits } from "./review-status-limits-4EJDCGHO.js";
|
|
5
7
|
import { existsSync } from "node:fs";
|
|
6
8
|
import { EventEmitter } from "node:events";
|
|
7
9
|
import { mkdir } from "node:fs/promises";
|
|
@@ -21,6 +23,45 @@ import { mkdir } from "node:fs/promises";
|
|
|
21
23
|
* const past = store.readFrom(0);
|
|
22
24
|
* const unsub = store.subscribe(event => console.log(event));
|
|
23
25
|
*/
|
|
26
|
+
/** Default workspace-id resolver: the real workspaces resolver against the global overdeck.db. */
|
|
27
|
+
function defaultResolveWorkspaceId(issueId) {
|
|
28
|
+
return getWorkspaceForIssue(issueId)?.id;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* PAN-1990 D-10/WI-11: stamp `workspaceId` onto any issue-bearing event
|
|
32
|
+
* payload that omits it, so a producer that only knows `issueId` still
|
|
33
|
+
* reaches workspace-scoped consumers without every call site resolving the
|
|
34
|
+
* lookup itself. Never overwrites a payload that already carries a
|
|
35
|
+
* `workspaceId` — some producers (e.g. operatorInterventionEvent) resolve it
|
|
36
|
+
* themselves at construction time and that value wins.
|
|
37
|
+
*
|
|
38
|
+
* Review fix (non-blocking, test isolation/perf): the resolver is injected
|
|
39
|
+
* (defaulting to the real one) so a store built with a mock DbAdapter for
|
|
40
|
+
* unit tests can opt out of touching the global overdeck.db, and resolution
|
|
41
|
+
* is wrapped in try/catch so a resolver failure — e.g. a test DB that isn't
|
|
42
|
+
* in a state this lookup expects — degrades to "no stamp" rather than
|
|
43
|
+
* breaking the append itself.
|
|
44
|
+
*/
|
|
45
|
+
function withWorkspaceId(event, resolveWorkspaceId) {
|
|
46
|
+
const payload = event["payload"];
|
|
47
|
+
if (!payload || typeof payload !== "object") return event;
|
|
48
|
+
const record = payload;
|
|
49
|
+
if (record["workspaceId"] !== void 0 || typeof record["issueId"] !== "string") return event;
|
|
50
|
+
let workspaceId;
|
|
51
|
+
try {
|
|
52
|
+
workspaceId = resolveWorkspaceId(record["issueId"]);
|
|
53
|
+
} catch {
|
|
54
|
+
return event;
|
|
55
|
+
}
|
|
56
|
+
if (!workspaceId) return event;
|
|
57
|
+
return {
|
|
58
|
+
...event,
|
|
59
|
+
payload: {
|
|
60
|
+
...record,
|
|
61
|
+
workspaceId
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
}
|
|
24
65
|
function rowToStored(row) {
|
|
25
66
|
return {
|
|
26
67
|
sequence: row.sequence,
|
|
@@ -46,11 +87,60 @@ async function openEventDb() {
|
|
|
46
87
|
if (!existsSync(home)) await mkdir(home, { recursive: true });
|
|
47
88
|
return getOverdeckDatabaseSync(getOverdeckDatabasePath());
|
|
48
89
|
}
|
|
90
|
+
function truncateHistoryNote(notes) {
|
|
91
|
+
if (!notes || notes.length <= 500) return notes;
|
|
92
|
+
return notes.slice(0, 499) + "…";
|
|
93
|
+
}
|
|
49
94
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
95
|
+
* Enforce review.status_changed payload bounds at the persistence door.
|
|
96
|
+
* Returns the bounded JSON string if changes were needed, or the original string unchanged.
|
|
97
|
+
* Applied before every append/appendOnce to prevent unbounded payloads from entering the store.
|
|
52
98
|
*/
|
|
53
|
-
function
|
|
99
|
+
function boundReviewStatusPayload(payload) {
|
|
100
|
+
try {
|
|
101
|
+
const parsed = JSON.parse(payload);
|
|
102
|
+
const history = parsed.status?.history;
|
|
103
|
+
if (!Array.isArray(history)) return payload;
|
|
104
|
+
const needsHistorySlice = history.length > 20;
|
|
105
|
+
let needsNoteTruncation = false;
|
|
106
|
+
for (const entry of history) if (entry.notes && entry.notes.length > 500) {
|
|
107
|
+
needsNoteTruncation = true;
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
if (!needsHistorySlice && !needsNoteTruncation) return payload;
|
|
111
|
+
const boundedHistory = needsHistorySlice ? history.slice(-20) : history;
|
|
112
|
+
for (const entry of boundedHistory) entry.notes = truncateHistoryNote(entry.notes);
|
|
113
|
+
parsed.status.history = boundedHistory;
|
|
114
|
+
return JSON.stringify(parsed);
|
|
115
|
+
} catch {
|
|
116
|
+
return payload;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* PAN-3253: Boot-time trim for older review.status_changed rows.
|
|
121
|
+
* On one machine, this event type was 80% of a 1.3 GB overdeck.db.
|
|
122
|
+
* Delegates to boundReviewStatusPayload to enforce the same bounds
|
|
123
|
+
* that prevent new unbounded payloads from entering at the append door.
|
|
124
|
+
*/
|
|
125
|
+
function trimReviewStatusHistoryPayloads(db) {
|
|
126
|
+
const rows = db.prepare(`SELECT sequence, payload FROM events WHERE type = 'review.status_changed' AND length(payload) > ?`).all([OVERSIZED_REVIEW_PAYLOAD_CHARS]);
|
|
127
|
+
const update = db.prepare("UPDATE events SET payload = ? WHERE sequence = ?");
|
|
128
|
+
let trimmed = 0;
|
|
129
|
+
let savedChars = 0;
|
|
130
|
+
for (const row of rows) {
|
|
131
|
+
const bounded = boundReviewStatusPayload(row.payload);
|
|
132
|
+
if (bounded === row.payload) continue;
|
|
133
|
+
update.run([bounded, row.sequence]);
|
|
134
|
+
trimmed += 1;
|
|
135
|
+
savedChars += row.payload.length - bounded.length;
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
trimmed,
|
|
139
|
+
savedChars
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
function createEventStore(db, options) {
|
|
143
|
+
const resolveWorkspaceId = options?.resolveWorkspaceId ?? defaultResolveWorkspaceId;
|
|
54
144
|
const emitter = new EventEmitter();
|
|
55
145
|
emitter.setMaxListeners(0);
|
|
56
146
|
const insertStmt = db.prepare(`INSERT INTO events (type, timestamp, payload) VALUES (?, ?, ?)`);
|
|
@@ -69,6 +159,16 @@ function createEventStore(db) {
|
|
|
69
159
|
) latest ON e.sequence = latest.max_seq
|
|
70
160
|
ORDER BY e.sequence ASC`);
|
|
71
161
|
const purgeTypeStmt = db.prepare(`DELETE FROM events WHERE type = ?`);
|
|
162
|
+
let idempotencyStmts = null;
|
|
163
|
+
function getIdempotencyStmts() {
|
|
164
|
+
idempotencyStmts ??= {
|
|
165
|
+
claim: db.prepare(`INSERT OR IGNORE INTO event_idempotency (key, sequence, created_at) VALUES (?, ?, ?)`),
|
|
166
|
+
read: db.prepare(`SELECT sequence FROM event_idempotency WHERE key = ?`),
|
|
167
|
+
setSeq: db.prepare(`UPDATE event_idempotency SET sequence = ? WHERE key = ?`),
|
|
168
|
+
compact: db.prepare(`DELETE FROM event_idempotency WHERE created_at < ?`)
|
|
169
|
+
};
|
|
170
|
+
return idempotencyStmts;
|
|
171
|
+
}
|
|
72
172
|
let writeQueue = [];
|
|
73
173
|
let flushScheduled = false;
|
|
74
174
|
function scheduleFlush() {
|
|
@@ -110,8 +210,10 @@ function createEventStore(db) {
|
|
|
110
210
|
}, 0);
|
|
111
211
|
}
|
|
112
212
|
function append(event) {
|
|
213
|
+
event = withWorkspaceId(event, resolveWorkspaceId);
|
|
113
214
|
const timestamp = eventTimestampMillis(event);
|
|
114
|
-
|
|
215
|
+
let payload = JSON.stringify(event["payload"] ?? {});
|
|
216
|
+
if (event.type === "review.status_changed") payload = boundReviewStatusPayload(payload);
|
|
115
217
|
insertStmt.run([
|
|
116
218
|
event.type,
|
|
117
219
|
timestamp,
|
|
@@ -128,9 +230,11 @@ function createEventStore(db) {
|
|
|
128
230
|
return sequence;
|
|
129
231
|
}
|
|
130
232
|
function appendAsync(event) {
|
|
233
|
+
event = withWorkspaceId(event, resolveWorkspaceId);
|
|
131
234
|
return new Promise((resolve) => {
|
|
132
235
|
const timestamp = eventTimestampMillis(event);
|
|
133
|
-
|
|
236
|
+
let payload = JSON.stringify(event["payload"] ?? {});
|
|
237
|
+
if (event.type === "review.status_changed") payload = boundReviewStatusPayload(payload);
|
|
134
238
|
writeQueue.push({
|
|
135
239
|
type: event.type,
|
|
136
240
|
timestamp,
|
|
@@ -142,6 +246,7 @@ function createEventStore(db) {
|
|
|
142
246
|
});
|
|
143
247
|
}
|
|
144
248
|
function emitOnly(event) {
|
|
249
|
+
event = withWorkspaceId(event, resolveWorkspaceId);
|
|
145
250
|
const timestamp = eventTimestampMillis(event);
|
|
146
251
|
const stored = {
|
|
147
252
|
sequence: -1,
|
|
@@ -162,6 +267,10 @@ function createEventStore(db) {
|
|
|
162
267
|
const sevenDaysAgo = Date.now() - 10080 * 60 * 1e3;
|
|
163
268
|
const result = compactStmt.run([sevenDaysAgo]);
|
|
164
269
|
if (result.changes > 0) console.log(`[event-store] Compacted ${result.changes} events older than 7 days`);
|
|
270
|
+
try {
|
|
271
|
+
const claims = getIdempotencyStmts().compact.run([sevenDaysAgo]);
|
|
272
|
+
if (claims.changes > 0) console.log(`[event-store] Compacted ${claims.changes} idempotency keys older than 7 days`);
|
|
273
|
+
} catch {}
|
|
165
274
|
}
|
|
166
275
|
function purgeType(type) {
|
|
167
276
|
return purgeTypeStmt.run([type]).changes;
|
|
@@ -175,6 +284,53 @@ function createEventStore(db) {
|
|
|
175
284
|
function queryLatestPerIssue(type) {
|
|
176
285
|
return queryLatestPerIssueStmt.all([type]).map(rowToStored);
|
|
177
286
|
}
|
|
287
|
+
function appendOnce(event, idempotencyKey) {
|
|
288
|
+
event = withWorkspaceId(event, resolveWorkspaceId);
|
|
289
|
+
const stmts = getIdempotencyStmts();
|
|
290
|
+
const timestamp = eventTimestampMillis(event);
|
|
291
|
+
let payload = JSON.stringify(event["payload"] ?? {});
|
|
292
|
+
if (event.type === "review.status_changed") payload = boundReviewStatusPayload(payload);
|
|
293
|
+
let sequence = 0;
|
|
294
|
+
let duplicate = false;
|
|
295
|
+
db.exec("BEGIN IMMEDIATE");
|
|
296
|
+
try {
|
|
297
|
+
stmts.claim.run([
|
|
298
|
+
idempotencyKey,
|
|
299
|
+
0,
|
|
300
|
+
Date.now()
|
|
301
|
+
]);
|
|
302
|
+
const claimed = stmts.read.get([idempotencyKey]);
|
|
303
|
+
if (claimed && claimed.sequence !== 0) {
|
|
304
|
+
duplicate = true;
|
|
305
|
+
sequence = claimed.sequence;
|
|
306
|
+
} else {
|
|
307
|
+
insertStmt.run([
|
|
308
|
+
event.type,
|
|
309
|
+
timestamp,
|
|
310
|
+
payload
|
|
311
|
+
]);
|
|
312
|
+
sequence = lastRowIdStmt.get()?.sequence ?? 0;
|
|
313
|
+
stmts.setSeq.run([sequence, idempotencyKey]);
|
|
314
|
+
}
|
|
315
|
+
db.exec("COMMIT");
|
|
316
|
+
} catch (err) {
|
|
317
|
+
try {
|
|
318
|
+
db.exec("ROLLBACK");
|
|
319
|
+
} catch {}
|
|
320
|
+
idempotencyStmts = null;
|
|
321
|
+
throw err;
|
|
322
|
+
}
|
|
323
|
+
if (!duplicate) emitter.emit("event", {
|
|
324
|
+
sequence,
|
|
325
|
+
type: event.type,
|
|
326
|
+
timestamp: new Date(timestamp).toISOString(),
|
|
327
|
+
payload: JSON.parse(payload)
|
|
328
|
+
});
|
|
329
|
+
return {
|
|
330
|
+
outcome: duplicate ? "duplicate" : "appended",
|
|
331
|
+
sequence
|
|
332
|
+
};
|
|
333
|
+
}
|
|
178
334
|
function queryByTypesSince(types, afterSequence) {
|
|
179
335
|
if (types.length === 0) return [];
|
|
180
336
|
const placeholders = types.map(() => "?").join(", ");
|
|
@@ -190,6 +346,7 @@ function createEventStore(db) {
|
|
|
190
346
|
readFrom,
|
|
191
347
|
queryByType,
|
|
192
348
|
queryLatestPerIssue,
|
|
349
|
+
appendOnce,
|
|
193
350
|
queryByTypesSince,
|
|
194
351
|
subscribe,
|
|
195
352
|
compact,
|
|
@@ -220,6 +377,19 @@ async function initEventStore() {
|
|
|
220
377
|
console.error("[event-store] incremental_vacuum failed (non-fatal):", err);
|
|
221
378
|
}
|
|
222
379
|
}
|
|
380
|
+
try {
|
|
381
|
+
const trim = trimReviewStatusHistoryPayloads(db);
|
|
382
|
+
if (trim.trimmed > 0) {
|
|
383
|
+
const savedMb = Math.round(trim.savedChars / (1024 * 1024));
|
|
384
|
+
console.log(`[event-store] Trimmed history in ${trim.trimmed} review.status_changed payloads (~${savedMb} MB reclaimed)`);
|
|
385
|
+
if (trim.savedChars > 64 * 1024 * 1024) {
|
|
386
|
+
db.exec("VACUUM");
|
|
387
|
+
console.log("[event-store] VACUUM completed after review-history trim");
|
|
388
|
+
} else db.exec("PRAGMA incremental_vacuum");
|
|
389
|
+
}
|
|
390
|
+
} catch (err) {
|
|
391
|
+
console.error("[event-store] review-history payload trim failed (non-fatal):", err);
|
|
392
|
+
}
|
|
223
393
|
_store = store;
|
|
224
394
|
setActivityEventStoreProvider(() => store);
|
|
225
395
|
return store;
|
|
@@ -242,17 +412,20 @@ function getEventStore() {
|
|
|
242
412
|
if (!_store) throw new Error("[event-store] getEventStore() called before initEventStore() resolved. Use initEventStore() for async initialization.");
|
|
243
413
|
return _store;
|
|
244
414
|
}
|
|
245
|
-
var _store, _db, _initPromise;
|
|
415
|
+
var OVERSIZED_REVIEW_PAYLOAD_CHARS, _store, _db, _initPromise;
|
|
246
416
|
var init_event_store = __esmMin((() => {
|
|
247
417
|
init_paths();
|
|
248
418
|
init_activity_logger();
|
|
249
419
|
init_paths$1();
|
|
250
420
|
init_infra();
|
|
421
|
+
init_resolver();
|
|
422
|
+
init_review_status_limits();
|
|
423
|
+
OVERSIZED_REVIEW_PAYLOAD_CHARS = 16 * 1024;
|
|
251
424
|
_store = null;
|
|
252
425
|
_db = null;
|
|
253
426
|
_initPromise = null;
|
|
254
427
|
}));
|
|
255
428
|
//#endregion
|
|
256
|
-
export { init_event_store as a, initEventStore as i, getEventStore as n, openEventDb as o, getSharedDb as r, createEventStore as t };
|
|
429
|
+
export { init_event_store as a, initEventStore as i, getEventStore as n, openEventDb as o, getSharedDb as r, trimReviewStatusHistoryPayloads as s, createEventStore as t };
|
|
257
430
|
|
|
258
|
-
//# sourceMappingURL=event-store-
|
|
431
|
+
//# sourceMappingURL=event-store-D_AR-Y78.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { d as init_cost_sync, f as insertCostEventSync } from "./cost-sync-
|
|
2
|
+
import { Mn as extractPrefixSync, Nn as init_issue_id, Vr as init_errors, cn as init_projects, fn as listProjectsSync } from "./config-yaml-BSCqwmX0.js";
|
|
3
|
+
import { d as init_cost_sync, f as insertCostEventSync } from "./cost-sync-cesi9dp8.js";
|
|
4
4
|
import "effect";
|
|
5
5
|
import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "fs";
|
|
6
6
|
import { join } from "path";
|
|
@@ -245,4 +245,4 @@ var init_events = __esmMin((() => {
|
|
|
245
245
|
//#endregion
|
|
246
246
|
export { readEventsFromLineSync as a, tailEventsSync as c, init_events as i, init_wal as l, deduplicateEventsSync as n, readEventsSync as o, getLastEventMetadataSync as r, replaceEventsFileSync as s, appendCostEventSync as t };
|
|
247
247
|
|
|
248
|
-
//# sourceMappingURL=events-
|
|
248
|
+
//# sourceMappingURL=events-zjDQozet.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { n as init_dist_src, t as Octokit } from "./dist-src-
|
|
4
|
-
import { a as TrackerAuthError, i as NotImplementedError, o as init_interface, r as IssueNotFoundError } from "./rally-api-
|
|
5
|
-
import { n as init_rally, t as RallyTracker } from "./rally-
|
|
2
|
+
import { Mr as GitHubApiError, Pr as LinearApiError, Vr as init_errors, f as loadConfigSync, t as init_config_yaml } from "./config-yaml-BSCqwmX0.js";
|
|
3
|
+
import { n as init_dist_src, t as Octokit } from "./dist-src-C-Vk2jNk.js";
|
|
4
|
+
import { a as TrackerAuthError, i as NotImplementedError, o as init_interface, r as IssueNotFoundError } from "./rally-api-CZLeEd2C.js";
|
|
5
|
+
import { n as init_rally, t as RallyTracker } from "./rally-DbE561hD.js";
|
|
6
6
|
import { Effect } from "effect";
|
|
7
7
|
import { LinearClient } from "@linear/sdk";
|
|
8
8
|
//#region ../../lib/tracker/linear.ts
|
|
@@ -719,4 +719,4 @@ var init_factory = __esmMin((() => {
|
|
|
719
719
|
//#endregion
|
|
720
720
|
export { init_linear as a, LinearTracker as i, createTrackerFromConfig as n, init_factory as r, createTracker as t };
|
|
721
721
|
|
|
722
|
-
//# sourceMappingURL=factory-
|
|
722
|
+
//# sourceMappingURL=factory-DhavwKVc.js.map
|
package/server/{feature-registry-population-B6HpNWRy.js → feature-registry-population-DWGBKyWd.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { t as init_config_yaml } from "./config-yaml-
|
|
3
|
-
import { r as updateFeatureRegistryOwnership, t as init_feature_registry_storage } from "./feature-registry-storage-
|
|
4
|
-
import { t as init_providers } from "./providers-
|
|
2
|
+
import { t as init_config_yaml } from "./config-yaml-BSCqwmX0.js";
|
|
3
|
+
import { r as updateFeatureRegistryOwnership, t as init_feature_registry_storage } from "./feature-registry-storage-C5DkXmCM.js";
|
|
4
|
+
import { t as init_providers } from "./providers-ClGPGkQ8.js";
|
|
5
5
|
import { basename } from "node:path";
|
|
6
6
|
import { Schema } from "effect";
|
|
7
7
|
//#region ../../lib/registry/feature-registry-population.ts
|
|
@@ -40,4 +40,4 @@ var init_feature_registry_population = __esmMin((() => {
|
|
|
40
40
|
//#endregion
|
|
41
41
|
export { recordFeatureRegistryLifecycle as n, init_feature_registry_population as t };
|
|
42
42
|
|
|
43
|
-
//# sourceMappingURL=feature-registry-population-
|
|
43
|
+
//# sourceMappingURL=feature-registry-population-DWGBKyWd.js.map
|
package/server/{feature-registry-storage-DJEFx1Pf.js → feature-registry-storage-C5DkXmCM.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { n as openDatabase, t as init_driver } from "./driver-
|
|
2
|
+
import { hi as init_paths, mi as getOverdeckHome } from "./config-yaml-BSCqwmX0.js";
|
|
3
|
+
import { n as openDatabase, t as init_driver } from "./driver-CmsY2RLl.js";
|
|
4
4
|
import { dirname, join } from "node:path";
|
|
5
5
|
import { mkdirSync } from "node:fs";
|
|
6
6
|
import { randomUUID } from "node:crypto";
|
|
@@ -263,4 +263,4 @@ var init_feature_registry_storage = __esmMin((() => {
|
|
|
263
263
|
//#endregion
|
|
264
264
|
export { listFeatureRegistryEntries as n, updateFeatureRegistryOwnership as r, init_feature_registry_storage as t };
|
|
265
265
|
|
|
266
|
-
//# sourceMappingURL=feature-registry-storage-
|
|
266
|
+
//# sourceMappingURL=feature-registry-storage-C5DkXmCM.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-
|
|
2
|
+
import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-BSCqwmX0.js";
|
|
3
3
|
//#region ../../lib/background-ai/features.ts
|
|
4
4
|
/**
|
|
5
5
|
* The single gate every background AI caller must consult before invoking a
|
|
@@ -18,4 +18,4 @@ var init_features = __esmMin((() => {
|
|
|
18
18
|
//#endregion
|
|
19
19
|
export { isBackgroundFeatureEnabled as n, init_features as t };
|
|
20
20
|
|
|
21
|
-
//# sourceMappingURL=features-
|
|
21
|
+
//# sourceMappingURL=features-CC47YcCX.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as resolveIssueFeedbackTarget, r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-
|
|
1
|
+
import { n as resolveIssueFeedbackTarget, r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-DoRCR3L-.js";
|
|
2
2
|
init_feedback_target();
|
|
3
3
|
export { resolveIssueFeedbackTarget, surfaceIssueFeedbackNeedsYou };
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { i as updateIssueRecord, r as init_record_update } from "./record-update-
|
|
4
|
-
import {
|
|
2
|
+
import { Q as readIssueRecordSync, Sn as resolveProjectFromIssueSync, cn as init_projects, nn as getProjectSync, q as init_record } from "./config-yaml-BSCqwmX0.js";
|
|
3
|
+
import { i as updateIssueRecord, r as init_record_update } from "./record-update-CZh46a2f.js";
|
|
4
|
+
import { C as init_tmux, V as sessionExists, j as listSessionNames } from "./tmux-CImZaX4q.js";
|
|
5
|
+
import { n as readFeedbackAgentStates, t as init_agent_state_source } from "./agent-state-source-Ds968-j6.js";
|
|
5
6
|
import { Effect } from "effect";
|
|
6
7
|
//#region ../../lib/cloister/feedback-target.ts
|
|
7
8
|
async function isLiveSession(agentId) {
|
|
8
9
|
return Effect.runPromise(sessionExists(agentId));
|
|
9
10
|
}
|
|
11
|
+
function isWorkFeedbackTarget(role) {
|
|
12
|
+
return role === "work";
|
|
13
|
+
}
|
|
10
14
|
function slotAgentId(issueId, slotIndex, assignedAgentId) {
|
|
11
15
|
return assignedAgentId ?? `agent-${issueId.toLowerCase()}-slot-${slotIndex}`;
|
|
12
16
|
}
|
|
@@ -74,6 +78,12 @@ async function resolveIssueFeedbackTarget(issueId, opts = {}) {
|
|
|
74
78
|
return { agentId: fallback.agentId };
|
|
75
79
|
}
|
|
76
80
|
}
|
|
81
|
+
const registeredAgents = readFeedbackAgentStates();
|
|
82
|
+
if (registeredAgents) for (const agent of registeredAgents) {
|
|
83
|
+
if (agent.issueId.toUpperCase() !== normalizedIssue) continue;
|
|
84
|
+
if (!isWorkFeedbackTarget(agent.role)) continue;
|
|
85
|
+
if (await isLiveSession(agent.id)) return { agentId: agent.id };
|
|
86
|
+
}
|
|
77
87
|
const revive = opts.revivePipelinePausedAgent ?? resurrectAgentForFeedback;
|
|
78
88
|
const candidates = [wholeIssueAgentId];
|
|
79
89
|
if (requestedItemId) {
|
|
@@ -108,7 +118,7 @@ async function resolveIssueFeedbackTarget(issueId, opts = {}) {
|
|
|
108
118
|
*/
|
|
109
119
|
async function resurrectAgentForFeedback(agentId, issueId) {
|
|
110
120
|
try {
|
|
111
|
-
const { getAgentStateSync, clearAgentPausedSync, clearAgentTroubledSync } = await import("./agent-state-
|
|
121
|
+
const { getAgentStateSync, clearAgentPausedSync, clearAgentTroubledSync } = await import("./agent-state-Dq3s84-P.js");
|
|
112
122
|
const state = getAgentStateSync(agentId);
|
|
113
123
|
if (!state) return false;
|
|
114
124
|
if (state.paused === true) {
|
|
@@ -124,7 +134,7 @@ async function resurrectAgentForFeedback(agentId, issueId) {
|
|
|
124
134
|
console.warn(`[feedback-target] ${agentId} is gated (troubled=${state.troubled === true}, failures=${state.consecutiveFailures ?? 0}) — clearing for one resurrection attempt to deliver ${issueId} feedback; failure tracking re-trips the gate on another crash`);
|
|
125
135
|
clearAgentTroubledSync(agentId);
|
|
126
136
|
}
|
|
127
|
-
const { resumeAgent } = await import("./resume-
|
|
137
|
+
const { resumeAgent } = await import("./resume-9thEqAQR.js");
|
|
128
138
|
const result = await resumeAgent(agentId);
|
|
129
139
|
if (!result.success) {
|
|
130
140
|
console.warn(`[feedback-target] Failed to resurrect ${agentId} for ${issueId} feedback: ${result.error}`);
|
|
@@ -138,7 +148,7 @@ async function resurrectAgentForFeedback(agentId, issueId) {
|
|
|
138
148
|
}
|
|
139
149
|
async function surfaceIssueFeedbackNeedsYou(issueId, reason, details = {}) {
|
|
140
150
|
try {
|
|
141
|
-
const { markWorkspaceStuck, FEEDBACK_DELIVERY_STUCK_REASON } = await import("./review-status-
|
|
151
|
+
const { markWorkspaceStuck, FEEDBACK_DELIVERY_STUCK_REASON } = await import("./review-status-B6wYcOtP.js");
|
|
142
152
|
markWorkspaceStuck(issueId, FEEDBACK_DELIVERY_STUCK_REASON, {
|
|
143
153
|
reason,
|
|
144
154
|
...details
|
|
@@ -149,6 +159,7 @@ async function surfaceIssueFeedbackNeedsYou(issueId, reason, details = {}) {
|
|
|
149
159
|
console.warn(`[feedback-target] ${reason}`);
|
|
150
160
|
}
|
|
151
161
|
var init_feedback_target = __esmMin((() => {
|
|
162
|
+
init_agent_state_source();
|
|
152
163
|
init_projects();
|
|
153
164
|
init_record();
|
|
154
165
|
init_record_update();
|
|
@@ -157,4 +168,4 @@ var init_feedback_target = __esmMin((() => {
|
|
|
157
168
|
//#endregion
|
|
158
169
|
export { resolveIssueFeedbackTarget as n, surfaceIssueFeedbackNeedsYou as r, init_feedback_target as t };
|
|
159
170
|
|
|
160
|
-
//# sourceMappingURL=feedback-target-
|
|
171
|
+
//# sourceMappingURL=feedback-target-DoRCR3L-.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as writeFeedbackFile, i as init_feedback_writer, n as archiveFeedbackFiles, r as clearFeedbackFiles, t as FeedbackWriteError } from "./feedback-writer-
|
|
1
|
+
import { a as writeFeedbackFile, i as init_feedback_writer, n as archiveFeedbackFiles, r as clearFeedbackFiles, t as FeedbackWriteError } from "./feedback-writer-DdsBdtNL.js";
|
|
2
2
|
init_feedback_writer();
|
|
3
3
|
export { FeedbackWriteError, archiveFeedbackFiles, clearFeedbackFiles, writeFeedbackFile };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { c as clearFeedback, l as readFeedback, t as init_pan_dir, u as writeFeedback } from "./pan-dir-
|
|
5
|
-
import { a as init_lifecycle_io, n as appendFeedbackEntryForIssue, o as readContinueStateForIssue, r as clearFeedbackForIssue, t as appendContinueSessionEntryForIssue } from "./lifecycle-io-
|
|
2
|
+
import { Sn as resolveProjectFromIssueSync, cn as init_projects } from "./config-yaml-BSCqwmX0.js";
|
|
3
|
+
import { R as getWorkspacePanPaths } from "./io-mxOWMZ7I.js";
|
|
4
|
+
import { c as clearFeedback, l as readFeedback, t as init_pan_dir, u as writeFeedback } from "./pan-dir-DhgKfO86.js";
|
|
5
|
+
import { a as init_lifecycle_io, n as appendFeedbackEntryForIssue, o as readContinueStateForIssue, r as clearFeedbackForIssue, t as appendContinueSessionEntryForIssue } from "./lifecycle-io-NPm1YtIG.js";
|
|
6
6
|
import { Data, Effect } from "effect";
|
|
7
7
|
import { existsSync } from "fs";
|
|
8
8
|
import { join } from "path";
|
|
@@ -149,4 +149,4 @@ var init_feedback_writer = __esmMin((() => {
|
|
|
149
149
|
//#endregion
|
|
150
150
|
export { writeFeedbackFile as a, init_feedback_writer as i, archiveFeedbackFiles as n, clearFeedbackFiles as r, FeedbackWriteError as t };
|
|
151
151
|
|
|
152
|
-
//# sourceMappingURL=feedback-writer-
|
|
152
|
+
//# sourceMappingURL=feedback-writer-DdsBdtNL.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { c as pauseFlywheel, l as resumeFlywheel } from "./flywheel-
|
|
1
|
+
import { c as pauseFlywheel, l as resumeFlywheel } from "./flywheel-TacAI9MA.js";
|
|
2
2
|
export { pauseFlywheel, resumeFlywheel };
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { C as FlywheelStatus, p as FlywheelStats, t as init_src } from "./src-
|
|
4
|
-
import { b as init_agents } from "./queries-
|
|
5
|
-
import { s as init_internal_token } from "./internal-token-
|
|
6
|
-
import { c as init_control_settings, f as isFlywheelAutoPickupBacklog, i as getFlywheelActiveRunId, m as isFlywheelRequireUatBeforeMerge } from "./control-settings-
|
|
7
|
-
import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-
|
|
8
|
-
import { f as init_github_app } from "./github-app-
|
|
9
|
-
import "./substrate-bug-weights-service-
|
|
10
|
-
import { t as init_sequence_io } from "./sequence-io-
|
|
11
|
-
import { A as advanceQueue, B as getBook, D as writeFlywheelLaunchMetadata, L as setStatus, O as writeLatestFlywheelStatus, S as nextFlywheelRunId, _ as clearFlywheelGate, d as spawnFlywheel, h as resolvePrimaryWorktreeRoot, m as requireFlywheelBrief, n as abortSpawnedFlywheel, t as FLYWHEEL_ORCHESTRATOR_AGENT_ID, v as getFlywheelRunDetail, w as readFlywheelLaunchMetadata, x as listFlywheelRuns, y as getFlywheelRunDir, z as computeBookProgress } from "./flywheel-
|
|
12
|
-
import { r as computeMergeQueueFromCandidates, s as listEligibleCandidatesByProject } from "./flywheel-merge-order-
|
|
13
|
-
import { r as validateBookForStart } from "./validate-
|
|
1
|
+
import { Bt as resolveStateReadHomeSync, Yt as findProjectByPathSync, cn as init_projects, dr as resolveModel, f as loadConfigSync, t as init_config_yaml, zt as init_state_read_home } from "./config-yaml-BSCqwmX0.js";
|
|
2
|
+
import { C as init_tmux, V as sessionExists } from "./tmux-CImZaX4q.js";
|
|
3
|
+
import { C as FlywheelStatus, p as FlywheelStats, t as init_src } from "./src-BYdwL_n-.js";
|
|
4
|
+
import { b as init_agents } from "./queries-DVpl1vsU.js";
|
|
5
|
+
import { s as init_internal_token } from "./internal-token-AvXePaQT.js";
|
|
6
|
+
import { c as init_control_settings, f as isFlywheelAutoPickupBacklog, i as getFlywheelActiveRunId, m as isFlywheelRequireUatBeforeMerge } from "./control-settings-DVf6pKyv.js";
|
|
7
|
+
import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-bj9WMABA.js";
|
|
8
|
+
import { f as init_github_app } from "./github-app-D2QuvZ3j.js";
|
|
9
|
+
import "./substrate-bug-weights-service-DxpopNd9.js";
|
|
10
|
+
import { t as init_sequence_io } from "./sequence-io-Fw-cLyDs.js";
|
|
11
|
+
import { A as advanceQueue, B as getBook, D as writeFlywheelLaunchMetadata, L as setStatus, O as writeLatestFlywheelStatus, S as nextFlywheelRunId, _ as clearFlywheelGate, d as spawnFlywheel, h as resolvePrimaryWorktreeRoot, m as requireFlywheelBrief, n as abortSpawnedFlywheel, t as FLYWHEEL_ORCHESTRATOR_AGENT_ID, v as getFlywheelRunDetail, w as readFlywheelLaunchMetadata, x as listFlywheelRuns, y as getFlywheelRunDir, z as computeBookProgress } from "./flywheel-TacAI9MA.js";
|
|
12
|
+
import { r as computeMergeQueueFromCandidates, s as listEligibleCandidatesByProject } from "./flywheel-merge-order-DRtex2Dt.js";
|
|
13
|
+
import { r as validateBookForStart } from "./validate-f3ItVCfm.js";
|
|
14
14
|
import { join } from "node:path";
|
|
15
15
|
import { Effect, Schema } from "effect";
|
|
16
16
|
import { freemem, totalmem } from "node:os";
|
|
@@ -475,4 +475,4 @@ createFlywheelCompleteCommand({
|
|
|
475
475
|
//#endregion
|
|
476
476
|
export { flywheelReportCommand, startFlywheelRun };
|
|
477
477
|
|
|
478
|
-
//# sourceMappingURL=flywheel-
|
|
478
|
+
//# sourceMappingURL=flywheel-DJQa9az8.js.map
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { a as __toCommonJS } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { C as FlywheelStatus, S as FlywheelRunId, d as OrderBook, f as OrderBookIndexEntry, t as init_src } from "./src-
|
|
4
|
-
import { d as getReviewStatusSync, p as init_review_status } from "./review-status-
|
|
5
|
-
import { a as countAgentsByStatusRole, o as init_agents } from "./agents-
|
|
6
|
-
import {
|
|
7
|
-
import { n as init_issue_service_singleton, r as issue_service_singleton_exports } from "./issue-service-singleton-
|
|
8
|
-
import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
2
|
+
import { Bt as resolveStateReadHomeSync, St as init_auto_commit, Yt as findProjectByPathSync, cn as init_projects, tn as getProjectSwarmHotspots, wt as queueAutoCommit, xt as flushAutoCommits, zt as init_state_read_home } from "./config-yaml-BSCqwmX0.js";
|
|
3
|
+
import { C as FlywheelStatus, S as FlywheelRunId, d as OrderBook, f as OrderBookIndexEntry, t as init_src } from "./src-BYdwL_n-.js";
|
|
4
|
+
import { d as getReviewStatusSync, p as init_review_status } from "./review-status-CKLk5aZ-.js";
|
|
5
|
+
import { a as countAgentsByStatusRole, o as init_agents } from "./agents-Dls7tfJH.js";
|
|
6
|
+
import { Et as spawnRun, Hr as buildResumeContract, Ot as stopAgent, Ur as init_resume_contract, b as init_agents$1, gr as getAgentDir } from "./queries-DVpl1vsU.js";
|
|
7
|
+
import { n as init_issue_service_singleton, r as issue_service_singleton_exports } from "./issue-service-singleton-BPNEXczv.js";
|
|
8
|
+
import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-AvXePaQT.js";
|
|
9
|
+
import { N as getProjectPanPaths, P as init_paths } from "./io-mxOWMZ7I.js";
|
|
10
|
+
import { C as setFlywheelGloballyPaused, c as init_control_settings, f as isFlywheelAutoPickupBacklog, i as getFlywheelActiveRunId, m as isFlywheelRequireUatBeforeMerge, p as isFlywheelGloballyPaused, x as setFlywheelActiveRunId } from "./control-settings-DVf6pKyv.js";
|
|
11
|
+
import { n as parseSequenceMd, t as init_sequence_io } from "./sequence-io-Fw-cLyDs.js";
|
|
12
|
+
import { h as init_pickup, r as LEGACY_PARKED_LABELS, u as computeCohort } from "./pickup-2AxtB3dW.js";
|
|
13
|
+
import { a as gatherProjectLensSignals, s as init_pipeline_membership_gather } from "./pipeline-membership-gather-CtJ_7aGf.js";
|
|
14
|
+
import { n as init_pipeline_membership, r as resolvePipelineMembership } from "./pipeline-membership-Dqv6_0ig.js";
|
|
15
|
+
import { a as computePredictedConflictSignals, l as pickFromSequence, o as declaredIssueFootprint } from "./flywheel-merge-order-DRtex2Dt.js";
|
|
15
16
|
import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
16
17
|
import { Effect, Schema } from "effect";
|
|
17
18
|
import { homedir } from "node:os";
|
|
@@ -25,6 +26,7 @@ init_state_read_home();
|
|
|
25
26
|
init_auto_commit();
|
|
26
27
|
init_internal_token();
|
|
27
28
|
init_review_status();
|
|
29
|
+
init_paths();
|
|
28
30
|
init_agents$1();
|
|
29
31
|
init_sequence_io();
|
|
30
32
|
init_pickup();
|
|
@@ -800,7 +802,7 @@ function buildClassifyLookups(projectRoot, opts = {}) {
|
|
|
800
802
|
labelsByIssue.set(id, names);
|
|
801
803
|
}
|
|
802
804
|
} catch {}
|
|
803
|
-
const specsDir =
|
|
805
|
+
const specsDir = getProjectPanPaths(projectRoot).specsDir;
|
|
804
806
|
const specIssues = /* @__PURE__ */ new Set();
|
|
805
807
|
if (existsSync(specsDir)) for (const f of readdirSync(specsDir)) {
|
|
806
808
|
const m = /^[\d-]+-([A-Z]+-\d+)-/i.exec(f);
|
|
@@ -821,6 +823,7 @@ function buildClassifyLookups(projectRoot, opts = {}) {
|
|
|
821
823
|
}
|
|
822
824
|
//#endregion
|
|
823
825
|
//#region ../../lib/cloister/flywheel.ts
|
|
826
|
+
init_paths();
|
|
824
827
|
init_sequence_io();
|
|
825
828
|
init_projects();
|
|
826
829
|
init_state_read_home();
|
|
@@ -913,7 +916,8 @@ async function flywheelRunConfigurationSection(options, runId) {
|
|
|
913
916
|
if (row.author && AUTHORIZED_AUTHORS.has(row.author)) return true;
|
|
914
917
|
return (typeof row.assignee === "string" ? row.assignee : row.assignee?.name) === "eltmon";
|
|
915
918
|
};
|
|
916
|
-
const
|
|
919
|
+
const paths = getProjectPanPaths(projectRoot);
|
|
920
|
+
const specsDir = paths.specsDir;
|
|
917
921
|
const issuesWithSpecs = /* @__PURE__ */ new Set();
|
|
918
922
|
const declaredFootprints = [];
|
|
919
923
|
if (existsSync(specsDir)) for (const f of readdirSync(specsDir)) {
|
|
@@ -931,7 +935,7 @@ async function flywheelRunConfigurationSection(options, runId) {
|
|
|
931
935
|
const isReadyOrHasPrd = (issueId) => {
|
|
932
936
|
const id = issueId.toUpperCase();
|
|
933
937
|
if (issuesWithSpecs.has(id)) return true;
|
|
934
|
-
return existsSync(join(
|
|
938
|
+
return existsSync(join(paths.draftsDir, `${id}.md`));
|
|
935
939
|
};
|
|
936
940
|
const membershipAvailable = Boolean(projectConfig?.github_repo);
|
|
937
941
|
const memberships = projectConfig?.github_repo ? (await gatherProjectLensSignals(projectConfig)).map(resolvePipelineMembership) : [];
|
|
@@ -1108,4 +1112,4 @@ async function resumeFlywheel(options = {}) {
|
|
|
1108
1112
|
//#endregion
|
|
1109
1113
|
export { advanceQueue as A, getBook as B, readCurrentLatestFlywheelStatus as C, writeFlywheelLaunchMetadata as D, subscribeLatestFlywheelStatus as E, setItemRequirements as F, liveOrderIssueLookup as H, setSettings as I, setStatus as L, moveItem as M, removeItem as N, writeLatestFlywheelStatus as O, renameBook as P, backlogCandidates as R, nextFlywheelRunId as S, resolveLiveFlywheelRunId as T, listBooks as V, clearFlywheelGate as _, isFlywheelDevcontainerRuntime as a, isFlywheelRunId as b, pauseFlywheel as c, spawnFlywheel as d, spawnFlywheelAgent as f, abortFlywheelRun as g, resolvePrimaryWorktreeRoot as h, buildFlywheelResumePrompt as i, createBook as j, addItems as k, resumeFlywheel as l, requireFlywheelBrief as m, abortSpawnedFlywheel as n, isIssueInResolvedPipeline as o, buildClassifyLookups as p, activeOrderBookIssues as r, loadResumeSessionId as s, FLYWHEEL_ORCHESTRATOR_AGENT_ID as t, saveResumeSessionId as u, getFlywheelRunDetail as v, readFlywheelLaunchMetadata as w, listFlywheelRuns as x, getFlywheelRunDir as y, computeBookProgress as z };
|
|
1110
1114
|
|
|
1111
|
-
//# sourceMappingURL=flywheel-
|
|
1115
|
+
//# sourceMappingURL=flywheel-TacAI9MA.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as computePredictedConflictSignals, c as orderMergeCandidates, d as planUatCandidate, f as resolveMergeQueuePrUrl, i as computePolyrepoMergeQueueFromCandidates, l as pickFromSequence, n as changedFilesVsMain, o as declaredIssueFootprint, p as reviewRecordEligibility, r as computeMergeQueueFromCandidates, s as listEligibleCandidatesByProject, t as MERGE_QUEUE_GIT_CONCURRENCY, u as planMergeTrain } from "./flywheel-merge-order-
|
|
1
|
+
import { a as computePredictedConflictSignals, c as orderMergeCandidates, d as planUatCandidate, f as resolveMergeQueuePrUrl, i as computePolyrepoMergeQueueFromCandidates, l as pickFromSequence, n as changedFilesVsMain, o as declaredIssueFootprint, p as reviewRecordEligibility, r as computeMergeQueueFromCandidates, s as listEligibleCandidatesByProject, t as MERGE_QUEUE_GIT_CONCURRENCY, u as planMergeTrain } from "./flywheel-merge-order-DRtex2Dt.js";
|
|
2
2
|
export { MERGE_QUEUE_GIT_CONCURRENCY, changedFilesVsMain, computeMergeQueueFromCandidates, computePolyrepoMergeQueueFromCandidates, computePredictedConflictSignals, declaredIssueFootprint, listEligibleCandidatesByProject, orderMergeCandidates, pickFromSequence, planMergeTrain, planUatCandidate, resolveMergeQueuePrUrl, reviewRecordEligibility };
|