@overdeck/desktop 0.45.21 → 0.45.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server/{acceptance-criteria-CJIFA8Vg.js → acceptance-criteria-DOA0KgXx.js} +5 -5
- package/server/{advancing-selfheal-CPOBO5ZS.js → advancing-selfheal-BBu6DSNm.js} +6 -6
- package/server/{agent-gc-D6PUckBB.js → agent-gc-BV1q_2EV.js} +4 -4
- package/server/agent-state-Bg0lhqwj.js +3 -0
- package/server/{agent-state-service-DHwemt96.js → agent-state-service-CnzFKSAQ.js} +1 -1
- package/server/{agent-state-service-6MFQqnFy.js → agent-state-service-HoK8U4jW.js} +5 -5
- package/server/{agents-DbrHWunF.js → agents-B4Bjbkfv.js} +4 -4
- package/server/agents-FlIgQ3ql.js +3 -0
- package/server/{archive-planning-BOnwJq8M.js → archive-planning-DYrYojxl.js} +31 -7
- package/server/{archive-planning-MPpvQJL4.js → archive-planning-zkJb3BeM.js} +1 -1
- package/server/{artifact-index-jobs-BOoySTKD.js → artifact-index-jobs-C-xy7Z5v.js} +2 -2
- package/server/{backlog-auto-trigger-BUaFI44J.js → backlog-auto-trigger-GtG71X8H.js} +3 -3
- package/server/{behavior-Dg-D8eBG.js → behavior-B_-4EKF3.js} +2 -2
- package/server/{briefing-freshness-OouGbJ7d.js → briefing-freshness-DWdW7vUm.js} +2 -2
- package/server/{build-info-27NlbKhV.js → build-info-BT096lEl.js} +3 -3
- package/server/{build-info-Cv6CI7Gu.js → build-info-DgTqZkL5.js} +1 -1
- package/server/{checkpoint-manager-C7mFCY_E.js → checkpoint-manager-B7Bt29J0.js} +1 -1
- package/server/{checkpoint-manager-D64fCC4p.js → checkpoint-manager-DDqcGyu8.js} +2 -2
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-Vh-J15ge.js → checkpoints-C-AXLfYT.js} +2 -2
- package/server/{checkpoints-DwZqT2qQ.js → checkpoints-CpgCjAlN.js} +1 -1
- package/server/{claude-hooks-provision-CS5W_dhI.js → claude-hooks-provision-C8wdRnN1.js} +1 -1
- package/server/{claude-hooks-provision-BVLGfHrv.js → claude-hooks-provision-but-_qGY.js} +2 -2
- package/server/{claude-permissions-C2OrLYKL.js → claude-permissions-H_5wHQZQ.js} +2 -2
- package/server/{claude-settings-overlay-DWXjafJh.js → claude-settings-overlay-BTENVmYf.js} +1 -1
- package/server/{claude-settings-overlay-DX-fMFpC.js → claude-settings-overlay-CbSz0Dvb.js} +2 -2
- package/server/cli-BsVIHwzC.js +3 -0
- package/server/{cli-mvpEOb3w.js → cli-vBeXbPrq.js} +9 -9
- package/server/{cliproxy-Dvsr4ZkW.js → cliproxy-Bgb2XCqi.js} +2 -2
- package/server/{cliproxy-7g1nObvB.js → cliproxy-DW0V86F8.js} +1 -1
- package/server/{close-issue-8F6uawYj.js → close-issue-Dn_4c4G8.js} +5 -5
- package/server/{closed-issue-reaper-BhV-r-tC.js → closed-issue-reaper-CWpY2uBw.js} +1 -1
- package/server/{closed-issue-reaper-BaYQYF6w.js → closed-issue-reaper-hANY_ehE.js} +9 -9
- package/server/codex-Dg7Is5yb.js +3 -0
- package/server/{codex-D_UBEOwL.js → codex-TmSi-yTv.js} +30 -8
- package/server/{codex-parser-BTzlOZiV.js → codex-parser-C4gSH-IR.js} +2 -2
- package/server/{config-CrduXs4a.js → config-CCvjQf27.js} +2 -2
- package/server/{config-nAB_F-Gp.js → config-DUIhMN_T.js} +1 -1
- package/server/{config-G1TOMJZA.js → config-DjLOdbgT.js} +2 -2
- package/server/{config-yaml-Ciyp2mYe.js → config-yaml-DvyMuOle.js} +177 -211
- package/server/{conflict-gate-BKalpcjL.js → conflict-gate-BSJkNTdp.js} +1 -1
- package/server/{conflict-gate-BLUNMs1i.js → conflict-gate-CmrYpa47.js} +3 -3
- package/server/{context-layers-YNpf6Q_I.js → context-layers-B3Nt58jl.js} +2 -2
- package/server/{context-layers-Cg9ZgVfx.js → context-layers-ZYFcWiyc.js} +3 -3
- package/server/{control-settings-D_79A6gp.js → control-settings-aP1ANIlI.js} +4 -4
- package/server/{conversation-compaction-DiuZbIUB.js → conversation-compaction-CNbTLB86.js} +8 -8
- package/server/{conversation-compaction-CMIeWW4_.js → conversation-compaction-DiG5zWQq.js} +1 -1
- package/server/{conversation-service-DQybSPUK.js → conversation-service-Du-MTNpJ.js} +6 -6
- package/server/{conversation-service-CWk8mEym.js → conversation-service-Up7FEzIC.js} +1 -1
- package/server/{conversations-BJ-t3BRm.js → conversations-6mPANqvL.js} +1 -1
- package/server/{conversations-BUgGvqVL.js → conversations-DbOs1e9Q.js} +4 -4
- package/server/{cost-jJ2cgDcG.js → cost-CW4WSe72.js} +3 -3
- package/server/{cost-Drm7qeD5.js → cost-Ca0YTWDw.js} +18 -2
- package/server/{cost-sync-DzHP6zaR.js → cost-sync-C0VdGme1.js} +3 -3
- package/server/{dag-DIji6O2b.js → dag-CdOjJVDT.js} +9 -9
- package/server/{dangerous-git-ops-BebB-61h.js → dangerous-git-ops-CT-IypG3.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/{deacon-pleYrvIm.js → deacon-DYSEJb48.js} +3 -3
- package/server/{deacon-nudge-log-C5VCKtyi.js → deacon-nudge-log-Bjg8U4Y9.js} +3 -3
- package/server/{deacon-1s7bM5zn.js → deacon-pRnyD5w9.js} +1133 -474
- package/server/deacon-swarm-9jRLS5Ke.js +2 -0
- package/server/{deacon-swarm-DmA3rJ7k.js → deacon-swarm-DftYRDo8.js} +17 -17
- package/server/deacon.js +8 -8
- package/server/{deploy-patrol-DmM6F-yw.js → deploy-patrol-Bjsho_ha.js} +136 -19
- package/server/{deploy-window-ClLq1RYf.js → deploy-window-CM6W1-c6.js} +1 -1
- package/server/{deploy-window-jw4S_Y-c.js → deploy-window-DeP_OIRk.js} +77 -10
- package/server/{dev-supervisor-Do2Stz49.js → dev-supervisor-BpMoHlkR.js} +2 -2
- package/server/{devcontainer-renderer-D8ylupco.js → devcontainer-renderer-CtUgrVKW.js} +3 -3
- package/server/dist-Bd3vn0Hw.js +3 -0
- package/server/{dist-yfR7G1BL.js → dist-DyRx4cI7.js} +1 -1
- package/server/{docker-ClwPQaba.js → docker-BK7HIcBj.js} +2 -2
- package/server/{dod-BLphkhjs.js → dod-BrSfUHm0.js} +1 -1
- package/server/{ensure-devcontainer-BA3bICoY.js → ensure-devcontainer-DRqaAkBR.js} +1 -1
- package/server/{ensure-devcontainer-CFpQatOc.js → ensure-devcontainer-DseivYEy.js} +4 -4
- package/server/{esm-shims-BZw-fTQ6.js → esm-shims-CbI3BVkl.js} +1 -1
- package/server/{event-store-DABarGNz.js → event-store-Cr5PQwFC.js} +1 -1
- package/server/{event-store-BVnON3vf.js → event-store-tdiY5eDZ.js} +3 -3
- package/server/{events-CmERlnwn.js → events-CC1dgUpx.js} +3 -3
- package/server/{events-LGeUehYW.js → events-CvvGK6LT.js} +1 -1
- package/server/{factory-CQNprtHe.js → factory-CynerjXO.js} +50 -13
- package/server/{feature-registry-population-D9Z3tYSa.js → feature-registry-population-B0pmAz0a.js} +4 -4
- package/server/{feature-registry-storage-BWymOgXE.js → feature-registry-storage-_wUBRD3J.js} +2 -2
- package/server/{features--fOza5g5.js → features-Dhxz-wLc.js} +2 -2
- package/server/{feedback-target-Dqik2WTe.js → feedback-target-CPS15Vte.js} +7 -7
- package/server/{feedback-target-Dn9vfPpz.js → feedback-target-iygZwmMc.js} +1 -1
- package/server/{feedback-writer-Wlq5-qgS.js → feedback-writer-C9b6ccN1.js} +6 -5
- package/server/{feedback-writer-DDQNV8uc.js → feedback-writer-qmiMbqTZ.js} +1 -1
- package/server/{flywheel-Q-38YhZG.js → flywheel-DMCUzDWg.js} +1 -1
- package/server/{flywheel-1Wd8WDlh.js → flywheel-DSSpWmqF.js} +13 -13
- package/server/{flywheel-DPUc8r3V.js → flywheel-DcBkQvgE.js} +14 -14
- package/server/{flywheel-merge-order-CeBuX0EJ.js → flywheel-merge-order-C-6zRLvM.js} +1 -1
- package/server/{flywheel-merge-order-4SqOXFAr.js → flywheel-merge-order-DxbQKE1d.js} +8 -8
- package/server/forge-B-ZWyTRm.js +2 -0
- package/server/{forge-DBbDpiYc.js → forge-Ch9gCFod.js} +2 -2
- package/server/{from-hh6vTBGl.js → from-CJ_aH5jD.js} +1 -1
- package/server/{fts-db-6ponMie2.js → fts-db-CKgg0VKg.js} +2 -2
- package/server/{fts-operations-KIRK165y.js → fts-operations-BrL_VTRr.js} +2 -2
- package/server/git-utils-BVa07a4a.js +198 -0
- package/server/{git-utils-DmF5xkj8.js → git-utils-Dry_Ka_D.js} +1 -1
- package/server/{github-app-B3yfECo8.js → github-app-CMBdIFBQ.js} +11 -3
- package/server/{github-app-CeSVFL6C.js → github-app-CPfoFAdV.js} +1 -1
- package/server/{github-client-Dslipypz.js → github-client--XVlDpwM.js} +2 -2
- package/server/{github-client-4A6FgA8O.js → github-client-B4QsdE-X.js} +1 -1
- package/server/{github-pr-lookup-DBP0YHMr.js → github-pr-lookup-BRbDW-qk.js} +2 -2
- package/server/harness-binary-CVio2m-u.js +106 -0
- package/server/{harness-resolve-BGpO-OVM.js → harness-resolve-qHJBhy3Z.js} +9 -15
- package/server/{health-events-CZGZ5I-A.js → health-events-C9B8y1Hm.js} +2 -2
- package/server/{health-events-CnwV_SSz.js → health-events-CpfvuVmm.js} +1 -1
- package/server/{hooks-CoNscX84.js → hooks-DUXw8A0-.js} +2 -2
- package/server/{hooks-DvX33gY_.js → hooks-ltecuFqZ.js} +1 -1
- package/server/{hume-DSJt5eA_.js → hume-BEq0bUDg.js} +2 -2
- package/server/hume-B_DbflNM.js +3 -0
- package/server/{idle-stack-reaper-5DVRoY6P.js → idle-stack-reaper-D7w9t3fE.js} +1 -1
- package/server/{idle-stack-reaper-BfL8HqYy.js → idle-stack-reaper-w1ISSlhs.js} +2 -2
- package/server/{in-flight-guard-tVGiI5ee.js → in-flight-guard-aQ1IxeI3.js} +2 -2
- package/server/{infra-DN2wSxle.js → infra-CzaSOgul.js} +4 -4
- package/server/{injection-DtlT8Akv.js → injection-DZ0PfYa4.js} +7 -7
- package/server/{injection-DK9zh_HL.js → injection-oNZeoDhL.js} +1 -1
- package/server/{inspect-agent-DKByUS_F.js → inspect-agent-DJKLWcVT.js} +15 -11
- package/server/inspect-agent-ch-F-5Ci.js +2 -0
- package/server/{internal-token-DhfFiwW7.js → internal-token-Bb4XeV2x.js} +2 -2
- package/server/{internal-token-7bYL5v6K.js → internal-token-DXdfprGr.js} +1 -1
- package/server/{io-BiM-7Zsx.js → io-B3_AHDfr.js} +160 -184
- package/server/{issue-closed-Dfw3QDyZ.js → issue-closed-zhdvQicO.js} +7 -7
- package/server/{issue-lifecycle-B7HZWnTA.js → issue-lifecycle-CreaCkjW.js} +22 -22
- package/server/{issue-lifecycle-ytsEdDlK.js → issue-lifecycle-Dy4vd0Oa.js} +1 -1
- package/server/{issue-service-singleton-CPESc4Or.js → issue-service-singleton-B5ushCvE.js} +8 -8
- package/server/{issue-service-singleton-D5EB5eYr.js → issue-service-singleton-DabvBWUp.js} +1 -1
- package/server/{issues-XYtFMxrH.js → issues-B6ToV6x1.js} +2 -2
- package/server/{jsonl-parser-DJV2eZUP.js → jsonl-parser-Dhflo1SH.js} +3 -3
- package/server/{label-cleanup-CJ4m8iRU.js → label-cleanup-BKPJm4Hv.js} +3 -3
- package/server/{label-reconciler-CNf3Ylm3.js → label-reconciler-DdWbHEBu.js} +4 -4
- package/server/{launcher-generator-5DJRiovn.js → launcher-generator-CHVm7bGT.js} +10 -9
- package/server/{layers-cZx7ibtV.js → layers-DzxSTGNA.js} +2 -2
- package/server/lifecycle-DfeyBDwA.js +121 -0
- package/server/lifecycle-io-Bsnr2K4F.js +3 -0
- package/server/{lifecycle-io-DMurK4oM.js → lifecycle-io-D8iNBcux.js} +37 -37
- package/server/{lifecycle-CE7619Xw.js → lifecycle-sycO16hj.js} +6 -6
- package/server/{linear-client-BLyN-NiP.js → linear-client-D4zqMnX7.js} +2 -2
- package/server/{linear-client-Bj1l4FOA.js → linear-client-DqhDQO9k.js} +1 -1
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-hSC2BENe.js → merge-C_ZEhbqI.js} +3 -3
- package/server/{merge-CwX2_AWm.js → merge-DK23JEdS.js} +1 -1
- package/server/{merge-agent-CnORPiri.js → merge-agent-BQM3a8z5.js} +1 -1
- package/server/{merge-agent-DnBsms_V.js → merge-agent-XrB80vfT.js} +369 -213
- package/server/{merge-batch-C2w2U2eK.js → merge-batch-Bwoyr8Je.js} +1 -1
- package/server/{merge-blockers-DhRgh76x.js → merge-blockers-BsFjGrQ8.js} +2 -2
- package/server/merge-ops-DlB1IM0Y.js +2 -0
- package/server/{merge-rebase-CE-ZyOMY.js → merge-rebase-C1KIVr0s.js} +2 -2
- package/server/{merge-set-D7YNU1ZB.js → merge-set-DLz0MkGT.js} +3 -3
- package/server/{merge-set-DHkzPCJU.js → merge-set-DnSYdBEp.js} +1 -1
- package/server/{merge-sync-De1FYva5.js → merge-sync-DZ9dojJn.js} +2 -2
- package/server/{merge-sync-CpGA9Kg7.js → merge-sync-SSv3E-pl.js} +1 -1
- package/server/{merge-train-SvkRJZ-k.js → merge-train-DxDfBTjr.js} +3 -3
- package/server/{merge-train-deps-CECJTElu.js → merge-train-deps-CyYQUksx.js} +4 -4
- package/server/{merge-verification-B3meGcXF.js → merge-verification-CSizH3HY.js} +4 -4
- package/server/{multipart-parser-ByTMgYV5.js → multipart-parser-Dt8YPN5S.js} +2 -2
- package/server/{no-resume-mode-BnInAFKs.js → no-resume-mode-Cx3K0hHi.js} +11 -8
- package/server/node_modules/.package-lock.json +5 -5
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/README.md +3 -3
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.d.ts.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js +2 -2
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +5 -5
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeChildProcessSpawner.ts +6 -8
- package/server/{orphan-proposed-reconciler-CAfuWTA1.js → orphan-proposed-reconciler-BTkDrl4R.js} +1 -1
- package/server/{orphan-proposed-reconciler-AxAGUouN.js → orphan-proposed-reconciler-neK8dHQk.js} +23 -14
- package/server/package-lock.json +6 -6
- package/server/package.json +1 -1
- package/server/{pan-dir-Rw17YjT1.js → pan-dir-DeVUgwA7.js} +78 -58
- package/server/{paths-FP8v3lTz.js → paths-_zEts6wc.js} +2 -2
- package/server/{pickup-xi3KTLaJ.js → pickup-Dd0Znxxy.js} +2 -2
- package/server/{pipeline-membership-BtKMNY7v.js → pipeline-membership-0HaEGDlH.js} +190 -68
- package/server/{pipeline-notifier-dQ-U4NSb.js → pipeline-notifier-6iCJplFZ.js} +1 -1
- package/server/{pipeline-notifier-BM2HLF7B.js → pipeline-notifier-D0ykk59O.js} +2 -2
- package/server/{project-pipelines-B59NfN44.js → project-pipelines-2sK1apsO.js} +2 -2
- package/server/projects-9SkRpES9.js +3 -0
- package/server/{prompts-CbqaVjbe.js → prompts-Dp4Tpk39.js} +2 -2
- package/server/providers-DKkBXhxU.js +3 -0
- package/server/{providers-d3pwXGVE.js → providers-DV7ec8l7.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-BxYSL7J-.js → chunk-BO2N2NFS-CltymLRg.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-C_F9Q2as.js → diagram-OG6HWLK6-D2f6pjgA.js} +1 -1
- package/server/public/assets/{dist-DQNg4CiF.js → dist-BWR4qFiV.js} +1 -1
- package/server/public/assets/{dist-CLSlc6cV.js → dist-DEmlBBNQ.js} +3 -3
- package/server/public/assets/{ganttDiagram-6RSMTGT7-Cq0my-0C.js → ganttDiagram-6RSMTGT7-DnfiViPK.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-eZC03dGh.js → highlighted-body-OFNGDK62-B8Wrmj9H.js} +1 -1
- package/server/public/assets/index-CUr1xv8w.css +1 -0
- package/server/public/assets/{index-SLYGA8AQ.js → index-CsSuZQBI.js} +148 -145
- package/server/public/assets/{linear-6Fi3qnGg.js → linear-C9zFQpkX.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-BUAB8hqt.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-Dpmc6xsv.js → pieDiagram-4H26LBE5-lR8H7Yjd.js} +1 -1
- package/server/public/assets/{prod-ojHllFvN.js → prod-B1jCQihw.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-Ulr9gON5.js → quadrantDiagram-W4KKPZXB-CVQ2guem.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-CwdHGXfL.js → sankeyDiagram-5OEKKPKP-eD1RB4gm.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-r-bEDzJh.js → xychartDiagram-2RQKCTM6-ChEC6dQn.js} +1 -1
- package/server/public/index.html +54 -10
- package/server/{pull-requests-D3N6HQzI.js → pull-requests--Ib2jTgy.js} +1 -1
- package/server/{pull-requests-CjjPj7v6.js → pull-requests-CXIhdCYD.js} +13 -11
- package/server/{queries-B5hl7lMQ.js → queries-6d7Cdtm7.js} +723 -110
- package/server/{rally-Dp0Gb1DN.js → rally-B708-nZn.js} +3 -3
- package/server/{rally-api-DGaFz5L5.js → rally-api-nY0ZANw3.js} +2 -2
- package/server/{rally-api-CKr0O4DJ.js → rally-api-yjQ0TfHd.js} +1 -1
- package/server/{rally-client-SVbjGvqj.js → rally-client-B1EJhfV0.js} +4 -4
- package/server/{rally-client-Cqf6EX_r.js → rally-client-CULK2XAY.js} +1 -1
- package/server/rally-njs_mJrt.js +3 -0
- package/server/reap-terminal-sessions-MWnqdLCJ.js +4 -0
- package/server/{reap-terminal-sessions-CjqRAGw7.js → reap-terminal-sessions-N3BTkmX_.js} +11 -28
- package/server/{rebuild-stack-DHqCLvLX.js → rebuild-stack-Dp4eLkt4.js} +6 -6
- package/server/{rebuild-stack-DjdpALr1.js → rebuild-stack-kA7XngID.js} +1 -1
- package/server/{reconstruct-cache-BqrCQt0o.js → reconstruct-cache-uWbZfjms.js} +6 -6
- package/server/record-t6V-3Dcj.js +3 -0
- package/server/{record-update-BlB8mpKO.js → record-update-DACtKh6_.js} +1 -1
- package/server/record-update-Dq0t2uBG.js +310 -0
- package/server/{recovery-trip-l1Hsi37x.js → recovery-trip-BJtIQuag.js} +2 -2
- package/server/{release-engine-CSI4K6Oj.js → release-engine-DZpmGGzb.js} +5 -5
- package/server/{release-set-BywwggrE.js → release-set-hnXd_kga.js} +3 -3
- package/server/{remote-DYziAkiZ.js → remote-4tiENDaI.js} +3 -3
- package/server/{remote-cnoeuDWn.js → remote-Br-ZWVIP.js} +3 -3
- package/server/{remote-agents-BNORDWAX.js → remote-agents-CRCg1L4H.js} +1 -1
- package/server/{remote-agents-CZ2rc8I0.js → remote-agents-nmty1mLu.js} +6 -6
- package/server/{remote-completion-W67FNQ-A.js → remote-completion-BbWNd10K.js} +13 -13
- package/server/resume-CcKqnTvE.js +3 -0
- package/server/{review-agent-CSswH985.js → review-agent-DJRO8EG8.js} +1 -1
- package/server/{review-agent-CqSqSHkU.js → review-agent-sKkE1FEL.js} +23 -23
- package/server/{review-artifacts-BBgnd5df.js → review-artifacts-BLbSC4ke.js} +5 -5
- package/server/{review-context-Ctp9BdNJ.js → review-context-BgX3lcCx.js} +9 -9
- package/server/{review-status-CCgPVK1h.js → review-status-A7quS5KJ.js} +56 -39
- package/server/review-status-C6n6-9f_.js +3 -0
- package/server/{review-status-enrichment-DtDRGpst.js → review-status-enrichment-tbOn_A_u.js} +3 -3
- package/server/review-status-source-CxuEjLGg.js +39 -0
- package/server/{review-status-sync-jnLgd04F.js → review-status-sync-BhSQ0d0l.js} +2 -2
- package/server/{review-status-sync-C792ksoJ.js → review-status-sync-To3-iS-N.js} +1 -1
- package/server/{review-verdict-feedback-D5lW0o3k.js → review-verdict-feedback-C1Kg8n7t.js} +1 -1
- package/server/{review-verdict-feedback-CMsIpTpy.js → review-verdict-feedback-CTRNtzXO.js} +7 -7
- package/server/{rollup-B3kQmNpl.js → rollup-B53Y81xK.js} +1 -1
- package/server/{rollup-CLj_AK9f.js → rollup-WA0VD-Rr.js} +8 -8
- package/server/{scanner-C4NeC4FE.js → scanner-D2743cp8.js} +11 -7
- package/server/{sequence-io-Ce-6grIY.js → sequence-io-Cg0zYj_E.js} +4 -4
- package/server/{sequencer-agent-Bpz0yGmG.js → sequencer-agent-BGY8gjg-.js} +5 -5
- package/server/server.js +1348 -963
- package/server/{service-CqAY8Kmk.js → service-DCpB_SGd.js} +154 -51
- package/server/{session-fork-uNo4rMRA.js → session-fork-BQ8_6H32.js} +2 -2
- package/server/{session-history-DUehL3KN.js → session-history-CVZDpS3c.js} +4 -4
- package/server/{settings-DP2OYLXL.js → settings-BZ5m1UCl.js} +3 -3
- package/server/settings-D0OSwos5.js +2 -0
- package/server/{settings-D9grjmaP.js → settings-ylxwqwQG.js} +2 -2
- package/server/{shadow-engineering-Bi_oIMtF.js → shadow-engineering-BlxG6Xye.js} +3 -3
- package/server/{shadow-state-CDxEuPlE.js → shadow-state-C2_epgx2.js} +1 -1
- package/server/{shadow-state-a_ztFBJe.js → shadow-state-Dh-HzF2J.js} +2 -2
- package/server/{shadow-utils-CyOg6_Xq.js → shadow-utils-4bvjn9b3.js} +2 -2
- package/server/{ship-log-DDcueaIR.js → ship-log-ClSMIzZX.js} +1 -1
- package/server/{smart-compaction-C1_VVLEd.js → smart-compaction-CHIxLr_d.js} +1 -1
- package/server/{smart-compaction--Oj65Uov.js → smart-compaction-r4pHQBIr.js} +7 -7
- package/server/{spawn-planning-session-AiUSsBnH.js → spawn-planning-session-DWAorh2B.js} +25 -20
- package/server/{spawn-planning-session-LFtK2QCE.js → spawn-planning-session-KC_UduxD.js} +1 -1
- package/server/{specialist-completion-qOgqdqXH.js → specialist-completion-BXhav38U.js} +1 -1
- package/server/{specialist-context-gjj8Z4Ii.js → specialist-context-DtrYvGJ-.js} +5 -5
- package/server/{specialist-handoff-logger-BsBNvVZv.js → specialist-handoff-logger-C45ouoZ6.js} +2 -2
- package/server/{specialist-logs-CSLtvPx6.js → specialist-logs-DJ3RzKxW.js} +3 -3
- package/server/{specialists-D0VBf8g_.js → specialists-D5fRZXmN.js} +1 -1
- package/server/specialists-DVj0hvaL.js +3 -0
- package/server/{specialists-CYRwELzc.js → specialists-DyFeedjn.js} +66 -76
- package/server/{specialists-DAegTvRt.js → specialists-JVO00bs7.js} +374 -220
- package/server/specs-nN45DG2X.js +3 -0
- package/server/{src-OLoJhUiJ.js → src-CG9mCkP6.js} +6 -6
- package/server/{src-BqTcrfO_.js → src-CMTQGyCK.js} +3 -3
- package/server/{src-Dpq1yFIl.js → src-U7_kTPEE.js} +338 -4
- package/server/{stack-health-I713ELld.js → stack-health-Df0YEZKa.js} +1 -1
- package/server/{stack-health-DV_f-lK0.js → stack-health-puygdaMd.js} +2 -2
- package/server/{stale-task-claims-CQSKZVq0.js → stale-task-claims-BbFwCTb0.js} +4 -4
- package/server/{staleness-BbsGxmF2.js → staleness-Bpy41ngS.js} +15 -3
- package/server/{staleness-zGp4P1hd.js → staleness-Cbl_w4Bw.js} +1 -1
- package/server/{state-home-DixkE-up.js → state-home-CIGjwNfJ.js} +119 -54
- package/server/state-migrate-Dkzaxvny.js +487 -0
- package/server/{stuck-remediation-BWkK_O7A.js → stuck-remediation-CzEov_fq.js} +27 -21
- package/server/{stuck-remediation-CTPRC2S5.js → stuck-remediation-sY_MHHgQ.js} +1 -1
- package/server/{substrate-bug-weights-service-DXd0ID83.js → substrate-bug-weights-service-BH66lhm7.js} +3 -3
- package/server/{summary-fork-CdLn8Chr.js → summary-fork-D8bXjCr7.js} +2 -2
- package/server/{summary-fork-f3DpgjXh.js → summary-fork-DHhJIsAL.js} +8 -8
- package/server/{supervisor-Ch8CDuoF.js → supervisor-BO-Zk_h-.js} +3 -3
- package/server/supervisor-BPy-o1A8.js +2 -0
- package/server/{swarm-readiness-C9P2iPap.js → swarm-readiness-CQ_fwUWF.js} +4 -4
- package/server/{system-prerequisites-DkoQBn1q.js → system-prerequisites-Bza0ffAh.js} +24 -44
- package/server/{teardown-workspace-D-5yMyit.js → teardown-workspace-CEgauF4U.js} +15 -15
- package/server/{test-agent-queue-BwpUpu-o.js → test-agent-queue-DXDt0Xa-.js} +7 -7
- package/server/{test-verdict-BRiSu7eW.js → test-verdict-CmUBK5cT.js} +1 -1
- package/server/{test-verdict-BQ1yx7d4.js → test-verdict-DFjjIHR5.js} +1 -1
- package/server/{tldr-daemon-DjxP5g6Y.js → tldr-daemon-BDtLOIlO.js} +2 -2
- package/server/{tldr-daemon-BJA7TkqS.js → tldr-daemon-DL566HbH.js} +1 -1
- package/server/tmux-DoThH6aj.js +3 -0
- package/server/{tmux-y1blSxks.js → tmux-ftABRAmc.js} +76 -44
- package/server/{token-LUrbM9sU.js → token-CsOhvw42.js} +2 -2
- package/server/{token-util-BZaDAQ8S.js → token-util-CTmczIfW.js} +1 -1
- package/server/token-util-DrHg8abn.js +3 -0
- package/server/{tracker-config-DSFZBdXP.js → tracker-config-B4itFzDo.js} +2 -2
- package/server/{tracker-utils-WtP_V-yn.js → tracker-utils-BePq_oj-.js} +1 -1
- package/server/{tracker-utils-DiceZN3a.js → tracker-utils-tnxxqROg.js} +2 -2
- package/server/{traefik-connect-BXqfOP4-.js → traefik-connect-m73vGebA.js} +1 -1
- package/server/{tunnel-DTng1rfQ.js → tunnel-B2vxjx_b.js} +3 -3
- package/server/{tunnel-WcJImbAC.js → tunnel-Cgj-IGIl.js} +1 -1
- package/server/{types-BjaZ1oqH.js → types-BBNjPcqU.js} +1 -1
- package/server/{types-DqeBMmJN.js → types-hraoaQIp.js} +1 -1
- package/server/{uat-train-BpLnp7Cx.js → uat-train-CuEn0t9M.js} +28 -28
- package/server/{uat-train-Wismge7h.js → uat-train-cKfM-_WW.js} +1 -1
- package/server/{validation-BA4e5EGm.js → validation-B5JxoPUS.js} +259 -9
- package/server/{validation-CUWamZ4X.js → validation-CIi6pnI2.js} +1 -1
- package/server/{verification-artifact-Dr_0g9nb.js → verification-artifact-BcnIbigL.js} +1 -1
- package/server/{verification-artifact-CrbI4tJE.js → verification-artifact-C-lIHfUa.js} +1 -1
- package/server/{verification-runner-gAzh3cVD.js → verification-runner-Br0S_Ous.js} +103 -37
- package/server/{verification-runner-Dcksl_P-.js → verification-runner-CDj4lD4t.js} +1 -1
- package/server/{vtt-parser-3VZKsmSm.js → vtt-parser-DKpNNW5i.js} +1 -1
- package/server/{work-agent-prompt-ULdcANl5.js → work-agent-prompt-Yb2bd3Fq.js} +16 -15
- package/server/{workflows-B8ROFlfw.js → workflows-C9WmILql.js} +39 -77
- package/server/workflows-D90rMOya.js +2 -0
- package/server/{workspace-DhTDA8nB.js → workspace-BVl4rihN.js} +3 -3
- package/server/{workspace-DSjUJaJN.js → workspace-DuUdndHe.js} +1 -1
- package/server/{workspace-config-BAAsAv-o.js → workspace-config-cEGcO6UT.js} +1 -1
- package/server/{workspace-manager-CcujONCR.js → workspace-manager-ZTdJAy9M.js} +1 -1
- package/server/{workspace-manager-DsN52IMG.js → workspace-manager-hLUv3ADC.js} +23 -16
- package/server/{workspace-metadata-DIL5_U4c.js → workspace-metadata-CskwzzhL.js} +2 -2
- package/server/{workspace-metadata-CftOpNLs.js → workspace-metadata-DNpMixRq.js} +1 -1
- package/server/{workspaces-Dmlh1YXm.js → workspaces-hWvy9eKs.js} +276 -110
- package/sync-sources/agents/pan-inspect-agent.md +1 -1
- package/sync-sources/agents/pan-merge-agent.md +1 -1
- package/sync-sources/agents/pan-planning-agent.md +4 -4
- package/sync-sources/agents/pan-work-agent.md +1 -1
- package/sync-sources/dev-skills/pan-commit/SKILL.md +1 -1
- package/sync-sources/dev-skills/test-specialist-workflow/SKILL.md +1 -1
- package/sync-sources/hooks/record-cost-event.js +363 -71
- package/sync-sources/hooks/session-start-hook +7 -0
- package/sync-sources/hooks/work-agent-stop-hook +1 -1
- package/sync-sources/rules/per-bead-durability.md +1 -1
- package/sync-sources/rules/prd-authoring.md +1 -1
- package/sync-sources/skills/feature-work/SKILL.md +1 -1
- package/sync-sources/skills/pan/SKILL.md +2 -2
- package/sync-sources/skills/pan-admin-config/SKILL.md +1 -0
- package/sync-sources/skills/pan-approve/SKILL.md +1 -1
- package/sync-sources/skills/pan-close/SKILL.md +1 -1
- package/sync-sources/skills/pan-doctor/SKILL.md +1 -1
- package/sync-sources/skills/pan-new-project/SKILL.md +9 -11
- package/sync-sources/skills/pan-oversee/SKILL.md +5 -5
- package/sync-sources/skills/pan-plan/SKILL.md +6 -6
- package/sync-sources/skills/pan-quickstart/SKILL.md +1 -1
- package/sync-sources/skills/pan-recap/SKILL.md +2 -2
- package/sync-sources/skills/pan-review/SKILL.md +1 -1
- package/sync-sources/skills/pan-start/SKILL.md +26 -3
- package/sync-sources/skills/pan-swarm/SKILL.md +1 -1
- package/sync-sources/skills/pan-sync/SKILL.md +1 -1
- package/sync-sources/skills/pan-task/SKILL.md +2 -2
- package/sync-sources/skills/pan-wipe/SKILL.md +2 -2
- package/sync-sources/skills/pipeline-list/SKILL.md +1 -1
- package/sync-sources/skills/pipeline-status/SKILL.md +2 -2
- package/sync-sources/skills/plan/SKILL.md +11 -11
- package/sync-sources/skills/write-vbrief/SKILL.md +7 -282
- package/sync-sources/skills/write-xbrief/SKILL.md +295 -0
- package/sync-sources/templates/claude-md/sections/warnings.md +1 -1
- package/server/agent-state-BV_6RHnO.js +0 -3
- package/server/agents-Czz6R57Z.js +0 -3
- package/server/cli-ChErG518.js +0 -3
- package/server/codex-BBeZ8c3s.js +0 -3
- package/server/deacon-swarm-uudlSCLM.js +0 -2
- package/server/dist-BEDL2alY.js +0 -3
- package/server/forge-DbhJyH6u.js +0 -2
- package/server/git-utils-Bkxzr1Xf.js +0 -129
- package/server/hume-BrA1tUuk.js +0 -3
- package/server/inspect-agent-CyXNo9fM.js +0 -2
- package/server/lifecycle-io-CUpsxG0p.js +0 -3
- package/server/merge-ops-BpTtuO8x.js +0 -2
- package/server/projects-IRHJIPYC.js +0 -3
- package/server/providers-BqCdTryq.js +0 -3
- package/server/public/assets/index-C6NLz_1S.css +0 -1
- package/server/public/assets/mermaid-GHXKKRXX-BNwFoQsf.js +0 -1
- package/server/rally-DGimSRBQ.js +0 -3
- package/server/reap-terminal-sessions-C1mfzoZo.js +0 -3
- package/server/record-update-RviRDSNs.js +0 -168
- package/server/record-us0YECMO.js +0 -3
- package/server/resume-OyN3dEXE.js +0 -3
- package/server/review-status-DXeqFpk5.js +0 -3
- package/server/settings-BaPXXJsT.js +0 -2
- package/server/specialists-C6WkeKFK.js +0 -3
- package/server/specs-BsNcum0h.js +0 -3
- package/server/state-migrate-_zJJ6XKE.js +0 -362
- package/server/supervisor-Qy1QecAs.js +0 -2
- package/server/tmux-HQLgwo_C.js +0 -3
- package/server/token-util-Cg-QnowA.js +0 -3
- package/server/workflows-C5c-RPsY.js +0 -2
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e}from"./chunk-BO2N2NFS-BxYSL7J-.js";export{e as Mermaid};
|
package/server/rally-DGimSRBQ.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { a as selectAwaitingTestWorkSessions, c as selectNonMergedTerminalAdvancingSessions, r as isRoleTerminal, s as selectMergedWorkSessions, t as init_reap_terminal_sessions } from "./reap-terminal-sessions-CjqRAGw7.js";
|
|
2
|
-
init_reap_terminal_sessions();
|
|
3
|
-
export { isRoleTerminal, selectAwaitingTestWorkSessions, selectMergedWorkSessions, selectNonMergedTerminalAdvancingSessions };
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { At as init_record, Et as getIssueRecordPath, Ft as readIssueRecordSync, Lt as resolveProjectForIssue, Mt as queueIssueRecordCommit, Un as listProjectsSync, Ut as writeIssueRecordSync, an as init_auto_commit, ei as getOverdeckHome, in as flushAutoCommits, kt as getProjectConfigFromWorkspacePath, ti as init_paths, wt as ensureIssueRecordSync, zn as init_projects } from "./config-yaml-Ciyp2mYe.js";
|
|
3
|
-
import { dirname, join } from "node:path";
|
|
4
|
-
import { Effect } from "effect";
|
|
5
|
-
import { hostname } from "node:os";
|
|
6
|
-
import { mkdir, readFile, readdir, rm, writeFile } from "node:fs/promises";
|
|
7
|
-
//#region ../../lib/pan-dir/fs-lock.ts
|
|
8
|
-
/** Cross-process per-issue record locking (PAN-2648 CD-2). */
|
|
9
|
-
function safeSegment(value) {
|
|
10
|
-
return value.trim().toLowerCase().replace(/[^a-z0-9._-]+/g, "-");
|
|
11
|
-
}
|
|
12
|
-
function recordLockPath(project, issueId) {
|
|
13
|
-
const configuredKey = listProjectsSync().find(({ config }) => config.path === project.path)?.key;
|
|
14
|
-
const projectKey = safeSegment(configuredKey ?? project.name ?? project.path) || "unknown-project";
|
|
15
|
-
return join(getOverdeckHome(), "locks", "records", projectKey, `${issueId.toUpperCase()}.lock`);
|
|
16
|
-
}
|
|
17
|
-
function isPidDead(pid) {
|
|
18
|
-
if (!pid || pid <= 0 || pid === process.pid) return false;
|
|
19
|
-
try {
|
|
20
|
-
process.kill(pid, 0);
|
|
21
|
-
return false;
|
|
22
|
-
} catch (error) {
|
|
23
|
-
return error.code === "ESRCH";
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
async function sweepRecordTmpFiles(recordPath) {
|
|
27
|
-
try {
|
|
28
|
-
const dir = dirname(recordPath);
|
|
29
|
-
const base = recordPath.slice(dir.length + 1);
|
|
30
|
-
const entries = await readdir(dir);
|
|
31
|
-
await Promise.all(entries.filter((entry) => entry.startsWith(`${base}.`) && entry.endsWith(".tmp")).map((entry) => rm(join(dir, entry), { force: true })));
|
|
32
|
-
} catch {}
|
|
33
|
-
}
|
|
34
|
-
async function readOwner(lockPath) {
|
|
35
|
-
try {
|
|
36
|
-
const owner = JSON.parse(await readFile(join(lockPath, "owner.json"), "utf8"));
|
|
37
|
-
return {
|
|
38
|
-
description: `${owner.writerId ?? "unknown writer"} pid=${owner.pid ?? "unknown"} acquiredAt=${owner.acquiredAt ?? "unknown"}`,
|
|
39
|
-
pid: owner.pid
|
|
40
|
-
};
|
|
41
|
-
} catch {
|
|
42
|
-
return { description: "unknown writer" };
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
async function acquireRecordLock(lockPath, options) {
|
|
46
|
-
await mkdir(dirname(lockPath), {
|
|
47
|
-
recursive: true,
|
|
48
|
-
mode: 448
|
|
49
|
-
});
|
|
50
|
-
const delays = options.retryDelaysMs ?? RECORD_LOCK_RETRY_DELAYS_MS;
|
|
51
|
-
let lastOwner = "unknown writer";
|
|
52
|
-
for (let attempt = 0; attempt <= delays.length; attempt += 1) {
|
|
53
|
-
try {
|
|
54
|
-
await mkdir(lockPath, { mode: 448 });
|
|
55
|
-
const owner = {
|
|
56
|
-
writerId: options.writerId,
|
|
57
|
-
pid: process.pid,
|
|
58
|
-
acquiredAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
59
|
-
};
|
|
60
|
-
try {
|
|
61
|
-
await writeFile(join(lockPath, "owner.json"), JSON.stringify(owner, null, 2), "utf8");
|
|
62
|
-
} catch (error) {
|
|
63
|
-
try {
|
|
64
|
-
await rm(lockPath, {
|
|
65
|
-
recursive: true,
|
|
66
|
-
force: true
|
|
67
|
-
});
|
|
68
|
-
} catch {}
|
|
69
|
-
throw error;
|
|
70
|
-
}
|
|
71
|
-
await sweepRecordTmpFiles(options.recordPath);
|
|
72
|
-
return owner;
|
|
73
|
-
} catch (error) {
|
|
74
|
-
if (error.code !== "EEXIST") throw error;
|
|
75
|
-
const owner = await readOwner(lockPath);
|
|
76
|
-
lastOwner = owner.description;
|
|
77
|
-
if (isPidDead(owner.pid)) {
|
|
78
|
-
await rm(lockPath, {
|
|
79
|
-
recursive: true,
|
|
80
|
-
force: true
|
|
81
|
-
});
|
|
82
|
-
continue;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
const delay = delays[attempt];
|
|
86
|
-
if (delay === void 0) break;
|
|
87
|
-
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
88
|
-
}
|
|
89
|
-
throw new RecordLockError(lockPath, lastOwner);
|
|
90
|
-
}
|
|
91
|
-
async function releaseRecordLock(lockPath) {
|
|
92
|
-
await rm(lockPath, {
|
|
93
|
-
recursive: true,
|
|
94
|
-
force: true
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
async function withRecordFsLock(project, issueId, options, operation) {
|
|
98
|
-
const lockPath = recordLockPath(project, issueId);
|
|
99
|
-
await acquireRecordLock(lockPath, options);
|
|
100
|
-
try {
|
|
101
|
-
return await operation();
|
|
102
|
-
} finally {
|
|
103
|
-
await releaseRecordLock(lockPath);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
var RECORD_LOCK_RETRY_DELAYS_MS, RecordLockError;
|
|
107
|
-
var init_fs_lock = __esmMin((() => {
|
|
108
|
-
init_paths();
|
|
109
|
-
init_projects();
|
|
110
|
-
RECORD_LOCK_RETRY_DELAYS_MS = [
|
|
111
|
-
5,
|
|
112
|
-
10,
|
|
113
|
-
20,
|
|
114
|
-
40,
|
|
115
|
-
80,
|
|
116
|
-
160,
|
|
117
|
-
320,
|
|
118
|
-
360
|
|
119
|
-
];
|
|
120
|
-
RecordLockError = class extends Error {
|
|
121
|
-
constructor(lockPath, owner) {
|
|
122
|
-
super(`The per-issue record lock at ${lockPath} is held by ${owner}. Retry the command after that writer finishes.`);
|
|
123
|
-
this.lockPath = lockPath;
|
|
124
|
-
this.owner = owner;
|
|
125
|
-
this.name = "RecordLockError";
|
|
126
|
-
}
|
|
127
|
-
};
|
|
128
|
-
}));
|
|
129
|
-
//#endregion
|
|
130
|
-
//#region ../../lib/pan-dir/record-update.ts
|
|
131
|
-
/** The single locked read-modify-write door for per-issue records. */
|
|
132
|
-
function updateIssueRecordForWorkspace(workspacePath, issueId, mutator, options = {}) {
|
|
133
|
-
return updateIssueRecord(resolveProjectForIssue(issueId) ?? getProjectConfigFromWorkspacePath(workspacePath), issueId, mutator, options);
|
|
134
|
-
}
|
|
135
|
-
async function updateIssueRecord(project, issueId, mutator, options = {}) {
|
|
136
|
-
const normalizedIssueId = issueId.toUpperCase();
|
|
137
|
-
const recordPath = getIssueRecordPath(project, normalizedIssueId);
|
|
138
|
-
const writerId = options.writerId ?? process.env.OVERDECK_AGENT_ID ?? `process-${process.pid}@${hostname()}`;
|
|
139
|
-
const commit = { flush: void 0 };
|
|
140
|
-
const record = await withRecordFsLock(project, normalizedIssueId, {
|
|
141
|
-
writerId,
|
|
142
|
-
recordPath
|
|
143
|
-
}, async () => {
|
|
144
|
-
const current = readIssueRecordSync(project, normalizedIssueId) ?? ensureIssueRecordSync(project, normalizedIssueId);
|
|
145
|
-
const next = await mutator(current) ?? current;
|
|
146
|
-
const path = writeIssueRecordSync(project, normalizedIssueId, next);
|
|
147
|
-
if (options.autoCommit !== false) {
|
|
148
|
-
const commitRoot = queueIssueRecordCommit(project, normalizedIssueId, path);
|
|
149
|
-
commit.flush = Effect.runPromise(flushAutoCommits(commitRoot));
|
|
150
|
-
}
|
|
151
|
-
return readIssueRecordSync(project, normalizedIssueId) ?? next;
|
|
152
|
-
});
|
|
153
|
-
if (commit.flush) {
|
|
154
|
-
const flushed = await commit.flush;
|
|
155
|
-
if (flushed.pushed === false) throw new Error(`Failed to push ${normalizedIssueId} state: ${flushed.reason ?? "unknown push failure"}`);
|
|
156
|
-
if (!flushed.committed && !["no diff", "no pending"].includes(flushed.reason ?? "")) throw new Error(`Failed to commit ${normalizedIssueId} state: ${flushed.reason ?? "unknown commit failure"}`);
|
|
157
|
-
}
|
|
158
|
-
return record;
|
|
159
|
-
}
|
|
160
|
-
var init_record_update = __esmMin((() => {
|
|
161
|
-
init_auto_commit();
|
|
162
|
-
init_fs_lock();
|
|
163
|
-
init_record();
|
|
164
|
-
}));
|
|
165
|
-
//#endregion
|
|
166
|
-
export { isPidDead as a, init_fs_lock as i, updateIssueRecord as n, updateIssueRecordForWorkspace as r, init_record_update as t };
|
|
167
|
-
|
|
168
|
-
//# sourceMappingURL=record-update-RviRDSNs.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { $t as writeStatusOverride, At as init_record, Bt as writeCloseOutDodGate, Ct as ensureIssueRecord, Dt as getIssueRecordPathForWorkspace, Et as getIssueRecordPath, Ft as readIssueRecordSync, Gt as writeRecordDecisionsSync, Ht as writeIssueRecordForWorkspaceSync, It as readRecordContinueViewSync, Jt as writeRecordResumePoint, Kt as writeRecordHazards, Lt as resolveProjectForIssue, Mt as queueIssueRecordCommit, Nt as readIssueRecord, Ot as getIssueWorkspacePath, Pt as readIssueRecordForWorkspaceSync, Qt as writeRecordTieredExecutionOverrideSync, Rt as writeAgentHarnessModel, St as clearRecordFeedbackSync, Tt as getIssueRecordBasePath, Ut as writeIssueRecordSync, Vt as writeCloseOutDodGateSync, Wt as writeRecordDecisions, Xt as writeRecordScopeDriftSync, Yt as writeRecordResumePointSync, Zt as writeRecordTieredExecutionOverride, _t as appendSessionEntry, bt as claimIssueOwner, en as writeStatusOverrideSync, gt as appendFeedbackEntrySync, ht as appendFeedbackEntry, jt as markRecordPipelineClosedOutSync, kt as getProjectConfigFromWorkspacePath, mt as RECORD_SCHEMA_VERSION, pt as RECORD_DIRNAME, qt as writeRecordHazardsSync, tn as writeStatusOverridesSync, vt as appendSessionEntrySync, wt as ensureIssueRecordSync, xt as clearIssueOwner, yt as buildOwnUri, zt as writeAgentHarnessModelSync } from "./config-yaml-Ciyp2mYe.js";
|
|
2
|
-
init_record();
|
|
3
|
-
export { RECORD_DIRNAME, RECORD_SCHEMA_VERSION, appendFeedbackEntry, appendFeedbackEntrySync, appendSessionEntry, appendSessionEntrySync, buildOwnUri, claimIssueOwner, clearIssueOwner, clearRecordFeedbackSync, ensureIssueRecord, ensureIssueRecordSync, getIssueRecordBasePath, getIssueRecordPath, getIssueRecordPathForWorkspace, getIssueWorkspacePath, getProjectConfigFromWorkspacePath, markRecordPipelineClosedOutSync, queueIssueRecordCommit, readIssueRecord, readIssueRecordForWorkspaceSync, readIssueRecordSync, readRecordContinueViewSync, resolveProjectForIssue, writeAgentHarnessModel, writeAgentHarnessModelSync, writeCloseOutDodGate, writeCloseOutDodGateSync, writeIssueRecordForWorkspaceSync, writeIssueRecordSync, writeRecordDecisions, writeRecordDecisionsSync, writeRecordHazards, writeRecordHazardsSync, writeRecordResumePoint, writeRecordResumePointSync, writeRecordScopeDriftSync, writeRecordTieredExecutionOverride, writeRecordTieredExecutionOverrideSync, writeStatusOverride, writeStatusOverrideSync, writeStatusOverridesSync };
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { c as init_review_status, f as markWorkspaceStuck, n as clearReviewStatus, p as mergeGateEligibility, s as getReviewStatusSync, u as loadReviewStatuses, y as setReviewStatusSync } from "./review-status-CCgPVK1h.js";
|
|
2
|
-
init_review_status();
|
|
3
|
-
export { clearReviewStatus, getReviewStatusSync, loadReviewStatuses, markWorkspaceStuck, mergeGateEligibility, setReviewStatusSync };
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { $ as updateSpecialistMetadata, A as updateRunStatus, B as getSpecialistMetadata, C as isEnabled, D as updateContextTokens, E as setCurrentRun, F as initializeEnabledSpecialists, G as isProjectSpecialistActivelyRunning, H as getTmuxSessionName, I as isRunning, J as parseReviewerSessionName, K as loadRegistry, L as REVIEWER_ROLES, M as findSessionFile, N as getAllSpecialistStatus, O as updateProjectSpecialistMetadata, P as getSpecialistStatus, Q as saveRegistry, R as getAllSpecialists, S as incrementProjectRunCount, T as listSpecialistsForProject, U as initSpecialistsDirectory, V as getSpecialistState, W as isInitialized, X as pruneSpecialistRegistryEntriesForIssue, Y as parseSpecialistRegistryKey, Z as recordWake, _ as getAllProjectSpecialistStatuses, a as sendFeedbackToAgent, b as getProjectSpecialistMetadata, c as getGracePeriodState, d as signalSpecialistCompletion, et as buildSpecialistBaseCommand, f as startGracePeriod, g as ensureProjectSpecialistDir, h as enableSpecialist, i as getPendingFeedback, j as countContextTokens, k as updateRunMetadata, l as pauseGracePeriod, m as disableSpecialist, o as exitGracePeriod, p as terminateSpecialist, q as makeSpecialistRegistryKey, r as getFeedbackStats, s as findActiveRegistryKey, t as init_specialists, tt as buildSpecialistCavemanExports, u as resumeGracePeriod, v as getEnabledSpecialists, w as listProjectsWithSpecialists, x as getRunMetadata, y as getProjectSpecialistDir, z as getReviewerSessionName } from "./specialists-CYRwELzc.js";
|
|
2
|
-
init_specialists();
|
|
3
|
-
export { REVIEWER_ROLES, buildSpecialistBaseCommand, buildSpecialistCavemanExports, countContextTokens, disableSpecialist, enableSpecialist, ensureProjectSpecialistDir, exitGracePeriod, findActiveRegistryKey, findSessionFile, getAllProjectSpecialistStatuses, getAllSpecialistStatus, getAllSpecialists, getEnabledSpecialists, getFeedbackStats, getGracePeriodState, getPendingFeedback, getProjectSpecialistDir, getProjectSpecialistMetadata, getReviewerSessionName, getRunMetadata, getSpecialistMetadata, getSpecialistState, getSpecialistStatus, getTmuxSessionName, incrementProjectRunCount, initSpecialistsDirectory, initializeEnabledSpecialists, isEnabled, isInitialized, isProjectSpecialistActivelyRunning, isRunning, listProjectsWithSpecialists, listSpecialistsForProject, loadRegistry, makeSpecialistRegistryKey, parseReviewerSessionName, parseSpecialistRegistryKey, pauseGracePeriod, pruneSpecialistRegistryEntriesForIssue, recordWake, resumeGracePeriod, saveRegistry, sendFeedbackToAgent, setCurrentRun, signalSpecialistCompletion, startGracePeriod, terminateSpecialist, updateContextTokens, updateProjectSpecialistMetadata, updateRunMetadata, updateRunStatus, updateSpecialistMetadata };
|
package/server/specs-BsNcum0h.js
DELETED
|
@@ -1,362 +0,0 @@
|
|
|
1
|
-
import { Nn as getProjectSync, Zn as resolveInfraRepo, an as init_auto_commit, cn as STATE_BRANCH_PATHS, dn as init_state_plane, hn as init_state_migration_lock, in as flushAutoCommits, mn as acquireStateMigrationLock, zn as init_projects } from "./config-yaml-Ciyp2mYe.js";
|
|
2
|
-
import { l as stateWorktreePath, n as STATE_BRANCH, o as init_state_home, r as clearStateMigrationCache, t as MIGRATION_COMPLETE_MARKER } from "./state-home-DixkE-up.js";
|
|
3
|
-
import { dirname, join } from "node:path";
|
|
4
|
-
import { Effect } from "effect";
|
|
5
|
-
import { tmpdir } from "node:os";
|
|
6
|
-
import { copyFileSync, cpSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
7
|
-
import { execFile } from "node:child_process";
|
|
8
|
-
import { promisify } from "node:util";
|
|
9
|
-
import { createHash } from "node:crypto";
|
|
10
|
-
//#region ../../lib/state-migration-manifest.ts
|
|
11
|
-
init_projects();
|
|
12
|
-
init_state_migration_lock();
|
|
13
|
-
init_state_plane();
|
|
14
|
-
init_auto_commit();
|
|
15
|
-
init_state_home();
|
|
16
|
-
function manifestEntry(source, destination) {
|
|
17
|
-
const stat = lstatSync(source);
|
|
18
|
-
const bytes = readFileSync(source);
|
|
19
|
-
return {
|
|
20
|
-
source,
|
|
21
|
-
destination,
|
|
22
|
-
mode: stat.mode & 511,
|
|
23
|
-
size: stat.size,
|
|
24
|
-
sha256: createHash("sha256").update(bytes).digest("hex")
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
function verifyStateMigrationManifest(entries) {
|
|
28
|
-
for (const expected of entries) {
|
|
29
|
-
const actual = manifestEntry(expected.destination, expected.destination);
|
|
30
|
-
if ((actual.mode & 64) !== (expected.mode & 64) || actual.size !== expected.size || actual.sha256 !== expected.sha256) throw new Error(`State migration no-loss mismatch: ${expected.source} -> ${expected.destination}`);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
//#endregion
|
|
34
|
-
//#region ../../cli/commands/admin/state-migrate.ts
|
|
35
|
-
const execFileAsync = promisify(execFile);
|
|
36
|
-
async function git(cwd, args, env) {
|
|
37
|
-
const { stdout } = await execFileAsync("git", args, {
|
|
38
|
-
cwd,
|
|
39
|
-
env: {
|
|
40
|
-
...process.env,
|
|
41
|
-
...env
|
|
42
|
-
},
|
|
43
|
-
encoding: "utf8",
|
|
44
|
-
maxBuffer: 32 * 1024 * 1024
|
|
45
|
-
});
|
|
46
|
-
return stdout.trim();
|
|
47
|
-
}
|
|
48
|
-
function destinationForTracked(path) {
|
|
49
|
-
if (!path.startsWith(".pan/")) return null;
|
|
50
|
-
const flat = path.slice(5);
|
|
51
|
-
return STATE_BRANCH_PATHS.some((prefix) => flat.startsWith(prefix)) ? flat : null;
|
|
52
|
-
}
|
|
53
|
-
async function trackedManifest(repo, sourceSha, stateRoot) {
|
|
54
|
-
return (await git(repo, [
|
|
55
|
-
"ls-tree",
|
|
56
|
-
"-r",
|
|
57
|
-
"--name-only",
|
|
58
|
-
sourceSha,
|
|
59
|
-
"--",
|
|
60
|
-
".pan"
|
|
61
|
-
])).split("\n").filter(Boolean).flatMap((path) => {
|
|
62
|
-
const destination = destinationForTracked(path);
|
|
63
|
-
if (!destination) return [];
|
|
64
|
-
const source = join(repo, path);
|
|
65
|
-
const target = join(stateRoot, destination);
|
|
66
|
-
if (!existsSync(target)) {
|
|
67
|
-
mkdirSync(dirname(target), { recursive: true });
|
|
68
|
-
copyFileSync(source, target);
|
|
69
|
-
}
|
|
70
|
-
return [manifestEntry(source, target)];
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
async function createOrphanStateCommit(repo, sourceSha) {
|
|
74
|
-
const index = join(tmpdir(), `overdeck-state-index-${process.pid}-${Date.now()}`);
|
|
75
|
-
const env = { GIT_INDEX_FILE: index };
|
|
76
|
-
try {
|
|
77
|
-
await git(repo, ["read-tree", "--empty"], env);
|
|
78
|
-
const rows = (await git(repo, [
|
|
79
|
-
"ls-tree",
|
|
80
|
-
"-r",
|
|
81
|
-
sourceSha,
|
|
82
|
-
"--",
|
|
83
|
-
".pan"
|
|
84
|
-
])).split("\n").filter(Boolean);
|
|
85
|
-
for (const row of rows) {
|
|
86
|
-
const match = row.match(/^(\d+)\s+\w+\s+([0-9a-f]+)\t(.+)$/);
|
|
87
|
-
if (!match) continue;
|
|
88
|
-
const destination = destinationForTracked(match[3]);
|
|
89
|
-
if (destination) await git(repo, [
|
|
90
|
-
"update-index",
|
|
91
|
-
"--add",
|
|
92
|
-
"--cacheinfo",
|
|
93
|
-
`${match[1]},${match[2]},${destination}`
|
|
94
|
-
], env);
|
|
95
|
-
}
|
|
96
|
-
return await git(repo, [
|
|
97
|
-
"commit-tree",
|
|
98
|
-
await git(repo, ["write-tree"], env),
|
|
99
|
-
"-m",
|
|
100
|
-
"chore(state): seed overdeck-state"
|
|
101
|
-
]);
|
|
102
|
-
} finally {
|
|
103
|
-
rmSync(index, { force: true });
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
function copyLegacyState(sourceRoot, stateRoot) {
|
|
107
|
-
const manifest = [];
|
|
108
|
-
for (const sourcePath of STATE_BRANCH_PATHS) {
|
|
109
|
-
const source = join(sourceRoot, ".pan", sourcePath);
|
|
110
|
-
if (!existsSync(source)) continue;
|
|
111
|
-
const destination = join(stateRoot, sourcePath);
|
|
112
|
-
cpSync(source, destination, {
|
|
113
|
-
recursive: true,
|
|
114
|
-
preserveTimestamps: true
|
|
115
|
-
});
|
|
116
|
-
const visit = (sourceDir, destinationDir) => {
|
|
117
|
-
for (const entry of readdirSync(sourceDir, { withFileTypes: true })) {
|
|
118
|
-
const sourceEntry = join(sourceDir, entry.name);
|
|
119
|
-
const destinationEntry = join(destinationDir, entry.name);
|
|
120
|
-
if (entry.isDirectory()) visit(sourceEntry, destinationEntry);
|
|
121
|
-
else if (entry.isFile()) manifest.push(manifestEntry(sourceEntry, destinationEntry));
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
visit(source, destination);
|
|
125
|
-
}
|
|
126
|
-
return manifest;
|
|
127
|
-
}
|
|
128
|
-
function hasNonStateDirtyState(porcelain) {
|
|
129
|
-
return porcelain.split("\n").filter(Boolean).some((line) => {
|
|
130
|
-
const path = line.slice(3).split(" -> ").at(-1) ?? "";
|
|
131
|
-
if (path === ".pan" || path.startsWith(".pan/")) return false;
|
|
132
|
-
return true;
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
function dedupeManifest(entries) {
|
|
136
|
-
return [...new Map(entries.map((entry) => [entry.destination, entry])).values()];
|
|
137
|
-
}
|
|
138
|
-
const GITIGNORE_MANAGED_LINES = [
|
|
139
|
-
"# PAN-2541: permanent state is on overdeck-state; workspace runtime stays local.",
|
|
140
|
-
".pan/",
|
|
141
|
-
".overdeck/continue.json",
|
|
142
|
-
".overdeck/spec.vbrief.json",
|
|
143
|
-
".overdeck/sessions.jsonl",
|
|
144
|
-
".overdeck/feedback/",
|
|
145
|
-
".overdeck/review/",
|
|
146
|
-
".overdeck/test/",
|
|
147
|
-
".overdeck/kickoff.md",
|
|
148
|
-
".overdeck/agent-mcp.json"
|
|
149
|
-
];
|
|
150
|
-
function rewriteGitignore(repo) {
|
|
151
|
-
const path = join(repo, ".gitignore");
|
|
152
|
-
const prior = existsSync(path) ? readFileSync(path, "utf8") : "";
|
|
153
|
-
const managed = new Set([...GITIGNORE_MANAGED_LINES, ".overdeck/"]);
|
|
154
|
-
const kept = prior.split("\n").filter((line) => !managed.has(line.trim()));
|
|
155
|
-
while (kept.length > 0 && kept[kept.length - 1]?.trim() === "") kept.pop();
|
|
156
|
-
writeFileSync(path, [
|
|
157
|
-
...kept,
|
|
158
|
-
"",
|
|
159
|
-
...GITIGNORE_MANAGED_LINES,
|
|
160
|
-
""
|
|
161
|
-
].join("\n"));
|
|
162
|
-
}
|
|
163
|
-
async function migrateProjectState(projectKey, options = {}, projectOverride) {
|
|
164
|
-
const project = projectOverride ?? getProjectSync(projectKey);
|
|
165
|
-
if (!project) throw new Error(`Unknown project: ${projectKey}`);
|
|
166
|
-
const { repoPath: repo } = resolveInfraRepo(project);
|
|
167
|
-
const legacyStateSource = project.path;
|
|
168
|
-
const sourceIsHostRepo = legacyStateSource === repo;
|
|
169
|
-
const stateRoot = stateWorktreePath(project, { projectKey });
|
|
170
|
-
console.log(`PAN-2541 state migration plan for ${projectKey}:`);
|
|
171
|
-
console.log(` ${legacyStateSource}/.pan/{${STATE_BRANCH_PATHS.map((p) => p.slice(0, -1)).join(",")}} -> ${stateRoot}/`);
|
|
172
|
-
console.log(` ${legacyStateSource}/.pan/context -> ${legacyStateSource}/.overdeck/context`);
|
|
173
|
-
if (options.dryRun) return;
|
|
174
|
-
const release = acquireStateMigrationLock(projectKey);
|
|
175
|
-
try {
|
|
176
|
-
await Effect.runPromise(flushAutoCommits(repo));
|
|
177
|
-
if (hasNonStateDirtyState(await git(repo, ["status", "--porcelain"]))) throw new Error("Primary checkout is dirty outside legacy state paths; migration refused before mutation");
|
|
178
|
-
await git(repo, [
|
|
179
|
-
"fetch",
|
|
180
|
-
"--prune",
|
|
181
|
-
"origin"
|
|
182
|
-
]);
|
|
183
|
-
const sourceMainSha = await git(repo, ["rev-parse", "main"]);
|
|
184
|
-
if (sourceMainSha !== await git(repo, ["rev-parse", "origin/main"])) throw new Error("main is not exactly at origin/main; migration refused");
|
|
185
|
-
if (await git(repo, ["show", `origin/overdeck-state:migration-complete.json`]).catch(() => "")) {
|
|
186
|
-
console.log("State migration already complete on origin; nothing to do.");
|
|
187
|
-
return;
|
|
188
|
-
}
|
|
189
|
-
let stateSha = await git(repo, ["rev-parse", STATE_BRANCH]).catch(() => "");
|
|
190
|
-
const remoteStateSha = await git(repo, ["rev-parse", `origin/${STATE_BRANCH}`]).catch(() => "");
|
|
191
|
-
if (stateSha && remoteStateSha && stateSha !== remoteStateSha) throw new Error("Local and remote overdeck-state diverged; refusing non-fast-forward migration");
|
|
192
|
-
if (!stateSha) {
|
|
193
|
-
stateSha = remoteStateSha || await createOrphanStateCommit(repo, sourceMainSha);
|
|
194
|
-
await git(repo, [
|
|
195
|
-
"update-ref",
|
|
196
|
-
`refs/heads/${STATE_BRANCH}`,
|
|
197
|
-
stateSha
|
|
198
|
-
]);
|
|
199
|
-
}
|
|
200
|
-
if (!remoteStateSha) await git(repo, [
|
|
201
|
-
"push",
|
|
202
|
-
"origin",
|
|
203
|
-
STATE_BRANCH
|
|
204
|
-
]);
|
|
205
|
-
if (!existsSync(stateRoot)) {
|
|
206
|
-
mkdirSync(dirname(stateRoot), { recursive: true });
|
|
207
|
-
await git(repo, [
|
|
208
|
-
"worktree",
|
|
209
|
-
"add",
|
|
210
|
-
stateRoot,
|
|
211
|
-
STATE_BRANCH
|
|
212
|
-
]);
|
|
213
|
-
}
|
|
214
|
-
const manifest = sourceIsHostRepo ? dedupeManifest([...await trackedManifest(repo, sourceMainSha, stateRoot), ...copyLegacyState(legacyStateSource, stateRoot)]) : copyLegacyState(legacyStateSource, stateRoot);
|
|
215
|
-
if (manifest.length > 0) {
|
|
216
|
-
await git(stateRoot, ["add", "--all"]);
|
|
217
|
-
if (await git(stateRoot, [
|
|
218
|
-
"diff",
|
|
219
|
-
"--cached",
|
|
220
|
-
"--name-only"
|
|
221
|
-
])) await git(stateRoot, [
|
|
222
|
-
"commit",
|
|
223
|
-
"-m",
|
|
224
|
-
"chore(state): seed legacy project state"
|
|
225
|
-
]);
|
|
226
|
-
await git(stateRoot, [
|
|
227
|
-
"push",
|
|
228
|
-
"origin",
|
|
229
|
-
STATE_BRANCH
|
|
230
|
-
]);
|
|
231
|
-
}
|
|
232
|
-
const untracked = sourceIsHostRepo ? (await git(repo, [
|
|
233
|
-
"ls-files",
|
|
234
|
-
"--others",
|
|
235
|
-
"--",
|
|
236
|
-
".pan"
|
|
237
|
-
])).split("\n").filter((path) => path.split("/").length === 2 && existsSync(join(repo, path)) && lstatSync(join(repo, path)).isFile()) : existsSync(join(legacyStateSource, ".pan")) ? readdirSync(join(legacyStateSource, ".pan"), { withFileTypes: true }).filter((entry) => entry.isFile()).map((entry) => `.pan/${entry.name}`) : [];
|
|
238
|
-
for (const path of untracked) {
|
|
239
|
-
if (!existsSync(join(legacyStateSource, path))) continue;
|
|
240
|
-
const destination = join(stateRoot, "notes", path.slice(5));
|
|
241
|
-
if (existsSync(destination)) {
|
|
242
|
-
if (!readFileSync(join(legacyStateSource, path)).equals(readFileSync(destination))) throw new Error(`Untracked-note destination collision: ${destination}`);
|
|
243
|
-
manifest.push(manifestEntry(join(legacyStateSource, path), destination));
|
|
244
|
-
continue;
|
|
245
|
-
}
|
|
246
|
-
mkdirSync(dirname(destination), { recursive: true });
|
|
247
|
-
copyFileSync(join(legacyStateSource, path), destination);
|
|
248
|
-
manifest.push(manifestEntry(join(legacyStateSource, path), destination));
|
|
249
|
-
}
|
|
250
|
-
if (untracked.length > 0) {
|
|
251
|
-
await git(stateRoot, ["add", "notes"]);
|
|
252
|
-
if (await git(stateRoot, [
|
|
253
|
-
"diff",
|
|
254
|
-
"--cached",
|
|
255
|
-
"--name-only"
|
|
256
|
-
])) await git(stateRoot, [
|
|
257
|
-
"commit",
|
|
258
|
-
"-m",
|
|
259
|
-
"chore(state): preserve untracked operator notes"
|
|
260
|
-
]);
|
|
261
|
-
await git(stateRoot, [
|
|
262
|
-
"push",
|
|
263
|
-
"origin",
|
|
264
|
-
STATE_BRANCH
|
|
265
|
-
]);
|
|
266
|
-
}
|
|
267
|
-
if (await git(repo, ["rev-parse", "main"]) !== sourceMainSha) throw new Error("main advanced during migration; refusing cleanup");
|
|
268
|
-
if (sourceIsHostRepo) await git(repo, [
|
|
269
|
-
"rm",
|
|
270
|
-
"-r",
|
|
271
|
-
"--cached",
|
|
272
|
-
"--ignore-unmatch",
|
|
273
|
-
".pan/records",
|
|
274
|
-
".pan/continues",
|
|
275
|
-
".pan/specs",
|
|
276
|
-
".pan/drafts",
|
|
277
|
-
".pan/review",
|
|
278
|
-
".pan/test",
|
|
279
|
-
".pan/feedback",
|
|
280
|
-
".pan/backlog",
|
|
281
|
-
".pan/notes"
|
|
282
|
-
]);
|
|
283
|
-
const oldContext = join(legacyStateSource, ".pan", "context");
|
|
284
|
-
const newContext = join(legacyStateSource, ".overdeck", "context");
|
|
285
|
-
let movedContext = false;
|
|
286
|
-
if (existsSync(oldContext) && !existsSync(newContext)) {
|
|
287
|
-
mkdirSync(dirname(newContext), { recursive: true });
|
|
288
|
-
renameSync(oldContext, newContext);
|
|
289
|
-
movedContext = true;
|
|
290
|
-
}
|
|
291
|
-
rewriteGitignore(legacyStateSource);
|
|
292
|
-
if (sourceIsHostRepo) {
|
|
293
|
-
if (await git(repo, [
|
|
294
|
-
"ls-files",
|
|
295
|
-
"--",
|
|
296
|
-
".pan/context"
|
|
297
|
-
])) await git(repo, [
|
|
298
|
-
"add",
|
|
299
|
-
"-u",
|
|
300
|
-
"--",
|
|
301
|
-
".pan/context"
|
|
302
|
-
]);
|
|
303
|
-
const addPaths = [".gitignore"];
|
|
304
|
-
if (movedContext || existsSync(newContext)) addPaths.push(".overdeck/context");
|
|
305
|
-
await git(repo, [
|
|
306
|
-
"add",
|
|
307
|
-
"--",
|
|
308
|
-
...addPaths
|
|
309
|
-
]);
|
|
310
|
-
if (await git(repo, [
|
|
311
|
-
"diff",
|
|
312
|
-
"--cached",
|
|
313
|
-
"--name-only"
|
|
314
|
-
])) await git(repo, [
|
|
315
|
-
"commit",
|
|
316
|
-
"-m",
|
|
317
|
-
"chore(state): move permanent state to overdeck-state"
|
|
318
|
-
]);
|
|
319
|
-
}
|
|
320
|
-
verifyStateMigrationManifest(manifest);
|
|
321
|
-
for (const entry of manifest) rmSync(entry.source, { force: true });
|
|
322
|
-
if (!sourceIsHostRepo) rmSync(join(legacyStateSource, ".pan"), {
|
|
323
|
-
recursive: true,
|
|
324
|
-
force: true
|
|
325
|
-
});
|
|
326
|
-
stateSha = await git(stateRoot, ["rev-parse", "HEAD"]);
|
|
327
|
-
writeFileSync(join(stateRoot, MIGRATION_COMPLETE_MARKER), `${JSON.stringify({
|
|
328
|
-
sourceMainSha,
|
|
329
|
-
stateBranchSha: stateSha,
|
|
330
|
-
completedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
331
|
-
version: 1
|
|
332
|
-
}, null, 2)}\n`);
|
|
333
|
-
await git(stateRoot, ["add", MIGRATION_COMPLETE_MARKER]);
|
|
334
|
-
await git(stateRoot, [
|
|
335
|
-
"commit",
|
|
336
|
-
"-m",
|
|
337
|
-
"chore(state): complete state migration"
|
|
338
|
-
]);
|
|
339
|
-
await git(repo, [
|
|
340
|
-
"push",
|
|
341
|
-
"--atomic",
|
|
342
|
-
"--dry-run",
|
|
343
|
-
"origin",
|
|
344
|
-
"main",
|
|
345
|
-
STATE_BRANCH
|
|
346
|
-
]);
|
|
347
|
-
await git(repo, [
|
|
348
|
-
"push",
|
|
349
|
-
"--atomic",
|
|
350
|
-
"origin",
|
|
351
|
-
"main",
|
|
352
|
-
STATE_BRANCH
|
|
353
|
-
]);
|
|
354
|
-
clearStateMigrationCache();
|
|
355
|
-
} finally {
|
|
356
|
-
release();
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
//#endregion
|
|
360
|
-
export { migrateProjectState };
|
|
361
|
-
|
|
362
|
-
//# sourceMappingURL=state-migrate-_zJJ6XKE.js.map
|
package/server/tmux-HQLgwo_C.js
DELETED