@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
|
@@ -30,12 +30,12 @@ curl -X POST http://localhost:3011/api/issues/PAN-XXX/sync-main
|
|
|
30
30
|
## What It Does
|
|
31
31
|
|
|
32
32
|
1. Checks for uncommitted changes (blocks if any — must commit, explicitly discard, or surface to the operator first; agents never `git stash`)
|
|
33
|
-
2.
|
|
34
|
-
3.
|
|
35
|
-
4.
|
|
36
|
-
5.
|
|
37
|
-
6. If
|
|
38
|
-
7.
|
|
33
|
+
2. Resolves the workspace's required git repos; monorepos produce one repo root
|
|
34
|
+
3. Cleans up stale git locks in each repo
|
|
35
|
+
4. Fetches and merges each repo's configured target branch sequentially in config order
|
|
36
|
+
5. Stops at the first failed or conflicted repo and marks later repos skipped
|
|
37
|
+
6. If clean: reports aggregate commit/file totals plus one result per repo
|
|
38
|
+
7. If conflicts remain: aborts that repo's merge and reports its conflict files
|
|
39
39
|
|
|
40
40
|
## Outcomes
|
|
41
41
|
|
|
@@ -44,14 +44,15 @@ curl -X POST http://localhost:3011/api/issues/PAN-XXX/sync-main
|
|
|
44
44
|
| Already up to date | Main has no new commits since last sync |
|
|
45
45
|
| Success (N commits) | Clean merge or agent-resolved conflicts |
|
|
46
46
|
| Uncommitted changes | Commit or discard workspace changes first |
|
|
47
|
-
| Conflict (unresolvable) |
|
|
47
|
+
| Conflict (unresolvable) | The failing repo's merge is aborted and its conflict files are reported |
|
|
48
|
+
| Per-repo / skipped | Polyrepo output shows each repo's result; repos after the first failure are skipped |
|
|
48
49
|
|
|
49
50
|
## Design Decisions
|
|
50
51
|
|
|
51
52
|
- **Merge, not rebase** — Rebase rewrites SHAs and requires force-push. Merge commits serve as audit markers.
|
|
52
53
|
- **No tests/builds** — Feature branch is WIP. Running tests after sync would fail on pre-existing issues.
|
|
53
54
|
- **No push to remote** — This is a local workspace operation only.
|
|
54
|
-
- **
|
|
55
|
+
- **Sequential polyrepo sync** — Required repos sync in config order. The first failure stops iteration; earlier merges remain, later repos are skipped, and output reports every repo's result.
|
|
55
56
|
|
|
56
57
|
## Examples
|
|
57
58
|
|
|
@@ -86,7 +86,11 @@ don't appear via `/api/issues` filtering.
|
|
|
86
86
|
### 1. Generate the table
|
|
87
87
|
|
|
88
88
|
Run this script. It gets the row universe from `GET /api/pipeline/membership`,
|
|
89
|
-
then joins issue titles, review status, tmux, and agent state as annotations.
|
|
89
|
+
then joins issue titles, review status, tmux, and agent state as annotations. A
|
|
90
|
+
bare array is a successful answer. An HTTP 200 object with
|
|
91
|
+
`status: "unavailable"` is a typed blind spot; show its `projectKey`, `reason`,
|
|
92
|
+
and `message`, then stop instead of deriving membership from another source.
|
|
93
|
+
HTTP 503 means the first snapshot is still loading and may be retried later.
|
|
90
94
|
|
|
91
95
|
```bash
|
|
92
96
|
python3 - <<'PY'
|
|
@@ -100,6 +104,11 @@ issues_data = json.loads(subprocess.check_output(['curl','-s','http://localhost:
|
|
|
100
104
|
membership = json.loads(subprocess.check_output([
|
|
101
105
|
'curl','-s','http://localhost:3011/api/pipeline/membership?project=overdeck'
|
|
102
106
|
]))
|
|
107
|
+
if isinstance(membership, dict) and membership.get('status') == 'unavailable':
|
|
108
|
+
raise SystemExit(
|
|
109
|
+
'PIPELINE MEMBERSHIP UNAVAILABLE: '
|
|
110
|
+
f"{membership.get('projectKey')} — {membership.get('reason')}: {membership.get('message')}"
|
|
111
|
+
)
|
|
103
112
|
issues_by_id = {(i.get('identifier') or '').upper(): i for i in issues_data}
|
|
104
113
|
panissues = []
|
|
105
114
|
for member in membership:
|
|
@@ -14,6 +14,7 @@ Run from the workspace root:
|
|
|
14
14
|
```bash
|
|
15
15
|
pan workspace add-repo <workspace-id> <repo-name> [repo-name...]
|
|
16
16
|
pan workspace add-repo <workspace-id> --group <group-name>
|
|
17
|
+
pan workspace add-repo <workspace-id> --new <git-url>
|
|
17
18
|
```
|
|
18
19
|
|
|
19
20
|
Examples:
|
|
@@ -25,8 +26,11 @@ pan workspace add-repo int-123 int-provider-a int-canonical-to-hs
|
|
|
25
26
|
# Add a named group
|
|
26
27
|
pan workspace add-repo int-123 --group simphony
|
|
27
28
|
|
|
28
|
-
# Add all repos
|
|
29
|
+
# Add all configured repos
|
|
29
30
|
pan workspace add-repo int-123 --group all
|
|
31
|
+
|
|
32
|
+
# Register a repo created as part of this issue
|
|
33
|
+
pan workspace add-repo int-123 --new git@github.com:acme/new-service.git
|
|
30
34
|
```
|
|
31
35
|
|
|
32
36
|
## How to decide which repos you need
|
|
@@ -40,7 +44,18 @@ pan workspace add-repo int-123 --group all
|
|
|
40
44
|
The new repos appear as subdirectories in the workspace with feature branches ready.
|
|
41
45
|
Run git commands inside each repo subdirectory.
|
|
42
46
|
|
|
47
|
+
## New deliverable repositories
|
|
48
|
+
|
|
49
|
+
Run `--new <git-url>` before cloning or committing in a repository created during the issue. Overdeck clones the project-level source repo, creates the issue feature worktree, and registers it so review, inspection, and merge include it.
|
|
50
|
+
|
|
51
|
+
If the repo name inferred from the URL is not suitable, pass the workspace directory name before `--new`:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
pan workspace add-repo int-123 service --new git@github.com:acme/new-service.git
|
|
55
|
+
```
|
|
56
|
+
|
|
43
57
|
## Notes
|
|
44
58
|
|
|
59
|
+
- An unknown repo name without `--new` fails instead of silently reporting success
|
|
45
60
|
- Meta repos (symlinked) are readonly — do NOT commit changes to them
|
|
46
61
|
- Use `--dry-run` first to see what would be added without making changes
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { Bn as clearAgentPausedSync, Hn as clearAgentTroubledSync, Xn as init_agent_state, Yn as getAgentStateSync, dr as setAgentPausedSync } from "./queries-CjNIf-Ub.js";
|
|
2
|
-
init_agent_state();
|
|
3
|
-
export { clearAgentPausedSync, clearAgentTroubledSync, getAgentStateSync, setAgentPausedSync };
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { $ as appendActivity, $n as isRole, $t as OHMYPI_AGENT_READY_TIMEOUT_SECONDS, An as buildDefaultResumeContinueMessage, Ar as saveAgentRuntimeState, At as deliverAgentPermissionDecision, B as detectCrashedAgents, Bn as clearAgentPausedSync, Bt as assertWorkspaceStackHealthyForSpawn, C as replayCrashedStandingAgent, Cn as getProviderEnvForModel, Cr as normalizeAgentId, Dr as getAgentRuntimeState, Er as waitForReadySignal, Fn as writeChannelsBridgeMcpConfig, G as resumeAgent, Gn as getAgentDir, Gt as transitionIssueToInProgress, H as restartAgent, Hn as clearAgentTroubledSync, In as GOVERNOR_SLOT_PAUSE_REASON_PREFIX, Jn as getAgentStateFilePath, Kt as transitionIssueToInReview, Ln as SESSION_EXITED_BEFORE_KICKOFF, Mn as decideChannelsForWorkAgent, Mt as deliverResumeMessageWithTranscriptConfirmation, Nn as decideSupervisorForWorkAgent, Nt as setAgentDeliveryMethod, Or as getAgentRuntimeStateSync, Pn as dismissDevChannelsDialog, Qn as isAgentTroubled, Rn as __testInternals, S as contextWindowForModel, Sn as determineModel, Sr as isQualifiedAgentId, T as shouldReplayCompactAtTierRunBoundary, Tn as getProviderTmuxFlags, Tr as waitForAgentIdle, U as buildCompactRecoverySeed, Un as clearYieldForResumeSync, V as recoverAgent, Vn as clearAgentTroubled, Vt as buildAgentLaunchConfig, Wt as retrieveSpawnTimeMemoryContext, X as messageAgent, Yn as getAgentStateSync, Zn as isAgentPaused, a as listRunningAgentsSync, an as getProviderAuthMode, ar as recordAgentFailureSync, at as saveSessionId, b as init_agents, bn as buildCavemanExports, cn as injectPiConversationMemory, cr as saveAgentState, dn as waitForPromptReady, dr as setAgentPausedSync, en as describeOhmypiSpawnFailure, et as getActivity, fr as setAgentYieldedSync, ft as stopAgent, i as listRunningAgents, ir as recordAgentFailure, jn as buildResumeContinueMessage, jt as deliverInitialPromptWithRetry, kt as deliverAgentMessage, ln as roleAgentDefinitionPath, lr as saveAgentStateSync, lt as spawnAgent, mr as writeAgentStateJsonSync, nn as getAgentRuntimeBaseCommand, nr as markAgentStoppedState, nt as getLatestSessionIdSync, o as warnOnBareNumericIssueIds, on as getRoleRuntimeBaseCommand, pr as wipeAgentStateDirs, pt as stopAgentSync, qn as getAgentState, r as listAgentStates, rr as markAgentTroubled, rt as getSessionId, sr as resetAgentFailureCount, t as dropLegacyAgentStatesMissingRoleAsync, tr as markAgentRunningState, tt as getLatestSessionId, ur as setAgentPaused, ut as spawnRun, w as replayStandingAgent, wn as getProviderExportsForModel, wr as resolveAgentTargetSync, x as compactAtTierRunBoundary, xn as buildSpawnEnvForModel, xr as clearReadySignal, z as autoRecoverAgents, zn as clearAgentPaused } from "./queries-CjNIf-Ub.js";
|
|
2
|
-
init_agents();
|
|
3
|
-
export { GOVERNOR_SLOT_PAUSE_REASON_PREFIX, OHMYPI_AGENT_READY_TIMEOUT_SECONDS, SESSION_EXITED_BEFORE_KICKOFF, __testInternals, appendActivity, assertWorkspaceStackHealthyForSpawn, autoRecoverAgents, buildAgentLaunchConfig, buildCavemanExports, buildCompactRecoverySeed, buildDefaultResumeContinueMessage, buildResumeContinueMessage, buildSpawnEnvForModel, clearAgentPaused, clearAgentPausedSync, clearAgentTroubled, clearAgentTroubledSync, clearReadySignal, clearYieldForResumeSync, compactAtTierRunBoundary, contextWindowForModel, decideChannelsForWorkAgent, decideSupervisorForWorkAgent, deliverAgentMessage, deliverAgentPermissionDecision, deliverInitialPromptWithRetry, deliverResumeMessageWithTranscriptConfirmation, describeOhmypiSpawnFailure, detectCrashedAgents, determineModel, dismissDevChannelsDialog, dropLegacyAgentStatesMissingRoleAsync, getActivity, getAgentDir, getAgentRuntimeBaseCommand, getAgentRuntimeState, getAgentRuntimeStateSync, getAgentState, getAgentStateFilePath, getAgentStateSync, getLatestSessionId, getLatestSessionIdSync, getProviderAuthMode, getProviderEnvForModel, getProviderExportsForModel, getProviderTmuxFlags, getRoleRuntimeBaseCommand, getSessionId, injectPiConversationMemory, isAgentPaused, isAgentTroubled, isQualifiedAgentId, isRole, listAgentStates, listRunningAgents, listRunningAgentsSync, markAgentRunningState, markAgentStoppedState, markAgentTroubled, messageAgent, normalizeAgentId, recordAgentFailure, recordAgentFailureSync, recoverAgent, replayCrashedStandingAgent, replayStandingAgent, resetAgentFailureCount, resolveAgentTargetSync, restartAgent, resumeAgent, retrieveSpawnTimeMemoryContext, roleAgentDefinitionPath, saveAgentRuntimeState, saveAgentState, saveAgentStateSync, saveSessionId, setAgentDeliveryMethod, setAgentPaused, setAgentPausedSync, setAgentYieldedSync, shouldReplayCompactAtTierRunBoundary, spawnAgent, spawnRun, stopAgent, stopAgentSync, transitionIssueToInProgress, transitionIssueToInReview, waitForAgentIdle, waitForPromptReady, waitForReadySignal, warnOnBareNumericIssueIds, wipeAgentStateDirs, writeAgentStateJsonSync, writeChannelsBridgeMcpConfig };
|
package/server/cli-B86rejVV.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import "./config-yaml-DySPNmKN.js";
|
|
2
|
-
import { E as handleAgentStoppedForOrphanReviewerSessions, T as handleAgentStoppedEvent, mt as handleWorkCompleted, pt as handleReviewCoordinatorDied, w as handleAgentHeartbeatDeadEvent } from "./deacon-CU_cAYSR.js";
|
|
3
|
-
import "./deacon-swarm-BXZZ1Z2-.js";
|
|
4
|
-
export { handleAgentHeartbeatDeadEvent, handleAgentStoppedEvent, handleAgentStoppedForOrphanReviewerSessions, handleReviewCoordinatorDied, handleWorkCompleted };
|
package/server/dist-Bzy0y69j.js
DELETED
package/server/dod-C6n9RV3G.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
//#region ../../lib/lifecycle/dod.ts
|
|
2
|
-
const DOD_ROWS = [
|
|
3
|
-
{
|
|
4
|
-
id: "review",
|
|
5
|
-
num: 1,
|
|
6
|
-
title: "Review passed",
|
|
7
|
-
expected: "reviewStatus: passed",
|
|
8
|
-
overridable: true
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
id: "tests",
|
|
12
|
-
num: 2,
|
|
13
|
-
title: "Tests passed",
|
|
14
|
-
expected: "testStatus: passed",
|
|
15
|
-
overridable: true
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
id: "verification",
|
|
19
|
-
num: 3,
|
|
20
|
-
title: "Verification green on the branch",
|
|
21
|
-
expected: "verificationStatus: passed at lastVerifiedCommit",
|
|
22
|
-
overridable: true
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
id: "merged",
|
|
26
|
-
num: 4,
|
|
27
|
-
title: "Merged to main",
|
|
28
|
-
expected: "PR merged on the forge",
|
|
29
|
-
overridable: true
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
id: "post-merge",
|
|
33
|
-
num: 5,
|
|
34
|
-
title: "Post-merge lifecycle ran",
|
|
35
|
-
expected: "agents paused, workspace stack stopped, and verifying-on-main label applied",
|
|
36
|
-
overridable: true
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
id: "main-verify",
|
|
40
|
-
num: 6,
|
|
41
|
-
title: "Verified on main",
|
|
42
|
-
expected: "merged commit verified on main",
|
|
43
|
-
overridable: true
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
id: "deploy",
|
|
47
|
-
num: 7,
|
|
48
|
-
title: "Deployed",
|
|
49
|
-
expected: "live server build includes the merged commit",
|
|
50
|
-
overridable: true
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
id: "teardown",
|
|
54
|
-
num: 8,
|
|
55
|
-
title: "Close-out teardown verified",
|
|
56
|
-
expected: "workspace and configured branches removed, planning archived, issue closed, and Docker network removed",
|
|
57
|
-
overridable: false
|
|
58
|
-
}
|
|
59
|
-
];
|
|
60
|
-
function acceptFlagFor(row) {
|
|
61
|
-
return `--accept-${row.id}`;
|
|
62
|
-
}
|
|
63
|
-
//#endregion
|
|
64
|
-
export { acceptFlagFor as n, DOD_ROWS as t };
|
|
65
|
-
|
|
66
|
-
//# sourceMappingURL=dod-C6n9RV3G.js.map
|
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
import { Tn as init_projects, fn as findProjectByPathSync, vn as getProjectSwarmHotspots } from "./config-yaml-DySPNmKN.js";
|
|
2
|
-
import { c as getReviewStatusSync, l as init_review_status, m as mergeGateEligibility } from "./review-status-kZj_KyCk.js";
|
|
3
|
-
import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-DHv5pSDT.js";
|
|
4
|
-
import { l as init_dag, r as compileGlob } from "./dag-B1ucnjDU.js";
|
|
5
|
-
import { n as computeIssueFootprint, r as init_swarm_readiness } from "./swarm-readiness-DlP_UjHq.js";
|
|
6
|
-
import { c as classifyIssue, h as isAutoPickable, m as init_pickup } from "./pickup-DUCLWrJY.js";
|
|
7
|
-
import { Effect } from "effect";
|
|
8
|
-
import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
|
|
9
|
-
//#region ../../lib/flywheel-merge-order.ts
|
|
10
|
-
init_review_status();
|
|
11
|
-
init_tracker_utils();
|
|
12
|
-
init_pickup();
|
|
13
|
-
init_dag();
|
|
14
|
-
init_swarm_readiness();
|
|
15
|
-
init_projects();
|
|
16
|
-
function issueNumber(issueId) {
|
|
17
|
-
const match = issueId.match(/\d+$/);
|
|
18
|
-
return match ? parseInt(match[0], 10) : 0;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* PAN-1691 conflict-aware merge order. Disjoint (no-conflict) items come first
|
|
22
|
-
* so they can batch through in a single verification pass; then conflicting
|
|
23
|
-
* items broadest-file-footprint first, so the remaining cluster members rebase
|
|
24
|
-
* once onto the worst offender instead of repeatedly. Issue number is the
|
|
25
|
-
* stable tiebreak within each tier. Pure — exported for testing.
|
|
26
|
-
*/
|
|
27
|
-
function orderMergeCandidates(items) {
|
|
28
|
-
return [...items].sort((a, b) => {
|
|
29
|
-
const aConf = a.conflictCount > 0 ? 1 : 0;
|
|
30
|
-
const bConf = b.conflictCount > 0 ? 1 : 0;
|
|
31
|
-
if (aConf !== bConf) return aConf - bConf;
|
|
32
|
-
if (aConf === 1 && a.footprint !== b.footprint) return b.footprint - a.footprint;
|
|
33
|
-
return issueNumber(a.issueId) - issueNumber(b.issueId);
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
function declaredIssueFootprint(issueId, doc) {
|
|
37
|
-
return {
|
|
38
|
-
issueId,
|
|
39
|
-
files: computeIssueFootprint(doc),
|
|
40
|
-
source: "declared"
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
function pathMatchesAnyCompiled(filePath, patterns) {
|
|
44
|
-
return patterns.some((pattern) => pattern.regex.test(filePath) || pattern.exactDirectory === filePath);
|
|
45
|
-
}
|
|
46
|
-
function normalizedFootprintFiles(files, hotspots) {
|
|
47
|
-
const normalized = /* @__PURE__ */ new Set();
|
|
48
|
-
for (const file of files) {
|
|
49
|
-
if (!file || pathMatchesAnyCompiled(file, hotspots)) continue;
|
|
50
|
-
normalized.add(file);
|
|
51
|
-
}
|
|
52
|
-
return normalized;
|
|
53
|
-
}
|
|
54
|
-
function sourcePriority(source) {
|
|
55
|
-
return source === "actual" ? 2 : 1;
|
|
56
|
-
}
|
|
57
|
-
function computePredictedConflictSignals(footprints, options = {}) {
|
|
58
|
-
const hotspots = (options.hotspots ?? []).map(compileGlob);
|
|
59
|
-
const byIssue = /* @__PURE__ */ new Map();
|
|
60
|
-
for (const footprint of footprints) {
|
|
61
|
-
const files = normalizedFootprintFiles(footprint.files, hotspots);
|
|
62
|
-
const current = byIssue.get(footprint.issueId);
|
|
63
|
-
if (!current || sourcePriority(footprint.source) > sourcePriority(current.source)) {
|
|
64
|
-
byIssue.set(footprint.issueId, {
|
|
65
|
-
issueId: footprint.issueId,
|
|
66
|
-
source: footprint.source,
|
|
67
|
-
files
|
|
68
|
-
});
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
if (sourcePriority(footprint.source) === sourcePriority(current.source)) for (const file of files) current.files.add(file);
|
|
72
|
-
}
|
|
73
|
-
const conflictsMap = /* @__PURE__ */ new Map();
|
|
74
|
-
const entries = Array.from(byIssue.values());
|
|
75
|
-
for (let i = 0; i < entries.length; i++) for (let j = i + 1; j < entries.length; j++) {
|
|
76
|
-
const left = entries[i];
|
|
77
|
-
const right = entries[j];
|
|
78
|
-
if (![...left.files].some((file) => right.files.has(file))) continue;
|
|
79
|
-
if (!conflictsMap.has(left.issueId)) conflictsMap.set(left.issueId, /* @__PURE__ */ new Set());
|
|
80
|
-
if (!conflictsMap.has(right.issueId)) conflictsMap.set(right.issueId, /* @__PURE__ */ new Set());
|
|
81
|
-
conflictsMap.get(left.issueId).add(right.issueId);
|
|
82
|
-
conflictsMap.get(right.issueId).add(left.issueId);
|
|
83
|
-
}
|
|
84
|
-
return entries.map((entry) => {
|
|
85
|
-
const conflictsWith = [...conflictsMap.get(entry.issueId) ?? []].sort((a, b) => issueNumber(a) - issueNumber(b));
|
|
86
|
-
return {
|
|
87
|
-
issueId: entry.issueId,
|
|
88
|
-
source: entry.source,
|
|
89
|
-
footprint: entry.files.size,
|
|
90
|
-
conflictCount: conflictsWith.length,
|
|
91
|
-
conflictsWith
|
|
92
|
-
};
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
const branchExists = (branch, cwd) => Effect.gen(function* () {
|
|
96
|
-
const spawner = yield* ChildProcessSpawner.ChildProcessSpawner;
|
|
97
|
-
const cmd = ChildProcess.make("git", [
|
|
98
|
-
"rev-parse",
|
|
99
|
-
"--verify",
|
|
100
|
-
branch
|
|
101
|
-
], { cwd });
|
|
102
|
-
return yield* spawner.exitCode(cmd).pipe(Effect.map((code) => code === 0), Effect.orElseSucceed(() => false));
|
|
103
|
-
});
|
|
104
|
-
const changedFilesVsMain = (branch, cwd, base = "main") => Effect.gen(function* () {
|
|
105
|
-
const spawner = yield* ChildProcessSpawner.ChildProcessSpawner;
|
|
106
|
-
const cmd = ChildProcess.make("git", [
|
|
107
|
-
"diff",
|
|
108
|
-
"--name-only",
|
|
109
|
-
`${base}...${branch}`
|
|
110
|
-
], { cwd });
|
|
111
|
-
return yield* spawner.string(cmd).pipe(Effect.map((stdout) => new Set(stdout.trim().split("\n").filter(Boolean))), Effect.orElseSucceed(() => /* @__PURE__ */ new Set()));
|
|
112
|
-
});
|
|
113
|
-
/**
|
|
114
|
-
* Verbs that mean "at the merge gate" (PAN-1736). Orchestrators have
|
|
115
|
-
* legitimately emitted both 'shipping' and 'merging' for merge-ready issues;
|
|
116
|
-
* filtering on one alone silently rendered an empty queue with five ready
|
|
117
|
-
* items in RUN-18. Contract documented next to FlywheelPipelineVerb in
|
|
118
|
-
* packages/contracts/src/flywheel.ts — extend BOTH places together.
|
|
119
|
-
*/
|
|
120
|
-
const MERGE_GATE_VERBS = new Set(["shipping", "merging"]);
|
|
121
|
-
/** Default eligibility: the issue's review-status record, read synchronously. */
|
|
122
|
-
function reviewRecordEligibility(issueId) {
|
|
123
|
-
return mergeGateEligibility(getReviewStatusSync(issueId.toUpperCase()));
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Server-side PR URL resolution for merge-queue items: prefer the review
|
|
127
|
-
* status record, fall back to the GitHub repo + PR number — the browser never
|
|
128
|
-
* guesses repo slugs.
|
|
129
|
-
*/
|
|
130
|
-
function resolveMergeQueuePrUrl(item) {
|
|
131
|
-
const issueId = item.issueId.toUpperCase();
|
|
132
|
-
const reviewStatus = getReviewStatusSync(issueId);
|
|
133
|
-
if (reviewStatus?.prUrl) return reviewStatus.prUrl;
|
|
134
|
-
const prNumber = reviewStatus?.prNumber ?? item.pr;
|
|
135
|
-
if (prNumber === void 0) return void 0;
|
|
136
|
-
const githubIssue = resolveGitHubIssueSync(issueId);
|
|
137
|
-
if (!githubIssue.isGitHub) return void 0;
|
|
138
|
-
return `https://github.com/${githubIssue.owner}/${githubIssue.repo}/pull/${prNumber}`;
|
|
139
|
-
}
|
|
140
|
-
const computeMergeQueue = (items, projectRoot, options = {}) => Effect.gen(function* () {
|
|
141
|
-
const eligibility = options.eligibility ?? reviewRecordEligibility;
|
|
142
|
-
const candidates = items.filter((item) => {
|
|
143
|
-
if (!MERGE_GATE_VERBS.has(item.verb)) return false;
|
|
144
|
-
const gate = eligibility(item.issueId);
|
|
145
|
-
if (!gate.eligible) {
|
|
146
|
-
options.onIneligible?.(item.issueId, gate.reason ?? "not eligible");
|
|
147
|
-
return false;
|
|
148
|
-
}
|
|
149
|
-
return true;
|
|
150
|
-
});
|
|
151
|
-
if (candidates.length === 0) return [];
|
|
152
|
-
const gitConcurrency = Math.max(1, Math.floor(options.gitConcurrency ?? 4));
|
|
153
|
-
const branches = candidates.map((item) => `feature/${item.issueId.toLowerCase()}`);
|
|
154
|
-
const existsFlags = yield* Effect.all(branches.map((branch) => branchExists(branch, projectRoot)), { concurrency: gitConcurrency });
|
|
155
|
-
const existing = candidates.map((item, i) => ({
|
|
156
|
-
item,
|
|
157
|
-
branch: branches[i],
|
|
158
|
-
exists: existsFlags[i]
|
|
159
|
-
})).filter(({ exists }) => exists);
|
|
160
|
-
if (existing.length === 0) return [];
|
|
161
|
-
const fileSets = yield* Effect.all(existing.map(({ branch }) => changedFilesVsMain(branch, projectRoot)), { concurrency: gitConcurrency });
|
|
162
|
-
const hotspots = options.hotspots ?? getProjectSwarmHotspots(findProjectByPathSync(projectRoot));
|
|
163
|
-
const conflictSignals = computePredictedConflictSignals(existing.map((e, i) => ({
|
|
164
|
-
issueId: e.item.issueId,
|
|
165
|
-
source: "actual",
|
|
166
|
-
files: fileSets[i]
|
|
167
|
-
})), { hotspots });
|
|
168
|
-
const signalByIssue = new Map(conflictSignals.map((signal) => [signal.issueId, signal]));
|
|
169
|
-
const conflictsMap = new Map(conflictSignals.map((signal) => [signal.issueId, new Set(signal.conflictsWith)]));
|
|
170
|
-
return orderMergeCandidates(existing.map((e, i) => ({
|
|
171
|
-
item: e.item,
|
|
172
|
-
issueId: e.item.issueId,
|
|
173
|
-
footprint: signalByIssue.get(e.item.issueId)?.footprint ?? fileSets[i].size,
|
|
174
|
-
conflictCount: signalByIssue.get(e.item.issueId)?.conflictCount ?? 0
|
|
175
|
-
}))).map(({ item, conflictCount }, idx) => ({
|
|
176
|
-
issueId: item.issueId,
|
|
177
|
-
title: item.title,
|
|
178
|
-
branchName: `feature/${item.issueId.toLowerCase()}`,
|
|
179
|
-
pr: item.pr,
|
|
180
|
-
prUrl: options.getPrUrl?.(item),
|
|
181
|
-
mergeOrder: idx + 1,
|
|
182
|
-
conflictsWith: [...conflictsMap.get(item.issueId) ?? []],
|
|
183
|
-
batchGroup: conflictCount === 0 ? "batch" : "serialize"
|
|
184
|
-
}));
|
|
185
|
-
});
|
|
186
|
-
/**
|
|
187
|
-
* PAN-1866: Pick the highest-ranked eligible issue from a sequence node list.
|
|
188
|
-
*
|
|
189
|
-
* Eligibility rules:
|
|
190
|
-
* - gate must not be 'blocked' (the `vetoed` pickup state)
|
|
191
|
-
* - no `vetoed` label — an absolute operator hard-stop (PAN-2006)
|
|
192
|
-
* - not in-pipeline (active review/work/test)
|
|
193
|
-
* - no parked labels (`parked`; legacy `needs-design`/`needs-discussion`)
|
|
194
|
-
* - not in the optional exclusion set (e.g. already running agents)
|
|
195
|
-
* - FR-14: must have an xBRIEF spec (ready) or a PRD draft (hasPrd)
|
|
196
|
-
*
|
|
197
|
-
* Returns null when no eligible issue is found.
|
|
198
|
-
*/
|
|
199
|
-
function pickFromSequence(nodes, opts) {
|
|
200
|
-
const lookups = {
|
|
201
|
-
labels: opts?.issueLabels ?? (() => []),
|
|
202
|
-
isPlanned: opts?.isReadyOrHasPrd ?? (() => true),
|
|
203
|
-
isInPipeline: (issueId) => {
|
|
204
|
-
const reviewStatus = getReviewStatusSync(issueId.toUpperCase());
|
|
205
|
-
return reviewStatus !== null && reviewStatus.reviewStatus !== "pending" || (opts?.isInPipeline?.(issueId) ?? false);
|
|
206
|
-
}
|
|
207
|
-
};
|
|
208
|
-
const signalByIssue = new Map((opts?.predictedConflictSignals ?? []).map((signal) => [signal.issueId.toUpperCase(), signal]));
|
|
209
|
-
const eligible = [...nodes].sort((a, b) => a.rank - b.rank).filter((node) => {
|
|
210
|
-
const state = classifyIssue(node, lookups);
|
|
211
|
-
const activeBookMember = opts?.activeBookMembership?.has(node.issue.toUpperCase()) ?? false;
|
|
212
|
-
if (!isAutoPickable(opts?.requireReady ? state : {
|
|
213
|
-
...state,
|
|
214
|
-
ready: true
|
|
215
|
-
}, opts?.autoPickupBacklog ?? false, activeBookMember)) return false;
|
|
216
|
-
if (opts?.excludeIssueIds?.has(node.issue)) return false;
|
|
217
|
-
if (opts?.isAuthorizedIssue && !opts.isAuthorizedIssue(node.issue)) return false;
|
|
218
|
-
return true;
|
|
219
|
-
});
|
|
220
|
-
if (signalByIssue.size > 0) eligible.sort((a, b) => {
|
|
221
|
-
const aSignal = signalByIssue.get(a.issue.toUpperCase());
|
|
222
|
-
const bSignal = signalByIssue.get(b.issue.toUpperCase());
|
|
223
|
-
const aConflicts = aSignal?.conflictCount ?? 0;
|
|
224
|
-
const bConflicts = bSignal?.conflictCount ?? 0;
|
|
225
|
-
if (aConflicts !== bConflicts) return aConflicts - bConflicts;
|
|
226
|
-
return a.rank - b.rank;
|
|
227
|
-
});
|
|
228
|
-
for (const node of eligible) {
|
|
229
|
-
classifyIssue(node, lookups);
|
|
230
|
-
const signal = signalByIssue.get(node.issue.toUpperCase());
|
|
231
|
-
return {
|
|
232
|
-
issueId: node.issue,
|
|
233
|
-
rank: node.rank,
|
|
234
|
-
gate: node.gate,
|
|
235
|
-
planning: node.planning,
|
|
236
|
-
predictedConflictCount: signal?.conflictCount,
|
|
237
|
-
predictedConflictsWith: signal?.conflictsWith
|
|
238
|
-
};
|
|
239
|
-
}
|
|
240
|
-
return null;
|
|
241
|
-
}
|
|
242
|
-
//#endregion
|
|
243
|
-
export { declaredIssueFootprint as a, resolveMergeQueuePrUrl as c, computePredictedConflictSignals as i, reviewRecordEligibility as l, changedFilesVsMain as n, orderMergeCandidates as o, computeMergeQueue as r, pickFromSequence as s, MERGE_GATE_VERBS as t };
|
|
244
|
-
|
|
245
|
-
//# sourceMappingURL=flywheel-merge-order-UU0tiUld.js.map
|