@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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { i as init_esm_min, n as FormData, o as Blob, r as formDataToBlob, s as init_fetch_blob, t as init_from } from "./from-
|
|
2
|
+
import { i as init_esm_min, n as FormData, o as Blob, r as formDataToBlob, s as init_fetch_blob, t as init_from } from "./from-BogSwvr2.js";
|
|
3
3
|
import { deprecate, promisify, types } from "node:util";
|
|
4
4
|
import { format } from "node:url";
|
|
5
5
|
import http from "node:http";
|
|
@@ -209,7 +209,7 @@ var init_body = __esmMin((() => {
|
|
|
209
209
|
for (const [name, value] of parameters) formData.append(name, value);
|
|
210
210
|
return formData;
|
|
211
211
|
}
|
|
212
|
-
const { toFormData } = await import("./multipart-parser-
|
|
212
|
+
const { toFormData } = await import("./multipart-parser-CL5QG8iv.js");
|
|
213
213
|
return toFormData(this.body, ct);
|
|
214
214
|
}
|
|
215
215
|
/**
|
|
@@ -1176,4 +1176,4 @@ __esmMin((() => {
|
|
|
1176
1176
|
}))();
|
|
1177
1177
|
export { fetch as default };
|
|
1178
1178
|
|
|
1179
|
-
//# sourceMappingURL=src-
|
|
1179
|
+
//# sourceMappingURL=src-DQnkPN2i.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { i as __require, o as __toESM, t as __commonJSMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { r as init_esm_shims, t as __dirname } from "./esm-shims-
|
|
3
|
-
import { n as require_dist$1, r as require_src$14, t as require_dist$2 } from "./dist-
|
|
2
|
+
import { r as init_esm_shims, t as __dirname } from "./esm-shims-Bzy4ZzNU.js";
|
|
3
|
+
import { n as require_dist$1, r as require_src$14, t as require_dist$2 } from "./dist-3W--cGMa.js";
|
|
4
4
|
//#region ../../../node_modules/.bun/@google-cloud+promisify@4.1.0/node_modules/@google-cloud/promisify/build/src/index.js
|
|
5
5
|
var require_src$13 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1198,12 +1198,12 @@ var require_gaxios = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
1198
1198
|
* @returns A proxy agent
|
|
1199
1199
|
*/
|
|
1200
1200
|
static async #getProxyAgent() {
|
|
1201
|
-
this.#proxyAgent ||= (await import("./dist-
|
|
1201
|
+
this.#proxyAgent ||= (await import("./dist-BR0QtwmS.js").then((m) => /* @__PURE__ */ __toESM(m.default))).HttpsProxyAgent;
|
|
1202
1202
|
return this.#proxyAgent;
|
|
1203
1203
|
}
|
|
1204
1204
|
static async #getFetch() {
|
|
1205
1205
|
const hasWindow = typeof window !== "undefined" && !!window;
|
|
1206
|
-
this.#fetch ||= hasWindow ? window.fetch : (await import("./src-
|
|
1206
|
+
this.#fetch ||= hasWindow ? window.fetch : (await import("./src-DQnkPN2i.js")).default;
|
|
1207
1207
|
return this.#fetch;
|
|
1208
1208
|
}
|
|
1209
1209
|
/**
|
|
@@ -10601,7 +10601,7 @@ var require_src$7 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
10601
10601
|
const TeenyStatistics_1 = require_TeenyStatistics();
|
|
10602
10602
|
const crypto_1 = __require("crypto");
|
|
10603
10603
|
const streamEvents = require_stream_events();
|
|
10604
|
-
const fetch = (...args) => import("./src-
|
|
10604
|
+
const fetch = (...args) => import("./src-DQnkPN2i.js").then(({ default: fetch }) => fetch(...args));
|
|
10605
10605
|
var RequestError = class extends Error {
|
|
10606
10606
|
code;
|
|
10607
10607
|
};
|
|
@@ -133656,4 +133656,4 @@ var require_src = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
133656
133656
|
export default require_src();
|
|
133657
133657
|
export {};
|
|
133658
133658
|
|
|
133659
|
-
//# sourceMappingURL=src-
|
|
133659
|
+
//# sourceMappingURL=src-DhfDV0o4.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { Fn as parseIssueIdSync, Nn as init_issue_id, Sn as resolveProjectFromIssueSync, cn as init_projects, nn as getProjectSync } from "./config-yaml-BSCqwmX0.js";
|
|
3
|
+
import { a as emitActivityEntrySync, c as init_activity_logger } from "./activity-logger-Co5qljIj.js";
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
import { Duration, Effect, Schedule, Stream } from "effect";
|
|
6
6
|
import { existsSync, readFileSync } from "node:fs";
|
|
@@ -177,33 +177,116 @@ var init_docker_stats = __esmMin((() => {
|
|
|
177
177
|
}));
|
|
178
178
|
//#endregion
|
|
179
179
|
//#region ../../lib/workspace/stack-health.ts
|
|
180
|
+
/**
|
|
181
|
+
* Canonical compose-project-name resolver (PAN-3049).
|
|
182
|
+
*
|
|
183
|
+
* `composeProjectNameForWorkspace` / `requireComposeProjectNameForWorkspace`
|
|
184
|
+
* are the ONLY place a workspace's Docker Compose project name is derived.
|
|
185
|
+
* A workspace's compose project is whatever it DECLARES — the dev-script
|
|
186
|
+
* `COMPOSE_PROJECT_NAME` or a compose file's top-level `name:` field — never
|
|
187
|
+
* an independently re-guessed prefix. Every consumer (rebuild, teardown,
|
|
188
|
+
* health checks, reapers, doctor) must call through this module rather than
|
|
189
|
+
* re-deriving the name; two independent derivations disagreeing is exactly
|
|
190
|
+
* what let a duplicate `overdeck-feature-*` stack spring up beside a
|
|
191
|
+
* workspace's real `myn-feature-*` one. See docs/WORKSPACE-CONTAINERS.md
|
|
192
|
+
* ("Compose project naming") for the full contract.
|
|
193
|
+
*/
|
|
180
194
|
function declaredComposeProjectName(content, featureFolder) {
|
|
181
195
|
const templatedMatch = content.match(/COMPOSE_PROJECT_NAME="([^$"]*)\$\{FEATURE_FOLDER\}"/);
|
|
182
196
|
if (templatedMatch) return `${templatedMatch[1]}${featureFolder}`;
|
|
183
197
|
return content.match(/COMPOSE_PROJECT_NAME="([^"]+)"/)?.[1] ?? null;
|
|
184
198
|
}
|
|
199
|
+
function findDevcontainerComposeFile(workspacePath) {
|
|
200
|
+
const devcontainerDir = join(workspacePath, ".devcontainer");
|
|
201
|
+
for (const file of COMPOSE_FILE_CANDIDATES) {
|
|
202
|
+
const fullPath = join(devcontainerDir, file);
|
|
203
|
+
if (existsSync(fullPath)) return fullPath;
|
|
204
|
+
}
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
/** Parse a top-level (unindented) compose `name:` key, e.g. `name: myn-feature-min-901`. */
|
|
208
|
+
function declaredComposeFileProjectName(content, featureFolder) {
|
|
209
|
+
const match = content.match(/^name:\s*['"]?([^'"\n]+?)['"]?\s*$/m);
|
|
210
|
+
if (!match) return null;
|
|
211
|
+
const raw = match[1].trim();
|
|
212
|
+
return raw.includes("${FEATURE_FOLDER}") ? raw.replace("${FEATURE_FOLDER}", featureFolder) : raw;
|
|
213
|
+
}
|
|
214
|
+
function assertValidComposeProjectNameGrammar(sourcePath, declaredKey, declared) {
|
|
215
|
+
if (!VALID_COMPOSE_PROJECT_NAME_RE.test(declared)) throw new Error(`Refusing workspace rebuild: ${sourcePath} declares ${declaredKey}=${declared}, which is not a valid Docker Compose project name (lowercase letters, digits, hyphens, and underscores only, starting with a letter or digit)`);
|
|
216
|
+
}
|
|
217
|
+
function assertDeclaredNameMatchesFeatureFolder(sourcePath, declaredKey, declared, featureFolder) {
|
|
218
|
+
assertValidComposeProjectNameGrammar(sourcePath, declaredKey, declared);
|
|
219
|
+
if (!declared.endsWith(featureFolder)) throw new Error(`Refusing workspace rebuild: ${sourcePath} declares ${declaredKey}=${declared}, expected a name ending in ${featureFolder}`);
|
|
220
|
+
}
|
|
185
221
|
/**
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
222
|
+
* Resolve the compose project name declared by the workspace's dev script or
|
|
223
|
+
* devcontainer compose file, without applying the `overdeck-` fallback.
|
|
224
|
+
* Returns `{ name: null, composeFilePath }` when neither source declares one —
|
|
225
|
+
* `composeFilePath` is non-null when a compose file exists so callers can
|
|
226
|
+
* report where they looked.
|
|
191
227
|
*/
|
|
192
|
-
function
|
|
193
|
-
const featureFolder = `feature-${issueId.toLowerCase()}`;
|
|
194
|
-
const fallback = `overdeck-${featureFolder}`;
|
|
228
|
+
function resolveDeclaredComposeProjectName(workspacePath, featureFolder) {
|
|
195
229
|
for (const devPath of [join(workspacePath, ".devcontainer", "dev"), join(workspacePath, "dev")]) {
|
|
196
230
|
if (!existsSync(devPath)) continue;
|
|
197
231
|
try {
|
|
198
232
|
const declared = declaredComposeProjectName(readFileSync(devPath, "utf-8"), featureFolder);
|
|
199
233
|
if (!declared) continue;
|
|
200
|
-
|
|
201
|
-
return
|
|
234
|
+
assertDeclaredNameMatchesFeatureFolder(devPath, "COMPOSE_PROJECT_NAME", declared, featureFolder);
|
|
235
|
+
return {
|
|
236
|
+
name: declared,
|
|
237
|
+
composeFilePath: null
|
|
238
|
+
};
|
|
202
239
|
} catch (err) {
|
|
203
240
|
if (err instanceof Error && err.message.startsWith("Refusing workspace rebuild:")) throw err;
|
|
204
241
|
}
|
|
205
242
|
}
|
|
206
|
-
|
|
243
|
+
const composeFilePath = findDevcontainerComposeFile(workspacePath);
|
|
244
|
+
if (!composeFilePath) return {
|
|
245
|
+
name: null,
|
|
246
|
+
composeFilePath: null
|
|
247
|
+
};
|
|
248
|
+
const declared = declaredComposeFileProjectName(readFileSync(composeFilePath, "utf-8"), featureFolder);
|
|
249
|
+
if (!declared) return {
|
|
250
|
+
name: null,
|
|
251
|
+
composeFilePath
|
|
252
|
+
};
|
|
253
|
+
assertDeclaredNameMatchesFeatureFolder(composeFilePath, "name", declared, featureFolder);
|
|
254
|
+
return {
|
|
255
|
+
name: declared,
|
|
256
|
+
composeFilePath
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Derive the canonical `COMPOSE_PROJECT_NAME` for a workspace. Throws when the
|
|
261
|
+
* workspace declares a name that does not end in the feature folder — a
|
|
262
|
+
* mismatch means `docker compose down` would target the wrong stack.
|
|
263
|
+
* (Lives here rather than in rebuild-stack so health checks can scope
|
|
264
|
+
* container matching without an import cycle.)
|
|
265
|
+
*
|
|
266
|
+
* Silently falls back to `overdeck-feature-<issue>` when no dev script or
|
|
267
|
+
* compose file declares a name. Use `requireComposeProjectNameForWorkspace`
|
|
268
|
+
* at bring-up time, where a workspace with a compose file but no resolvable
|
|
269
|
+
* name is a bug to surface, not a condition to paper over with a guess.
|
|
270
|
+
*/
|
|
271
|
+
function composeProjectNameForWorkspace(workspacePath, issueId) {
|
|
272
|
+
const featureFolder = `feature-${issueId.toLowerCase()}`;
|
|
273
|
+
const fallback = `overdeck-${featureFolder}`;
|
|
274
|
+
return resolveDeclaredComposeProjectName(workspacePath, featureFolder).name ?? fallback;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Strict counterpart to `composeProjectNameForWorkspace`. When a devcontainer
|
|
278
|
+
* compose file exists but neither it nor any dev script declares a name,
|
|
279
|
+
* throws instead of silently returning the `overdeck-` fallback — that
|
|
280
|
+
* silent guess is what let a second stack spring up beside a workspace's real
|
|
281
|
+
* `myn-feature-*` stack (PAN-3049). Non-docker workspaces (no compose file at
|
|
282
|
+
* all) still resolve to the `overdeck-` fallback, matching the lenient variant.
|
|
283
|
+
*/
|
|
284
|
+
function requireComposeProjectNameForWorkspace(workspacePath, issueId) {
|
|
285
|
+
const featureFolder = `feature-${issueId.toLowerCase()}`;
|
|
286
|
+
const resolved = resolveDeclaredComposeProjectName(workspacePath, featureFolder);
|
|
287
|
+
if (resolved.name) return resolved.name;
|
|
288
|
+
if (!resolved.composeFilePath) return `overdeck-${featureFolder}`;
|
|
289
|
+
throw new Error(`Cannot resolve compose project name for workspace ${workspacePath}: ${resolved.composeFilePath} declares no top-level 'name:' and neither ${join(workspacePath, ".devcontainer", "dev")} nor ${join(workspacePath, "dev")} declares COMPOSE_PROJECT_NAME`);
|
|
207
290
|
}
|
|
208
291
|
/**
|
|
209
292
|
* Best-effort canonical compose project for a workspace — null when the
|
|
@@ -331,7 +414,7 @@ function recordWorkspaceStackHealthTransition(issueId, health) {
|
|
|
331
414
|
});
|
|
332
415
|
return true;
|
|
333
416
|
}
|
|
334
|
-
var execFileAsync, DEFAULT_STUCK_CREATED_THRESHOLD_MS, lastHealthByIssue, collectDockerContainerLifecycleSnapshot, getWorkspaceStackHealth;
|
|
417
|
+
var execFileAsync, DEFAULT_STUCK_CREATED_THRESHOLD_MS, COMPOSE_FILE_CANDIDATES, VALID_COMPOSE_PROJECT_NAME_RE, lastHealthByIssue, collectDockerContainerLifecycleSnapshot, getWorkspaceStackHealth;
|
|
335
418
|
var init_stack_health = __esmMin((() => {
|
|
336
419
|
init_activity_logger();
|
|
337
420
|
init_docker_stats();
|
|
@@ -339,6 +422,14 @@ var init_stack_health = __esmMin((() => {
|
|
|
339
422
|
init_projects();
|
|
340
423
|
execFileAsync = promisify(execFile);
|
|
341
424
|
DEFAULT_STUCK_CREATED_THRESHOLD_MS = 12e4;
|
|
425
|
+
COMPOSE_FILE_CANDIDATES = [
|
|
426
|
+
"docker-compose.devcontainer.yml",
|
|
427
|
+
"docker-compose.yml",
|
|
428
|
+
"docker-compose.yaml",
|
|
429
|
+
"compose.yml",
|
|
430
|
+
"compose.yaml"
|
|
431
|
+
];
|
|
432
|
+
VALID_COMPOSE_PROJECT_NAME_RE = /^[a-z0-9][a-z0-9_-]*$/;
|
|
342
433
|
lastHealthByIssue = /* @__PURE__ */ new Map();
|
|
343
434
|
collectDockerContainerLifecycleSnapshot = () => Effect.tryPromise({
|
|
344
435
|
try: () => execFileAsync("docker", [
|
|
@@ -406,6 +497,6 @@ var init_stack_health = __esmMin((() => {
|
|
|
406
497
|
});
|
|
407
498
|
}));
|
|
408
499
|
//#endregion
|
|
409
|
-
export {
|
|
500
|
+
export { evaluateWorkspaceStackHealth as a, init_stack_health as c, tryComposeProjectNameForWorkspace as d, DockerStatsCollector as f, defaultWorkspacePath as i, recordWorkspaceStackHealthTransition as l, recordDockerContainerLifecycleSnapshot as m, collectDockerContainerLifecycleSnapshot as n, getWorkspaceStackHealth as o, init_docker_stats as p, composeProjectNameForWorkspace as r, hasIssueToken as s, DEFAULT_STUCK_CREATED_THRESHOLD_MS as t, requireComposeProjectNameForWorkspace as u };
|
|
410
501
|
|
|
411
|
-
//# sourceMappingURL=stack-health-
|
|
502
|
+
//# sourceMappingURL=stack-health-D_iKwNRg.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as init_fs_lock, r as isPidDead } from "./fs-lock-
|
|
3
|
-
import { i as updateIssueRecord, r as init_record_update } from "./record-update-
|
|
4
|
-
import { c as listAllAgentsSync, o as init_agents } from "./agents-
|
|
1
|
+
import { Q as readIssueRecordSync, U as getIssueRecordPath, cn as init_projects, fn as listProjectsSync, q as init_record } from "./config-yaml-BSCqwmX0.js";
|
|
2
|
+
import { n as init_fs_lock, r as isPidDead } from "./fs-lock-D_GeJtXl.js";
|
|
3
|
+
import { i as updateIssueRecord, r as init_record_update } from "./record-update-CZh46a2f.js";
|
|
4
|
+
import { c as listAllAgentsSync, o as init_agents } from "./agents-Dls7tfJH.js";
|
|
5
5
|
import { dirname } from "node:path";
|
|
6
6
|
import { hostname } from "node:os";
|
|
7
7
|
import { readdirSync } from "node:fs";
|
|
@@ -67,4 +67,4 @@ async function patrolStaleTaskClaims() {
|
|
|
67
67
|
//#endregion
|
|
68
68
|
export { patrolStaleTaskClaims };
|
|
69
69
|
|
|
70
|
-
//# sourceMappingURL=stale-task-claims-
|
|
70
|
+
//# sourceMappingURL=stale-task-claims-BYJGqhLI.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { i as init_staleness, n as _resetForTests, r as computeBuildStaleness, t as BUILD_INPUT_PATHS } from "./staleness-
|
|
1
|
+
import { i as init_staleness, n as _resetForTests, r as computeBuildStaleness, t as BUILD_INPUT_PATHS } from "./staleness-D8WeMUHd.js";
|
|
2
2
|
init_staleness();
|
|
3
3
|
export { BUILD_INPUT_PATHS, _resetForTests, computeBuildStaleness };
|
|
@@ -141,4 +141,4 @@ var init_staleness = __esmMin((() => {
|
|
|
141
141
|
//#endregion
|
|
142
142
|
export { init_staleness as i, _resetForTests as n, computeBuildStaleness as r, BUILD_INPUT_PATHS as t };
|
|
143
143
|
|
|
144
|
-
//# sourceMappingURL=staleness-
|
|
144
|
+
//# sourceMappingURL=staleness-D8WeMUHd.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Et as STATE_BRANCH_PATHS, Ht as init_project_key, Ut as projectKey, bn as resolveInfraRepo, cn as init_projects, hi as init_paths, kt as init_state_plane, mi as getOverdeckHome } from "./config-yaml-BSCqwmX0.js";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
4
|
import { existsSync, readFileSync } from "node:fs";
|
|
5
5
|
import { mkdir, rm } from "node:fs/promises";
|
|
@@ -170,6 +170,27 @@ async function findRecreatedLegacyStatePaths(project) {
|
|
|
170
170
|
const legacyStateRoot = project.path;
|
|
171
171
|
return STATE_BRANCH_PATHS.map((statePath) => join(legacyStateRoot, ".pan", statePath.slice(0, -1))).filter(existsSync);
|
|
172
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Synchronous read-door resolution for legacy synchronous APIs. The async
|
|
175
|
+
* resolver remains authoritative for migration detection; this compatibility
|
|
176
|
+
* door uses only an already-materialized, valid state-worktree marker and
|
|
177
|
+
* otherwise falls back read-only to the legacy checkout.
|
|
178
|
+
*/
|
|
179
|
+
function resolveStateReadHomeSync(project, options = {}) {
|
|
180
|
+
const worktreePath = stateWorktreePath(project, options);
|
|
181
|
+
if (readMigrationCompleteMarker(join(worktreePath, "migration-complete.json"))) return {
|
|
182
|
+
root: worktreePath,
|
|
183
|
+
migrated: true
|
|
184
|
+
};
|
|
185
|
+
return {
|
|
186
|
+
root: resolveInfraRepo(project).repoPath,
|
|
187
|
+
migrated: false
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
function resolveStateDomainPathSync(project, domain, options = {}) {
|
|
191
|
+
const home = resolveStateReadHomeSync(project, options);
|
|
192
|
+
return home.migrated ? join(home.root, domain) : join(home.root, ".pan", domain);
|
|
193
|
+
}
|
|
173
194
|
async function addStateWorktree(repoPath, path, signal) {
|
|
174
195
|
signal?.throwIfAborted();
|
|
175
196
|
await mkdir(dirname(path), { recursive: true });
|
|
@@ -271,6 +292,6 @@ var init_state_home = __esmMin((() => {
|
|
|
271
292
|
migrationCache = /* @__PURE__ */ new Map();
|
|
272
293
|
}));
|
|
273
294
|
//#endregion
|
|
274
|
-
export { findRecreatedLegacyStatePaths as a, isStateMigrated as c, ensureStateWorktree as i,
|
|
295
|
+
export { findRecreatedLegacyStatePaths as a, isStateMigrated as c, ensureStateWorktree as i, resolveStateDomainPathSync as l, STATE_BRANCH as n, init_state_home as o, clearStateMigrationCache as r, inspectStateMigration as s, MIGRATION_COMPLETE_MARKER as t, stateWorktreePath as u };
|
|
275
296
|
|
|
276
|
-
//# sourceMappingURL=state-home-
|
|
297
|
+
//# sourceMappingURL=state-home-DjN8qduI.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { o as init_lifecycle } from "./lifecycle-
|
|
3
|
-
import {
|
|
1
|
+
import { Et as STATE_BRANCH_PATHS, It as acquireStateMigrationLock, Lt as init_state_migration_lock, St as init_auto_commit, bn as resolveInfraRepo, cn as init_projects, kt as init_state_plane, nn as getProjectSync, xt as flushAutoCommits } from "./config-yaml-BSCqwmX0.js";
|
|
2
|
+
import { o as init_lifecycle } from "./lifecycle-D2X3al0D.js";
|
|
3
|
+
import { n as STATE_BRANCH, o as init_state_home, r as clearStateMigrationCache, t as MIGRATION_COMPLETE_MARKER, u as stateWorktreePath } from "./state-home-DjN8qduI.js";
|
|
4
4
|
import { dirname, join } from "node:path";
|
|
5
5
|
import { Effect } from "effect";
|
|
6
6
|
import { tmpdir } from "node:os";
|
|
@@ -484,4 +484,4 @@ async function migrateProjectState(projectKey, options = {}, projectOverride) {
|
|
|
484
484
|
//#endregion
|
|
485
485
|
export { migrateProjectState };
|
|
486
486
|
|
|
487
|
-
//# sourceMappingURL=state-migrate-
|
|
487
|
+
//# sourceMappingURL=state-migrate-a2p1gtD7.js.map
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
+
import { Ct as pushPendingStateCommits, St as init_auto_commit, cn as init_projects, nn as getProjectSync, wt as queueAutoCommit, xt as flushAutoCommits } from "./config-yaml-BSCqwmX0.js";
|
|
3
|
+
import { l as resolveStateDomainPathSync, o as init_state_home } from "./state-home-DjN8qduI.js";
|
|
4
|
+
import { dirname, join } from "node:path";
|
|
5
|
+
import { Effect } from "effect";
|
|
6
|
+
import { existsSync } from "node:fs";
|
|
7
|
+
import { mkdir, rm, writeFile } from "node:fs/promises";
|
|
8
|
+
import { createHash } from "node:crypto";
|
|
9
|
+
//#region ../../lib/memory/state-mirror.ts
|
|
10
|
+
/**
|
|
11
|
+
* Memory state-domain mirror (PAN-1990 D-9).
|
|
12
|
+
*
|
|
13
|
+
* Durable memory artifacts — daily summaries and pinned-doc descriptors — are
|
|
14
|
+
* mirrored onto the project's `overdeck-state` branch (or its legacy `.pan/`
|
|
15
|
+
* equivalent pre-migration) through the same state-door commit path other
|
|
16
|
+
* domain writers use (queueAutoCommit/flushAutoCommits). Rolling observations,
|
|
17
|
+
* pending/, and status.json are high-churn and NEVER belong on the state
|
|
18
|
+
* branch — writeMemoryStateMirror/removeMemoryStateMirror reject them.
|
|
19
|
+
*
|
|
20
|
+
* A projectId with no classic projects.yaml registration has nothing to
|
|
21
|
+
* mirror to; callers no-op rather than fail, since mirroring is a durability
|
|
22
|
+
* convenience, not the source of truth (the memory-home file is).
|
|
23
|
+
*/
|
|
24
|
+
function assertMirrorable(relativePath) {
|
|
25
|
+
const normalized = relativePath.replace(/\\/g, "/");
|
|
26
|
+
if (FORBIDDEN_MIRROR_PREFIXES.some((prefix) => normalized.startsWith(prefix))) throw new MemoryMirrorRejectedError(`refusing to mirror rolling memory path onto the state branch: ${relativePath}`);
|
|
27
|
+
}
|
|
28
|
+
/** Queues + flushes a commit for `targetPath` and returns the raw FlushResult (never throws). */
|
|
29
|
+
function flushMirrorCommit(project, targetPath, subject) {
|
|
30
|
+
queueAutoCommit({
|
|
31
|
+
projectRoot: project.path,
|
|
32
|
+
paths: [targetPath],
|
|
33
|
+
subject
|
|
34
|
+
});
|
|
35
|
+
return Effect.runPromise(flushAutoCommits(project.path));
|
|
36
|
+
}
|
|
37
|
+
async function commitMirror(project, targetPath, subject) {
|
|
38
|
+
const flushed = await flushMirrorCommit(project, targetPath, subject);
|
|
39
|
+
if (flushed.errored || flushed.pushed === false) throw new Error(flushed.reason ?? `memory state mirror commit was not pushed: ${targetPath}`);
|
|
40
|
+
}
|
|
41
|
+
/** Writes `relativePath` under the project's memory state-domain and commits+pushes it through the state door. */
|
|
42
|
+
async function writeMemoryStateMirror(projectId, relativePath, content, subject) {
|
|
43
|
+
assertMirrorable(relativePath);
|
|
44
|
+
const project = getProjectSync(projectId);
|
|
45
|
+
if (!project) return;
|
|
46
|
+
const target = join(resolveStateDomainPathSync(project, MEMORY_STATE_DOMAIN), relativePath);
|
|
47
|
+
await mkdir(dirname(target), { recursive: true });
|
|
48
|
+
await writeFile(target, content, "utf8");
|
|
49
|
+
await commitMirror(project, target, subject);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Deletes `relativePath` under the project's memory state-domain and
|
|
53
|
+
* commits+pushes the removal.
|
|
54
|
+
*
|
|
55
|
+
* Review fix (cycle 3, corrected in cycle 4): a prior call can have already
|
|
56
|
+
* deleted `target` from disk and either (a) fully committed that removal
|
|
57
|
+
* locally but failed only at the push step, or (b) failed at `git add`/`git
|
|
58
|
+
* commit` itself (index lock, hook/signing failure, branch mismatch) — in
|
|
59
|
+
* which case NOTHING was committed at all. Cycle 3's fix treated both the
|
|
60
|
+
* same way (push-only retry), which silently "succeeds" for case (b): there
|
|
61
|
+
* is nothing ahead to push, `git push` reports success trivially, and the
|
|
62
|
+
* remote mirror is never actually removed while the caller believes it was.
|
|
63
|
+
*
|
|
64
|
+
* The fix: re-run the SAME add+commit+push flow first — `git add` on a path
|
|
65
|
+
* that no longer exists on disk but is still tracked STAGES the deletion
|
|
66
|
+
* (identical to `git rm`), so this correctly recovers case (b) by actually
|
|
67
|
+
* committing the deletion this time. Only when that reports "nothing to
|
|
68
|
+
* commit" (a real diff never existed for this attempt — the deletion is
|
|
69
|
+
* either already fully committed, or this pin's mirror was never written in
|
|
70
|
+
* the first place) does it fall back to retrying the push alone, which
|
|
71
|
+
* covers case (a) and is a safe no-op for "never mirrored."
|
|
72
|
+
*/
|
|
73
|
+
async function removeMemoryStateMirror(projectId, relativePath, subject) {
|
|
74
|
+
assertMirrorable(relativePath);
|
|
75
|
+
const project = getProjectSync(projectId);
|
|
76
|
+
if (!project) return;
|
|
77
|
+
const target = join(resolveStateDomainPathSync(project, MEMORY_STATE_DOMAIN), relativePath);
|
|
78
|
+
if (!existsSync(target)) {
|
|
79
|
+
const flushed = await flushMirrorCommit(project, target, subject);
|
|
80
|
+
if (flushed.errored) throw new Error(flushed.reason ?? `memory state mirror retry commit failed: ${target}`);
|
|
81
|
+
if (flushed.committed) {
|
|
82
|
+
if (flushed.pushed === false) throw new Error(flushed.reason ?? `memory state mirror retry commit was not pushed: ${target}`);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const push = await Effect.runPromise(pushPendingStateCommits(project.path));
|
|
86
|
+
if (push && !push.pushed) throw new Error(push.reason ?? `memory state mirror retry-push was not confirmed: ${target}`);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
await rm(target);
|
|
90
|
+
await commitMirror(project, target, subject);
|
|
91
|
+
}
|
|
92
|
+
async function mirrorDailySummary(projectId, workspaceName, date, markdown) {
|
|
93
|
+
await writeMemoryStateMirror(projectId, join("summaries", projectId, `${workspaceName}-${date}.md`), markdown, `chore(memory): mirror daily summary ${projectId}/${workspaceName}-${date}`);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Non-blocking review fix: replacing `/` with `__` made `a/b.md` and
|
|
97
|
+
* `a__b.md` map to the same filename, so pinning one could silently overwrite
|
|
98
|
+
* or delete the other's mirror descriptor. Hashing docPath instead of
|
|
99
|
+
* transliterating it makes the filename collision-resistant regardless of
|
|
100
|
+
* what characters the path contains; docPath itself is still stored inside
|
|
101
|
+
* the JSON descriptor content for readability.
|
|
102
|
+
*/
|
|
103
|
+
function pinMirrorPath(scope, scopeId, docPath) {
|
|
104
|
+
return join("pins", `${scope}__${scopeId}__${createHash("sha256").update(docPath).digest("hex").slice(0, 16)}.json`);
|
|
105
|
+
}
|
|
106
|
+
async function unmirrorPin(projectId, scope, scopeId, docPath) {
|
|
107
|
+
await removeMemoryStateMirror(projectId, pinMirrorPath(scope, scopeId, docPath), `chore(memory): unmirror pin ${scope}:${scopeId}:${docPath}`);
|
|
108
|
+
}
|
|
109
|
+
var MEMORY_STATE_DOMAIN, FORBIDDEN_MIRROR_PREFIXES, MemoryMirrorRejectedError;
|
|
110
|
+
var init_state_mirror = __esmMin((() => {
|
|
111
|
+
init_projects();
|
|
112
|
+
init_state_home();
|
|
113
|
+
init_auto_commit();
|
|
114
|
+
MEMORY_STATE_DOMAIN = "memory";
|
|
115
|
+
FORBIDDEN_MIRROR_PREFIXES = ["observations/", "pending/"];
|
|
116
|
+
MemoryMirrorRejectedError = class extends Error {};
|
|
117
|
+
}));
|
|
118
|
+
//#endregion
|
|
119
|
+
export { mirrorDailySummary as n, unmirrorPin as r, init_state_mirror as t };
|
|
120
|
+
|
|
121
|
+
//# sourceMappingURL=state-mirror-Cv_XgvT5.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { r as shouldSkipIdlePokeForAgent } from "./stuck-remediation-
|
|
1
|
+
import { r as shouldSkipIdlePokeForAgent } from "./stuck-remediation-CbCRSz1v.js";
|
|
2
2
|
export { shouldSkipIdlePokeForAgent };
|