@overdeck/desktop 0.45.24 → 0.47.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 +36 -1
- package/package.json +1 -1
- package/server/{acceptance-criteria-DDCnXF58.js → acceptance-criteria-10Ur5Dne.js} +2 -2
- package/server/activity-logger-CMthG6Vd.js +3 -0
- package/server/{activity-logger-DDlOIAML.js → activity-logger-CyteR4JO.js} +24 -13
- package/server/{advancing-selfheal-BVwW4qRn.js → advancing-selfheal-BNwqxseD.js} +6 -6
- package/server/{agent-gc-CHcnvonI.js → agent-gc-C3h9Or3a.js} +5 -5
- package/server/agent-state-CYXJVG72.js +3 -0
- package/server/agent-state-service-C63p_ftq.js +2 -0
- package/server/{agent-state-service-BsgWxZuB.js → agent-state-service-Ds6OeFvo.js} +15 -9
- package/server/{agents-EbI0zCJl.js → agents-J5mEnekq.js} +23 -16
- package/server/agents-ePFVoZbu.js +3 -0
- package/server/archive-planning-B2XplFzT.js +2 -0
- package/server/{archive-planning-Du25Jtst.js → archive-planning-BwhxeP7C.js} +22 -26
- package/server/{artifact-index-jobs-CbEDfCDu.js → artifact-index-jobs-D1q_vR3V.js} +2 -2
- package/server/{assemble-J2ZZ2C15.js → assemble-Bgwqv-Ro.js} +2 -2
- package/server/auto-spawn-consent-CQ9Bi9q6.js +1141 -0
- package/server/{backlog-auto-trigger-2R2jog7n.js → backlog-auto-trigger-n1lzPgN4.js} +3 -3
- package/server/{behavior-B3exJ42O.js → behavior-td6-xhQk.js} +2 -2
- package/server/boot-reconciled-stop-events-C7gGe3oB.js +44 -0
- package/server/bridge-pool-patrol-CYH2OLb5.js +136 -0
- package/server/{briefing-freshness-D1wzUIWv.js → briefing-freshness-DRqZ8lAz.js} +2 -2
- package/server/{build-info-Ie_D0_BT.js → build-info-7yiEpl6u.js} +5 -3
- package/server/{build-info-CZk_TITh.js → build-info-CpG__c63.js} +1 -1
- package/server/{checkpoint-manager-DwbQoqrC.js → checkpoint-manager-CkKmB0wZ.js} +1 -1
- package/server/{checkpoint-manager-BI1Wxoku.js → checkpoint-manager-DBcyNR8w.js} +2 -2
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-CQB1h765.js → checkpoints-D95apurL.js} +2 -2
- package/server/{checkpoints-BJIs5QIA.js → checkpoints-Wm963lm8.js} +1 -1
- package/server/{claude-hooks-provision-8Ngo8TpT.js → claude-hooks-provision-4RPxNkE8.js} +1 -1
- package/server/{claude-hooks-provision-D8GXF3_s.js → claude-hooks-provision-Bjitl9aI.js} +13 -2
- package/server/{claude-permissions-DNWEVV6z.js → claude-permissions-CpbpvUQ2.js} +2 -2
- package/server/{claude-settings-overlay-DWy-Bb4Y.js → claude-settings-overlay-BzkHYDwR.js} +1 -1
- package/server/{claude-settings-overlay-CEdaqpWI.js → claude-settings-overlay-_H9Yrzab.js} +2 -2
- package/server/cli-CjOCSnfj.js +3 -0
- package/server/{cli-RoOx5DUf.js → cli-Cte9ZFGn.js} +9 -9
- package/server/{cliproxy-C8a1vtTU.js → cliproxy-C5fMJ7rY.js} +2 -2
- package/server/{cliproxy-fHfIeiGd.js → cliproxy-DaAbWMjC.js} +1 -1
- package/server/{close-issue-DoOifFIK.js → close-issue-BPh1ARCF.js} +5 -5
- package/server/{closed-issue-reaper-CktPXo8m.js → closed-issue-reaper-DHRfRMrp.js} +1 -1
- package/server/{closed-issue-reaper-Bk3SU4RC.js → closed-issue-reaper-DoOZqGFK.js} +88 -17
- package/server/{codex-BZXGhUVB.js → codex-BzGDW_d3.js} +36 -7
- package/server/{codex-GcHuUF-k.js → codex-o8FJwzmy.js} +1 -1
- package/server/{codex-parser-CFZ1_1Jl.js → codex-parser-Dt-ycU8L.js} +2 -2
- package/server/compaction-continuation-CvXpbZ4w.js +200 -0
- package/server/{config-CKxYiCmX.js → config-Bi3u1VK7.js} +4 -3
- package/server/{config-BZ0sHTju.js → config-BvLe652W.js} +2 -2
- package/server/{config-DzV30TOm.js → config-CL3Gyvja.js} +1 -1
- package/server/{config-yaml-DySPNmKN.js → config-yaml-CxdwhAIA.js} +276 -14
- package/server/conflict-gate-CX80JYYS.js +3 -0
- package/server/{conflict-gate-BaCVrH-N.js → conflict-gate-E4nt7ZeS.js} +60 -14
- package/server/{context-layers-igZ4FI4_.js → context-layers-C_IIysnm.js} +3 -3
- package/server/{context-layers-BrPmE__h.js → context-layers-DAG83UZt.js} +2 -2
- package/server/{control-settings-BQp7_4uD.js → control-settings-CiqGxXnc.js} +56 -19
- package/server/{conversation-compaction-eQB5CkOe.js → conversation-compaction-BE3CNtHF.js} +1 -1
- package/server/{conversation-compaction-CgrR8YYp.js → conversation-compaction-D6-yLtqt.js} +8 -8
- package/server/{conversation-service-DPJ71F33.js → conversation-service-DBxoYMDl.js} +10 -8
- package/server/conversation-service-D_TS2b1r.js +3 -0
- package/server/{conversations-CAsJF9kh.js → conversations-BKDVpB-3.js} +1 -1
- package/server/{conversations-6AfUfbwc.js → conversations-D0UEdLtk.js} +4 -4
- package/server/{cost-R-m6Yi-W.js → cost-DS1s0DbG.js} +3 -3
- package/server/{cost-B2ddP6wq.js → cost-DpgYmYqR.js} +12 -2
- package/server/{cost-sync-BsN6ER0n.js → cost-sync-tOCCGnEt.js} +3 -3
- package/server/{dag-B1ucnjDU.js → dag-BtkgLeqY.js} +2 -2
- package/server/{dangerous-git-ops-BXqeWVSf.js → dangerous-git-ops-CFLykHWt.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/deacon-BIblC-WX.js +4 -0
- package/server/{deacon-nudge-log-6wVqAaqz.js → deacon-nudge-log-B08gF0mh.js} +3 -3
- package/server/{deacon-CU_cAYSR.js → deacon-pLRLbPvR.js} +3308 -2707
- package/server/deacon-pending-lifecycle-B-Io84AP.js +33 -0
- package/server/deacon-swarm-B1XkIvfr.js +2 -0
- package/server/{deacon-swarm-BXZZ1Z2-.js → deacon-swarm-v5PMun-m.js} +15 -14
- package/server/deacon.js +14 -19
- package/server/dead-end-trip-D8A3msX9.js +13 -0
- package/server/delivery-BX9HR4wQ.js +3 -0
- package/server/{deploy-patrol-AiFoP8dw.js → deploy-patrol-sYgOxLeb.js} +69 -18
- package/server/deploy-queue-VfohaPN_.js +169 -0
- package/server/deploy-queue-gHJBycaF.js +3 -0
- package/server/deploy-window-CFRZ0-kt.js +3 -0
- package/server/{deploy-window-C3F-tihF.js → deploy-window-D4DQb8VP.js} +40 -16
- package/server/{dev-supervisor-bcOWqdQE.js → dev-supervisor-DiOBDM1c.js} +2 -2
- package/server/{devcontainer-renderer-_d6XhyND.js → devcontainer-renderer-BUOIlfgD.js} +3 -3
- package/server/dist-B3YPQa5A.js +3 -0
- package/server/{dist-Cb_0uvpS.js → dist-C3A8B8wM.js} +1 -1
- package/server/{dist-src-BSoS7mkd.js → dist-src-C0adpegX.js} +1 -1
- package/server/{docker-DcMTFTUC.js → docker-BJzlkqYB.js} +2 -2
- package/server/docker-Y3PElJb0.js +3 -0
- package/server/dod-DlNtcH6n.js +91 -0
- package/server/durable-review-pipeline-Cibps-Rg.js +20 -0
- package/server/durable-review-pipeline-DP6bIcOY.js +3 -0
- package/server/{ensure-devcontainer-DNi-ono3.js → ensure-devcontainer-BAofzBPv.js} +4 -4
- package/server/{ensure-devcontainer-BZgOhRo7.js → ensure-devcontainer-DMAbWqtQ.js} +1 -1
- package/server/{esm-shims-OSHAYaS1.js → esm-shims-BeObUkaw.js} +1 -1
- package/server/{event-store-EV2cMiXj.js → event-store-5UKzh9Jf.js} +1 -1
- package/server/{event-store-CQL6NeqB.js → event-store-CrHcVC5_.js} +23 -4
- package/server/{events-DTfAe4My.js → events-BNrvchBg.js} +3 -3
- package/server/{events-BTdrdEq8.js → events-CF8QDbuV.js} +1 -1
- package/server/{factory-CFibJuaw.js → factory-Cmm9Hsho.js} +5 -5
- package/server/{feature-registry-population-DKZFMbFt.js → feature-registry-population-B6HpNWRy.js} +4 -4
- package/server/{feature-registry-storage-BdPuLcBX.js → feature-registry-storage-DJEFx1Pf.js} +2 -2
- package/server/{features-ez2271oH.js → features-D5km80UI.js} +2 -2
- package/server/{feedback-target-CoFDHiM8.js → feedback-target-BJ5ZADsu.js} +1 -1
- package/server/{feedback-target-7mqqwrX6.js → feedback-target-DSxEL6lP.js} +8 -8
- package/server/{feedback-writer-CY5L1lB7.js → feedback-writer-C27Hak8a.js} +5 -5
- package/server/{feedback-writer-D3a22RCd.js → feedback-writer-CoB9Z6aU.js} +1 -1
- package/server/{flywheel-DHrgCphM.js → flywheel-BHx8XuMr.js} +47 -20
- package/server/{flywheel-SVF02Jpq.js → flywheel-DZZdtiOL.js} +1 -1
- package/server/{flywheel-DzGtWnJ1.js → flywheel-f662Q-y2.js} +16 -15
- package/server/flywheel-merge-order-D_xLMbJU.js +462 -0
- package/server/flywheel-merge-order-Dil0LmdN.js +2 -0
- package/server/forge-B5o319qI.js +3 -0
- package/server/forge-BaKGCya6.js +383 -0
- package/server/{from-kNxT0bZC.js → from-B3tZbB55.js} +1 -1
- package/server/fs-lock-Bre3sGoz.js +130 -0
- package/server/{fts-db-CE46vDkZ.js → fts-db-IVc4_M3f.js} +2 -2
- package/server/{fts-operations-CqY6zl-i.js → fts-operations-B9jG8wa3.js} +2 -2
- package/server/{git-utils-CRw2zLPC.js → git-utils-CsvYfJU3.js} +30 -5
- package/server/git-utils-Xg4PFN45.js +3 -0
- package/server/{github-app-ClZ2lk8D.js → github-app-Bmg4R9mv.js} +1 -1
- package/server/{github-app-C3QrAUd0.js → github-app-CmNk0zLU.js} +3 -3
- package/server/{github-client-DfQYVUaw.js → github-client-B6KM9_wA.js} +1 -1
- package/server/{github-client-BnIsSrEN.js → github-client-qazkPrg0.js} +3 -3
- package/server/github-pr-lookup-DAcVeRLK.js +58 -0
- package/server/{harness-binary-DPUi-Pv8.js → harness-binary-BSpiXaLw.js} +2 -2
- package/server/{harness-resolve-3lNZkyT4.js → harness-resolve-BAJu5MX8.js} +4 -4
- package/server/{health-events-BDOHby5Q.js → health-events-2Z6Wa9SM.js} +1 -1
- package/server/{health-events-BBcTYQKU.js → health-events-BwX32k8d.js} +2 -2
- package/server/{hooks-DPVX1rwQ.js → hooks-D1g1jKLI.js} +1 -1
- package/server/{hooks-CKZgXlJb.js → hooks-DbtbimEf.js} +2 -2
- package/server/{hume-Cz8igP9E.js → hume-DXNiu6nQ.js} +2 -2
- package/server/hume-VUCNbTgn.js +3 -0
- package/server/{idle-stack-reaper-CuLF0j2H.js → idle-stack-reaper-CRA1e0jr.js} +1 -1
- package/server/{idle-stack-reaper-DDIRwxUY.js → idle-stack-reaper-Cy-dQzW4.js} +99 -6
- package/server/in-flight-guard-D-sSkADM.js +45 -0
- package/server/{infra-BEqFxlJc.js → infra-BDQDRopn.js} +81 -5
- package/server/{injection-C8aiVJrF.js → injection-6AGnXxlj.js} +7 -7
- package/server/{injection-CPUIqNhI.js → injection-Bl8d_jHZ.js} +1 -1
- package/server/inspect-agent-CUwVmr2h.js +2 -0
- package/server/{inspect-agent-BLuJ1AkT.js → inspect-agent-nXdIptyh.js} +26 -25
- package/server/{internal-token-s0-oKybJ.js → internal-token-DzK385vD.js} +2 -2
- package/server/{internal-token-BrcU6qfe.js → internal-token-Ias7N8Kg.js} +1 -1
- package/server/{io-C9kF1wtJ.js → io-B00PBNku.js} +44 -27
- package/server/{issue-closed-CDJk4pIp.js → issue-closed-BehTG1be.js} +8 -8
- package/server/{issue-lifecycle-ojZAzDBP.js → issue-lifecycle-Birk-ifu.js} +42 -30
- package/server/{issue-lifecycle-B8sZHVHh.js → issue-lifecycle-BqSuQvbn.js} +1 -1
- package/server/{issue-service-singleton-BvJ09SaR.js → issue-service-singleton-B2wXiIlw.js} +1 -1
- package/server/{issue-service-singleton-Yx5DdmVJ.js → issue-service-singleton-C6ZduvuY.js} +10 -10
- package/server/{issues-BMmP_77e.js → issues-DQ5-LatB.js} +2 -2
- package/server/{jsonl-parser-BXSlHwEh.js → jsonl-parser-BDpnGFCl.js} +5 -4
- package/server/{label-cleanup-B0UJwnv5.js → label-cleanup-Dwnky8FG.js} +3 -3
- package/server/{lifecycle-xmBfK2GJ.js → lifecycle-B3s4sM1G.js} +6 -7
- package/server/{lifecycle-yPd___5E.js → lifecycle-B4Xdb4cY.js} +2 -2
- package/server/{lifecycle-io-DPo7x11I.js → lifecycle-io-CzTHEooc.js} +1 -1
- package/server/{lifecycle-io-BREGpnLk.js → lifecycle-io-DCo6s6ks.js} +5 -5
- package/server/{linear-client-BsuUvkdA.js → linear-client-9uq7fhiV.js} +3 -3
- package/server/{linear-client-CTskEeT_.js → linear-client-CnbtHiic.js} +1 -1
- package/server/linear-mcp-auth-BxUOzswy.js +280 -0
- package/server/linear-mcp-auth-D46fBCLf.js +2 -0
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-CefQNAnq.js → merge-DiW9RdSB.js} +13 -11
- package/server/{merge-agent-4WOWlSYA.js → merge-agent-BLUgRsz3.js} +234 -84
- package/server/{merge-agent-CKkgIBPB.js → merge-agent-DQTXZk8z.js} +1 -1
- package/server/{merge-batch-ClFn2T-y.js → merge-batch-Cp_j9BGk.js} +1 -1
- package/server/merge-completeness-B46KqhtY.js +277 -0
- package/server/merge-completeness-BLbB5-6n.js +3 -0
- package/server/merge-ops-1abz6O_P.js +2 -0
- package/server/merge-rebase-CJJVAJuz.js +2 -0
- package/server/{merge-rebase-BfaTyXsw.js → merge-rebase-DIkBjgwq.js} +3 -3
- package/server/{merge-set-DJ8-UErs.js → merge-set-CBgHfwM0.js} +11 -5
- package/server/merge-set-DeUxFsC3.js +3 -0
- package/server/{merge-B1DiziGU.js → merge-sr8Nrnmi.js} +1 -1
- package/server/merge-sync-CpGmk6Ch.js +3 -0
- package/server/{merge-sync-VPV28g0g.js → merge-sync-kr4vqyjM.js} +409 -153
- package/server/{merge-train-CHopycP0.js → merge-train-Dmrcus12.js} +18 -8
- package/server/{merge-train-deps-D1cOZzy2.js → merge-train-deps-D_uGX91G.js} +21 -15
- package/server/merge-verification-NvaAd8CZ.js +220 -0
- package/server/merged-docker-cleanup-worker-DH_hrGPI.js +3 -0
- package/server/merged-docker-cleanup-worker-Y1R06TEl.js +107 -0
- package/server/{multipart-parser-duPAfSBw.js → multipart-parser-R-oC8dQg.js} +2 -2
- package/server/{no-resume-mode-Nw29vaFb.js → no-resume-mode-BgD0JUmM.js} +1 -1
- package/server/node_modules/.package-lock.json +30 -30
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
- package/server/node_modules/@google-cloud/common/package.json +2 -2
- package/server/node_modules/@types/node/README.md +1 -1
- package/server/node_modules/@types/node/crypto.d.ts +1 -1
- package/server/node_modules/@types/node/package.json +2 -2
- package/server/node_modules/gaxios/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/server/node_modules/gaxios/build/esm/tsconfig.tsbuildinfo +1 -1
- package/server/node_modules/gaxios/package.json +1 -1
- package/server/node_modules/google-auth-library/build/src/auth/googleauth.js +24 -19
- package/server/node_modules/google-auth-library/package.json +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/auth.proto +2 -1
- package/server/node_modules/google-gax/build/protos/google/api/backend.proto +12 -1
- package/server/node_modules/google-gax/build/protos/google/api/billing.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/client.proto +165 -53
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1/resources.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/quota_adjuster_settings.proto +7 -3
- package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/resources.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/config_change.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/context.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/control.proto +3 -3
- package/server/node_modules/google-gax/build/protos/google/api/distribution.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/documentation.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/endpoint.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/error_reason.proto +186 -1
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/checked.proto +31 -3
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/eval.proto +8 -9
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/explain.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/syntax.proto +20 -22
- package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/value.proto +2 -3
- package/server/node_modules/google-gax/build/protos/google/api/field_behavior.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/field_info.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/http.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/httpbody.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/label.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/launch_stage.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/log.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/logging.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/metric.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/monitored_resource.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/monitoring.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/policy.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/quota.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/resource.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/routing.proto +8 -4
- package/server/node_modules/google-gax/build/protos/google/api/service.proto +2 -3
- package/server/node_modules/google-gax/build/protos/google/api/source_info.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/system_parameter.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/api/usage.proto +7 -27
- package/server/node_modules/google-gax/build/protos/google/api/visibility.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/longrunning/operations.proto +20 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/any.proto +52 -108
- package/server/node_modules/google-gax/build/protos/google/protobuf/compiler/ruby/ruby_generated_code.proto +2 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_features.proto +21 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_file_options.proto +24 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_options.proto +15 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/descriptor.proto +118 -30
- package/server/node_modules/google-gax/build/protos/google/protobuf/field_mask.proto +16 -18
- package/server/node_modules/google-gax/build/protos/google/protobuf/internal_options.proto +8 -1
- package/server/node_modules/google-gax/build/protos/google/protobuf/json/json_enumval_custom_string.proto +26 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/json_enumvalue_options.proto +29 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/json_options.proto +14 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/struct.proto +38 -22
- package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/forced_micro_string.proto +3 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/repeated_field_proxy_import_message.proto +14 -0
- package/server/node_modules/google-gax/build/protos/google/protobuf/timestamp.proto +9 -8
- package/server/node_modules/google-gax/build/protos/google/protobuf/util/json_format_proto3.proto +18 -0
- package/server/node_modules/google-gax/build/protos/google/rpc/code.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/context/attribute_context.proto +7 -2
- package/server/node_modules/google-gax/build/protos/google/rpc/context/audit_context.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/error_details.proto +5 -5
- package/server/node_modules/google-gax/build/protos/google/rpc/http.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/rpc/status.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/calendar_period.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/color.proto +9 -10
- package/server/node_modules/google-gax/build/protos/google/type/date.proto +11 -9
- package/server/node_modules/google-gax/build/protos/google/type/datetime.proto +17 -17
- package/server/node_modules/google-gax/build/protos/google/type/dayofweek.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/decimal.proto +11 -13
- package/server/node_modules/google-gax/build/protos/google/type/expr.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/fraction.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/interval.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/latlng.proto +4 -5
- package/server/node_modules/google-gax/build/protos/google/type/localized_text.proto +3 -3
- package/server/node_modules/google-gax/build/protos/google/type/money.proto +1 -2
- package/server/node_modules/google-gax/build/protos/google/type/month.proto +1 -1
- package/server/node_modules/google-gax/build/protos/google/type/phone_number.proto +20 -15
- package/server/node_modules/google-gax/build/protos/google/type/postal_address.proto +39 -39
- package/server/node_modules/google-gax/build/protos/google/type/quaternion.proto +4 -4
- package/server/node_modules/google-gax/build/protos/google/type/timeofday.proto +11 -8
- package/server/node_modules/google-gax/package.json +5 -5
- package/server/node_modules/retry-request/package.json +4 -4
- package/server/node_modules/teeny-request/package.json +5 -5
- package/server/node_modules/undici/lib/cache/memory-cache-store.js +54 -9
- package/server/node_modules/undici/lib/cache/sqlite-cache-store.js +7 -1
- package/server/node_modules/undici/lib/core/request.js +12 -1
- package/server/node_modules/undici/lib/dispatcher/client-h1.js +11 -2
- package/server/node_modules/undici/lib/global.js +36 -16
- package/server/node_modules/undici/lib/handler/cache-handler.js +236 -116
- package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +3 -3
- package/server/node_modules/undici/lib/handler/retry-handler.js +24 -0
- package/server/node_modules/undici/lib/interceptor/cache.js +152 -62
- package/server/node_modules/undici/lib/interceptor/decompress.js +5 -2
- package/server/node_modules/undici/lib/util/cache.js +328 -66
- package/server/node_modules/undici/lib/util/date.js +23 -6
- package/server/node_modules/undici/lib/web/cookies/util.js +78 -8
- package/server/node_modules/undici/package.json +1 -1
- package/server/{orphan-proposed-reconciler-BvKkWMJQ.js → orphan-proposed-reconciler-B6vJHxtX.js} +242 -34
- package/server/{orphan-proposed-reconciler-CTSGcK8p.js → orphan-proposed-reconciler-DcgTPPFY.js} +1 -1
- package/server/package-lock.json +31 -31
- package/server/package.json +1 -1
- package/server/{pan-dir-B0c3w0Ya.js → pan-dir-DMzF5wne.js} +25 -11
- package/server/{paths-D-xWGHdh.js → paths-sJBSb7Ul.js} +2 -2
- package/server/pending-lifecycle-claim-DilzGfgk.js +110 -0
- package/server/persistent-logger-H_VjuOu7.js +57 -0
- package/server/{pickup-DUCLWrJY.js → pickup-DWhqzliO.js} +4 -3
- package/server/pipeline-membership-C88VBnhJ.js +3 -0
- package/server/pipeline-membership-D9SBvItj.js +57 -0
- package/server/pipeline-membership-gather-4eR-7Tqy.js +3 -0
- package/server/pipeline-membership-gather-CeVGnNJ2.js +593 -0
- package/server/{pipeline-notifier-BXkJzDC4.js → pipeline-notifier-D0ALV6Nw.js} +2 -2
- package/server/{pipeline-notifier-BJr8gQX6.js → pipeline-notifier-DT6xLFao.js} +1 -1
- package/server/post-merge-lifecycle-worker-8HIeS_J6.js +50 -0
- package/server/{project-pipelines-C0MWUeCU.js → project-pipelines-9SKt2bEc.js} +2 -2
- package/server/{project-repos-B6GycDh9.js → project-repos-B5pIphKg.js} +7 -3
- package/server/project-repos-DPjOdfPa.js +3 -0
- package/server/projects-_n3Zui6K.js +3 -0
- package/server/{prompts-DxzFXuLl.js → prompts-CgzMBvQF.js} +2 -2
- package/server/{providers-u4Ga0jOr.js → providers-BI1mOBQ4.js} +1 -1
- package/server/{providers-qQAwGQDW.js → providers-BJQSnAAp.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-BamJdinX.js → chunk-BO2N2NFS-D_pGACYN.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-DfOB8-w4.js → diagram-OG6HWLK6-BO6fe3hH.js} +1 -1
- package/server/public/assets/{dist-ByIuzMQW.js → dist-5zingMiA.js} +3 -3
- package/server/public/assets/{dist-D7zYSEA6.js → dist-CVxhbI2E.js} +1 -1
- package/server/public/assets/{ganttDiagram-6RSMTGT7-EdmRyXL3.js → ganttDiagram-6RSMTGT7-Bgj4A7kp.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-MerOfTX8.js → highlighted-body-OFNGDK62-DNPK7_cm.js} +1 -1
- package/server/public/assets/index-DEpY-D1O.js +807 -0
- package/server/public/assets/index-Ddkcz3WT.css +1 -0
- package/server/public/assets/{linear-BBbArIcK.js → linear-BB0jQT16.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-BzPfaQJ1.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-BKIddiJN.js → pieDiagram-4H26LBE5-DeGIzzpZ.js} +1 -1
- package/server/public/assets/{prod-B8vYiu52.js → prod-XBLvikex.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-D6RtoULk.js → quadrantDiagram-W4KKPZXB-BV9SLeWz.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-CLrCedZX.js → sankeyDiagram-5OEKKPKP-Dwja0gj8.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-hznR8DYl.js → xychartDiagram-2RQKCTM6-DCB4qvfw.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests-_lHueOHW.js → pull-requests-7BgLDsIo.js} +19 -10
- package/server/{pull-requests-7N8WKseP.js → pull-requests-Dq0y6IxE.js} +1 -1
- package/server/{queries-CjNIf-Ub.js → queries-C-MUZaIy.js} +824 -192
- package/server/{rally-CyWT_lNO.js → rally-CPysR4T_.js} +3 -3
- package/server/rally-D_VW4bJv.js +3 -0
- package/server/{rally-api-C8e_1JRi.js → rally-api-8Ptlp2os.js} +2 -2
- package/server/{rally-api-ClOSd-Tt.js → rally-api-CgosKdKL.js} +1 -1
- package/server/{rally-client-sgtVqzNU.js → rally-client-CCX0hADj.js} +1 -1
- package/server/{rally-client-lc-nokqr.js → rally-client-iYMHWQD7.js} +5 -5
- package/server/{reap-terminal-sessions-7KeHv1R1.js → reap-terminal-sessions-4Xg9NGA8.js} +2 -2
- package/server/{reap-terminal-sessions-BtHPo6Xc.js → reap-terminal-sessions-Qf-9LVQc.js} +2 -2
- package/server/{rebuild-stack-lwtsW0GO.js → rebuild-stack-CMdgaylx.js} +16 -7
- package/server/{rebuild-stack-CFvcBHsS.js → rebuild-stack-DqcOVmJO.js} +2 -2
- package/server/{reconstruct-cache-C3Ui7ojV.js → reconstruct-cache-CMZJ_Vjq.js} +9 -7
- package/server/record-BTwWhtBb.js +3 -0
- package/server/{record-update-dE1Aw83j.js → record-update-DaOKS7Wb.js} +124 -157
- package/server/record-update-DhI7eySG.js +3 -0
- package/server/{recovery-trip-BvRWfUXM.js → recovery-trip-DDH-02ng.js} +2 -2
- package/server/{release-engine-Cx48W7z8.js → release-engine-B2X9AfFC.js} +5 -5
- package/server/{release-set-CQfuN9-v.js → release-set-G4XKyQ8K.js} +3 -3
- package/server/{remote-C_2hasl7.js → remote-BXarMvqf.js} +3 -3
- package/server/{remote-ChgimyYa.js → remote-CUhyqjXk.js} +3 -3
- package/server/{remote-agents-By1ige5O.js → remote-agents-Bba-MgSA.js} +311 -48
- package/server/{remote-agents-CA3Ihlxj.js → remote-agents-CLZB3Coc.js} +2 -2
- package/server/{remote-completion-fVe9e_3u.js → remote-completion-CwAp79EC.js} +13 -13
- package/server/resume-mOREjlYu.js +3 -0
- package/server/{review-agent-CIGOQYBD.js → review-agent--pOptAEV.js} +65 -50
- package/server/{review-agent-DNboMyW4.js → review-agent-BTCNkq2h.js} +1 -1
- package/server/{review-artifacts-nRDPuMxd.js → review-artifacts-BNmw8dWE.js} +7 -6
- package/server/{review-context-2uj-YQ8J.js → review-context-DFxYOOJW.js} +9 -9
- package/server/{in-flight-guard-CAAkqPLu.js → review-convoy-liveness-BgU_1jJf.js} +3 -44
- package/server/review-status-CGvlA4o_.js +7737 -0
- package/server/review-status-Dma9SFaN.js +3 -0
- package/server/review-status-emit-DURrmGYX.js +50 -0
- package/server/{review-status-enrichment-Dci-ZwEt.js → review-status-enrichment-8NiNXi5W.js} +4 -4
- package/server/review-status-source-BLx_1siH.js +3 -0
- package/server/{review-status-source-CxuEjLGg.js → review-status-source-DIk1JSow.js} +24 -3
- package/server/{review-status-sync-BTOpxtTC.js → review-status-sync-0GxOqeqF.js} +11 -6
- package/server/{review-status-sync-DSDK3OMy.js → review-status-sync-muT-EBp2.js} +1 -1
- package/server/{review-verdict-feedback-CTd4QMBu.js → review-verdict-feedback-HwF6ODFy.js} +1 -1
- package/server/{review-verdict-feedback-CCjVA7Uk.js → review-verdict-feedback-xJNdqBnX.js} +65 -11
- package/server/{rollup-FGsKki9R.js → rollup-BQaol5TX.js} +8 -8
- package/server/{rollup-BKQC7jp4.js → rollup-BR4t_wck.js} +1 -1
- package/server/{scanner-CnqEZeDy.js → scanner-C-D2cFdX.js} +8 -7
- package/server/{sequence-io-D909zgeH.js → sequence-io-Bmf1EZM5.js} +4 -4
- package/server/{sequencer-agent-CzkcK6P5.js → sequencer-agent-CigMyKh2.js} +7 -6
- package/server/server.js +2005 -614
- package/server/{service-CLeAoU6G.js → service-CD0DvFvD.js} +114 -68
- package/server/{session-fork-CHI1XvL9.js → session-fork-B6cQ5eya.js} +2 -2
- package/server/{session-history-BT3IvqhC.js → session-history-3ON_IJjm.js} +7 -55
- package/server/settings-CVmWiJ-r.js +2 -0
- package/server/{settings-C0zgxOGf.js → settings-PilbFZAM.js} +3 -2
- package/server/{settings-BTMvpNFU.js → settings-VN0qOh4U.js} +3 -3
- package/server/{shadow-engineering-BJfgm-hX.js → shadow-engineering-DXvx77oE.js} +3 -3
- package/server/{shadow-state-7a-524T8.js → shadow-state-BBk_zacw.js} +2 -2
- package/server/{shadow-state-DnDyjujH.js → shadow-state-CZBp7pwq.js} +1 -1
- package/server/{shadow-utils-Db3oroFG.js → shadow-utils-DdZ05AJS.js} +2 -2
- package/server/{ship-log-D9MlVzYU.js → ship-log-7kJfjUX2.js} +1 -1
- package/server/{smart-compaction-CV2ukKND.js → smart-compaction-8fA5k5XN.js} +1 -1
- package/server/{smart-compaction-KCYScAU1.js → smart-compaction-ByhL9cRS.js} +8 -7
- package/server/{spawn-planning-session-DKpdFyOC.js → spawn-planning-session-pcF-YeFE.js} +38 -50
- package/server/spawn-planning-session-vLUJoFjy.js +3 -0
- package/server/{specialist-completion-Ky9wCDpb.js → specialist-completion-B07XjWD2.js} +1 -1
- package/server/{specialist-context-Bn3dCGS2.js → specialist-context-DJ-zFyL3.js} +5 -5
- package/server/{specialist-handoff-logger-CMEwYxa2.js → specialist-handoff-logger-aKSxbIgD.js} +2 -2
- package/server/{specialist-logs-C5p8G7tx.js → specialist-logs-Dae-n52_.js} +3 -3
- package/server/{specialists-CC4r-c2s.js → specialists-6PWdtWcg.js} +1177 -311
- package/server/{specialists-DM6bWjsi.js → specialists-Bz-wFT7R.js} +1 -1
- package/server/{specialists-jiuuyVkp.js → specialists-DUiExaxb.js} +18 -18
- package/server/{specialists-CShuVGWT.js → specialists-KR3pKulN.js} +1 -1
- package/server/specs--enInima.js +3 -0
- package/server/src-B948bGVR.js +11452 -0
- package/server/{src-CXmtj0im.js → src-rac0Mepv.js} +6 -6
- package/server/{src-CdmnTM2m.js → src-vHy2-oCv.js} +3 -3
- package/server/{stack-health-Bn3o8FBX.js → stack-health-BikqHSjn.js} +1 -1
- package/server/{stack-health-DxSdG9cW.js → stack-health-DqLTiEu4.js} +7 -5
- package/server/{stale-task-claims-KJKxxiiQ.js → stale-task-claims-Cab_Fo_Z.js} +5 -4
- package/server/{staleness-DPm7ClwA.js → staleness-C-a5rBxF.js} +1 -1
- package/server/{staleness-CT34nwr9.js → staleness-CGTZyp6V.js} +1 -1
- package/server/{state-home-Cn_Qu8IX.js → state-home-722Dkx92.js} +2 -2
- package/server/{state-mapping-BL_-3Yt8.js → state-mapping-CybR81Uf.js} +1 -1
- package/server/{state-migrate-BGg2ZaOt.js → state-migrate-2u8wIpoL.js} +4 -4
- package/server/{stuck-remediation-DYuPRYYw.js → stuck-remediation-CC6q3eqQ.js} +84 -26
- package/server/{stuck-remediation-s9_2qfi6.js → stuck-remediation-r1TJu68G.js} +1 -1
- package/server/{substrate-bug-weights-service-B-FwCs5V.js → substrate-bug-weights-service-CzIyyWFT.js} +3 -3
- package/server/{summary-fork-DpcxN9tf.js → summary-fork-BqgmgPDt.js} +2 -2
- package/server/{summary-fork-D1RAk9rJ.js → summary-fork-Df2WFijM.js} +8 -8
- package/server/supervisor/{injection-budget-Csw5tqfJ.js → injection-budget-Cg_KIb3o.js} +1 -1
- package/server/supervisor/{paths-DehGY2Fj.js → paths-BBOnCYlO.js} +10 -2
- package/server/supervisor/pty-supervisor.js +50 -4
- package/server/supervisor/{pty-token-x-ea28Us.js → pty-token-BbjwEUUM.js} +3 -3
- package/server/supervisor-B4anCCSm.js +2 -0
- package/server/{supervisor-wM4ooB5O.js → supervisor-BxqSpjcN.js} +3 -3
- package/server/{swarm-readiness-DlP_UjHq.js → swarm-readiness-DfFxa9-n.js} +3 -3
- package/server/{system-prerequisites-DUDj1YHf.js → system-prerequisites-ICLSkhhZ.js} +2 -2
- package/server/{teardown-workspace-DeTTImn-.js → teardown-workspace-DRdi_CPa.js} +15 -16
- package/server/{test-agent-queue-MbxX5vqq.js → test-agent-queue-A_-p-i0I.js} +8 -7
- package/server/{test-verdict-gscuksPv.js → test-verdict-BHgTAwIG.js} +1 -1
- package/server/{test-verdict-bWYBtqBg.js → test-verdict-C4i9aqEP.js} +1 -1
- package/server/{tldr-daemon-BYFkts95.js → tldr-daemon-CvWXBhX1.js} +1 -1
- package/server/{tldr-daemon-C-69c3OI.js → tldr-daemon-wvsU6bKv.js} +2 -2
- package/server/{tmux-R7N7y-Mh.js → tmux-CfDHob9M.js} +174 -4
- package/server/{tmux-B6z7h_vZ.js → tmux-Ctk6RV5l.js} +1 -1
- package/server/{token-BK6t8BIT.js → token-DrxwytsZ.js} +2 -2
- package/server/{token-util-DxXu-vd1.js → token-util-B48BlCba.js} +1 -1
- package/server/token-util-D411CAq9.js +3 -0
- package/server/{tracker-config-G6latr8C.js → tracker-config-BcPMElRB.js} +2 -2
- package/server/{tracker-utils-DHv5pSDT.js → tracker-utils-CJ6BHjcD.js} +3 -3
- package/server/{traefik-connect-Df2uXPsQ.js → traefik-connect-DZ6nMYMj.js} +1 -1
- package/server/{tunnel-DGdUkGoZ.js → tunnel-Bp-dRHZz.js} +1 -1
- package/server/{tunnel-CDVKJpRv.js → tunnel-DUbUPElU.js} +3 -3
- package/server/{typed-errors-BHhE85Ul.js → typed-errors-CKeoDdU3.js} +1 -1
- package/server/{typed-errors-2BTMxkZq.js → typed-errors-DyjseiB6.js} +1 -1
- package/server/{types-hraoaQIp.js → types-Cm5ASJbq.js} +1 -1
- package/server/{types-5M0lupud.js → types-Di8wdakq.js} +1 -1
- package/server/uat-promote-verification-CoJuh7XO.js +92 -0
- package/server/uat-train-4Q0k06CQ.js +0 -0
- package/server/uat-train-Dewoatps.js +2 -0
- package/server/{validate-IfDGkaVR.js → validate-B0C8p66t.js} +8 -6
- package/server/{validation-Dw1pzDzr.js → validation-B_kIRfNe.js} +4 -4
- package/server/{validation-CC9OPqJZ.js → validation-hVOwQk8T.js} +1 -1
- package/server/{verification-artifact-B3itKTxu.js → verification-artifact-BxlxTiYK.js} +1 -1
- package/server/{verification-artifact-TVFSz_q1.js → verification-artifact-D70AtckY.js} +1 -1
- package/server/{verification-runner-BW4HOKAz.js → verification-runner-Bc3cJvpC.js} +1 -1
- package/server/{verification-runner-CkgX6EtI.js → verification-runner-KZTz6u72.js} +40 -18
- package/server/{vtt-parser-DYPbKcIJ.js → vtt-parser-CE_i3Bcw.js} +1 -1
- package/server/{work-agent-prompt-Du8Vh2aJ.js → work-agent-prompt-ByrPAzOy.js} +20 -9
- package/server/{workflows-mbQzh6mQ.js → workflows-D0vP1WrK.js} +252 -99
- package/server/workflows-DtDX08ed.js +2 -0
- package/server/{workspace--8tnhDI0.js → workspace-COWvdibH.js} +1 -1
- package/server/{workspace-BPUws1-_.js → workspace-DQkRPLlQ.js} +3 -3
- package/server/workspace-anchor-drift-DXYIAHzr.js +224 -0
- package/server/workspace-anchor-drift-pwz23TI1.js +3 -0
- package/server/{workspace-config-CIVWZOQr.js → workspace-config-BdZM4PvZ.js} +1 -1
- package/server/{workspace-manager-CBhNdzE4.js → workspace-manager-BPgTrG66.js} +157 -118
- package/server/workspace-manager-C1F3XsnS.js +3 -0
- package/server/{workspace-metadata-BzHnwwX4.js → workspace-metadata-CdjzAP8x.js} +1 -1
- package/server/{workspace-metadata-_WygnyoX.js → workspace-metadata-DkO_iTLo.js} +2 -2
- package/server/{workspaces-Do_9J0LQ.js → workspaces-CRBJikLp.js} +749 -299
- package/sync-sources/dev-skills/pan-dashboard-restart/SKILL.md +34 -10
- package/sync-sources/hooks/linear-mcp-auth-hook +97 -0
- package/sync-sources/rules/ask-user-question-self-contained.md +9 -0
- package/sync-sources/skills/pan-close/SKILL.md +5 -3
- package/sync-sources/skills/pan-merge/SKILL.md +7 -5
- package/sync-sources/skills/pan-peer-review/SKILL.md +195 -0
- package/sync-sources/skills/pan-release/SKILL.md +57 -0
- package/sync-sources/skills/pan-reload/SKILL.md +3 -3
- package/sync-sources/skills/pan-restart/SKILL.md +5 -4
- package/sync-sources/skills/pan-review/SKILL.md +7 -1
- package/sync-sources/skills/pan-sync-main/SKILL.md +9 -8
- package/sync-sources/skills/pipeline-status/SKILL.md +10 -1
- package/sync-sources/skills/workspace-add-repo/SKILL.md +16 -1
- package/server/activity-logger-OEUBdfZ8.js +0 -3
- package/server/agent-state-Bc3tzUC8.js +0 -3
- package/server/agent-state-service-D5UGKIJL.js +0 -2
- package/server/agents-wi9NWzs2.js +0 -3
- package/server/archive-planning-BZDgzoEj.js +0 -3
- package/server/cli-B86rejVV.js +0 -3
- package/server/conflict-gate-BhAY7TUd.js +0 -3
- package/server/conversation-service-BLd3MYsG.js +0 -3
- package/server/deacon-kiQrb4ZT.js +0 -4
- package/server/deacon-swarm-C-GwfjJy.js +0 -2
- package/server/deploy-window-DkZraDyj.js +0 -3
- package/server/dist-Bzy0y69j.js +0 -3
- package/server/dod-C6n9RV3G.js +0 -66
- package/server/flywheel-merge-order-UU0tiUld.js +0 -245
- package/server/flywheel-merge-order-UUcsCDb6.js +0 -2
- package/server/forge-CNFnyqps.js +0 -270
- package/server/forge-DXnS_YFH.js +0 -2
- package/server/git-utils-D0_yhCgF.js +0 -3
- package/server/github-pr-lookup-D16NGsSO.js +0 -44
- package/server/hume-ccTf4wTX.js +0 -3
- package/server/inspect-agent-Brtz0URj.js +0 -2
- package/server/label-reconciler-B4iOAjlC.js +0 -113
- package/server/launcher-generator-BBWG_SiS.js +0 -473
- package/server/merge-ops-CR44oU9-.js +0 -2
- package/server/merge-set-bUqbm3yc.js +0 -3
- package/server/merge-sync-BJYeOODr.js +0 -3
- package/server/merge-verification-BkaOqPsw.js +0 -124
- package/server/pipeline-membership-mY3GprlK.js +0 -420
- package/server/project-repos-DXKQsc_m.js +0 -3
- package/server/projects-vjjcmiN8.js +0 -3
- package/server/public/assets/index-CWeMerGO.js +0 -804
- package/server/public/assets/index-CenuJ3Cw.css +0 -1
- package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +0 -1
- package/server/rally-zhhtXuDP.js +0 -3
- package/server/record-CN0pj4_5.js +0 -3
- package/server/record-update-bLJxAXH4.js +0 -3
- package/server/resume-BFv1PGpA.js +0 -3
- package/server/review-status-btEYlaxA.js +0 -3
- package/server/review-status-kZj_KyCk.js +0 -1470
- package/server/settings-66A6uvIA.js +0 -2
- package/server/spawn-planning-session-qUC2VWu3.js +0 -2
- package/server/specs-C8Wsn2XO.js +0 -3
- package/server/src-DtcUOZCq.js +0 -4826
- package/server/supervisor-FTJAIsAK.js +0 -2
- package/server/token-util-DuPuNriz.js +0 -3
- package/server/tracker-utils-B4ylXZQK.js +0 -3
- package/server/uat-train-B05BWkp-.js +0 -2
- package/server/uat-train-DDSrSoV1.js +0 -2152
- package/server/workflows-BQu4RFQ-.js +0 -2
- package/server/workspace-manager-CWT55qeI.js +0 -3
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-
|
|
5
|
-
import { D as killSession, H as sessionExists, M as listSessionNames, i as capturePane, w as init_tmux, z as sendKeys } from "./tmux-
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { i as
|
|
2
|
+
import { Er as GitError, Fr as init_errors, Gn as init_projects, Gr as OVERDECK_HOME, Pr as VcsError, Zn as loadProjectsConfigSync, f as loadConfigSync, gr as init_issue_id, li as init_paths, t as init_config_yaml, vr as parseIssueIdSync } from "./config-yaml-CxdwhAIA.js";
|
|
3
|
+
import { i as emitActivityTtsSync, o as init_activity_logger, r as emitActivityEntrySync } from "./activity-logger-CyteR4JO.js";
|
|
4
|
+
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BDQDRopn.js";
|
|
5
|
+
import { D as killSession, H as sessionExists, M as listSessionNames, i as capturePane, w as init_tmux, z as sendKeys } from "./tmux-CfDHob9M.js";
|
|
6
|
+
import { C as setReviewStatusSync, E as init_pipeline, T as capturePipelineStageForIssue, _ as markWorkspaceStuck, d as getReviewStatusSync, p as init_review_status } from "./review-status-CGvlA4o_.js";
|
|
7
|
+
import { n as resolveGitHubIssueSync, t as init_tracker_utils } from "./tracker-utils-CJ6BHjcD.js";
|
|
8
|
+
import { l as resolveWorkspaceRepoRootsSync, r as init_project_repos } from "./project-repos-B5pIphKg.js";
|
|
9
|
+
import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-B6HpNWRy.js";
|
|
10
|
+
import { a as init_git_utils, t as cleanupStaleLocks } from "./git-utils-CsvYfJU3.js";
|
|
11
|
+
import { i as verifyMergedBeforeLifecycle, n as init_merge_verification } from "./merge-verification-NvaAd8CZ.js";
|
|
12
|
+
import { n as init_merged_docker_cleanup_worker, t as enqueueMergedDockerCleanup } from "./merged-docker-cleanup-worker-Y1R06TEl.js";
|
|
13
|
+
import { i as runQualityGates, n as init_validation } from "./validation-B_kIRfNe.js";
|
|
14
|
+
import { dirname, resolve } from "node:path";
|
|
12
15
|
import { Data, Effect } from "effect";
|
|
13
16
|
import { appendFileSync, existsSync, mkdirSync } from "fs";
|
|
14
|
-
import { basename, dirname, join, relative } from "path";
|
|
17
|
+
import { basename as basename$1, dirname as dirname$1, join as join$1, relative as relative$1 } from "path";
|
|
15
18
|
import { fileURLToPath } from "url";
|
|
16
|
-
import { writeFile } from "fs/promises";
|
|
19
|
+
import { mkdir, readFile, unlink, writeFile } from "node:fs/promises";
|
|
20
|
+
import { writeFile as writeFile$1 } from "fs/promises";
|
|
17
21
|
import { exec, execFile, spawn } from "child_process";
|
|
18
22
|
import { promisify } from "util";
|
|
19
23
|
//#region ../../lib/cloister/merge-agent-step0.ts
|
|
20
24
|
async function shouldRestartForPostMerge(repoRoot, dependencies = {}) {
|
|
21
25
|
if ((await (dependencies.computeStaleness ?? (async () => {
|
|
22
|
-
const [{ getBuildInfo }, { computeBuildStaleness }] = await Promise.all([import("./build-info-
|
|
26
|
+
const [{ getBuildInfo }, { computeBuildStaleness }] = await Promise.all([import("./build-info-CpG__c63.js"), import("./staleness-CGTZyp6V.js")]);
|
|
23
27
|
return computeBuildStaleness({
|
|
24
28
|
repoRoot,
|
|
25
29
|
buildCommit: getBuildInfo().buildCommit
|
|
@@ -28,15 +32,89 @@ async function shouldRestartForPostMerge(repoRoot, dependencies = {}) {
|
|
|
28
32
|
(dependencies.log ?? console.log)("Running build already contains origin/main build inputs — skipping deploy restart");
|
|
29
33
|
return false;
|
|
30
34
|
}
|
|
31
|
-
const
|
|
32
|
-
if (reason) {
|
|
33
|
-
(dependencies.
|
|
35
|
+
const assessment = await (dependencies.getWindowAssessment ?? (async () => (await import("./deploy-window-CFRZ0-kt.js")).getDeployWindowAssessment()))();
|
|
36
|
+
if (assessment.reason) {
|
|
37
|
+
await (dependencies.recordIntent ?? (await import("./deploy-queue-gHJBycaF.js")).recordDeployIntent)({
|
|
38
|
+
requestedBy: "merge-step0",
|
|
39
|
+
reason: assessment.reason,
|
|
40
|
+
blockedBy: assessment.verifyingIssues
|
|
41
|
+
});
|
|
42
|
+
(dependencies.log ?? console.log)(`Deploy window unsafe (${assessment.reason}) — deferring deploy to the staleness patrol`);
|
|
34
43
|
return false;
|
|
35
44
|
}
|
|
36
45
|
return true;
|
|
37
46
|
}
|
|
38
47
|
var init_merge_agent_step0 = __esmMin((() => {}));
|
|
39
48
|
//#endregion
|
|
49
|
+
//#region ../../lib/cloister/post-merge-lifecycle-lock.ts
|
|
50
|
+
function isProcessAlive(pid) {
|
|
51
|
+
try {
|
|
52
|
+
process.kill(pid, 0);
|
|
53
|
+
return true;
|
|
54
|
+
} catch {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function isMissing(error) {
|
|
59
|
+
return error?.code === "ENOENT";
|
|
60
|
+
}
|
|
61
|
+
function isAlreadyExists(error) {
|
|
62
|
+
return error?.code === "EEXIST";
|
|
63
|
+
}
|
|
64
|
+
async function acquirePostMergeLifecycleLock(issueId) {
|
|
65
|
+
const parsedIssueId = parseIssueIdSync(issueId.trim());
|
|
66
|
+
if (!parsedIssueId) throw new Error(`Invalid issue ID for post-merge lifecycle lock: ${issueId}`);
|
|
67
|
+
const lockDir = resolve(OVERDECK_HOME, "locks", "post-merge-lifecycle");
|
|
68
|
+
const lockPath = resolve(lockDir, `${parsedIssueId.normalized.toUpperCase()}.lock`);
|
|
69
|
+
if (dirname(lockPath) !== lockDir) throw new Error(`Post-merge lifecycle lock escaped its lock directory: ${issueId}`);
|
|
70
|
+
await mkdir(lockDir, { recursive: true });
|
|
71
|
+
for (let attempt = 0; attempt < 2; attempt += 1) try {
|
|
72
|
+
await writeFile(lockPath, String(process.pid), {
|
|
73
|
+
flag: "wx",
|
|
74
|
+
mode: 384
|
|
75
|
+
});
|
|
76
|
+
let released = false;
|
|
77
|
+
return async () => {
|
|
78
|
+
if (released) return;
|
|
79
|
+
released = true;
|
|
80
|
+
try {
|
|
81
|
+
await unlink(lockPath);
|
|
82
|
+
} catch (error) {
|
|
83
|
+
if (!isMissing(error)) throw error;
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
} catch (error) {
|
|
87
|
+
if (!isAlreadyExists(error)) throw error;
|
|
88
|
+
let ownerPid;
|
|
89
|
+
try {
|
|
90
|
+
ownerPid = Number.parseInt((await readFile(lockPath, "utf-8")).trim(), 10);
|
|
91
|
+
} catch (readError) {
|
|
92
|
+
if (isMissing(readError)) continue;
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
if (!Number.isInteger(ownerPid) || ownerPid <= 0 || isProcessAlive(ownerPid)) return null;
|
|
96
|
+
try {
|
|
97
|
+
await unlink(lockPath);
|
|
98
|
+
} catch (unlinkError) {
|
|
99
|
+
if (!isMissing(unlinkError)) return null;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
async function withPostMergeLifecycleLock(issueId, run) {
|
|
105
|
+
const release = await acquirePostMergeLifecycleLock(issueId);
|
|
106
|
+
if (!release) throw new Error(`postMergeLifecycle already running in another process for ${issueId}`);
|
|
107
|
+
try {
|
|
108
|
+
return await run();
|
|
109
|
+
} finally {
|
|
110
|
+
await release();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
var init_post_merge_lifecycle_lock = __esmMin((() => {
|
|
114
|
+
init_issue_id();
|
|
115
|
+
init_paths();
|
|
116
|
+
}));
|
|
117
|
+
//#endregion
|
|
40
118
|
//#region ../../lib/cloister/sync-main-git.ts
|
|
41
119
|
function killCommandTree(child) {
|
|
42
120
|
if (!child?.pid) return;
|
|
@@ -206,6 +284,59 @@ var init_sync_main_git = __esmMin((() => {
|
|
|
206
284
|
execDetached = exec;
|
|
207
285
|
}));
|
|
208
286
|
//#endregion
|
|
287
|
+
//#region ../../lib/cloister/sync-main-workspace.ts
|
|
288
|
+
async function syncMainAcrossWorkspaceRepos(projectPath, issueId, signal, syncRepo, logActivity) {
|
|
289
|
+
console.log(`[sync-main] Starting sync of main into workspace for ${issueId}`);
|
|
290
|
+
logActivity("sync_main_start", `Starting sync for ${issueId}`);
|
|
291
|
+
const roots = resolveWorkspaceRepoRootsSync(issueId, projectPath);
|
|
292
|
+
const repos = [];
|
|
293
|
+
let failedRepoKey;
|
|
294
|
+
for (const root of roots) {
|
|
295
|
+
if (failedRepoKey) {
|
|
296
|
+
repos.push({
|
|
297
|
+
repoKey: root.repoKey,
|
|
298
|
+
success: false,
|
|
299
|
+
skipped: true,
|
|
300
|
+
reason: `[${root.repoKey}] Skipped because sync failed in ${failedRepoKey}`
|
|
301
|
+
});
|
|
302
|
+
continue;
|
|
303
|
+
}
|
|
304
|
+
if (root.isPolyrepo) {
|
|
305
|
+
console.log(`[sync-main] [${root.repoKey}] Syncing origin/${root.targetBranch}`);
|
|
306
|
+
logActivity("sync_main_repo_start", `[${root.repoKey}] Syncing origin/${root.targetBranch}`);
|
|
307
|
+
}
|
|
308
|
+
const result = await syncRepo(root.dir, issueId, root.targetBranch, signal);
|
|
309
|
+
const prefixPaths = (paths) => root.isPolyrepo && paths ? paths.map((path) => `${root.repoKey}/${path}`) : paths;
|
|
310
|
+
const repoResult = {
|
|
311
|
+
...result,
|
|
312
|
+
repoKey: root.repoKey
|
|
313
|
+
};
|
|
314
|
+
if (result.changedFiles !== void 0) repoResult.changedFiles = prefixPaths(result.changedFiles);
|
|
315
|
+
if (result.conflictFiles !== void 0) repoResult.conflictFiles = prefixPaths(result.conflictFiles);
|
|
316
|
+
if (result.reason && root.isPolyrepo) repoResult.reason = `[${root.repoKey}] ${result.reason}`;
|
|
317
|
+
repos.push(repoResult);
|
|
318
|
+
if (!result.success) failedRepoKey = root.repoKey;
|
|
319
|
+
}
|
|
320
|
+
const completedRepos = repos.filter((repo) => !repo.skipped);
|
|
321
|
+
const changedFiles = completedRepos.flatMap((repo) => repo.changedFiles ?? []);
|
|
322
|
+
const conflictFiles = completedRepos.flatMap((repo) => repo.conflictFiles ?? []);
|
|
323
|
+
const countedRepos = completedRepos.filter((repo) => repo.commitCount !== void 0);
|
|
324
|
+
const failedRepo = completedRepos.find((repo) => !repo.success);
|
|
325
|
+
const aggregate = {
|
|
326
|
+
success: !failedRepo,
|
|
327
|
+
repos
|
|
328
|
+
};
|
|
329
|
+
if (completedRepos.length > 0 && completedRepos.every((repo) => repo.alreadyUpToDate === true)) aggregate.alreadyUpToDate = true;
|
|
330
|
+
if (countedRepos.length > 0) aggregate.commitCount = countedRepos.reduce((sum, repo) => sum + (repo.commitCount ?? 0), 0);
|
|
331
|
+
if (completedRepos.some((repo) => repo.changedFiles !== void 0)) aggregate.changedFiles = changedFiles;
|
|
332
|
+
if (completedRepos.some((repo) => repo.conflictFiles !== void 0)) aggregate.conflictFiles = conflictFiles;
|
|
333
|
+
if (failedRepo?.reason) aggregate.reason = failedRepo.reason;
|
|
334
|
+
return aggregate;
|
|
335
|
+
}
|
|
336
|
+
var init_sync_main_workspace = __esmMin((() => {
|
|
337
|
+
init_project_repos();
|
|
338
|
+
}));
|
|
339
|
+
//#endregion
|
|
209
340
|
//#region ../../lib/overdeck/git-activity.ts
|
|
210
341
|
function overdeckDb() {
|
|
211
342
|
return getOverdeckDatabaseSync();
|
|
@@ -569,7 +700,7 @@ async function autoCommitWorkspaceChangesBeforeSync(projectPath, issueId, signal
|
|
|
569
700
|
async function notifyTldrDaemon(projectPath, _sourceBranch) {
|
|
570
701
|
try {
|
|
571
702
|
console.log(`[merge-agent] Notifying TLDR daemon to reindex changed files...`);
|
|
572
|
-
const venvPath = join(projectPath, ".venv");
|
|
703
|
+
const venvPath = join$1(projectPath, ".venv");
|
|
573
704
|
if (!existsSync(venvPath)) {
|
|
574
705
|
console.log(`[merge-agent] No .venv found, skipping TLDR notification`);
|
|
575
706
|
return;
|
|
@@ -599,7 +730,7 @@ async function notifyTldrDaemon(projectPath, _sourceBranch) {
|
|
|
599
730
|
return;
|
|
600
731
|
}
|
|
601
732
|
console.log(`[merge-agent] Found ${changedFiles.length} changed source files to reindex`);
|
|
602
|
-
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-
|
|
733
|
+
const { getTldrDaemonServiceSync } = await import("./tldr-daemon-CvWXBhX1.js");
|
|
603
734
|
const tldrService = getTldrDaemonServiceSync(projectPath, venvPath);
|
|
604
735
|
if (!(await tldrService.getStatus()).running) {
|
|
605
736
|
console.log(`[merge-agent] TLDR daemon not running, skipping notification`);
|
|
@@ -618,7 +749,8 @@ function shellQuote(value) {
|
|
|
618
749
|
return `'${value.replace(/'/g, `'"'"'`)}'`;
|
|
619
750
|
}
|
|
620
751
|
async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
|
|
621
|
-
if (_completedPostMerge.has(issueId)) {
|
|
752
|
+
if (_completedPostMerge.has(issueId) || getReviewStatusSync(issueId)?.mergeStep === "merged") {
|
|
753
|
+
_completedPostMerge.add(issueId);
|
|
622
754
|
console.log(`[merge-agent] postMergeLifecycle already completed for ${issueId}, skipping`);
|
|
623
755
|
return;
|
|
624
756
|
}
|
|
@@ -627,9 +759,14 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
|
|
|
627
759
|
console.log(`[merge-agent] postMergeLifecycle already running for ${issueId}, joining in-flight run`);
|
|
628
760
|
return inFlight;
|
|
629
761
|
}
|
|
630
|
-
const run = (async () => {
|
|
762
|
+
const run = withPostMergeLifecycleLock(issueId, async () => {
|
|
763
|
+
if (_completedPostMerge.has(issueId) || getReviewStatusSync(issueId)?.mergeStep === "merged") {
|
|
764
|
+
_completedPostMerge.add(issueId);
|
|
765
|
+
console.log(`[merge-agent] postMergeLifecycle completed while waiting for ${issueId}, skipping`);
|
|
766
|
+
return;
|
|
767
|
+
}
|
|
631
768
|
try {
|
|
632
|
-
const { findSpecByIssue } = await import("./specs
|
|
769
|
+
const { findSpecByIssue } = await import("./specs--enInima.js");
|
|
633
770
|
const spec = await Effect.runPromise(findSpecByIssue(projectPath, issueId));
|
|
634
771
|
if (spec && (spec.status === "completed" || spec.status === "cancelled")) {
|
|
635
772
|
console.log(`[merge-agent] ${issueId} is closed out (spec ${spec.status}) — skipping post-merge lifecycle`);
|
|
@@ -646,6 +783,7 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
|
|
|
646
783
|
try {
|
|
647
784
|
setReviewStatusSync(issueId, {
|
|
648
785
|
mergeStatus: "merged",
|
|
786
|
+
mergeStep: "post-merge-cleanup",
|
|
649
787
|
readyForMerge: false,
|
|
650
788
|
...options?.markReviewPassed ? { reviewStatus: "passed" } : {}
|
|
651
789
|
});
|
|
@@ -653,17 +791,32 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
|
|
|
653
791
|
} catch (err) {
|
|
654
792
|
console.warn(`[merge-agent] Could not set mergeStatus: ${err.message}`);
|
|
655
793
|
}
|
|
794
|
+
let dockerRetryReason = null;
|
|
795
|
+
try {
|
|
796
|
+
const { teardownWorkspaceDockerByNamePromise } = await import("./docker-Y3PElJb0.js");
|
|
797
|
+
const teardown = await teardownWorkspaceDockerByNamePromise(issueId.toLowerCase());
|
|
798
|
+
if (teardown.networkRemoved) {
|
|
799
|
+
console.log(`[merge-agent] ✓ Removed Docker stack/network: ${teardown.steps.join("; ")}`);
|
|
800
|
+
logActivity("docker_cleanup", `Removed Docker stack/network for ${issueId}: ${teardown.steps.join("; ")}`);
|
|
801
|
+
} else dockerRetryReason = teardown.steps.join("; ") || "network remained after teardown";
|
|
802
|
+
} catch (err) {
|
|
803
|
+
dockerRetryReason = err instanceof Error ? err.message : String(err);
|
|
804
|
+
}
|
|
805
|
+
if (dockerRetryReason) {
|
|
806
|
+
enqueueMergedDockerCleanup(issueId, { mergeVerified: true });
|
|
807
|
+
console.warn(`[merge-agent] Docker cleanup queued for retry (non-fatal): ${dockerRetryReason}`);
|
|
808
|
+
}
|
|
656
809
|
if (!options?.skipDeploy) {
|
|
657
|
-
const pendingFile = join(OVERDECK_HOME, "pending-post-merge.json");
|
|
810
|
+
const pendingFile = join$1(OVERDECK_HOME, "pending-post-merge.json");
|
|
658
811
|
let repoRoot = __dirname.includes("/src/") ? __dirname.replace(/\/src\/.*$/, "") : __dirname.replace(/\/dist\/.*$/, "").replace(/\/lib\/.*$/, "");
|
|
659
812
|
const wsMatch = repoRoot.match(/^(.+)\/workspaces\/feature-[^/]+$/);
|
|
660
813
|
if (wsMatch) {
|
|
661
814
|
repoRoot = wsMatch[1];
|
|
662
815
|
console.log(`[merge-agent] Resolved workspace repoRoot to main repo: ${repoRoot}`);
|
|
663
816
|
}
|
|
664
|
-
const deployScript = join(repoRoot, "scripts", "post-merge-deploy.sh");
|
|
817
|
+
const deployScript = join$1(repoRoot, "scripts", "post-merge-deploy.sh");
|
|
665
818
|
if (await shouldRestartForPostMerge(repoRoot)) try {
|
|
666
|
-
await writeFile(pendingFile, JSON.stringify({
|
|
819
|
+
await writeFile$1(pendingFile, JSON.stringify({
|
|
667
820
|
issueId,
|
|
668
821
|
projectPath,
|
|
669
822
|
sourceBranch: sourceBranch ?? "",
|
|
@@ -691,7 +844,7 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
|
|
|
691
844
|
}
|
|
692
845
|
console.log(`[merge-agent] Running post-merge verify handoff for ${issueId}`);
|
|
693
846
|
try {
|
|
694
|
-
const { cleanupMergedLabels } = await import("./label-cleanup-
|
|
847
|
+
const { cleanupMergedLabels } = await import("./label-cleanup-Dwnky8FG.js");
|
|
695
848
|
const ghResolved = resolveGitHubIssueSync(issueId);
|
|
696
849
|
const labelCtx = ghResolved.isGitHub ? {
|
|
697
850
|
issueId,
|
|
@@ -725,7 +878,8 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
|
|
|
725
878
|
console.warn(`[merge-agent] Could not transition issue to verifying_on_main: ${message}`);
|
|
726
879
|
try {
|
|
727
880
|
setReviewStatusSync(issueId, {
|
|
728
|
-
mergeStatus: "
|
|
881
|
+
mergeStatus: "merged",
|
|
882
|
+
mergeStep: "post-merge-cleanup",
|
|
729
883
|
readyForMerge: false,
|
|
730
884
|
mergeNotes: `Post-merge verifying_on_main transition failed: ${message}`
|
|
731
885
|
});
|
|
@@ -740,8 +894,8 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
|
|
|
740
894
|
console.warn(`[merge-agent] Async post-merge release trigger failed for ${issueId}: ${err instanceof Error ? err.message : String(err)}`);
|
|
741
895
|
});
|
|
742
896
|
try {
|
|
743
|
-
const { setAgentPaused, getAgentState } = await import("./agents-
|
|
744
|
-
const { killSession, sessionExists } = await import("./tmux-
|
|
897
|
+
const { setAgentPaused, getAgentState } = await import("./agents-ePFVoZbu.js");
|
|
898
|
+
const { killSession, sessionExists } = await import("./tmux-Ctk6RV5l.js");
|
|
745
899
|
const issueLower = issueId.toLowerCase();
|
|
746
900
|
const reason = "awaiting close-out (verify on main)";
|
|
747
901
|
for (const agentId of [`agent-${issueLower}`, `planning-${issueLower}`]) {
|
|
@@ -766,8 +920,8 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
|
|
|
766
920
|
console.warn(`[merge-agent] Could not pause or kill agent sessions: ${err}`);
|
|
767
921
|
}
|
|
768
922
|
try {
|
|
769
|
-
const { killAllReviewerSessions } = await import("./review-agent-
|
|
770
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
923
|
+
const { killAllReviewerSessions } = await import("./review-agent-BTCNkq2h.js");
|
|
924
|
+
const { resolveProjectFromIssueSync } = await import("./projects-_n3Zui6K.js");
|
|
771
925
|
const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
|
|
772
926
|
if (projectKey) {
|
|
773
927
|
const { killed } = await Effect.runPromise(killAllReviewerSessions(projectKey, issueId));
|
|
@@ -781,10 +935,10 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
|
|
|
781
935
|
}
|
|
782
936
|
await killPostMergeRoleSessions(issueId);
|
|
783
937
|
try {
|
|
784
|
-
const { createResetMarker } = await import("./cli-
|
|
938
|
+
const { createResetMarker } = await import("./cli-CjOCSnfj.js");
|
|
785
939
|
const timestamp = (/* @__PURE__ */ new Date()).toISOString();
|
|
786
940
|
const marker = await createResetMarker({
|
|
787
|
-
projectId: basename(projectPath),
|
|
941
|
+
projectId: basename$1(projectPath),
|
|
788
942
|
scope: "workspace",
|
|
789
943
|
scopeId: `feature-${issueId.toLowerCase()}`,
|
|
790
944
|
reason: "post-merge cleanup",
|
|
@@ -795,28 +949,19 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
|
|
|
795
949
|
} catch (err) {
|
|
796
950
|
console.warn(`[merge-agent] Memory reset marker creation failed (non-fatal): ${err}`);
|
|
797
951
|
}
|
|
798
|
-
try {
|
|
799
|
-
const { findWorkspacePath } = await import("./archive-planning-BZDgzoEj.js");
|
|
800
|
-
const { stopWorkspaceDocker } = await import("./workspace-manager-CWT55qeI.js");
|
|
801
|
-
const issueLower = issueId.toLowerCase();
|
|
802
|
-
const workspacePath = findWorkspacePath(projectPath, issueLower);
|
|
803
|
-
if (workspacePath) {
|
|
804
|
-
const dockerResult = await Effect.runPromise(stopWorkspaceDocker(workspacePath, issueLower));
|
|
805
|
-
if (dockerResult.containersFound) {
|
|
806
|
-
console.log(`[merge-agent] ✓ Stopped Docker containers: ${dockerResult.steps.join("; ")}`);
|
|
807
|
-
logActivity("docker_cleanup", `Stopped Docker for ${issueId}: ${dockerResult.steps.join("; ")}`);
|
|
808
|
-
}
|
|
809
|
-
}
|
|
810
|
-
} catch (err) {
|
|
811
|
-
console.warn(`[merge-agent] Docker cleanup failed (non-fatal): ${err}`);
|
|
812
|
-
}
|
|
813
952
|
await notifyTldrDaemon(projectPath, sourceBranch ?? "");
|
|
814
953
|
await maybeSpawnPostMergeKnowledgeRetro(issueId, projectPath);
|
|
954
|
+
setReviewStatusSync(issueId, {
|
|
955
|
+
mergeStatus: "merged",
|
|
956
|
+
mergeStep: "merged",
|
|
957
|
+
readyForMerge: false
|
|
958
|
+
});
|
|
815
959
|
_completedPostMerge.add(issueId);
|
|
960
|
+
capturePipelineStageForIssue(issueId, "merged");
|
|
816
961
|
console.log(`[merge-agent] Post-merge handoff completed for ${issueId}. Awaiting close-out (verify on main).`);
|
|
817
962
|
announceMerge("completed", issueId);
|
|
818
963
|
logActivity("merge_complete", `Merged ${issueId}. Awaiting close-out (verify on main).`);
|
|
819
|
-
})
|
|
964
|
+
}).finally(() => {
|
|
820
965
|
_postMergeInFlight.delete(issueId);
|
|
821
966
|
});
|
|
822
967
|
_postMergeInFlight.set(issueId, run);
|
|
@@ -828,7 +973,7 @@ async function triggerPostMergeReleaseIfConfigured(issueId, projectPath) {
|
|
|
828
973
|
console.log(`[merge-agent] Release already started or completed for ${issueId} (${currentStatus}), skipping`);
|
|
829
974
|
return;
|
|
830
975
|
}
|
|
831
|
-
const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-
|
|
976
|
+
const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-_n3Zui6K.js");
|
|
832
977
|
const resolved = resolveProjectFromIssueSync(issueId);
|
|
833
978
|
if (!(resolved ? getProjectSync(resolved.projectKey) : null)?.release) {
|
|
834
979
|
setReviewStatusSync(issueId, {
|
|
@@ -838,7 +983,7 @@ async function triggerPostMergeReleaseIfConfigured(issueId, projectPath) {
|
|
|
838
983
|
console.log(`[merge-agent] No release config for ${issueId}; marked release skipped`);
|
|
839
984
|
return;
|
|
840
985
|
}
|
|
841
|
-
const { runRelease } = await import("./release-engine-
|
|
986
|
+
const { runRelease } = await import("./release-engine-B2X9AfFC.js");
|
|
842
987
|
try {
|
|
843
988
|
await runRelease(issueId, projectPath);
|
|
844
989
|
} catch (err) {
|
|
@@ -857,11 +1002,11 @@ async function triggerPostMergeReleaseIfConfigured(issueId, projectPath) {
|
|
|
857
1002
|
async function transitionIssueToVerifyingOnMain(issueId, projectPath) {
|
|
858
1003
|
const [effectModule, issueLifecycleModule, githubModule, linearModule, rallyModule, errorsModule] = await Promise.all([
|
|
859
1004
|
import("effect"),
|
|
860
|
-
import("./issue-lifecycle-
|
|
861
|
-
import("./github-client-
|
|
862
|
-
import("./linear-client-
|
|
863
|
-
import("./rally-client-
|
|
864
|
-
import("./typed-errors-
|
|
1005
|
+
import("./issue-lifecycle-BqSuQvbn.js"),
|
|
1006
|
+
import("./github-client-B6KM9_wA.js"),
|
|
1007
|
+
import("./linear-client-CnbtHiic.js"),
|
|
1008
|
+
import("./rally-client-CCX0hADj.js"),
|
|
1009
|
+
import("./typed-errors-CKeoDdU3.js")
|
|
865
1010
|
]);
|
|
866
1011
|
const { Effect, Layer } = effectModule;
|
|
867
1012
|
const { IssueLifecycle, IssueLifecycleLive } = issueLifecycleModule;
|
|
@@ -1091,7 +1236,7 @@ async function getConflictFiles(projectPath, signal) {
|
|
|
1091
1236
|
return [];
|
|
1092
1237
|
}
|
|
1093
1238
|
}
|
|
1094
|
-
async function resolveMainPreferredSyncConflicts(projectPath, conflictFiles, signal) {
|
|
1239
|
+
async function resolveMainPreferredSyncConflicts(projectPath, conflictFiles, targetBranch, signal) {
|
|
1095
1240
|
if (conflictFiles.length === 0 || !conflictFiles.every(isSyncMainMainPreferredPath)) return {
|
|
1096
1241
|
success: false,
|
|
1097
1242
|
reason: "conflicts include non-pipeline-owned files"
|
|
@@ -1104,10 +1249,10 @@ async function resolveMainPreferredSyncConflicts(projectPath, conflictFiles, sig
|
|
|
1104
1249
|
try {
|
|
1105
1250
|
for (const path of SYNC_MAIN_MAIN_PREFERRED_PATHS) {
|
|
1106
1251
|
await run(`git rm -r --quiet --ignore-unmatch -- ${path}`);
|
|
1107
|
-
await run(`git checkout origin
|
|
1252
|
+
await run(`git checkout origin/${targetBranch} -- ${path}`).catch((error) => {
|
|
1108
1253
|
if (isSyncGitTermination(error)) throw error;
|
|
1109
1254
|
});
|
|
1110
|
-
await run(`git add -A -- ${path}`);
|
|
1255
|
+
if ((await run(`git ls-files -- ${path}`)).stdout.trim()) await run(`git add -A -- ${path}`);
|
|
1111
1256
|
}
|
|
1112
1257
|
const remainingConflicts = await getConflictFiles(projectPath, signal);
|
|
1113
1258
|
if (remainingConflicts.length > 0) return {
|
|
@@ -1344,11 +1489,9 @@ async function collectSyncMergeStats(projectPath, signal) {
|
|
|
1344
1489
|
*
|
|
1345
1490
|
* Auto-commits any uncommitted changes before merging (with safety verification).
|
|
1346
1491
|
*/
|
|
1347
|
-
async function
|
|
1348
|
-
console.log(`[sync-main] Starting sync of main into workspace for ${issueId}`);
|
|
1349
|
-
logActivity("sync_main_start", `Starting sync for ${issueId}`);
|
|
1492
|
+
async function syncMainIntoRepo(repoDir, issueId, targetBranch, signal) {
|
|
1350
1493
|
const run = (command, timeout = SYNC_GIT_STATUS_TIMEOUT_MS) => runSyncGitCommand(command, {
|
|
1351
|
-
cwd:
|
|
1494
|
+
cwd: repoDir,
|
|
1352
1495
|
timeout,
|
|
1353
1496
|
signal
|
|
1354
1497
|
});
|
|
@@ -1356,7 +1499,7 @@ async function syncMainIntoWorkspace(projectPath, issueId, signal) {
|
|
|
1356
1499
|
try {
|
|
1357
1500
|
console.log(`[sync-main] Checking for uncommitted changes...`);
|
|
1358
1501
|
logActivity("sync_main_auto_commit", `Auto-committing uncommitted changes before sync`);
|
|
1359
|
-
const autoCommit = await autoCommitWorkspaceChangesBeforeSync(
|
|
1502
|
+
const autoCommit = await autoCommitWorkspaceChangesBeforeSync(repoDir, issueId, signal);
|
|
1360
1503
|
if (!autoCommit.success) {
|
|
1361
1504
|
const message = autoCommit.reason || "Failed to auto-commit uncommitted changes";
|
|
1362
1505
|
console.error(`[sync-main] ${message}`);
|
|
@@ -1380,7 +1523,7 @@ async function syncMainIntoWorkspace(projectPath, issueId, signal) {
|
|
|
1380
1523
|
}
|
|
1381
1524
|
}
|
|
1382
1525
|
try {
|
|
1383
|
-
const lockCleanup = await Effect.runPromise(cleanupStaleLocks(
|
|
1526
|
+
const lockCleanup = await Effect.runPromise(cleanupStaleLocks(repoDir, {
|
|
1384
1527
|
signal,
|
|
1385
1528
|
processProbeTimeoutMs: SYNC_GIT_STATUS_TIMEOUT_MS
|
|
1386
1529
|
}));
|
|
@@ -1407,21 +1550,21 @@ async function syncMainIntoWorkspace(projectPath, issueId, signal) {
|
|
|
1407
1550
|
reason: message
|
|
1408
1551
|
};
|
|
1409
1552
|
}
|
|
1410
|
-
console.log(`[sync-main] Fetching origin
|
|
1553
|
+
console.log(`[sync-main] Fetching origin/${targetBranch}...`);
|
|
1411
1554
|
try {
|
|
1412
|
-
await run(
|
|
1555
|
+
await run(`git fetch origin ${targetBranch}`, SYNC_GIT_FETCH_TIMEOUT_MS);
|
|
1413
1556
|
} catch (error) {
|
|
1414
1557
|
if (isSyncGitTermination(error)) throw error;
|
|
1415
1558
|
return {
|
|
1416
1559
|
success: false,
|
|
1417
|
-
reason: `Failed to fetch origin
|
|
1560
|
+
reason: `Failed to fetch origin/${targetBranch}: ${error.message}`
|
|
1418
1561
|
};
|
|
1419
1562
|
}
|
|
1420
1563
|
let mergeOutput = "";
|
|
1421
1564
|
let hasConflicts = false;
|
|
1422
1565
|
try {
|
|
1423
1566
|
mergeStarted = true;
|
|
1424
|
-
const result = await run(
|
|
1567
|
+
const result = await run(`git merge origin/${targetBranch}`, SYNC_GIT_MERGE_TIMEOUT_MS);
|
|
1425
1568
|
mergeStarted = false;
|
|
1426
1569
|
mergeOutput = (result.stdout || "") + (result.stderr || "");
|
|
1427
1570
|
} catch (error) {
|
|
@@ -1431,7 +1574,7 @@ async function syncMainIntoWorkspace(projectPath, issueId, signal) {
|
|
|
1431
1574
|
}
|
|
1432
1575
|
if (mergeOutput.includes("Already up to date") || mergeOutput.includes("Already up-to-date")) {
|
|
1433
1576
|
console.log(`[sync-main] Already up to date`);
|
|
1434
|
-
logActivity("sync_main_noop", `${issueId} already up to date with
|
|
1577
|
+
logActivity("sync_main_noop", `${issueId} already up to date with ${targetBranch}`);
|
|
1435
1578
|
return {
|
|
1436
1579
|
success: true,
|
|
1437
1580
|
alreadyUpToDate: true
|
|
@@ -1439,25 +1582,25 @@ async function syncMainIntoWorkspace(projectPath, issueId, signal) {
|
|
|
1439
1582
|
}
|
|
1440
1583
|
if (!hasConflicts) {
|
|
1441
1584
|
console.log(`[sync-main] Clean merge completed`);
|
|
1442
|
-
logActivity("sync_main_success", `Clean merge of
|
|
1585
|
+
logActivity("sync_main_success", `Clean merge of ${targetBranch} into ${issueId}`);
|
|
1443
1586
|
return {
|
|
1444
1587
|
success: true,
|
|
1445
|
-
...await collectSyncMergeStats(
|
|
1588
|
+
...await collectSyncMergeStats(repoDir, signal)
|
|
1446
1589
|
};
|
|
1447
1590
|
}
|
|
1448
|
-
const conflictFiles = await getConflictFiles(
|
|
1449
|
-
if ((await resolveMainPreferredSyncConflicts(
|
|
1591
|
+
const conflictFiles = await getConflictFiles(repoDir, signal);
|
|
1592
|
+
if ((await resolveMainPreferredSyncConflicts(repoDir, conflictFiles, targetBranch, signal)).success) {
|
|
1450
1593
|
mergeStarted = false;
|
|
1451
|
-
console.log(`[sync-main] Auto-resolved ${conflictFiles.length} pipeline-owned conflict(s) with origin
|
|
1452
|
-
logActivity("sync_main_auto_resolved_conflicts", `Auto-resolved ${conflictFiles.length} pipeline-owned conflict(s) in ${issueId} with origin
|
|
1594
|
+
console.log(`[sync-main] Auto-resolved ${conflictFiles.length} pipeline-owned conflict(s) with origin/${targetBranch}`);
|
|
1595
|
+
logActivity("sync_main_auto_resolved_conflicts", `Auto-resolved ${conflictFiles.length} pipeline-owned conflict(s) in ${issueId} with origin/${targetBranch}`);
|
|
1453
1596
|
return {
|
|
1454
1597
|
success: true,
|
|
1455
|
-
...await collectSyncMergeStats(
|
|
1598
|
+
...await collectSyncMergeStats(repoDir, signal)
|
|
1456
1599
|
};
|
|
1457
1600
|
}
|
|
1458
1601
|
console.log(`[sync-main] ${conflictFiles.length} conflict(s); aborting merge for manual resolution`);
|
|
1459
1602
|
logActivity("sync_main_conflicts", `${conflictFiles.length} conflict(s) in ${issueId}: ${conflictFiles.join(", ")}`);
|
|
1460
|
-
await ensureSyncGitQuiescent(
|
|
1603
|
+
await ensureSyncGitQuiescent(repoDir, true);
|
|
1461
1604
|
mergeStarted = false;
|
|
1462
1605
|
return {
|
|
1463
1606
|
success: false,
|
|
@@ -1466,13 +1609,16 @@ async function syncMainIntoWorkspace(projectPath, issueId, signal) {
|
|
|
1466
1609
|
};
|
|
1467
1610
|
} catch (error) {
|
|
1468
1611
|
if (!isSyncGitTermination(error)) throw error;
|
|
1469
|
-
await ensureSyncGitQuiescent(
|
|
1612
|
+
await ensureSyncGitQuiescent(repoDir, mergeStarted);
|
|
1470
1613
|
return {
|
|
1471
1614
|
success: false,
|
|
1472
1615
|
reason: error instanceof SyncGitCommandTimeoutError ? error.message : "Sync-main cancelled after reaching its preparation deadline"
|
|
1473
1616
|
};
|
|
1474
1617
|
}
|
|
1475
1618
|
}
|
|
1619
|
+
async function syncMainIntoWorkspace(projectPath, issueId, signal) {
|
|
1620
|
+
return syncMainAcrossWorkspaceRepos(projectPath, issueId, signal, syncMainIntoRepo, logActivity);
|
|
1621
|
+
}
|
|
1476
1622
|
/**
|
|
1477
1623
|
* Look up and run quality gates for the project at projectPath.
|
|
1478
1624
|
* Returns empty array if no quality gates are configured.
|
|
@@ -1489,8 +1635,8 @@ async function runProjectQualityGates(projectPath, phase) {
|
|
|
1489
1635
|
console.log(`[merge-agent] No quality gates configured for ${projectPath}`);
|
|
1490
1636
|
return [];
|
|
1491
1637
|
}
|
|
1492
|
-
const repoRelPath = relative(project.path, projectPath);
|
|
1493
|
-
const matchedRepo = project.workspace?.repos?.find((repo) => repoRelPath === repo.path || projectPath === join(project.path, repo.path));
|
|
1638
|
+
const repoRelPath = relative$1(project.path, projectPath);
|
|
1639
|
+
const matchedRepo = project.workspace?.repos?.find((repo) => repoRelPath === repo.path || projectPath === join$1(project.path, repo.path));
|
|
1494
1640
|
const repoIdentifiers = matchedRepo ? new Set([matchedRepo.path, matchedRepo.name]) : new Set(repoRelPath && !repoRelPath.startsWith("..") ? [repoRelPath] : []);
|
|
1495
1641
|
let gatesToRun = project.quality_gates;
|
|
1496
1642
|
if (repoRelPath && !repoRelPath.startsWith("..")) {
|
|
@@ -1515,7 +1661,11 @@ var init_merge_agent = __esmMin((() => {
|
|
|
1515
1661
|
init_activity_logger();
|
|
1516
1662
|
init_config_yaml();
|
|
1517
1663
|
init_merge_agent_step0();
|
|
1664
|
+
init_pipeline();
|
|
1665
|
+
init_merged_docker_cleanup_worker();
|
|
1666
|
+
init_post_merge_lifecycle_lock();
|
|
1518
1667
|
init_sync_main_git();
|
|
1668
|
+
init_sync_main_workspace();
|
|
1519
1669
|
init_paths();
|
|
1520
1670
|
init_tracker_utils();
|
|
1521
1671
|
init_validation();
|
|
@@ -1541,9 +1691,9 @@ var init_merge_agent = __esmMin((() => {
|
|
|
1541
1691
|
".overdeck/"
|
|
1542
1692
|
];
|
|
1543
1693
|
SYNC_MAIN_MAIN_PREFERRED_PATHS = [".pan/continues", ".pan/specs"];
|
|
1544
|
-
__dirname = dirname(fileURLToPath(import.meta.url));
|
|
1545
|
-
MERGE_HISTORY_DIR = join(join(OVERDECK_HOME, "specialists"), "merge-agent");
|
|
1546
|
-
MERGE_HISTORY_FILE = join(MERGE_HISTORY_DIR, "history.jsonl");
|
|
1694
|
+
__dirname = dirname$1(fileURLToPath(import.meta.url));
|
|
1695
|
+
MERGE_HISTORY_DIR = join$1(join$1(OVERDECK_HOME, "specialists"), "merge-agent");
|
|
1696
|
+
MERGE_HISTORY_FILE = join$1(MERGE_HISTORY_DIR, "history.jsonl");
|
|
1547
1697
|
_completedPostMerge = /* @__PURE__ */ new Set();
|
|
1548
1698
|
_postMergeInFlight = /* @__PURE__ */ new Map();
|
|
1549
1699
|
GIT_PATTERNS = [
|
|
@@ -1592,4 +1742,4 @@ var init_merge_agent = __esmMin((() => {
|
|
|
1592
1742
|
//#endregion
|
|
1593
1743
|
export { init_operations as C, gitPush as S, listGitOperationsSync as T, scanGitPatterns as _, init_merge_agent as a, triggerPostMergeReleaseIfConfigured as b, isSyncMainMainPreferredPath as c, parseAgentOutput as d, postMergeLifecycle as f, scanForConflictMarkers as g, salvageStrandedMerge as h, captureTmuxOutput as i, logMergeHistory as l, runProjectQualityGates as m, GIT_PATTERNS as n, isAutoCommitExcludedPath as o, resetPostMergeState as p, autoCommitWorkspaceChangesBeforeSync as r, isMergeAgentRunning as s, AUTO_COMMIT_EXCLUDED_PATHS as t, notifyTldrDaemon as u, sendMessageToAgent as v, init_git_activity as w, MainDivergedError as x, syncMainIntoWorkspace as y };
|
|
1594
1744
|
|
|
1595
|
-
//# sourceMappingURL=merge-agent-
|
|
1745
|
+
//# sourceMappingURL=merge-agent-BLUgRsz3.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { _ as scanGitPatterns, a as init_merge_agent, b as triggerPostMergeReleaseIfConfigured, c as isSyncMainMainPreferredPath, d as parseAgentOutput, f as postMergeLifecycle, g as scanForConflictMarkers, h as salvageStrandedMerge, i as captureTmuxOutput, l as logMergeHistory, m as runProjectQualityGates, n as GIT_PATTERNS, o as isAutoCommitExcludedPath, p as resetPostMergeState, r as autoCommitWorkspaceChangesBeforeSync, s as isMergeAgentRunning, t as AUTO_COMMIT_EXCLUDED_PATHS, u as notifyTldrDaemon, v as sendMessageToAgent, y as syncMainIntoWorkspace } from "./merge-agent-
|
|
1
|
+
import { _ as scanGitPatterns, a as init_merge_agent, b as triggerPostMergeReleaseIfConfigured, c as isSyncMainMainPreferredPath, d as parseAgentOutput, f as postMergeLifecycle, g as scanForConflictMarkers, h as salvageStrandedMerge, i as captureTmuxOutput, l as logMergeHistory, m as runProjectQualityGates, n as GIT_PATTERNS, o as isAutoCommitExcludedPath, p as resetPostMergeState, r as autoCommitWorkspaceChangesBeforeSync, s as isMergeAgentRunning, t as AUTO_COMMIT_EXCLUDED_PATHS, u as notifyTldrDaemon, v as sendMessageToAgent, y as syncMainIntoWorkspace } from "./merge-agent-BLUgRsz3.js";
|
|
2
2
|
init_merge_agent();
|
|
3
3
|
export { AUTO_COMMIT_EXCLUDED_PATHS, GIT_PATTERNS, autoCommitWorkspaceChangesBeforeSync, captureTmuxOutput, isAutoCommitExcludedPath, isMergeAgentRunning, isSyncMainMainPreferredPath, logMergeHistory, notifyTldrDaemon, parseAgentOutput, postMergeLifecycle, resetPostMergeState, runProjectQualityGates, salvageStrandedMerge, scanForConflictMarkers, scanGitPatterns, sendMessageToAgent, syncMainIntoWorkspace, triggerPostMergeReleaseIfConfigured };
|