@overdeck/desktop 0.45.23 → 0.46.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 +34 -0
- package/package.json +1 -1
- package/server/{acceptance-criteria-DOA0KgXx.js → acceptance-criteria-CCwFGICj.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-BBu6DSNm.js → advancing-selfheal-De1L-Sb4.js} +6 -6
- package/server/{agent-gc-BV1q_2EV.js → agent-gc-CBULruzm.js} +5 -5
- package/server/agent-state-VQk8fY9F.js +3 -0
- package/server/{agent-state-service-HoK8U4jW.js → agent-state-service-BlnSkRFA.js} +5 -5
- package/server/{agent-state-service-CnzFKSAQ.js → agent-state-service-hZpxIw1E.js} +1 -1
- package/server/agents-BKKkxKgK.js +3 -0
- package/server/{agents-B4Bjbkfv.js → agents-C5rWYhb6.js} +4 -4
- package/server/archive-planning-0FJ6Xd3b.js +2 -0
- package/server/{archive-planning-DYrYojxl.js → archive-planning-C0lAbNB_.js} +16 -24
- package/server/{artifact-index-jobs-C-xy7Z5v.js → artifact-index-jobs-ug6ZxIP5.js} +2 -2
- package/server/assemble-DnffNpOo.js +339 -0
- package/server/{backlog-auto-trigger-GtG71X8H.js → backlog-auto-trigger-Dh-i9PQf.js} +3 -3
- package/server/{behavior-B_-4EKF3.js → behavior-CfIg6pKp.js} +2 -2
- package/server/bridge-pool-patrol-CUFmjVDN.js +136 -0
- package/server/{briefing-freshness-DWdW7vUm.js → briefing-freshness-DHmCSLar.js} +2 -2
- package/server/{build-info-DgTqZkL5.js → build-info-BP160gU7.js} +1 -1
- package/server/{build-info-BT096lEl.js → build-info-CuFfxZxp.js} +5 -3
- package/server/{checkpoint-manager-DDqcGyu8.js → checkpoint-manager-DEWD82qK.js} +2 -2
- package/server/{checkpoint-manager-B7Bt29J0.js → checkpoint-manager-Dxh0FYsv.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-C-AXLfYT.js → checkpoints-CZvbtLnr.js} +2 -2
- package/server/{checkpoints-CpgCjAlN.js → checkpoints-DMTgXuLG.js} +1 -1
- package/server/{claude-hooks-provision-C8wdRnN1.js → claude-hooks-provision-CN-xo-do.js} +1 -1
- package/server/{claude-hooks-provision-but-_qGY.js → claude-hooks-provision-fvy4RD2b.js} +13 -2
- package/server/{claude-permissions-H_5wHQZQ.js → claude-permissions-CN0cSCPp.js} +2 -2
- package/server/{claude-settings-overlay-CbSz0Dvb.js → claude-settings-overlay-CJn35FHQ.js} +2 -2
- package/server/{claude-settings-overlay-BTENVmYf.js → claude-settings-overlay-Dabi9slj.js} +1 -1
- package/server/cli-DmXETsw-.js +3 -0
- package/server/{cli-vBeXbPrq.js → cli-oCWYA1pE.js} +9 -9
- package/server/{cliproxy-Bgb2XCqi.js → cliproxy-C8mB3KuB.js} +2 -2
- package/server/{cliproxy-DW0V86F8.js → cliproxy-PGwTX_o8.js} +1 -1
- package/server/{close-issue-Dn_4c4G8.js → close-issue-D5MF5GqF.js} +5 -5
- package/server/{closed-issue-reaper-CWpY2uBw.js → closed-issue-reaper-CJ24u0Zt.js} +1 -1
- package/server/{closed-issue-reaper-hANY_ehE.js → closed-issue-reaper-Cltx86x5.js} +37 -16
- package/server/{codex-Dg7Is5yb.js → codex-BdEsUFWh.js} +1 -1
- package/server/{codex-TmSi-yTv.js → codex-Drlf5Xhf.js} +37 -8
- package/server/{codex-parser-C4gSH-IR.js → codex-parser-DpB89Vqa.js} +2 -2
- package/server/compaction-continuation-K2AxQX4H.js +200 -0
- package/server/{config-DjLOdbgT.js → config-B2IMcBxx.js} +4 -3
- package/server/{config-DUIhMN_T.js → config-DV-grfQc.js} +1 -1
- package/server/{config-CCvjQf27.js → config-Dr3pW6w6.js} +2 -2
- package/server/{config-yaml-DvyMuOle.js → config-yaml-CmOPzmBb.js} +290 -22
- package/server/{conflict-gate-CmrYpa47.js → conflict-gate-B9cN3SBi.js} +4 -4
- package/server/{conflict-gate-BSJkNTdp.js → conflict-gate-Dh754uyA.js} +1 -1
- package/server/context-layers-D6LZo3l1.js +4 -0
- package/server/context-layers-dR5YxHYB.js +37 -0
- package/server/{control-settings-aP1ANIlI.js → control-settings-C7DUehE1.js} +49 -19
- package/server/{conversation-compaction-CNbTLB86.js → conversation-compaction-BoqdDXWF.js} +8 -8
- package/server/{conversation-compaction-DiG5zWQq.js → conversation-compaction-Dj4FAKoZ.js} +1 -1
- package/server/{conversation-service-Du-MTNpJ.js → conversation-service-5aCnq1zR.js} +331 -20
- package/server/conversation-service-BCxl4f8Z.js +3 -0
- package/server/{conversations-DbOs1e9Q.js → conversations-BUpYsOZg.js} +5 -5
- package/server/{conversations-6mPANqvL.js → conversations-C34dyIb9.js} +1 -1
- package/server/{cost-Ca0YTWDw.js → cost-Bgcub5kW.js} +12 -2
- package/server/{cost-CW4WSe72.js → cost-CvxRrucd.js} +3 -3
- package/server/{cost-sync-C0VdGme1.js → cost-sync-Dv3LUaNW.js} +3 -3
- package/server/{dag-CdOjJVDT.js → dag-ombYYt4s.js} +2 -2
- package/server/{dangerous-git-ops-CT-IypG3.js → dangerous-git-ops-BcJPC5Rr.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/deacon-DrXqT9LQ.js +4 -0
- package/server/{deacon-pRnyD5w9.js → deacon-hi9KLPLT.js} +2998 -2659
- package/server/{deacon-nudge-log-Bjg8U4Y9.js → deacon-nudge-log-BNBebzeL.js} +3 -3
- package/server/deacon-pending-lifecycle-Cpk0k7Hi.js +33 -0
- package/server/{deacon-swarm-DftYRDo8.js → deacon-swarm-DBxUaO-A.js} +13 -13
- package/server/deacon-swarm-I2JfX5Tg.js +2 -0
- package/server/deacon.js +14 -19
- package/server/dead-end-trip-CQcP70ND.js +13 -0
- package/server/delivery-Da0zEMY4.js +3 -0
- package/server/{deploy-patrol-Bjsho_ha.js → deploy-patrol-Df-Tmaq0.js} +69 -18
- package/server/deploy-queue-9SrhZR63.js +3 -0
- package/server/deploy-queue-UjKGYsDe.js +169 -0
- package/server/deploy-window-jOiPRHL0.js +3 -0
- package/server/{deploy-window-DeP_OIRk.js → deploy-window-rpqpWqHA.js} +40 -16
- package/server/{dev-supervisor-BpMoHlkR.js → dev-supervisor-CC46Ig8q.js} +2 -2
- package/server/{devcontainer-renderer-CtUgrVKW.js → devcontainer-renderer-68CSCRnu.js} +3 -3
- package/server/{dist-DyRx4cI7.js → dist-CJy72uEg.js} +1 -1
- package/server/dist-DSlxIU1H.js +3 -0
- package/server/{dist-src-BSoS7mkd.js → dist-src-Bik83hFi.js} +1 -1
- package/server/docker-BMVTSFL5.js +3 -0
- package/server/{docker-BK7HIcBj.js → docker-Dam7mbIB.js} +2 -2
- package/server/{dod-BrSfUHm0.js → dod-Dar-yheg.js} +8 -4
- package/server/durable-review-pipeline-CGZ5QBxh.js +17 -0
- package/server/durable-review-pipeline-jpgCJZFp.js +3 -0
- package/server/{ensure-devcontainer-DseivYEy.js → ensure-devcontainer-B057YA81.js} +4 -4
- package/server/{ensure-devcontainer-DRqaAkBR.js → ensure-devcontainer-C98V8yW-.js} +1 -1
- package/server/{esm-shims-CbI3BVkl.js → esm-shims-Br9BPdkR.js} +1 -1
- package/server/{event-store-Cr5PQwFC.js → event-store-ELqkVOn0.js} +1 -1
- package/server/{event-store-tdiY5eDZ.js → event-store-zY5MJHgF.js} +23 -4
- package/server/{events-CvvGK6LT.js → events-D6pyqhzM.js} +1 -1
- package/server/{events-CC1dgUpx.js → events-D9PR1IC0.js} +3 -3
- package/server/{factory-CynerjXO.js → factory-CRoOpGsF.js} +5 -5
- package/server/{feature-registry-population-B0pmAz0a.js → feature-registry-population--YUXU999.js} +4 -4
- package/server/{feature-registry-storage-_wUBRD3J.js → feature-registry-storage-BORBTo0y.js} +2 -2
- package/server/{features-Dhxz-wLc.js → features--nFkJY8v.js} +2 -2
- package/server/{feedback-target-iygZwmMc.js → feedback-target-C0ZzyHvU.js} +1 -1
- package/server/{feedback-target-CPS15Vte.js → feedback-target-Dt9BsapX.js} +8 -8
- package/server/{feedback-writer-C9b6ccN1.js → feedback-writer-BG0RUZiu.js} +5 -5
- package/server/{feedback-writer-qmiMbqTZ.js → feedback-writer-D1fm-5Z8.js} +1 -1
- package/server/flywheel-BekukH4i.js +2 -0
- package/server/flywheel-BiT3odRb.js +1092 -0
- package/server/flywheel-CLVB55Be.js +478 -0
- package/server/flywheel-merge-order-BJv1DZz1.js +462 -0
- package/server/flywheel-merge-order-BKw9o6ku.js +2 -0
- package/server/forge-CZbSg6Ds.js +383 -0
- package/server/forge-DK3blQb_.js +3 -0
- package/server/{from-CJ_aH5jD.js → from-D_4_dk7i.js} +1 -1
- package/server/{fts-db-CKgg0VKg.js → fts-db-BeOomFa-.js} +2 -2
- package/server/{fts-operations-BrL_VTRr.js → fts-operations-BdewJ_g9.js} +2 -2
- package/server/git-utils-CI6cwyyC.js +3 -0
- package/server/{git-utils-BVa07a4a.js → git-utils-ameCgDdy.js} +93 -3
- package/server/{github-app-CMBdIFBQ.js → github-app-CQ1Lo6LA.js} +19 -8
- package/server/{github-app-CPfoFAdV.js → github-app-DtAsvwzK.js} +1 -1
- package/server/{github-client--XVlDpwM.js → github-client-BfyDxuRN.js} +2 -2
- package/server/{github-client-B4QsdE-X.js → github-client-Cj0yl_07.js} +1 -1
- package/server/github-pr-lookup-BDq6Wznz.js +58 -0
- package/server/{harness-binary-CVio2m-u.js → harness-binary-DqkftwTb.js} +32 -6
- package/server/{harness-resolve-qHJBhy3Z.js → harness-resolve-CqMqM1Mb.js} +18 -9
- package/server/{health-events-C9B8y1Hm.js → health-events-CazRxJUS.js} +2 -2
- package/server/{health-events-CpfvuVmm.js → health-events-_xfTaOUs.js} +1 -1
- package/server/{hooks-DUXw8A0-.js → hooks-BO3QT1sn.js} +2 -2
- package/server/{hooks-ltecuFqZ.js → hooks-BnJsxlSq.js} +1 -1
- package/server/{hume-BEq0bUDg.js → hume-CDYJxqx-.js} +2 -2
- package/server/hume-Dq--7rOQ.js +3 -0
- package/server/{idle-stack-reaper-D7w9t3fE.js → idle-stack-reaper-BYqERdkE.js} +1 -1
- package/server/{idle-stack-reaper-w1ISSlhs.js → idle-stack-reaper-CnGx_PO_.js} +99 -6
- package/server/in-flight-guard-Bq3epG58.js +45 -0
- package/server/{infra-CzaSOgul.js → infra-BjuxvjdS.js} +80 -5
- package/server/{injection-oNZeoDhL.js → injection-DZxlV2al.js} +1 -1
- package/server/{injection-DZ0PfYa4.js → injection-UCf8EsjX.js} +191 -183
- package/server/{inspect-agent-DJKLWcVT.js → inspect-agent-6kylZnrm.js} +139 -82
- package/server/inspect-agent-BVwDrVrz.js +2 -0
- package/server/{internal-token-Bb4XeV2x.js → internal-token-DvMTQSOS.js} +2 -2
- package/server/{internal-token-DXdfprGr.js → internal-token-M9omeXM1.js} +1 -1
- package/server/{io-B3_AHDfr.js → io-VHvc0Ssp.js} +43 -26
- package/server/{issue-closed-zhdvQicO.js → issue-closed-B6KJkmHZ.js} +7 -7
- package/server/{issue-lifecycle-Dy4vd0Oa.js → issue-lifecycle-9gk3fnXN.js} +1 -1
- package/server/{issue-lifecycle-CreaCkjW.js → issue-lifecycle-C4Zj0WmE.js} +34 -28
- package/server/{issue-service-singleton-B5ushCvE.js → issue-service-singleton-DmCh7EHj.js} +10 -10
- package/server/{issue-service-singleton-DabvBWUp.js → issue-service-singleton-PMx8F1jr.js} +1 -1
- package/server/{issues-B6ToV6x1.js → issues-CgnQ1OGQ.js} +2 -2
- package/server/{jsonl-parser-Dhflo1SH.js → jsonl-parser-DJOH_O-w.js} +5 -4
- package/server/{label-cleanup-BKPJm4Hv.js → label-cleanup-Dv7AV_R1.js} +3 -3
- package/server/{label-reconciler-DdWbHEBu.js → label-reconciler--F85rufp.js} +4 -4
- package/server/{lifecycle-DfeyBDwA.js → lifecycle-CTdOWYMi.js} +2 -2
- package/server/{lifecycle-sycO16hj.js → lifecycle-DDN8ApVY.js} +6 -7
- package/server/{lifecycle-io-D8iNBcux.js → lifecycle-io-D-lGdzK3.js} +5 -5
- package/server/{lifecycle-io-Bsnr2K4F.js → lifecycle-io-D_zTLvP1.js} +1 -1
- package/server/{linear-client-D4zqMnX7.js → linear-client-BQU36QqE.js} +2 -2
- package/server/{linear-client-DqhDQO9k.js → linear-client-CY4O_Tu3.js} +1 -1
- package/server/linear-mcp-auth-BnU4TYfY.js +280 -0
- package/server/linear-mcp-auth-NYBq_oHZ.js +2 -0
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-C_ZEhbqI.js → merge-Bpx4jjht.js} +13 -11
- package/server/{merge-agent-XrB80vfT.js → merge-agent-DdMVSV2Y.js} +233 -83
- package/server/{merge-agent-BQM3a8z5.js → merge-agent-DrXa1CpW.js} +1 -1
- package/server/{merge-batch-Bwoyr8Je.js → merge-batch-C5q1c1GX.js} +1 -1
- package/server/merge-completeness-BMm8tMyZ.js +277 -0
- package/server/merge-completeness-D0ljXbk3.js +3 -0
- package/server/{merge-DK23JEdS.js → merge-idOG--29.js} +1 -1
- package/server/merge-ops-DdpTiEMt.js +2 -0
- package/server/merge-rebase-DGQpYJU3.js +2 -0
- package/server/{merge-rebase-C1KIVr0s.js → merge-rebase-xLnMlw5h.js} +3 -3
- package/server/merge-set-DH7ot3yz.js +89 -0
- package/server/merge-set-DzsOTBg5.js +3 -0
- package/server/{merge-sync-DZ9dojJn.js → merge-sync-CQ-LgZ1_.js} +406 -153
- package/server/merge-sync-Ca7F5JnQ.js +3 -0
- package/server/{merge-train-DxDfBTjr.js → merge-train-DTEMyIu4.js} +18 -8
- package/server/{merge-train-deps-CyYQUksx.js → merge-train-deps-CNPJzepw.js} +4 -4
- package/server/merge-verification-x3JO8Dtz.js +220 -0
- package/server/merged-docker-cleanup-worker-CTpC27Bs.js +107 -0
- package/server/merged-docker-cleanup-worker-Cdi9apm-.js +3 -0
- package/server/{multipart-parser-Dt8YPN5S.js → multipart-parser-IMSBfePV.js} +2 -2
- package/server/{no-resume-mode-Cx3K0hHi.js → no-resume-mode-C5ULAXwO.js} +1 -1
- package/server/node_modules/.package-lock.json +27 -27
- 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/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/README.md +5 -0
- package/server/node_modules/undici/docs/docs/api/Client.md +4 -0
- package/server/node_modules/undici/docs/docs/api/Dispatcher.md +6 -0
- package/server/node_modules/undici/docs/docs/api/Interceptors.md +59 -0
- package/server/node_modules/undici/docs/docs/api/MockAgent.md +27 -0
- package/server/node_modules/undici/docs/docs/api/MockPool.md +28 -1
- package/server/node_modules/undici/docs/docs/index.md +5 -0
- 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 +13 -2
- package/server/node_modules/undici/lib/core/util.js +6 -1
- package/server/node_modules/undici/lib/dispatcher/agent.js +3 -3
- package/server/node_modules/undici/lib/dispatcher/client-h1.js +42 -8
- package/server/node_modules/undici/lib/dispatcher/client-h2.js +34 -43
- package/server/node_modules/undici/lib/global.js +36 -16
- package/server/node_modules/undici/lib/handler/cache-handler.js +269 -61
- package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +13 -3
- package/server/node_modules/undici/lib/handler/redirect-handler.js +5 -2
- package/server/node_modules/undici/lib/handler/retry-handler.js +30 -4
- package/server/node_modules/undici/lib/interceptor/cache.js +159 -52
- package/server/node_modules/undici/lib/interceptor/decompress.js +9 -2
- package/server/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
- package/server/node_modules/undici/lib/mock/mock-utils.js +39 -10
- package/server/node_modules/undici/lib/util/cache.js +372 -68
- 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/lib/web/fetch/body.js +2 -1
- package/server/node_modules/undici/lib/web/fetch/response.js +1 -3
- package/server/node_modules/undici/package.json +2 -2
- package/server/node_modules/undici/types/client.d.ts +2 -2
- package/server/node_modules/undici/types/dispatcher.d.ts +3 -3
- package/server/node_modules/undici/types/mock-interceptor.d.ts +5 -1
- package/server/{orphan-proposed-reconciler-BTkDrl4R.js → orphan-proposed-reconciler-CWmOdM9-.js} +1 -1
- package/server/{orphan-proposed-reconciler-neK8dHQk.js → orphan-proposed-reconciler-Dg6U4ADZ.js} +24 -15
- package/server/package-lock.json +28 -28
- package/server/package.json +1 -1
- package/server/{pan-dir-DeVUgwA7.js → pan-dir-ubraCiUg.js} +24 -10
- package/server/{paths-_zEts6wc.js → paths-cXmOwSbh.js} +2 -2
- package/server/pending-lifecycle-claim-DEteYdS9.js +110 -0
- package/server/{pickup-Dd0Znxxy.js → pickup-D8xtG1J2.js} +17 -16
- package/server/pipeline-membership-BGSvkT2M.js +3 -0
- package/server/pipeline-membership-CrAPLYtf.js +57 -0
- package/server/{pipeline-membership-0HaEGDlH.js → pipeline-membership-gather-CET40frr.js} +177 -109
- package/server/pipeline-membership-gather-DTfcgxLl.js +3 -0
- package/server/{pipeline-notifier-D0ykk59O.js → pipeline-notifier-BuQ0e4hF.js} +2 -2
- package/server/{pipeline-notifier-6iCJplFZ.js → pipeline-notifier-ImNXknf0.js} +1 -1
- package/server/post-merge-lifecycle-worker-DbO10pum.js +50 -0
- package/server/{project-pipelines-2sK1apsO.js → project-pipelines-Bim6bThI.js} +2 -2
- package/server/project-repos-C0nuoBGv.js +98 -0
- package/server/project-repos-CRE6Ykow.js +3 -0
- package/server/projects-B03Wr-xc.js +3 -0
- package/server/{prompts-Dp4Tpk39.js → prompts-BEx08AIu.js} +2 -2
- package/server/{providers-DKkBXhxU.js → providers-D7IluJe0.js} +1 -1
- package/server/{providers-DV7ec8l7.js → providers-evXhiQeg.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-CltymLRg.js → chunk-BO2N2NFS-D1s4-Sqp.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-D2f6pjgA.js → diagram-OG6HWLK6-1gdMoSF7.js} +1 -1
- package/server/public/assets/{dist-BWR4qFiV.js → dist-CxAOHbil.js} +1 -1
- package/server/public/assets/{dist-DEmlBBNQ.js → dist-DqDRYW6P.js} +3 -3
- package/server/public/assets/{ganttDiagram-6RSMTGT7-DnfiViPK.js → ganttDiagram-6RSMTGT7-BYex-Ec7.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-B8Wrmj9H.js → highlighted-body-OFNGDK62-DlVkiG0S.js} +1 -1
- package/server/public/assets/index-Cc7cnFC4.css +1 -0
- package/server/public/assets/index-K0hAYCgV.js +807 -0
- package/server/public/assets/{linear-C9zFQpkX.js → linear-B4cuEFmO.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-DyDHFXHV.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-lR8H7Yjd.js → pieDiagram-4H26LBE5-CBHNBIJQ.js} +1 -1
- package/server/public/assets/{prod-B1jCQihw.js → prod-CN2nHBvX.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-CVQ2guem.js → quadrantDiagram-W4KKPZXB-Bom87VOQ.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-eD1RB4gm.js → sankeyDiagram-5OEKKPKP-UrBeyLxk.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-ChEC6dQn.js → xychartDiagram-2RQKCTM6-DhkbrIxR.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests--Ib2jTgy.js → pull-requests-Cv7LxzUN.js} +1 -1
- package/server/{pull-requests-CXIhdCYD.js → pull-requests-DHWiKxo7.js} +19 -10
- package/server/{queries-6d7Cdtm7.js → queries-DHJm7bTd.js} +1134 -203
- package/server/{rally-B708-nZn.js → rally-B71M9f4o.js} +3 -3
- package/server/rally-YDjU513q.js +3 -0
- package/server/{rally-api-yjQ0TfHd.js → rally-api-D5uXN08-.js} +1 -1
- package/server/{rally-api-nY0ZANw3.js → rally-api-Dkqmok65.js} +2 -2
- package/server/{rally-client-B1EJhfV0.js → rally-client-Bfqm6XI4.js} +4 -4
- package/server/{rally-client-CULK2XAY.js → rally-client-CxsA6ExK.js} +1 -1
- package/server/{reap-terminal-sessions-MWnqdLCJ.js → reap-terminal-sessions-BQ23nriz.js} +2 -2
- package/server/{reap-terminal-sessions-N3BTkmX_.js → reap-terminal-sessions-CvmwaqKv.js} +2 -2
- package/server/{rebuild-stack-Dp4eLkt4.js → rebuild-stack-0EEYReVZ.js} +36 -36
- package/server/rebuild-stack-qeRqHZxH.js +4 -0
- package/server/{reconstruct-cache-uWbZfjms.js → reconstruct-cache-BbYFsqLa.js} +7 -6
- package/server/record-CtroO946.js +3 -0
- package/server/record-update-DH6dLJID.js +3 -0
- package/server/{record-update-Dq0t2uBG.js → record-update-Z0QCxmMp.js} +124 -34
- package/server/{recovery-trip-BJtIQuag.js → recovery-trip-eJe26h-f.js} +2 -2
- package/server/{release-engine-DZpmGGzb.js → release-engine-lPUp-MTd.js} +5 -5
- package/server/{release-set-hnXd_kga.js → release-set-BwGeyZKX.js} +3 -3
- package/server/{remote-Br-ZWVIP.js → remote-BCd02Es1.js} +3 -3
- package/server/{remote-4tiENDaI.js → remote-CVGUhXMV.js} +3 -3
- package/server/{remote-agents-CRCg1L4H.js → remote-agents-C1bssi41.js} +2 -2
- package/server/{remote-agents-nmty1mLu.js → remote-agents-C_VxssLU.js} +300 -46
- package/server/{remote-completion-BbWNd10K.js → remote-completion-DAB0P706.js} +12 -12
- package/server/resume-u9byntrq.js +3 -0
- package/server/{review-agent-DJRO8EG8.js → review-agent-CD4RCI0Y.js} +1 -1
- package/server/{review-agent-sKkE1FEL.js → review-agent-CHhI66UP.js} +61 -44
- package/server/{review-artifacts-BLbSC4ke.js → review-artifacts-DSMRIfuJ.js} +7 -6
- package/server/{review-context-BgX3lcCx.js → review-context-oFuBbiEE.js} +69 -25
- package/server/{in-flight-guard-aQ1IxeI3.js → review-convoy-liveness-CpzrcJ5F.js} +3 -44
- package/server/review-status-BZH8h-6W.js +3 -0
- package/server/review-status-emit-CUExtHd5.js +50 -0
- package/server/{review-status-enrichment-tbOn_A_u.js → review-status-enrichment-QV_hQkgS.js} +4 -4
- package/server/{review-status-source-CxuEjLGg.js → review-status-source-CpvJnvnQ.js} +24 -3
- package/server/review-status-source-ylw5QZUR.js +3 -0
- package/server/{review-status-sync-BhSQ0d0l.js → review-status-sync-483sujRo.js} +10 -5
- package/server/{review-status-sync-To3-iS-N.js → review-status-sync-NaWvI9Xf.js} +1 -1
- package/server/review-status-yljtTd-q.js +7521 -0
- package/server/{review-verdict-feedback-C1Kg8n7t.js → review-verdict-feedback-BPDn4li_.js} +1 -1
- package/server/{review-verdict-feedback-CTRNtzXO.js → review-verdict-feedback-CELeUinh.js} +48 -8
- package/server/{rollup-WA0VD-Rr.js → rollup-DTNvelz9.js} +8 -8
- package/server/{rollup-B53Y81xK.js → rollup-DYZfq1c4.js} +1 -1
- package/server/{scanner-D2743cp8.js → scanner-CV35oSn4.js} +42 -14
- package/server/{sequence-io-Cg0zYj_E.js → sequence-io-DF_8iuhV.js} +4 -4
- package/server/{sequencer-agent-BGY8gjg-.js → sequencer-agent-B2WeCtGi.js} +5 -5
- package/server/server.js +3899 -672
- package/server/{service-DCpB_SGd.js → service-Br9rpBNA.js} +83 -65
- package/server/{session-fork-BQ8_6H32.js → session-fork-D0LY152N.js} +2 -2
- package/server/{session-history-CVZDpS3c.js → session-history-BUyK29eq.js} +4 -4
- package/server/{settings-BZ5m1UCl.js → settings-Bse1Pdcj.js} +3 -3
- package/server/settings-CdvIF84R.js +2 -0
- package/server/{settings-ylxwqwQG.js → settings-CvVGqNEs.js} +3 -2
- package/server/{shadow-engineering-BlxG6Xye.js → shadow-engineering-BWLa8ODz.js} +2 -2
- package/server/{shadow-state-Dh-HzF2J.js → shadow-state-B4fpKxOO.js} +2 -2
- package/server/{shadow-state-C2_epgx2.js → shadow-state-FV6PHfEW.js} +1 -1
- package/server/{shadow-utils-4bvjn9b3.js → shadow-utils-D7asqxOZ.js} +2 -2
- package/server/{ship-log-ClSMIzZX.js → ship-log-xplJ8t75.js} +1 -1
- package/server/{smart-compaction-CHIxLr_d.js → smart-compaction-CPp2Ykf6.js} +1 -1
- package/server/{smart-compaction-r4pHQBIr.js → smart-compaction-D3U_79f-.js} +8 -7
- package/server/{spawn-planning-session-KC_UduxD.js → spawn-planning-session-1nFi3gfk.js} +1 -1
- package/server/{spawn-planning-session-DWAorh2B.js → spawn-planning-session-DGfZ5B8D.js} +30 -23
- package/server/{specialist-completion-BXhav38U.js → specialist-completion-Br48eiDP.js} +1 -1
- package/server/{specialist-context-DtrYvGJ-.js → specialist-context-cVbGnTa3.js} +5 -5
- package/server/{specialist-handoff-logger-C45ouoZ6.js → specialist-handoff-logger-DK-GTz4s.js} +2 -2
- package/server/{specialist-logs-DJ3RzKxW.js → specialist-logs-Cl5-hqT8.js} +3 -3
- package/server/{specialists-JVO00bs7.js → specialists-CNfYO3G2.js} +1634 -457
- package/server/{specialists-DyFeedjn.js → specialists-Cicieuzu.js} +21 -19
- package/server/{specialists-D5fRZXmN.js → specialists-JHsdU3pA.js} +1 -1
- package/server/{specialists-DVj0hvaL.js → specialists-Tdezg_6N.js} +1 -1
- package/server/specs-Bt7WJDoC.js +3 -0
- package/server/src-CRmCHlma.js +11408 -0
- package/server/{src-CG9mCkP6.js → src-Ck028hjO.js} +6 -6
- package/server/{src-CMTQGyCK.js → src-UWcGe0Ix.js} +5 -5
- package/server/stack-health-CJLMrLBl.js +3 -0
- package/server/{stack-health-puygdaMd.js → stack-health-DqSqx0zv.js} +68 -12
- package/server/{stale-task-claims-BbFwCTb0.js → stale-task-claims-CYFOUNlT.js} +4 -4
- package/server/{staleness-Cbl_w4Bw.js → staleness-BQ-0gMYK.js} +1 -1
- package/server/{staleness-Bpy41ngS.js → staleness-D47CUJok.js} +1 -1
- package/server/{state-home-CIGjwNfJ.js → state-home-BYV7qZTW.js} +2 -2
- package/server/{state-mapping-BL_-3Yt8.js → state-mapping-BVldLhBf.js} +1 -1
- package/server/{state-migrate-Dkzaxvny.js → state-migrate-CvvBtS0Y.js} +4 -4
- package/server/{stuck-remediation-sY_MHHgQ.js → stuck-remediation-Wt0UVvu1.js} +1 -1
- package/server/{stuck-remediation-CzEov_fq.js → stuck-remediation-mkLC6G_t.js} +360 -26
- package/server/{substrate-bug-weights-service-BH66lhm7.js → substrate-bug-weights-service-XfLAKnmK.js} +3 -3
- package/server/{summary-fork-D8bXjCr7.js → summary-fork-CD7GOts0.js} +2 -2
- package/server/{summary-fork-DHhJIsAL.js → summary-fork-xiXBnWG9.js} +78 -12
- package/server/supervisor/{injection-budget-C1iPirFS.js → injection-budget-B5SbvDx2.js} +2 -41
- package/server/supervisor/{paths-DehGY2Fj.js → paths-K3noE4N_.js} +1 -1
- package/server/supervisor/pty-supervisor.js +49 -2
- package/server/supervisor/pty-token-B7lp0ElT.js +43 -0
- package/server/{supervisor-BO-Zk_h-.js → supervisor-DL788vos.js} +3 -3
- package/server/supervisor-UWiQNK-y.js +2 -0
- package/server/{swarm-readiness-CQ_fwUWF.js → swarm-readiness-BV14DF5N.js} +3 -3
- package/server/{system-prerequisites-Bza0ffAh.js → system-prerequisites-pdWG6ZQs.js} +56 -29
- package/server/{teardown-workspace-CEgauF4U.js → teardown-workspace-l2F4_zim.js} +15 -16
- package/server/{test-agent-queue-DXDt0Xa-.js → test-agent-queue-qakFIIGz.js} +6 -6
- package/server/{test-verdict-CmUBK5cT.js → test-verdict-BJYDggMm.js} +1 -1
- package/server/{test-verdict-DFjjIHR5.js → test-verdict-Gw-btEfb.js} +1 -1
- package/server/{tldr-daemon-DL566HbH.js → tldr-daemon-BKOYB616.js} +1 -1
- package/server/{tldr-daemon-BDtLOIlO.js → tldr-daemon-CBaWkV9k.js} +2 -2
- package/server/{tmux-ftABRAmc.js → tmux-B1Wbxz5o.js} +3 -3
- package/server/{tmux-DoThH6aj.js → tmux-DQ6jB76i.js} +1 -1
- package/server/tmux-dedup-DbN6MGzM.js +892 -0
- package/server/{token-CsOhvw42.js → token-Cxbk023d.js} +2 -2
- package/server/{token-util-CTmczIfW.js → token-util-CLq2MmQt.js} +1 -1
- package/server/token-util-zlz9U0ki.js +3 -0
- package/server/{tracker-config-B4itFzDo.js → tracker-config-DZ8Zn2nQ.js} +2 -2
- package/server/{tracker-utils-tnxxqROg.js → tracker-utils-L0FKtjq2.js} +3 -3
- package/server/{traefik-connect-m73vGebA.js → traefik-connect-bNX6jKkb.js} +1 -1
- package/server/{tunnel-B2vxjx_b.js → tunnel-BAm1XgjG.js} +3 -3
- package/server/{tunnel-Cgj-IGIl.js → tunnel-CjSnHdTc.js} +1 -1
- package/server/{types-BBNjPcqU.js → types-q67TYYg5.js} +1 -1
- package/server/uat-promote-verification-CKB9ZrKC.js +92 -0
- package/server/uat-train-Cu-4nvbf.js +2 -0
- package/server/uat-train-D5UjcyAa.js +0 -0
- package/server/validate-Cxsx5Uz1.js +179 -0
- package/server/{validation-CIi6pnI2.js → validation-DEaTZafj.js} +1 -1
- package/server/{validation-B5JxoPUS.js → validation-VZgJxmqc.js} +4 -4
- package/server/{verification-artifact-C-lIHfUa.js → verification-artifact-C85cRTc_.js} +1 -1
- package/server/{verification-artifact-BcnIbigL.js → verification-artifact-g3yuxQDL.js} +1 -1
- package/server/{verification-runner-CDj4lD4t.js → verification-runner-DlZI8yhw.js} +1 -1
- package/server/{verification-runner-Br0S_Ous.js → verification-runner-KDZIsBj4.js} +114 -107
- package/server/{vtt-parser-DKpNNW5i.js → vtt-parser-Jr94BF3Y.js} +1 -1
- package/server/{work-agent-prompt-Yb2bd3Fq.js → work-agent-prompt-C-vuP3_J.js} +20 -9
- package/server/workflows-CHrx_hcW.js +2 -0
- package/server/{workflows-C9WmILql.js → workflows-D0oip4eV.js} +161 -78
- package/server/{workspace-DuUdndHe.js → workspace-BqFg__wH.js} +1 -1
- package/server/{workspace-BVl4rihN.js → workspace-C0fH3aek.js} +3 -3
- package/server/workspace-anchor-drift-B4gMRHl4.js +3 -0
- package/server/workspace-anchor-drift-CZKofakh.js +224 -0
- package/server/{workspace-config-cEGcO6UT.js → workspace-config-B123aZl-.js} +1 -1
- package/server/workspace-manager-CDTKjjdU.js +3 -0
- package/server/{workspace-manager-hLUv3ADC.js → workspace-manager-CwO-Hek7.js} +206 -116
- package/server/{workspace-metadata-CskwzzhL.js → workspace-metadata-CQv00QwK.js} +2 -2
- package/server/{workspace-metadata-DNpMixRq.js → workspace-metadata-D4M8BM4W.js} +1 -1
- package/server/{workspaces-hWvy9eKs.js → workspaces-j1e_6aAT.js} +736 -290
- 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/hooks/record-cost-event.js +6 -4
- package/sync-sources/rules/ask-user-question-self-contained.md +9 -0
- package/sync-sources/skills/okf/README.md +11 -3
- package/sync-sources/skills/okf/SKILL.md +12 -1
- package/sync-sources/skills/okf/docs/USAGE.md +15 -0
- package/sync-sources/skills/okf/references/overdeck.md +28 -0
- package/sync-sources/skills/pan-close/SKILL.md +5 -3
- package/sync-sources/skills/pan-flywheel/SKILL.md +18 -1
- package/sync-sources/skills/pan-knowledge/SKILL.md +10 -0
- package/sync-sources/skills/pan-orders/SKILL.md +33 -0
- package/sync-sources/skills/pan-peer-review/SKILL.md +195 -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-start/SKILL.md +4 -0
- 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/sync-sources/templates/traefik/dynamic/overdeck.yml.template +10 -0
- package/server/activity-logger-OEUBdfZ8.js +0 -3
- package/server/agent-state-Bg0lhqwj.js +0 -3
- package/server/agents-FlIgQ3ql.js +0 -3
- package/server/archive-planning-zkJb3BeM.js +0 -3
- package/server/cli-BsVIHwzC.js +0 -3
- package/server/context-layers-B3Nt58jl.js +0 -4
- package/server/context-layers-ZYFcWiyc.js +0 -165
- package/server/conversation-service-Up7FEzIC.js +0 -3
- package/server/deacon-DYSEJb48.js +0 -4
- package/server/deacon-swarm-9jRLS5Ke.js +0 -2
- package/server/deploy-window-CM6W1-c6.js +0 -3
- package/server/dist-Bd3vn0Hw.js +0 -3
- package/server/flywheel-DMCUzDWg.js +0 -2
- package/server/flywheel-DSSpWmqF.js +0 -522
- package/server/flywheel-DcBkQvgE.js +0 -207
- package/server/flywheel-merge-order-C-6zRLvM.js +0 -2
- package/server/flywheel-merge-order-DxbQKE1d.js +0 -244
- package/server/forge-B-ZWyTRm.js +0 -2
- package/server/forge-Ch9gCFod.js +0 -270
- package/server/git-utils-Dry_Ka_D.js +0 -3
- package/server/github-pr-lookup-BRbDW-qk.js +0 -44
- package/server/hume-B_DbflNM.js +0 -3
- package/server/inspect-agent-ch-F-5Ci.js +0 -2
- package/server/launcher-generator-CHVm7bGT.js +0 -379
- package/server/layers-DzxSTGNA.js +0 -93
- package/server/merge-blockers-BsFjGrQ8.js +0 -41
- package/server/merge-ops-DlB1IM0Y.js +0 -2
- package/server/merge-set-DLz0MkGT.js +0 -139
- package/server/merge-set-DnSYdBEp.js +0 -3
- package/server/merge-sync-SSv3E-pl.js +0 -3
- package/server/merge-verification-CSizH3HY.js +0 -124
- package/server/projects-9SkRpES9.js +0 -3
- package/server/public/assets/index-CUr1xv8w.css +0 -1
- package/server/public/assets/index-CsSuZQBI.js +0 -802
- package/server/public/assets/mermaid-GHXKKRXX-BUAB8hqt.js +0 -1
- package/server/rally-njs_mJrt.js +0 -3
- package/server/rebuild-stack-kA7XngID.js +0 -3
- package/server/record-t6V-3Dcj.js +0 -3
- package/server/record-update-DACtKh6_.js +0 -3
- package/server/resume-CcKqnTvE.js +0 -3
- package/server/review-status-A7quS5KJ.js +0 -1454
- package/server/review-status-C6n6-9f_.js +0 -3
- package/server/settings-D0OSwos5.js +0 -2
- package/server/specs-nN45DG2X.js +0 -3
- package/server/src-U7_kTPEE.js +0 -4733
- package/server/stack-health-Df0YEZKa.js +0 -3
- package/server/supervisor-BPy-o1A8.js +0 -2
- package/server/token-util-DrHg8abn.js +0 -3
- package/server/tracker-utils-BePq_oj-.js +0 -3
- package/server/uat-train-CuEn0t9M.js +0 -2152
- package/server/uat-train-cKfM-_WW.js +0 -2
- package/server/workflows-D90rMOya.js +0 -2
- package/server/workspace-manager-ZTdJAy9M.js +0 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { a as TrackerAuthError, n as init_rally_api, o as init_interface, r as IssueNotFoundError, t as RallyRestApi } from "./rally-api-
|
|
2
|
+
import { Fr as init_errors, Nr as TrackerError } from "./config-yaml-CmOPzmBb.js";
|
|
3
|
+
import { a as TrackerAuthError, n as init_rally_api, o as init_interface, r as IssueNotFoundError, t as RallyRestApi } from "./rally-api-Dkqmok65.js";
|
|
4
4
|
import { Effect } from "effect";
|
|
5
5
|
//#region ../../lib/tracker/rally.ts
|
|
6
6
|
/**
|
|
@@ -504,4 +504,4 @@ var init_rally = __esmMin((() => {
|
|
|
504
504
|
//#endregion
|
|
505
505
|
export { init_rally as n, RallyTracker as t };
|
|
506
506
|
|
|
507
|
-
//# sourceMappingURL=rally-
|
|
507
|
+
//# sourceMappingURL=rally-B71M9f4o.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Fr as init_errors, Nr as TrackerError } from "./config-yaml-CmOPzmBb.js";
|
|
3
3
|
import { Data, Effect } from "effect";
|
|
4
4
|
//#region ../../lib/tracker/interface.ts
|
|
5
5
|
/**
|
|
@@ -162,4 +162,4 @@ var init_rally_api = __esmMin((() => {
|
|
|
162
162
|
//#endregion
|
|
163
163
|
export { TrackerAuthError as a, NotImplementedError as i, init_rally_api as n, init_interface as o, IssueNotFoundError as r, RallyRestApi as t };
|
|
164
164
|
|
|
165
|
-
//# sourceMappingURL=rally-api-
|
|
165
|
+
//# sourceMappingURL=rally-api-Dkqmok65.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { a as init_tracker_config, r as getRallyConfig } from "./tracker-config-
|
|
2
|
+
import { a as init_tracker_config, r as getRallyConfig } from "./tracker-config-DZ8Zn2nQ.js";
|
|
3
3
|
import { a as RateLimited, c as TrackerNotConfigured, d as init_typed_errors, r as IssueNotFound, s as TrackerApiError } from "./typed-errors-2BTMxkZq.js";
|
|
4
4
|
import { Context, Effect, Layer } from "effect";
|
|
5
5
|
//#region services/rally-client.ts
|
|
@@ -46,7 +46,7 @@ function makeRallyClientImpl(config) {
|
|
|
46
46
|
let tracker = null;
|
|
47
47
|
async function getTracker() {
|
|
48
48
|
if (!tracker) {
|
|
49
|
-
const { RallyTracker } = await import("./rally-
|
|
49
|
+
const { RallyTracker } = await import("./rally-YDjU513q.js");
|
|
50
50
|
tracker = new RallyTracker({
|
|
51
51
|
apiKey: config.apiKey,
|
|
52
52
|
server: config.server,
|
|
@@ -106,7 +106,7 @@ var init_rally_client = __esmMin((() => {
|
|
|
106
106
|
RallyClientLive = Layer.effect(RallyClient, Effect.gen(function* () {
|
|
107
107
|
const config = getRallyConfig();
|
|
108
108
|
if (!config) return yield* Effect.fail(new TrackerNotConfigured({ tracker: "rally" }));
|
|
109
|
-
const { RallyTracker } = yield* Effect.promise(() => import("./rally-
|
|
109
|
+
const { RallyTracker } = yield* Effect.promise(() => import("./rally-YDjU513q.js"));
|
|
110
110
|
const tracker = new RallyTracker({
|
|
111
111
|
apiKey: config.apiKey,
|
|
112
112
|
server: config.server,
|
|
@@ -158,4 +158,4 @@ var init_rally_client = __esmMin((() => {
|
|
|
158
158
|
//#endregion
|
|
159
159
|
export { init_rally_client as i, RallyClientLive as n, RallyClientOptionalLive as r, RallyClient as t };
|
|
160
160
|
|
|
161
|
-
//# sourceMappingURL=rally-client-
|
|
161
|
+
//# sourceMappingURL=rally-client-Bfqm6XI4.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { i as init_rally_client, n as RallyClientLive, r as RallyClientOptionalLive, t as RallyClient } from "./rally-client-
|
|
1
|
+
import { i as init_rally_client, n as RallyClientLive, r as RallyClientOptionalLive, t as RallyClient } from "./rally-client-Bfqm6XI4.js";
|
|
2
2
|
init_rally_client();
|
|
3
3
|
export { RallyClient, RallyClientLive, RallyClientOptionalLive };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as isRoleTerminal } from "./review-status-source-
|
|
2
|
-
import { i as selectAwaitingTestWorkSessions, o as selectMergedWorkSessions, s as selectNonMergedTerminalAdvancingSessions, t as init_reap_terminal_sessions } from "./reap-terminal-sessions-
|
|
1
|
+
import { r as isRoleTerminal } from "./review-status-source-CpvJnvnQ.js";
|
|
2
|
+
import { i as selectAwaitingTestWorkSessions, o as selectMergedWorkSessions, s as selectNonMergedTerminalAdvancingSessions, t as init_reap_terminal_sessions } from "./reap-terminal-sessions-CvmwaqKv.js";
|
|
3
3
|
init_reap_terminal_sessions();
|
|
4
4
|
export { isRoleTerminal, selectAwaitingTestWorkSessions, selectMergedWorkSessions, selectNonMergedTerminalAdvancingSessions };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { n as init_review_status_source, r as isRoleTerminal, t as classifyAdvancingSessionLifecycle } from "./review-status-source-
|
|
2
|
+
import { n as init_review_status_source, r as isRoleTerminal, t as classifyAdvancingSessionLifecycle } from "./review-status-source-CpvJnvnQ.js";
|
|
3
3
|
//#region ../../lib/cloister/reap-terminal-sessions.ts
|
|
4
4
|
/**
|
|
5
5
|
* Of the alive sessions, the ones belonging to `issueId`'s advancing `role`.
|
|
@@ -128,4 +128,4 @@ var init_reap_terminal_sessions = __esmMin((() => {
|
|
|
128
128
|
//#endregion
|
|
129
129
|
export { selectMergedAdvancingSessions as a, sessionsToReapForRole as c, selectAwaitingTestWorkSessions as i, isAwaitingTestReapable as n, selectMergedWorkSessions as o, isWorkReapable as r, selectNonMergedTerminalAdvancingSessions as s, init_reap_terminal_sessions as t };
|
|
130
130
|
|
|
131
|
-
//# sourceMappingURL=reap-terminal-sessions-
|
|
131
|
+
//# sourceMappingURL=reap-terminal-sessions-CvmwaqKv.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-
|
|
5
|
-
import { n as reconcileTraefikNetworks, t as init_traefik_connect } from "./traefik-connect-
|
|
6
|
-
import { n as ensureDevcontainerSync, r as init_ensure_devcontainer } from "./ensure-devcontainer-
|
|
2
|
+
import { Gn as init_projects, ar as resolveProjectFromIssueSync, zn as getProjectSync } from "./config-yaml-CmOPzmBb.js";
|
|
3
|
+
import { d as init_docker_stats, f as recordDockerContainerLifecycleSnapshot, n as collectDockerContainerLifecycleSnapshot, o as hasIssueToken, r as composeProjectNameForWorkspace, s as init_stack_health } from "./stack-health-DqSqx0zv.js";
|
|
4
|
+
import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-B6KJkmHZ.js";
|
|
5
|
+
import { n as reconcileTraefikNetworks, t as init_traefik_connect } from "./traefik-connect-bNX6jKkb.js";
|
|
6
|
+
import { n as ensureDevcontainerSync, r as init_ensure_devcontainer } from "./ensure-devcontainer-B057YA81.js";
|
|
7
7
|
import { dirname, join } from "node:path";
|
|
8
8
|
import { Effect } from "effect";
|
|
9
|
-
import { existsSync,
|
|
9
|
+
import { existsSync, rmSync } from "node:fs";
|
|
10
10
|
import { execFile } from "node:child_process";
|
|
11
11
|
import { promisify } from "node:util";
|
|
12
12
|
//#region ../../lib/workspace/rebuild-stack.ts
|
|
@@ -27,32 +27,6 @@ import { promisify } from "node:util";
|
|
|
27
27
|
* the result, not the error channel, to preserve the existing API contract
|
|
28
28
|
* where callers branch on `success`).
|
|
29
29
|
*/
|
|
30
|
-
function declaredComposeProjectName(content, featureFolder) {
|
|
31
|
-
const templatedMatch = content.match(/COMPOSE_PROJECT_NAME="([^$"]*)\$\{FEATURE_FOLDER\}"/);
|
|
32
|
-
if (templatedMatch) return `${templatedMatch[1]}${featureFolder}`;
|
|
33
|
-
return content.match(/COMPOSE_PROJECT_NAME="([^"]+)"/)?.[1] ?? null;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Derive the canonical `COMPOSE_PROJECT_NAME` for a workspace, refusing the
|
|
37
|
-
* rebuild if the workspace declares a name that does not match — a mismatch
|
|
38
|
-
* means `docker compose down` would target the wrong stack.
|
|
39
|
-
*/
|
|
40
|
-
function composeProjectNameForWorkspace(workspacePath, issueId) {
|
|
41
|
-
const featureFolder = `feature-${issueId.toLowerCase()}`;
|
|
42
|
-
const fallback = `overdeck-${featureFolder}`;
|
|
43
|
-
for (const devPath of [join(workspacePath, ".devcontainer", "dev"), join(workspacePath, "dev")]) {
|
|
44
|
-
if (!existsSync(devPath)) continue;
|
|
45
|
-
try {
|
|
46
|
-
const declared = declaredComposeProjectName(readFileSync(devPath, "utf-8"), featureFolder);
|
|
47
|
-
if (!declared) continue;
|
|
48
|
-
if (!declared.endsWith(featureFolder)) throw new Error(`Refusing workspace rebuild: ${devPath} declares COMPOSE_PROJECT_NAME=${declared}, expected a name ending in ${featureFolder}`);
|
|
49
|
-
return declared;
|
|
50
|
-
} catch (err) {
|
|
51
|
-
if (err?.message?.startsWith("Refusing workspace rebuild:")) throw err;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return fallback;
|
|
55
|
-
}
|
|
56
30
|
function findDevcontainerComposeFile(workspacePath) {
|
|
57
31
|
const devcontainerDir = join(workspacePath, ".devcontainer");
|
|
58
32
|
for (const file of COMPOSE_FILES) {
|
|
@@ -61,7 +35,7 @@ function findDevcontainerComposeFile(workspacePath) {
|
|
|
61
35
|
}
|
|
62
36
|
return null;
|
|
63
37
|
}
|
|
64
|
-
var execFileAsync, COMPOSE_FILES, dockerCompose, EXTERNAL_WORKSPACE_NETWORK, ensureExternalNetwork, rebuildWorkspaceStack;
|
|
38
|
+
var execFileAsync, COMPOSE_FILES, dockerCompose, EXTERNAL_WORKSPACE_NETWORK, ensureExternalNetwork, removeStaleIssueContainers, rebuildWorkspaceStack;
|
|
65
39
|
var init_rebuild_stack = __esmMin((() => {
|
|
66
40
|
init_docker_stats();
|
|
67
41
|
init_projects();
|
|
@@ -92,6 +66,21 @@ var init_rebuild_stack = __esmMin((() => {
|
|
|
92
66
|
"create",
|
|
93
67
|
EXTERNAL_WORKSPACE_NETWORK
|
|
94
68
|
], { timeout: 3e4 }).then(() => void 0).catch(() => void 0));
|
|
69
|
+
removeStaleIssueContainers = (issueId, composeProjectName) => Effect.promise(async () => {
|
|
70
|
+
const containers = await Effect.runPromise(collectDockerContainerLifecycleSnapshot());
|
|
71
|
+
let removed = 0;
|
|
72
|
+
for (const container of containers) {
|
|
73
|
+
if (container.composeProject === composeProjectName) continue;
|
|
74
|
+
if (!hasIssueToken(container.name, issueId)) continue;
|
|
75
|
+
if (container.state?.toLowerCase() === "running" || /^up\b/i.test(container.status)) continue;
|
|
76
|
+
if (await execFileAsync("docker", [
|
|
77
|
+
"rm",
|
|
78
|
+
"-f",
|
|
79
|
+
container.id
|
|
80
|
+
], { timeout: 3e4 }).then(() => true).catch(() => false)) removed += 1;
|
|
81
|
+
}
|
|
82
|
+
return removed;
|
|
83
|
+
});
|
|
95
84
|
rebuildWorkspaceStack = (issueId, options = {}) => {
|
|
96
85
|
const progress = options.onProgress ?? (() => {});
|
|
97
86
|
const normalizedIssueId = issueId.toLowerCase();
|
|
@@ -111,10 +100,19 @@ var init_rebuild_stack = __esmMin((() => {
|
|
|
111
100
|
error: `Workspace not found: ${workspacePath}`
|
|
112
101
|
});
|
|
113
102
|
return Effect.gen(function* () {
|
|
114
|
-
|
|
103
|
+
const closed = yield* Effect.promise(() => isIssueClosed(issueId));
|
|
104
|
+
const reviewStatus = closed ? null : yield* Effect.promise(async () => {
|
|
105
|
+
const { resolveCanonicalReviewStatus } = await import("./review-status-source-ylw5QZUR.js");
|
|
106
|
+
return resolveCanonicalReviewStatus(issueId);
|
|
107
|
+
});
|
|
108
|
+
if (closed || reviewStatus?.status?.mergeStatus === "merged") return {
|
|
115
109
|
success: false,
|
|
116
110
|
error: "Issue is terminal (closed/merged) — skipping stack rebuild"
|
|
117
111
|
};
|
|
112
|
+
if (!reviewStatus?.available) return {
|
|
113
|
+
success: false,
|
|
114
|
+
error: "Issue terminal status is unavailable — skipping stack rebuild"
|
|
115
|
+
};
|
|
118
116
|
const composeProjectName = composeProjectNameForWorkspace(workspacePath, normalizedIssueId);
|
|
119
117
|
const existingComposeFile = findDevcontainerComposeFile(workspacePath);
|
|
120
118
|
if (existingComposeFile) {
|
|
@@ -163,6 +161,8 @@ var init_rebuild_stack = __esmMin((() => {
|
|
|
163
161
|
"--build"
|
|
164
162
|
], dirname(composeFile));
|
|
165
163
|
recordDockerContainerLifecycleSnapshot(yield* collectDockerContainerLifecycleSnapshot());
|
|
164
|
+
progress("Removing stale containers from previous stack projects...");
|
|
165
|
+
yield* removeStaleIssueContainers(normalizedIssueId, composeProjectName);
|
|
166
166
|
progress("Connecting traefik to workspace network...");
|
|
167
167
|
yield* Effect.promise(() => reconcileTraefikNetworks());
|
|
168
168
|
return {
|
|
@@ -182,6 +182,6 @@ var init_rebuild_stack = __esmMin((() => {
|
|
|
182
182
|
};
|
|
183
183
|
}));
|
|
184
184
|
//#endregion
|
|
185
|
-
export {
|
|
185
|
+
export { rebuildWorkspaceStack as n, removeStaleIssueContainers as r, init_rebuild_stack as t };
|
|
186
186
|
|
|
187
|
-
//# sourceMappingURL=rebuild-stack-
|
|
187
|
+
//# sourceMappingURL=rebuild-stack-0EEYReVZ.js.map
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { c as listAllAgentsSync, o as init_agents, r as backfillAgentsSync } from "./agents-
|
|
4
|
-
import { b as init_agents$1, i as listRunningAgents } from "./queries-
|
|
5
|
-
import { a as
|
|
2
|
+
import { Gn as init_projects, Lt as readIssueRecord, Pt as init_record, Vt as resolveProjectForIssue, Yn as listProjectsSync } from "./config-yaml-CmOPzmBb.js";
|
|
3
|
+
import { c as listAllAgentsSync, o as init_agents, r as backfillAgentsSync } from "./agents-C5rWYhb6.js";
|
|
4
|
+
import { b as init_agents$1, i as listRunningAgents } from "./queries-DHJm7bTd.js";
|
|
5
|
+
import { a as gatherProjectLensSignals, o as gatherProjectLensSignalsForProjects, s as init_pipeline_membership_gather } from "./pipeline-membership-gather-CET40frr.js";
|
|
6
|
+
import { n as init_pipeline_membership, r as resolvePipelineMembership } from "./pipeline-membership-CrAPLYtf.js";
|
|
6
7
|
import { Effect } from "effect";
|
|
7
8
|
//#region ../../lib/reconstruct/enumerate-in-flight.ts
|
|
8
9
|
async function enumerateInFlightIssuesFromSources(projects, gather = gatherProjectLensSignals) {
|
|
@@ -138,7 +139,7 @@ async function loadInFlightIssueIds(projects) {
|
|
|
138
139
|
return enumerateInFlightIssuesFromSources(projects);
|
|
139
140
|
}
|
|
140
141
|
async function fetchPrState(issueId) {
|
|
141
|
-
const { fetchIssuePullRequest } = await import("./pull-requests
|
|
142
|
+
const { fetchIssuePullRequest } = await import("./pull-requests-Cv7LxzUN.js");
|
|
142
143
|
const result = await fetchIssuePullRequest(issueId);
|
|
143
144
|
if (!result.pr) return {
|
|
144
145
|
hasPr: false,
|
|
@@ -269,4 +270,4 @@ __esmMin((() => {
|
|
|
269
270
|
}))();
|
|
270
271
|
export { reconstructCache, reconstructCacheAuto };
|
|
271
272
|
|
|
272
|
-
//# sourceMappingURL=reconstruct-cache-
|
|
273
|
+
//# sourceMappingURL=reconstruct-cache-BbYFsqLa.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { $t as writeRecordResumePointSync, At as getIssueRecordPath, Bt as readRecordContinueViewSync, Ct as buildOwnUri, Dt as ensureIssueRecord, Et as clearRecordFeedbackSync, Ft as markRecordPipelineClosedOutSync, Gt as writeCloseOutDodGateSync, Ht as writeAgentHarnessModel, It as queueIssueRecordCommit, Jt as writeRecordDecisions, Kt as writeIssueRecordForWorkspaceSync, Lt as readIssueRecord, Mt as getIssueWorkspacePath, Nt as getProjectConfigFromWorkspacePath, Ot as ensureIssueRecordSync, Pt as init_record, Qt as writeRecordResumePoint, Rt as readIssueRecordForWorkspaceSync, St as appendSessionEntrySync, Tt as clearIssueOwner, Ut as writeAgentHarnessModelSync, Vt as resolveProjectForIssue, Wt as writeCloseOutDodGate, Xt as writeRecordHazards, Yt as writeRecordDecisionsSync, Zt as writeRecordHazardsSync, _t as RECORD_DIRNAME, an as writeStatusOverridesSync, bt as appendFeedbackEntrySync, en as writeRecordScopeDriftSync, in as writeStatusOverrideSync, jt as getIssueRecordPathForWorkspace, kt as getIssueRecordBasePath, nn as writeRecordTieredExecutionOverrideSync, qt as writeIssueRecordSync, rn as writeStatusOverride, tn as writeRecordTieredExecutionOverride, vt as RECORD_SCHEMA_VERSION, wt as claimIssueOwner, xt as appendSessionEntry, yt as appendFeedbackEntry, zt as readIssueRecordSync } from "./config-yaml-CmOPzmBb.js";
|
|
2
|
+
init_record();
|
|
3
|
+
export { RECORD_DIRNAME, RECORD_SCHEMA_VERSION, appendFeedbackEntry, appendFeedbackEntrySync, appendSessionEntry, appendSessionEntrySync, buildOwnUri, claimIssueOwner, clearIssueOwner, clearRecordFeedbackSync, ensureIssueRecord, ensureIssueRecordSync, getIssueRecordBasePath, getIssueRecordPath, getIssueRecordPathForWorkspace, getIssueWorkspacePath, getProjectConfigFromWorkspacePath, markRecordPipelineClosedOutSync, queueIssueRecordCommit, readIssueRecord, readIssueRecordForWorkspaceSync, readIssueRecordSync, readRecordContinueViewSync, resolveProjectForIssue, writeAgentHarnessModel, writeAgentHarnessModelSync, writeCloseOutDodGate, writeCloseOutDodGateSync, writeIssueRecordForWorkspaceSync, writeIssueRecordSync, writeRecordDecisions, writeRecordDecisionsSync, writeRecordHazards, writeRecordHazardsSync, writeRecordResumePoint, writeRecordResumePointSync, writeRecordScopeDriftSync, writeRecordTieredExecutionOverride, writeRecordTieredExecutionOverrideSync, writeStatusOverride, writeStatusOverrideSync, writeStatusOverridesSync };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { At as
|
|
2
|
+
import { At as getIssueRecordPath, Cn as resolveStateReadHomeSync, Gn as init_projects, It as queueIssueRecordCommit, Nt as getProjectConfigFromWorkspacePath, Ot as ensureIssueRecordSync, Pt as init_record, Sn as init_state_read_home, Vt as resolveProjectForIssue, Yn as listProjectsSync, ci as init_paths, cn as flushAutoCommits, ln as init_auto_commit, qt as writeIssueRecordSync, si as getOverdeckHome, xn as STATE_BRANCH, zt as readIssueRecordSync } from "./config-yaml-CmOPzmBb.js";
|
|
3
3
|
import { dirname, join, relative } from "node:path";
|
|
4
4
|
import { Effect } from "effect";
|
|
5
5
|
import { hostname } from "node:os";
|
|
@@ -131,21 +131,73 @@ var init_fs_lock = __esmMin((() => {
|
|
|
131
131
|
//#endregion
|
|
132
132
|
//#region ../../lib/pan-dir/record-update.ts
|
|
133
133
|
/** The single locked read-modify-write door for per-issue records. */
|
|
134
|
+
function recordDurabilityBudgetMs() {
|
|
135
|
+
const parsed = Number(process.env.OVERDECK_RECORD_DURABILITY_BUDGET_MS);
|
|
136
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_RECORD_DURABILITY_BUDGET_MS;
|
|
137
|
+
}
|
|
138
|
+
async function withRecordDurabilityDeadline(issueId, promise, deadlineMs, budgetMs, onTimeout) {
|
|
139
|
+
const remaining = deadlineMs - Date.now();
|
|
140
|
+
if (remaining <= 0) {
|
|
141
|
+
await onTimeout?.().catch(() => void 0);
|
|
142
|
+
throw new RecordDurabilityTimeoutError(issueId, budgetMs);
|
|
143
|
+
}
|
|
144
|
+
return await new Promise((resolve, reject) => {
|
|
145
|
+
let settled = false;
|
|
146
|
+
let timingOut = false;
|
|
147
|
+
const timer = setTimeout(() => {
|
|
148
|
+
timingOut = true;
|
|
149
|
+
(onTimeout?.() ?? Promise.resolve()).catch(() => void 0).finally(() => {
|
|
150
|
+
settled = true;
|
|
151
|
+
reject(new RecordDurabilityTimeoutError(issueId, budgetMs));
|
|
152
|
+
});
|
|
153
|
+
}, remaining);
|
|
154
|
+
timer.unref?.();
|
|
155
|
+
promise.then((value) => {
|
|
156
|
+
if (settled || timingOut) return;
|
|
157
|
+
settled = true;
|
|
158
|
+
clearTimeout(timer);
|
|
159
|
+
resolve(value);
|
|
160
|
+
}, (error) => {
|
|
161
|
+
if (settled || timingOut) return;
|
|
162
|
+
settled = true;
|
|
163
|
+
clearTimeout(timer);
|
|
164
|
+
reject(error);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
}
|
|
134
168
|
function updateIssueRecordForWorkspace(workspacePath, issueId, mutator, options = {}) {
|
|
135
169
|
return updateIssueRecord(resolveProjectForIssue(issueId) ?? getProjectConfigFromWorkspacePath(workspacePath), issueId, mutator, options);
|
|
136
170
|
}
|
|
137
|
-
|
|
171
|
+
/**
|
|
172
|
+
* Clear the terminal close-out marker so a reopened issue re-enters the pipeline (sync).
|
|
173
|
+
* Ordinary status writes deliberately preserve closedOut (projectPipeline in records.ts),
|
|
174
|
+
* so reopen needs this explicit inverse of markRecordPipelineClosedOutSync in record.ts
|
|
175
|
+
* (MIN-850, 2026-07-24).
|
|
176
|
+
*/
|
|
177
|
+
function clearRecordPipelineClosedOutSync(project, issueId) {
|
|
178
|
+
const record = ensureIssueRecordSync(project, issueId);
|
|
179
|
+
if (!record.pipeline.closedOut && !record.pipeline.closedOutAt) return;
|
|
180
|
+
record.pipeline.closedOut = void 0;
|
|
181
|
+
record.pipeline.closedOutAt = void 0;
|
|
182
|
+
record.pipeline.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
183
|
+
queueIssueRecordCommit(project, issueId, writeIssueRecordSync(project, issueId, record));
|
|
184
|
+
}
|
|
185
|
+
async function git(gitRoot, args, options = {}) {
|
|
138
186
|
return (await execFileAsync("git", args, {
|
|
139
187
|
cwd: gitRoot,
|
|
140
188
|
encoding: "utf8",
|
|
141
|
-
timeout: 3e4,
|
|
189
|
+
timeout: options.timeoutMs ?? 3e4,
|
|
142
190
|
maxBuffer: 16 * 1024 * 1024,
|
|
143
191
|
env: {
|
|
144
192
|
...process.env,
|
|
145
193
|
HUSKY: "0"
|
|
146
|
-
}
|
|
194
|
+
},
|
|
195
|
+
...options.signal ? { signal: options.signal } : {}
|
|
147
196
|
})).stdout.trim();
|
|
148
197
|
}
|
|
198
|
+
function throwIfDurabilityAborted(signal) {
|
|
199
|
+
if (signal?.aborted) throw new Error("Record durability operation aborted at the deadline");
|
|
200
|
+
}
|
|
149
201
|
function gitFailureMessage(error) {
|
|
150
202
|
if (error && typeof error === "object") {
|
|
151
203
|
const failure = error;
|
|
@@ -156,18 +208,21 @@ function gitFailureMessage(error) {
|
|
|
156
208
|
function isRemoteRefRaceError(message) {
|
|
157
209
|
return /non-fast-forward|fetch first|stale info|cannot lock ref.*expected|failed to update ref/i.test(message);
|
|
158
210
|
}
|
|
159
|
-
async function abortRebase(gitRoot) {
|
|
211
|
+
async function abortRebase(gitRoot, options = {}) {
|
|
160
212
|
try {
|
|
161
|
-
await git(gitRoot, ["rebase", "--abort"]
|
|
213
|
+
await git(gitRoot, ["rebase", "--abort"], {
|
|
214
|
+
timeoutMs: 5e3,
|
|
215
|
+
...options
|
|
216
|
+
});
|
|
162
217
|
} catch {}
|
|
163
218
|
}
|
|
164
|
-
async function replayConflictedRecord(project, issueId, mutator, gitRoot, recordPath) {
|
|
219
|
+
async function replayConflictedRecord(project, issueId, mutator, gitRoot, recordPath, signal) {
|
|
165
220
|
const relativeRecordPath = relative(gitRoot, recordPath).replace(/\\/g, "/");
|
|
166
221
|
const conflicts = (await git(gitRoot, [
|
|
167
222
|
"diff",
|
|
168
223
|
"--name-only",
|
|
169
224
|
"--diff-filter=U"
|
|
170
|
-
])).split("\n").map((path) => path.trim()).filter(Boolean);
|
|
225
|
+
], { signal })).split("\n").map((path) => path.trim()).filter(Boolean);
|
|
171
226
|
if (conflicts.length !== 1 || conflicts[0] !== relativeRecordPath) throw new Error(`state rebase conflicted outside ${relativeRecordPath}: ${conflicts.join(", ") || "unknown conflict"}`);
|
|
172
227
|
await git(gitRoot, [
|
|
173
228
|
"restore",
|
|
@@ -175,43 +230,49 @@ async function replayConflictedRecord(project, issueId, mutator, gitRoot, record
|
|
|
175
230
|
"--worktree",
|
|
176
231
|
"--",
|
|
177
232
|
relativeRecordPath
|
|
178
|
-
]);
|
|
233
|
+
], { signal });
|
|
179
234
|
const remoteRecord = readIssueRecordSync(project, issueId);
|
|
180
235
|
if (!remoteRecord) throw new Error(`Remote ${issueId} state record is unreadable`);
|
|
181
|
-
|
|
236
|
+
const result = await mutator(remoteRecord);
|
|
237
|
+
throwIfDurabilityAborted(signal);
|
|
238
|
+
writeIssueRecordSync(project, issueId, result ?? remoteRecord);
|
|
182
239
|
await git(gitRoot, [
|
|
183
240
|
"add",
|
|
184
241
|
"--",
|
|
185
242
|
relativeRecordPath
|
|
186
|
-
]);
|
|
243
|
+
], { signal });
|
|
244
|
+
throwIfDurabilityAborted(signal);
|
|
187
245
|
await git(gitRoot, [
|
|
188
246
|
"-c",
|
|
189
247
|
"core.editor=true",
|
|
190
248
|
"rebase",
|
|
191
249
|
"--continue"
|
|
192
|
-
]);
|
|
250
|
+
], { signal });
|
|
193
251
|
}
|
|
194
|
-
async function restoreRetryableRecord(project, issueId, original, recordPath) {
|
|
252
|
+
async function restoreRetryableRecord(project, issueId, original, recordPath, signal) {
|
|
195
253
|
const stateHome = resolveStateReadHomeSync(project);
|
|
196
254
|
const gitRoot = stateHome.root;
|
|
197
255
|
const relativeRecordPath = relative(gitRoot, recordPath).replace(/\\/g, "/");
|
|
198
|
-
await abortRebase(gitRoot);
|
|
256
|
+
await abortRebase(gitRoot, { signal });
|
|
199
257
|
let restored = structuredClone(original);
|
|
200
|
-
const branch = stateHome.migrated ? STATE_BRANCH : await git(gitRoot, ["branch", "--show-current"]);
|
|
258
|
+
const branch = stateHome.migrated ? STATE_BRANCH : await git(gitRoot, ["branch", "--show-current"], { signal });
|
|
201
259
|
try {
|
|
202
260
|
await git(gitRoot, [
|
|
203
261
|
"fetch",
|
|
204
262
|
"origin",
|
|
205
263
|
branch
|
|
206
|
-
]);
|
|
207
|
-
restored = JSON.parse(await git(gitRoot, ["show", `origin/${branch}:${relativeRecordPath}`]));
|
|
208
|
-
} catch {
|
|
264
|
+
], { signal });
|
|
265
|
+
restored = JSON.parse(await git(gitRoot, ["show", `origin/${branch}:${relativeRecordPath}`], { signal }));
|
|
266
|
+
} catch (fetchError) {
|
|
267
|
+
throwIfDurabilityAborted(signal);
|
|
268
|
+
}
|
|
269
|
+
throwIfDurabilityAborted(signal);
|
|
209
270
|
writeIssueRecordSync(project, issueId, restored);
|
|
210
271
|
await git(gitRoot, [
|
|
211
272
|
"add",
|
|
212
273
|
"--",
|
|
213
274
|
relativeRecordPath
|
|
214
|
-
]);
|
|
275
|
+
], { signal });
|
|
215
276
|
try {
|
|
216
277
|
await git(gitRoot, [
|
|
217
278
|
"diff",
|
|
@@ -219,32 +280,36 @@ async function restoreRetryableRecord(project, issueId, original, recordPath) {
|
|
|
219
280
|
"--quiet",
|
|
220
281
|
"--",
|
|
221
282
|
relativeRecordPath
|
|
222
|
-
]);
|
|
283
|
+
], { signal });
|
|
223
284
|
return;
|
|
224
|
-
} catch {
|
|
285
|
+
} catch (diffError) {
|
|
286
|
+
throwIfDurabilityAborted(signal);
|
|
287
|
+
}
|
|
225
288
|
await git(gitRoot, [
|
|
226
289
|
"commit",
|
|
227
290
|
"-m",
|
|
228
291
|
`chore(records): restore ${issueId} after failed state push`,
|
|
229
292
|
"--",
|
|
230
293
|
relativeRecordPath
|
|
231
|
-
]);
|
|
294
|
+
], { signal });
|
|
232
295
|
}
|
|
233
|
-
async function reconcileStatePush(project, issueId, mutator, recordPath) {
|
|
296
|
+
async function reconcileStatePush(project, issueId, mutator, recordPath, signal) {
|
|
234
297
|
const gitRoot = resolveStateReadHomeSync(project).root;
|
|
235
298
|
for (let attempt = 0; attempt < MAX_STATE_PUSH_RECONCILIATIONS; attempt += 1) {
|
|
299
|
+
throwIfDurabilityAborted(signal);
|
|
236
300
|
await git(gitRoot, [
|
|
237
301
|
"fetch",
|
|
238
302
|
"origin",
|
|
239
303
|
STATE_BRANCH
|
|
240
|
-
]);
|
|
304
|
+
], { signal });
|
|
241
305
|
try {
|
|
242
|
-
await git(gitRoot, ["rebase", `origin/${STATE_BRANCH}`]);
|
|
306
|
+
await git(gitRoot, ["rebase", `origin/${STATE_BRANCH}`], { signal });
|
|
243
307
|
} catch (error) {
|
|
308
|
+
throwIfDurabilityAborted(signal);
|
|
244
309
|
try {
|
|
245
|
-
await replayConflictedRecord(project, issueId, mutator, gitRoot, recordPath);
|
|
310
|
+
await replayConflictedRecord(project, issueId, mutator, gitRoot, recordPath, signal);
|
|
246
311
|
} catch (replayError) {
|
|
247
|
-
await abortRebase(gitRoot);
|
|
312
|
+
await abortRebase(gitRoot, { signal });
|
|
248
313
|
throw new Error(`Failed to reconcile ${issueId} state after push race: ${gitFailureMessage(replayError)}`, { cause: error });
|
|
249
314
|
}
|
|
250
315
|
}
|
|
@@ -253,11 +318,12 @@ async function reconcileStatePush(project, issueId, mutator, recordPath) {
|
|
|
253
318
|
"push",
|
|
254
319
|
"origin",
|
|
255
320
|
STATE_BRANCH
|
|
256
|
-
]);
|
|
321
|
+
], { signal });
|
|
257
322
|
const record = readIssueRecordSync(project, issueId);
|
|
258
323
|
if (!record) throw new Error(`Reconciled ${issueId} state record is unreadable`);
|
|
259
324
|
return record;
|
|
260
325
|
} catch (error) {
|
|
326
|
+
throwIfDurabilityAborted(signal);
|
|
261
327
|
const message = gitFailureMessage(error);
|
|
262
328
|
if (!isRemoteRefRaceError(message)) throw new Error(`Failed to push reconciled ${issueId} state: ${message}`, { cause: error });
|
|
263
329
|
}
|
|
@@ -276,26 +342,43 @@ async function updateIssueRecord(project, issueId, mutator, options = {}) {
|
|
|
276
342
|
const next = await mutator(current) ?? current;
|
|
277
343
|
const path = writeIssueRecordSync(project, normalizedIssueId, next);
|
|
278
344
|
if (options.autoCommit === false) return readIssueRecordSync(project, normalizedIssueId) ?? next;
|
|
345
|
+
const budgetMs = recordDurabilityBudgetMs();
|
|
346
|
+
const deadlineMs = Date.now() + budgetMs;
|
|
279
347
|
try {
|
|
280
348
|
const commitRoot = queueIssueRecordCommit(project, normalizedIssueId, path);
|
|
281
|
-
const flushed = await Effect.runPromise(flushAutoCommits(commitRoot));
|
|
349
|
+
const flushed = await withRecordDurabilityDeadline(normalizedIssueId, Effect.runPromise(flushAutoCommits(commitRoot)), deadlineMs, budgetMs);
|
|
282
350
|
if (flushed.pushed === false) {
|
|
283
|
-
if (resolveStateReadHomeSync(project).migrated && isRemoteRefRaceError(flushed.reason ?? ""))
|
|
351
|
+
if (resolveStateReadHomeSync(project).migrated && isRemoteRefRaceError(flushed.reason ?? "")) {
|
|
352
|
+
const reconcileAbort = new AbortController();
|
|
353
|
+
const reconcilePromise = reconcileStatePush(project, normalizedIssueId, mutator, path, reconcileAbort.signal);
|
|
354
|
+
return await withRecordDurabilityDeadline(normalizedIssueId, reconcilePromise, deadlineMs, budgetMs, async () => {
|
|
355
|
+
reconcileAbort.abort();
|
|
356
|
+
await reconcilePromise.catch(() => void 0);
|
|
357
|
+
await abortRebase(resolveStateReadHomeSync(project).root);
|
|
358
|
+
});
|
|
359
|
+
}
|
|
284
360
|
throw new Error(`Failed to push ${normalizedIssueId} state: ${flushed.reason ?? "unknown push failure"}`);
|
|
285
361
|
}
|
|
286
362
|
if (!flushed.committed && !["no diff", "no pending"].includes(flushed.reason ?? "")) throw new Error(`Failed to commit ${normalizedIssueId} state: ${flushed.reason ?? "unknown commit failure"}`);
|
|
287
363
|
return readIssueRecordSync(project, normalizedIssueId) ?? next;
|
|
288
364
|
} catch (error) {
|
|
365
|
+
if (error instanceof RecordDurabilityTimeoutError) throw error;
|
|
289
366
|
try {
|
|
290
|
-
|
|
367
|
+
const restoreAbort = new AbortController();
|
|
368
|
+
const restorePromise = restoreRetryableRecord(project, normalizedIssueId, original, path, restoreAbort.signal);
|
|
369
|
+
await withRecordDurabilityDeadline(normalizedIssueId, restorePromise, deadlineMs, budgetMs, async () => {
|
|
370
|
+
restoreAbort.abort();
|
|
371
|
+
await restorePromise.catch(() => void 0);
|
|
372
|
+
});
|
|
291
373
|
} catch (restoreError) {
|
|
374
|
+
if (restoreError instanceof RecordDurabilityTimeoutError) throw restoreError;
|
|
292
375
|
throw new Error(`Failed to persist ${normalizedIssueId} state and restore retryability: ${gitFailureMessage(restoreError)}`, { cause: error });
|
|
293
376
|
}
|
|
294
377
|
throw error;
|
|
295
378
|
}
|
|
296
379
|
});
|
|
297
380
|
}
|
|
298
|
-
var execFileAsync, MAX_STATE_PUSH_RECONCILIATIONS;
|
|
381
|
+
var execFileAsync, MAX_STATE_PUSH_RECONCILIATIONS, DEFAULT_RECORD_DURABILITY_BUDGET_MS, RecordDurabilityTimeoutError;
|
|
299
382
|
var init_record_update = __esmMin((() => {
|
|
300
383
|
init_state_read_home();
|
|
301
384
|
init_auto_commit();
|
|
@@ -303,8 +386,15 @@ var init_record_update = __esmMin((() => {
|
|
|
303
386
|
init_record();
|
|
304
387
|
execFileAsync = promisify(execFile);
|
|
305
388
|
MAX_STATE_PUSH_RECONCILIATIONS = 3;
|
|
389
|
+
DEFAULT_RECORD_DURABILITY_BUDGET_MS = 3e4;
|
|
390
|
+
RecordDurabilityTimeoutError = class extends Error {
|
|
391
|
+
constructor(issueId, budgetMs) {
|
|
392
|
+
super(`Durability wait for ${issueId} state exceeded ${budgetMs}ms; releasing the record lock. The mutation remains in the local record and the flush continues in the background; callers with a fallback (e.g. the review-verdict fallback and drain) reconcile through it, other writers must retry the write.`);
|
|
393
|
+
this.name = "RecordDurabilityTimeoutError";
|
|
394
|
+
}
|
|
395
|
+
};
|
|
306
396
|
}));
|
|
307
397
|
//#endregion
|
|
308
|
-
export {
|
|
398
|
+
export { updateIssueRecordForWorkspace as a, updateIssueRecord as i, clearRecordPipelineClosedOutSync as n, init_fs_lock as o, init_record_update as r, isPidDead as s, RecordDurabilityTimeoutError as t };
|
|
309
399
|
|
|
310
|
-
//# sourceMappingURL=record-update-
|
|
400
|
+
//# sourceMappingURL=record-update-Z0QCxmMp.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a as updateIssueRecordForWorkspace, r as init_record_update } from "./record-update-Z0QCxmMp.js";
|
|
2
2
|
//#region ../../lib/cloister/recovery-trip.ts
|
|
3
3
|
init_record_update();
|
|
4
4
|
async function recordRecoveryFailure(workspacePath, issue, recoveryPath, obligationGeneration, threshold = 25, now = /* @__PURE__ */ new Date()) {
|
|
@@ -41,4 +41,4 @@ async function recordRecoveryFailure(workspacePath, issue, recoveryPath, obligat
|
|
|
41
41
|
//#endregion
|
|
42
42
|
export { recordRecoveryFailure as t };
|
|
43
43
|
|
|
44
|
-
//# sourceMappingURL=recovery-trip-
|
|
44
|
+
//# sourceMappingURL=recovery-trip-eJe26h-f.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { i as init_merge_set, r as getMergeSetSync } from "./merge-set-
|
|
5
|
-
import { i as withComponentStateSync, n as init_release_set, r as upsertReleaseSetSync } from "./release-set-
|
|
2
|
+
import { Gn as init_projects, Mn as findProjectByPathSync, zn as getProjectSync } from "./config-yaml-CmOPzmBb.js";
|
|
3
|
+
import { S as setReviewStatusSync, f as init_review_status } from "./review-status-yljtTd-q.js";
|
|
4
|
+
import { i as init_merge_set, r as getMergeSetSync } from "./merge-set-DH7ot3yz.js";
|
|
5
|
+
import { i as withComponentStateSync, n as init_release_set, r as upsertReleaseSetSync } from "./release-set-BwGeyZKX.js";
|
|
6
6
|
import { exec } from "node:child_process";
|
|
7
7
|
import { promisify } from "node:util";
|
|
8
8
|
//#region ../../lib/release/release-plan.ts
|
|
@@ -303,4 +303,4 @@ __esmMin((() => {
|
|
|
303
303
|
}))();
|
|
304
304
|
export { runRelease };
|
|
305
305
|
|
|
306
|
-
//# sourceMappingURL=release-engine-
|
|
306
|
+
//# sourceMappingURL=release-engine-lPUp-MTd.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-
|
|
2
|
+
import { br as resolveIssueIdSync, gr as init_issue_id } from "./config-yaml-CmOPzmBb.js";
|
|
3
|
+
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BjuxvjdS.js";
|
|
4
4
|
import "effect";
|
|
5
5
|
//#region ../../lib/overdeck/release-sync.ts
|
|
6
6
|
function isoFromMillis(value) {
|
|
@@ -122,4 +122,4 @@ var init_release_set = __esmMin((() => {
|
|
|
122
122
|
//#endregion
|
|
123
123
|
export { withComponentStateSync as i, init_release_set as n, upsertReleaseSetSync as r, getReleaseSetSync as t };
|
|
124
124
|
|
|
125
|
-
//# sourceMappingURL=release-set-
|
|
125
|
+
//# sourceMappingURL=release-set-BwGeyZKX.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "./workspace-metadata-
|
|
2
|
-
import { C as
|
|
1
|
+
import "./workspace-metadata-CQv00QwK.js";
|
|
2
|
+
import { C as createFlyProvider, s as init_remote_agents, w as init_fly_provider } from "./remote-agents-C_VxssLU.js";
|
|
3
3
|
import { Effect } from "effect";
|
|
4
4
|
//#region ../../lib/remote/index.ts
|
|
5
5
|
init_fly_provider();
|
|
@@ -52,4 +52,4 @@ function createFlyProviderFromConfig(remoteConfig, tierOverride) {
|
|
|
52
52
|
//#endregion
|
|
53
53
|
export { getRemoteProvider as n, isRemoteAvailable as r, createFlyProviderFromConfig as t };
|
|
54
54
|
|
|
55
|
-
//# sourceMappingURL=remote-
|
|
55
|
+
//# sourceMappingURL=remote-BCd02Es1.js.map
|