@overdeck/desktop 0.49.1 → 0.50.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 +1 -0
- package/package.json +1 -1
- package/server/{acceptance-criteria-Crw-xSJ3.js → acceptance-criteria-B_maCGZv.js} +2 -2
- package/server/{active-dashboard-bundle-CLwfD-Om.js → active-dashboard-bundle-CCqpFWiz.js} +2 -2
- package/server/activity-logger-B0X2JJwM.js +3 -0
- package/server/{activity-logger-BAVLrkR7.js → activity-logger-SlTXYCVf.js} +22 -4
- package/server/{advancing-selfheal-BQiJ7mIH.js → advancing-selfheal-BJAfiY-C.js} +12 -7
- package/server/{agent-gc-5E0lgxI1.js → agent-gc-bhikjoJ_.js} +11 -11
- package/server/agent-idle-D-UQ7gDv.js +745 -0
- package/server/agent-state-BrUPf_7Z.js +3 -0
- package/server/{agent-state-Bb3UUxQm.js → agent-state-FABw8neJ.js} +682 -454
- package/server/{agent-state-service-keg-x1bT.js → agent-state-service-BAQApt97.js} +1 -1
- package/server/{agent-state-service-BFbttwRA.js → agent-state-service-rDenYSlD.js} +5 -5
- package/server/agents-DixZjXWm.js +3 -0
- package/server/{agents-CqQJW75N.js → agents-DzpQidT8.js} +8 -8
- package/server/{archive-planning-BwEhu9Oq.js → archive-planning-BL1ABtW0.js} +20 -135
- package/server/archive-planning-D3gw32U9.js +2 -0
- package/server/{artifact-index-jobs-C6Lg2rKm.js → artifact-index-jobs-Cjdme0jS.js} +3 -3
- package/server/{assemble-DyTp2gSB.js → assemble-B_JgnCbG.js} +28 -9
- package/server/{auto-spawn-consent-BDfe4qz0.js → auto-spawn-consent-BesWchEi.js} +8 -7
- package/server/{backlog-auto-trigger-DuOGpdDW.js → backlog-auto-trigger-COLq639j.js} +3 -3
- package/server/{behavior-Bitko0mD.js → behavior-DCg8CIWC.js} +3 -3
- package/server/{bridge-pool-patrol-DiHEd13O.js → bridge-pool-patrol-BDohuMRt.js} +2 -2
- package/server/{briefing-freshness-CDJcmHHZ.js → briefing-freshness-ENa_hW_V.js} +2 -2
- package/server/build-info-Dx2qrVhb.js +2 -0
- package/server/{build-info-DTX8JwVP.js → build-info-WuZT6xyi.js} +3 -3
- package/server/{checkpoint-manager-BlOOdzLF.js → checkpoint-manager-CSZ7aVQF.js} +26 -9
- package/server/{checkpoint-manager-CKg1tn34.js → checkpoint-manager-DXhGRvg4.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-BGfl0cHM.js → checkpoints-DUkUsPVS.js} +2 -2
- package/server/{checkpoints-DRALkfDS.js → checkpoints-tm_w6Y4V.js} +1 -1
- package/server/{claude-hooks-provision-B_tv3wzE.js → claude-hooks-provision-CTh9zxEi.js} +1 -1
- package/server/{claude-hooks-provision-BlGv6twJ.js → claude-hooks-provision-fRofvhTN.js} +2 -2
- package/server/{claude-permissions-aHgDcZi5.js → claude-permissions-DLrb9ovz.js} +18 -3
- package/server/{claude-settings-overlay-T2LWLteV.js → claude-settings-overlay-BYnXaTVc.js} +2 -2
- package/server/{claude-settings-overlay-CYOvFE3A.js → claude-settings-overlay-CMS5Jab5.js} +1 -1
- package/server/cli-BflmtEFM.js +2 -0
- package/server/{cli-Do8UpLoI.js → cli-CoQou1t_.js} +11 -11
- package/server/{cliproxy-CX6jHRDP.js → cliproxy-DXDQcR3I.js} +52 -17
- package/server/cliproxy-DdhFpcXU.js +3 -0
- package/server/{close-issue-J0_eWYT1.js → close-issue-CpQ0BWg-.js} +5 -5
- package/server/{closed-issue-reaper-bFppuk6F.js → closed-issue-reaper-CdcJRvUx.js} +13 -12
- package/server/{closed-issue-reaper-Cl2h9AfT.js → closed-issue-reaper-TymtZM37.js} +1 -1
- package/server/{codex-icapA4om.js → codex-BValsmtK.js} +1 -1
- package/server/{codex-OOea7lXs.js → codex-DYyZL8JD.js} +16 -10
- package/server/{compaction-continuation-D5voR1ME.js → compaction-continuation-CVjbdGKt.js} +3 -3
- package/server/{config-Cjleh3_U.js → config-CvKH7r7W.js} +1 -1
- package/server/{config-tucKBCCc.js → config-NxI9Yl2f.js} +2 -2
- package/server/{config-DC75T4Mr.js → config-_qaa1UXH.js} +2 -2
- package/server/{config-yaml-BwOEANMr.js → config-yaml-D60AnTIu.js} +55 -15
- package/server/{conflict-gate-DlpWCMd7.js → conflict-gate-0dD1kxjN.js} +1 -1
- package/server/{conflict-gate-D2L1kZeL.js → conflict-gate-hAUCL-un.js} +5 -5
- package/server/{context-layers-CSPGc2Hb.js → context-layers-CdpabJj0.js} +3 -3
- package/server/context-layers-Ds1MnEFI.js +4 -0
- package/server/{continue-U3Af0jUq.js → continue-CnvrUfxw.js} +3 -3
- package/server/{control-settings-5k6ixdFW.js → control-settings-Db0uXgVM.js} +310 -7
- package/server/{conversation-compaction-CSpVpxN6.js → conversation-compaction-B-1KETG9.js} +8 -8
- package/server/{conversation-compaction-Ciit9O6k.js → conversation-compaction-DzMXGRiJ.js} +1 -1
- package/server/{conversation-service-BxrB5lUT.js → conversation-service-BL-asWPX.js} +1 -1
- package/server/{conversation-service-BteE4ELK.js → conversation-service-BxIOd5ay.js} +21 -7
- package/server/conversations-CEMfwMt-.js +3 -0
- package/server/{conversations-DhwxsOru.js → conversations-nS6QgYpD.js} +12 -7
- package/server/cost-3FyqKK56.js +838 -0
- package/server/{cost-Bnf9NUC5.js → cost-Cctc-Q9M.js} +3 -3
- package/server/{cost-CQKI6OCu.js → cost-DTuIRE4y.js} +2 -2
- package/server/{cost-sync-B-ADeXKY.js → cost-sync-DfmvLT9L.js} +3 -3
- package/server/{dag-DI9LaK_q.js → dag-o-dUpw1L.js} +6 -19
- package/server/{dangerous-git-ops-akhA3iyF.js → dangerous-git-ops-BOtXCFkT.js} +1 -1
- package/server/dashboard-db-worker.js +61 -11
- package/server/{deacon-TPYssFYt.js → deacon-CsisLmPt.js} +1735 -172
- package/server/{deacon-canonical-state-DFYymrDw.js → deacon-canonical-state-DkdkQS5p.js} +3 -3
- package/server/deacon-e6py3jkM.js +4 -0
- package/server/{deacon-event-client-Te5v10-b.js → deacon-event-client-BCjHiGAY.js} +1 -1
- package/server/{deacon-event-client-BKOL4AcL.js → deacon-event-client-CMQswEHX.js} +2 -2
- package/server/{deacon-nudge-log-BtlTWgWu.js → deacon-nudge-log-pcliw8Dr.js} +1 -1
- package/server/{deacon-pending-lifecycle-DVHjOLje.js → deacon-pending-lifecycle-BzaE76Xo.js} +3 -3
- package/server/deacon.js +11 -11
- package/server/{dead-end-trip-P0IF1O0E.js → dead-end-trip-Bs3hxIn6.js} +3 -3
- package/server/dead-end-trip-DUbiRMtT.js +2 -0
- package/server/delivery-DhZGRShH.js +3 -0
- package/server/{deploy-patrol-BXjlvoV3.js → deploy-patrol-B8sKkA8h.js} +8 -8
- package/server/deploy-queue--smqHLhe.js +2 -0
- package/server/{deploy-queue-o7shYg1j.js → deploy-queue-CCGWXFkp.js} +2 -2
- package/server/{deploy-window-CNT6fOff.js → deploy-window-YuJewzmC.js} +4 -4
- package/server/{deploy-window-BMk5_oX6.js → deploy-window-hgsvZ3UZ.js} +1 -1
- package/server/{dev-supervisor-SR1CLOAK.js → dev-supervisor-4SBloJHV.js} +2 -2
- package/server/{devcontainer-renderer-enMmNDFa.js → devcontainer-renderer-BiJhwFNi.js} +3 -3
- package/server/{dist-CPTO_zMR.js → dist-CoR2sivG.js} +1 -1
- package/server/dist-FHv1s5ez.js +3 -0
- package/server/{docker-B7qUZptz.js → docker-CWO7dcIP.js} +3 -3
- package/server/{docker-KR3zSFKY.js → docker-DQzyMXkd.js} +1 -1
- package/server/{dod-gK835UMf.js → dod-BAk5arLF.js} +1 -1
- package/server/{done-preflight-CksRvh49.js → done-preflight-CGFA0M1b.js} +1 -1
- package/server/{done-preflight-Bk8aExAL.js → done-preflight-Cx9JGznT.js} +5 -5
- package/server/{driver-CmsY2RLl.js → driver-BtcFz-qu.js} +14 -3
- package/server/durable-review-pipeline-BOEZ0chh.js +3 -0
- package/server/{durable-review-pipeline-DgYHucN2.js → durable-review-pipeline-Djx_lvFd.js} +11 -2
- package/server/{ensure-devcontainer-BQ4YizSH.js → ensure-devcontainer-Dk6ZMOUC.js} +1 -1
- package/server/{ensure-devcontainer-ojerEqQg.js → ensure-devcontainer-DzYBBwnM.js} +4 -4
- package/server/{esm-shims-1htPASWs.js → esm-shims-deFq5Hhl.js} +1 -1
- package/server/{event-store-BgEjNsvk.js → event-store-C50Qt-f1.js} +1 -1
- package/server/{event-store-D7qcJXuZ.js → event-store-DTns2XZP.js} +5 -5
- package/server/{event-store-provider-BKvk2rDj.js → event-store-provider-Bu1Qrg6v.js} +1 -1
- package/server/{events-BIKGJZOT.js → events-B6xW8Cpm.js} +3 -3
- package/server/{dist-src-BM9eudEd.js → factory-CWVKwKFE.js} +714 -2
- package/server/{feature-registry-storage-ewNSIVsQ.js → feature-registry-storage-vaxRN3WO.js} +3 -3
- package/server/{features-CGopJXdU.js → features-DXWwktJB.js} +2 -2
- package/server/{feedback-stuck-retirement-B8-fX7NA.js → feedback-stuck-retirement-CXAYe2rU.js} +2 -2
- package/server/{feedback-target-CkyLYohm.js → feedback-target-DSVpi0gT.js} +1 -1
- package/server/{feedback-target-Ci6N5p4G.js → feedback-target-yPD_wclF.js} +10 -10
- package/server/{feedback-writer-DfuVjvH0.js → feedback-writer-BzN4qvaP.js} +1 -1
- package/server/{feedback-writer-D4ULO4qG.js → feedback-writer-Ds1Wjsz4.js} +5 -5
- package/server/{flywheel-DXI_WITn.js → flywheel-BCZS-FlW.js} +1 -1
- package/server/{flywheel-BwYPDlhK.js → flywheel-CC4gE_rx.js} +15 -15
- package/server/{flywheel-C7yek87O.js → flywheel-DWKd7bMc.js} +79 -29
- package/server/{flywheel-merge-order-C5m5bYBc.js → flywheel-merge-order-DDT3i57u.js} +1 -1
- package/server/{flywheel-merge-order-CXfU4M6l.js → flywheel-merge-order-DJwH2KpL.js} +17 -15
- package/server/forge-4VVCRcF7.js +2 -0
- package/server/{forge-DYX9sKzG.js → forge-CHADjOFs.js} +2 -2
- package/server/{from-DAdMxC29.js → from-C3dzmjSO.js} +1 -1
- package/server/{fs-lock-cw25uO_E.js → fs-lock-DQ_gUxfq.js} +2 -2
- package/server/{fts-operations-D_rzLxX5.js → fts-operations-asZo2fh1.js} +3 -3
- package/server/git-info-DMOSfJ9I.js +148 -0
- package/server/{git-utils-Y0zG25ez.js → git-utils-BAMwn9Nf.js} +1 -1
- package/server/{git-utils-DV4B9TRl.js → git-utils-BdHk8y7g.js} +4 -4
- package/server/{github-app-C33lDk9Z.js → github-app-BWziYCf3.js} +1 -1
- package/server/{github-app-4UX8VIr8.js → github-app-BlMSzSTw.js} +2 -2
- package/server/{github-client-nPj5ckZO.js → github-client-OK24qpol.js} +1 -1
- package/server/{github-client-DkJVR908.js → github-client-w6j5nVlz.js} +3 -3
- package/server/{github-pr-lookup-C9Vokb0W.js → github-pr-lookup-bGcsEvLE.js} +2 -2
- package/server/{harness-binary-BgXYDo2Z.js → harness-binary-DChiynaB.js} +2 -2
- package/server/{harness-resolve-1NZcVx7n.js → harness-resolve-BplBEbwn.js} +4 -4
- package/server/{health-events-jMfxrElt.js → health-events-BTqsmunw.js} +1 -1
- package/server/{health-events-DlX_FVAB.js → health-events-Bk3LjaJ9.js} +2 -2
- package/server/{hooks-NQ19vvlB.js → hooks-DJR1yR9w.js} +2 -2
- package/server/{hooks-W3REcb3h.js → hooks-EndRNrx9.js} +1 -1
- package/server/{hume-BFkid2PO.js → hume-1FJmNDTq.js} +2 -2
- package/server/hume-gXLmRhmN.js +3 -0
- package/server/{identity-Bwh6VGeL.js → identity-C3s8lyp0.js} +3 -3
- package/server/{idle-stack-reaper-CHtCNpvd.js → idle-stack-reaper-CBelVOE3.js} +1 -1
- package/server/{idle-stack-reaper-BeU_KxWx.js → idle-stack-reaper-DtoI4al6.js} +4 -4
- package/server/{in-flight-guard-pcwXKLGz.js → in-flight-guard-B7khcBdQ.js} +1 -1
- package/server/{infra-KTp9KV9u.js → infra-CJRi_5Wu.js} +36 -7
- package/server/{injection-67YyU6SC.js → injection-ADWQ3D0s.js} +8 -8
- package/server/{injection-BxbZKPDh.js → injection-BWsgHvrL.js} +1 -1
- package/server/{inspect-agent-VHSihlb7.js → inspect-agent-CCfNJjKr.js} +12 -12
- package/server/inspect-agent-Dhp3hCGp.js +2 -0
- package/server/{internal-token-B-z-sGBH.js → internal-token-BCTEqUCX.js} +1 -1
- package/server/{internal-token-zY75jrRJ.js → internal-token-BeIWG_kT.js} +2 -2
- package/server/{io-DfvO2xyh.js → io-BCtZoXHo.js} +5 -5
- package/server/{issue-closed-dvEWKO7Q.js → issue-closed-CiYAa6bX.js} +7 -7
- package/server/{issue-lifecycle-3N8XF7lP.js → issue-lifecycle-BETNVVLq.js} +206 -29
- package/server/{issue-lifecycle-BI6jAfp8.js → issue-lifecycle-DaKN57sx.js} +1 -1
- package/server/{issue-service-singleton-CL6hESX2.js → issue-service-singleton-1Q0ER8Yc.js} +1 -1
- package/server/{issue-service-singleton-BN_2MXp4.js → issue-service-singleton-C_sZ0HjP.js} +124 -11
- package/server/issue-title-fallback-B91iD66g.js +120 -0
- package/server/{issues-CkvUoAnq.js → issues-RGHQUKhB.js} +2 -2
- package/server/{jsonl-parser-CrEb2PWr.js → jsonl-parser-Dfs1dlYE.js} +3 -3
- package/server/jsonl-resolver-bFtftCDd.js +324 -0
- package/server/{kimi-code-DoMoGqIu.js → kimi-code-BxkDgaj4.js} +1 -1
- package/server/{kimi-code-C26gmGxM.js → kimi-code-CNYRA8Dd.js} +14 -12
- package/server/{kimi-parser-Dmhy3UlR.js → kimi-parser-OcWwmOqF.js} +2 -2
- package/server/{label-cleanup-X2lWfghH.js → label-cleanup-CefxK9tL.js} +3 -3
- package/server/{lifecycle-B0rL38D3.js → lifecycle-DDZ7w-BY.js} +6 -6
- package/server/{lifecycle-Bg44O-9x.js → lifecycle-DVXyUil2.js} +2 -2
- package/server/{lifecycle-io-DQDU0apV.js → lifecycle-io-D1oBiMce.js} +1 -1
- package/server/{lifecycle-io-CCBpRv5m.js → lifecycle-io-D7N0vQNj.js} +5 -5
- package/server/{linear-client-B0cIkTs4.js → linear-client-DUN7zCeb.js} +3 -3
- package/server/{linear-client-6V2E-DSa.js → linear-client-TL32snOy.js} +1 -1
- package/server/{linear-mcp-auth-LCo9AWUd.js → linear-mcp-auth-CtRKSHy5.js} +1 -1
- package/server/{linear-mcp-auth-Dsu9Io9r.js → linear-mcp-auth-bB0CPyjh.js} +5 -5
- package/server/memory-fts-worker.js +1 -1
- package/server/{memory-governor-A4O6vI9d.js → memory-governor-Cvv_9K0M.js} +88 -22
- package/server/{memory-pressure-patrol-BWlWywmA.js → memory-pressure-patrol-C6DJJQRA.js} +38 -14
- package/server/{merge-BGWcBxku.js → merge-DOCR6pHi.js} +1 -1
- package/server/{merge-vz80RvSE.js → merge-FTk4LsnM.js} +3 -3
- package/server/{merge-agent-GWhmnxFk.js → merge-agent-C-dsN9se.js} +37 -33
- package/server/{merge-agent-BRSz26Oh.js → merge-agent-D-4_iQgy.js} +2 -2
- package/server/{merge-batch-CFMEtTxv.js → merge-batch-BJjzUUL7.js} +1 -1
- package/server/{merge-completeness-CP347umA.js → merge-completeness-BOtBUwTU.js} +4 -4
- package/server/{merge-completeness-7ajHAIR-.js → merge-completeness-CoLJxfUY.js} +1 -1
- package/server/merge-eligibility-C4rTS97F.js +3 -0
- package/server/merge-eligibility-D7wRnJbj.js +51 -0
- package/server/merge-ops-Cf02szJ5.js +2 -0
- package/server/merge-rebase-Bj7eJAG4.js +2 -0
- package/server/{merge-rebase-C5htyEEH.js → merge-rebase-KBw4rdh3.js} +2 -2
- package/server/{merge-set-DsGW8fmc.js → merge-set-CVfEM57p.js} +1 -1
- package/server/{merge-set-eiE2nC6C.js → merge-set-CyW-xSn4.js} +4 -4
- package/server/{merge-sync-CM2-myXu.js → merge-sync-CYGsJy0u.js} +1 -1
- package/server/{merge-sync-Ct0-cxMX.js → merge-sync-YLvOPAry.js} +2 -2
- package/server/{merge-train-BOu3fN7O.js → merge-train-VxLn8Ms4.js} +4 -4
- package/server/{merge-train-deps-LXHGK61n.js → merge-train-deps-D0y4hBB9.js} +4 -4
- package/server/{merge-verification-BRp08IzI.js → merge-verification-BfJRNMiD.js} +6 -6
- package/server/{merged-docker-cleanup-worker-CwldDjHV.js → merged-docker-cleanup-worker-Bh5fKG_b.js} +4 -4
- package/server/{merged-docker-cleanup-worker-C8eGn78a.js → merged-docker-cleanup-worker-Ci9oeFAe.js} +1 -1
- package/server/messaging-Dfbhgjd6.js +3 -0
- package/server/{multipart-parser-OAuW7824.js → multipart-parser-BYwfKOVU.js} +2 -2
- package/server/{no-resume-mode-MWI6pnrK.js → no-resume-mode-DjMQRkId.js} +1 -1
- package/server/node_modules/.package-lock.json +24 -24
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/AGENTS.md +14 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/CLAUDE.md +14 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/README.md +10 -3
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/package.json +2 -2
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/40_sql/10_basics.ts +175 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/40_sql/index.md +6 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/10_basics.ts +3 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/20_testing.ts +100 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/api/Users.ts +30 -14
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/domain/User.ts +15 -6
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +11 -10
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +41 -32
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/51_http-server/fixtures/server/Users.ts +141 -20
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/70_cli/10_basics.ts +31 -5
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.d.ts.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js +10 -9
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeClusterSocket.d.ts.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeClusterSocket.js +12 -9
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeClusterSocket.js.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocket.js +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocket.js.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocketServer.js +4 -4
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocketServer.js.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeStream.d.ts.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeStream.js +10 -4
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeStream.js.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.d.ts +4 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.d.ts.map +1 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.js +10 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.js.map +1 -0
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +7 -7
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeChildProcessSpawner.ts +16 -11
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeClusterSocket.ts +15 -12
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeSocket.ts +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeSocketServer.ts +4 -4
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeStream.ts +10 -4
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/internal/nodeChildProcessSpawner.ts +16 -0
- package/server/node_modules/@types/node/README.md +1 -1
- package/server/node_modules/@types/node/buffer.buffer.d.ts +5 -5
- package/server/node_modules/@types/node/crypto.d.ts +2 -2
- package/server/node_modules/@types/node/http.d.ts +16 -0
- package/server/node_modules/@types/node/http2.d.ts +10 -2
- package/server/node_modules/@types/node/package.json +2 -2
- package/server/node_modules/@types/node/process.d.ts +52 -0
- package/server/node_modules/@types/node/quic.d.ts +210 -28
- package/server/node_modules/@types/node/sqlite.d.ts +6 -2
- package/server/node_modules/@types/node/test.d.ts +36 -0
- package/server/node_modules/ansi-regex/index.js +3 -2
- package/server/node_modules/ansi-regex/package.json +1 -1
- package/server/node_modules/effect/node_modules/uuid/README.md +19 -19
- package/server/node_modules/effect/node_modules/uuid/dist/v1.js +7 -3
- package/server/node_modules/effect/node_modules/uuid/dist/v7.js +5 -2
- package/server/node_modules/effect/node_modules/uuid/dist-node/v1.js +7 -3
- package/server/node_modules/effect/node_modules/uuid/dist-node/v7.js +5 -2
- package/server/node_modules/effect/node_modules/uuid/package.json +4 -3
- 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 +3 -3
- package/server/node_modules/msgpackr/dist/index-no-eval.cjs +11 -5
- package/server/node_modules/msgpackr/dist/index-no-eval.cjs.map +1 -1
- package/server/node_modules/msgpackr/dist/index-no-eval.min.js +1 -1
- package/server/node_modules/msgpackr/dist/index-no-eval.min.js.map +1 -1
- package/server/node_modules/msgpackr/dist/index.js +11 -5
- package/server/node_modules/msgpackr/dist/index.js.map +1 -1
- package/server/node_modules/msgpackr/dist/index.min.js +1 -1
- package/server/node_modules/msgpackr/dist/index.min.js.map +1 -1
- package/server/node_modules/msgpackr/dist/node.cjs +11 -5
- package/server/node_modules/msgpackr/dist/node.cjs.map +1 -1
- package/server/node_modules/msgpackr/dist/test.js +11 -5
- package/server/node_modules/msgpackr/dist/test.js.map +1 -1
- package/server/node_modules/msgpackr/dist/unpack-no-eval.cjs +11 -5
- package/server/node_modules/msgpackr/dist/unpack-no-eval.cjs.map +1 -1
- package/server/node_modules/msgpackr/package.json +1 -1
- package/server/node_modules/msgpackr/unpack.js +11 -5
- package/server/node_modules/picomatch/lib/parse.js +10 -1
- package/server/node_modules/picomatch/lib/scan.js +30 -18
- package/server/node_modules/picomatch/package.json +1 -1
- package/server/{orphan-proposed-reconciler-BAE5AZ_e.js → orphan-proposed-reconciler-CnP0K2v3.js} +2 -2
- package/server/{orphan-proposed-reconciler-cV3URUqk.js → orphan-proposed-reconciler-nFUlquZt.js} +24 -23
- package/server/package-lock.json +25 -25
- package/server/package.json +1 -1
- package/server/{pan-dir-DDd91kMb.js → pan-dir-B4NfzOf3.js} +5 -5
- package/server/{deacon-merge-BOGFEV8_.js → parked-residue-8WbU0y1z.js} +188 -69
- package/server/{paths-CRLnDgcI.js → paths-rETQhTF2.js} +2 -2
- package/server/{pending-lifecycle-claim-CYgMiDAP.js → pending-lifecycle-claim-yAwDuGS4.js} +2 -2
- package/server/{pickup-BjJsSX12.js → pickup-Dle6k9Xt.js} +1 -1
- package/server/{pipeline-agent-reader-BLc43dVJ.js → pipeline-agent-reader-CeWhQzXC.js} +5 -5
- package/server/{pipeline-membership-BHZp_ShY.js → pipeline-membership-BV4hdkHm.js} +1 -1
- package/server/{pipeline-membership-5qlRz5Qg.js → pipeline-membership-C9ykcjsn.js} +1 -1
- package/server/{pipeline-membership-gather-CGFY1v-y.js → pipeline-membership-gather-Ba0wJNCR.js} +17 -12
- package/server/{pipeline-membership-gather-WhRc1yke.js → pipeline-membership-gather-C9E22B2W.js} +1 -1
- package/server/{pipeline-notifier-C4fZ2ito.js → pipeline-notifier-B5DPXvnr.js} +1 -1
- package/server/{pipeline-notifier-BmsLWM_2.js → pipeline-notifier-p190L97e.js} +2 -2
- package/server/{post-merge-lifecycle-worker-KK1RTKRE.js → post-merge-lifecycle-worker-OQoK8Ckg.js} +3 -3
- package/server/{post-merge-state-_Lj3LDLh.js → post-merge-state-DFaf7OI1.js} +4 -4
- package/server/prd-locations-F2oLSAhy.js +124 -0
- package/server/{project-pipelines-CCkebHOu.js → project-pipelines-CUsa6U59.js} +2 -2
- package/server/project-repos-BVdi9-ch.js +3 -0
- package/server/{project-repos-B4MK48j4.js → project-repos-CsfvLtmr.js} +29 -3
- package/server/project-resource-refresh-queue-BehrH4Ai.js +865 -0
- package/server/project-resource-refresh-queue-D2110Guc.js +2 -0
- package/server/{projects-DvPEAP18.js → projects-BMuEf14J.js} +1 -1
- package/server/{prompts-BiS5I2tZ.js → prompts-CKpDt8Jn.js} +2 -2
- package/server/providers-Buv2wmFU.js +3 -0
- package/server/{providers-DrfK0Ip8.js → providers-CxPKmyif.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-GtVe_o56.js → chunk-BO2N2NFS-DZOQVqV1.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-BvhcYYHc.js → diagram-OG6HWLK6-oKeXcbO1.js} +1 -1
- package/server/public/assets/{dist-CSmUXazd.js → dist-2qPmeRzT.js} +3 -3
- package/server/public/assets/{dist-D0ryefak.js → dist-ClBlE-Nm.js} +1 -1
- package/server/public/assets/{ganttDiagram-6RSMTGT7-BXA51DzM.js → ganttDiagram-6RSMTGT7-BwdG9fQv.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-mlV4EpWt.js → highlighted-body-OFNGDK62-BzGNdskQ.js} +1 -1
- package/server/public/assets/index-CdPveU3M.css +1 -0
- package/server/public/assets/index-Cg6tdZoY.js +860 -0
- package/server/public/assets/{linear-BPE7oswm.js → linear-DpEt1TJb.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-6KBD_3T_.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-BguGGV3S.js → pieDiagram-4H26LBE5-9BpM4oRJ.js} +1 -1
- package/server/public/assets/{prod-aKDYUrXQ.js → prod-CzJiNNEG.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-Bx3i4B6H.js → quadrantDiagram-W4KKPZXB-BXWVAoZx.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-B5vuLjA4.js → sankeyDiagram-5OEKKPKP-5oxodGEw.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-HPlpkqsN.js → xychartDiagram-2RQKCTM6-BChDrHxZ.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/pull-requests-CmlandI7.js +2 -0
- package/server/{pull-requests-BcHIsFJv.js → pull-requests-T0OV0Vn4.js} +3 -3
- package/server/{rally-B1OMtzch.js → rally-CUqj2oIN.js} +3 -3
- package/server/rally-DYIn9R2U.js +3 -0
- package/server/{rally-api-ShZ4kvn0.js → rally-api-BFPb2oSq.js} +2 -2
- package/server/{rally-api-u_vkr5c_.js → rally-api-BoucQG1u.js} +1 -1
- package/server/{rally-client-D6Feq1Ka.js → rally-client-16iObny7.js} +5 -5
- package/server/{rally-client-DgZvUZqX.js → rally-client-CsqLjLLa.js} +1 -1
- package/server/{reap-terminal-sessions-CRfiXLY0.js → reap-terminal-sessions-BaDSNR-k.js} +2 -2
- package/server/{reap-terminal-sessions-D7f3zSE9.js → reap-terminal-sessions-DgEIKMhH.js} +2 -2
- package/server/{rebuild-stack-CCwKHZb6.js → rebuild-stack-BcBVFJp3.js} +2 -2
- package/server/{rebuild-stack-DKxOnkpE.js → rebuild-stack-CyXMrj6K.js} +7 -7
- package/server/reconciler-caYiRnPy.js +657 -0
- package/server/{reconstruct-cache-BP8UIKt7.js → reconstruct-cache-3JzPOune.js} +7 -7
- package/server/{record-By-wp6pg.js → record-DYOg97Iv.js} +1 -1
- package/server/{record-update-D23jPU6b.js → record-update-BPqpBu3O.js} +9 -7
- package/server/{record-update-ByGtIlUK.js → record-update-CDPEX7BH.js} +1 -1
- package/server/{recovery-trip-C4dTl8DO.js → recovery-trip-CpfW6LCJ.js} +43 -10
- package/server/{recovery-trip-qloOYOFz.js → recovery-trip-xqKC07Gy.js} +1 -1
- package/server/{release-engine-Crc0Tjx-.js → release-engine-C_OOhCaK.js} +5 -5
- package/server/{release-set-DDXwbIK7.js → release-set-DOIDz2vw.js} +3 -3
- package/server/{remote-oEMfXlwT.js → remote-BTh-sjpX.js} +3 -3
- package/server/{remote-agents-Bgtc2nOO.js → remote-agents-DbbN7vSm.js} +6 -6
- package/server/{remote-agents-DQVGZVQ9.js → remote-agents-MuXx2gWm.js} +1 -1
- package/server/{remote-completion-DxUJ5HKR.js → remote-completion-LcWCpAm2.js} +13 -13
- package/server/{remote-CBpLi4Yy.js → remote-xY0B43Ho.js} +3 -3
- package/server/{resolver-CuAULbLs.js → resolver-C2QKOf09.js} +2 -2
- package/server/{resolver-C8rooxoz.js → resolver-D4nsxfGo.js} +31 -8
- package/server/resume-ByUrJUNX.js +3 -0
- package/server/{review-agent-7C2w5CzU.js → review-agent-BRBTm1qE.js} +43 -55
- package/server/review-agent-Caodi0PX.js +3 -0
- package/server/{review-artifacts-BJeEfm2r.js → review-artifacts-DgaDlbO4.js} +6 -6
- package/server/{review-convoy-liveness-DfF9eXjI.js → review-convoy-liveness-BBvyuRLC.js} +20 -11
- package/server/{review-run-recovery-ZjuDTNhZ.js → review-run-recovery-DCzWMMvE.js} +1 -1
- package/server/{review-run-recovery-7BKt2Es0.js → review-run-recovery-THHMKlXJ.js} +3 -3
- package/server/{review-status-CUnjjOUu.js → review-status-Bge_3XTR.js} +1 -1
- package/server/{review-status-DBnR5t4z.js → review-status-DpniqzPT.js} +113 -44
- package/server/{review-status-emit-Cg4tOb8U.js → review-status-emit-D7sM720S.js} +3 -3
- package/server/{review-status-enrichment-D-rQshu6.js → review-status-enrichment-PDI4-faj.js} +3 -3
- package/server/{review-status-source-DSn0glLa.js → review-status-source-D2PCWS6E.js} +1 -1
- package/server/{review-status-source-Ct912fv_.js → review-status-source-Jq0BXmn3.js} +1 -1
- package/server/{review-status-sync-B7V_Gg51.js → review-status-sync-C6ZKTI8f.js} +11 -8
- package/server/{review-status-sync-YthpOH_q.js → review-status-sync-CvpHWyvR.js} +1 -1
- package/server/{review-verdict-feedback-C-dBon_-.js → review-verdict-feedback-B2ojHFH5.js} +8 -8
- package/server/{review-verdict-feedback-DqXTuJk8.js → review-verdict-feedback-tyMoLT2L.js} +1 -1
- package/server/{review-verdict-writer-CKaJWp75.js → review-verdict-writer-Cy_1pnIj.js} +7 -7
- package/server/{review-verdict-writer-jldSh3Bm.js → review-verdict-writer-DjrJ64eS.js} +1 -1
- package/server/{rollup-DZwH4CLs.js → rollup-Cp0KEoOu.js} +1 -1
- package/server/{rollup-QCwYcBdP.js → rollup-DU3xBQu2.js} +8 -8
- package/server/{scanner-2aHeLC3W.js → scanner-BFKG3Gxv.js} +8 -8
- package/server/{search-DwHYaj66.js → search-DhtKwbBC.js} +2 -2
- package/server/{secret-redaction-B5G1xZ3k.js → secret-redaction-DLZ-VqHq.js} +1 -1
- package/server/{sequence-io-POKWdusG.js → sequence-io-C-Q19Jez.js} +4 -4
- package/server/{sequencer-agent-DS00KHVm.js → sequencer-agent-eN2P2lDz.js} +6 -6
- package/server/server.js +1499 -1350
- package/server/{service-BLb_CyPL.js → service-CThO0Sar.js} +80 -774
- package/server/{session-fork-DcTzVwex.js → session-fork-ZYTHtpBh.js} +2 -2
- package/server/settings-ByDRfuuE.js +2 -0
- package/server/{settings-Clw8UVNs.js → settings-CTywpFw5.js} +2 -2
- package/server/{settings-B9-H2K_E.js → settings-nAT-eK56.js} +3 -3
- package/server/{shadow-engineering-C6oO_PiR.js → shadow-engineering-BHZKPJhq.js} +3 -3
- package/server/{shadow-state-CEGrrECe.js → shadow-state-BTLi4Axs.js} +2 -2
- package/server/{shadow-state-e7250VUx.js → shadow-state-CZ_LnPsi.js} +1 -1
- package/server/{shadow-utils-xFk2Wusb.js → shadow-utils-CPLlPHdn.js} +2 -2
- package/server/{ship-log-7BnQHuKU.js → ship-log-D-CphNZx.js} +1 -1
- package/server/{ship-record-CwUX6Afo.js → ship-record-BaBla0l_.js} +7 -7
- package/server/{ship-record-BgUPnpT0.js → ship-record-BlvX8-xv.js} +1 -1
- package/server/{ship-status-Ce3_3edi.js → ship-status-rQbPQBsF.js} +2 -2
- package/server/{smart-compaction-BmfIi3oL.js → smart-compaction-CUXn8mfX.js} +1 -1
- package/server/{smart-compaction-Dy0gw1VH.js → smart-compaction-D1CNGdZx.js} +7 -7
- package/server/{spawn-planning-session-nH3b4Drz.js → spawn-planning-session-DCmO6COk.js} +19 -19
- package/server/{spawn-planning-session-CfhxRJoY.js → spawn-planning-session-DfEWyrVV.js} +2 -2
- package/server/{specialist-completion-CC1XJbTx.js → specialist-completion-BMv3K54P.js} +1 -1
- package/server/{specialist-context-cHwpcXSh.js → specialist-context-C1-CfYQb.js} +5 -5
- package/server/{specialist-handoff-logger-GqnGSYoJ.js → specialist-handoff-logger-BDKoz5Z9.js} +2 -2
- package/server/{specialist-logs-5OTnrV91.js → specialist-logs-BJQFkpdG.js} +3 -3
- package/server/specialists-CYt1U3Zm.js +4 -0
- package/server/{specialists-8LcQi9Np.js → specialists-D6MUU31Q.js} +21 -272
- package/server/{specialists-DocAK-7A.js → specialists-DhS79T9v.js} +369 -691
- package/server/{specialists-xXcJHAyg.js → specialists-Dx0zRTxX.js} +1 -1
- package/server/specialists-registry-BRLCi61y.js +3 -0
- package/server/specialists-registry-Bng0OFGH.js +277 -0
- package/server/specs-oRGyfz6C.js +3 -0
- package/server/{src-C2TAxwki.js → src-C7gGe4KU.js} +6 -6
- package/server/{src-DudQNYVw.js → src-CdwN6WY6.js} +344 -7
- package/server/{src-DUVvEA8Q.js → src-DMosbuSJ.js} +3 -3
- package/server/{stack-health-DKT4ySnA.js → stack-health-BKfNaqMm.js} +3 -3
- package/server/{stack-health-CbyiYS9H.js → stack-health-Bz711z1Y.js} +1 -1
- package/server/{stale-task-claims-PzFee70R.js → stale-task-claims-DMRLb5R2.js} +5 -5
- package/server/{staleness-D8UTEXV5.js → staleness-CxZaIhrn.js} +1 -1
- package/server/{staleness-BjOAq9-d.js → staleness-r_dkMyMG.js} +1 -1
- package/server/{stall-sweeper-DOyIfeLR.js → stall-sweeper-CBWqSWV2.js} +8 -8
- package/server/{state-home-DhAZlk5k.js → state-home-DhsMqg8W.js} +2 -2
- package/server/{state-mapping-BVSs84bO.js → state-mapping-D2yC81Vy.js} +1 -1
- package/server/{state-migrate-CJKEwpB0.js → state-migrate-C2Ouyd6e.js} +6 -6
- package/server/{state-mirror-Do7pag7W.js → state-mirror-BPXciz84.js} +3 -3
- package/server/stuck-remediation-DALieAkx.js +2 -0
- package/server/stuck-remediation-kta3KN7c.js +774 -0
- package/server/{substrate-bug-weights-service-BTNjHBnl.js → substrate-bug-weights-service-D_ICP7TI.js} +3 -3
- package/server/{summary-fork-CvB7Oyq9.js → summary-fork-CojrFKb6.js} +2 -2
- package/server/{summary-fork-CZ88rhVx.js → summary-fork-DhhaFhxZ.js} +113 -30
- package/server/supervisor/{pane-composer-BaLLspSj.js → pane-composer-CoiVkGIt.js} +8 -1
- package/server/supervisor/{paths-D6XUcR_g.js → paths-DTGbtcaP.js} +8 -4
- package/server/supervisor/pty-supervisor.js +3 -3
- package/server/supervisor/{pty-token-DjjHxoCq.js → pty-token-GVqnvU3U.js} +2 -2
- package/server/supervisor-DSSWo4M2.js +2 -0
- package/server/{supervisor-D4v0WfiQ.js → supervisor-DqH-laVL.js} +4 -4
- package/server/{swarm-readiness-D8R-LWX5.js → swarm-readiness-LF8ZF_hc.js} +3 -3
- package/server/{synthesis-verdict-N5Z11pg7.js → synthesis-verdict-CGFF8uQI.js} +2 -2
- package/server/{synthesis-verdict-B6wvLGcA.js → synthesis-verdict-DSoOFUIV.js} +1 -1
- package/server/{system-prerequisites-BbGZ_WHF.js → system-prerequisites-Lsx0jUUV.js} +2 -2
- package/server/{teardown-workspace-CYend-KY.js → teardown-workspace-DMwomEG1.js} +16 -16
- package/server/{test-agent-queue-BUtWhNcc.js → test-agent-queue-Cu0D6BYe.js} +6 -6
- package/server/{test-verdict-BWm3hgDj.js → test-verdict-9mvl7pQn.js} +1 -1
- package/server/{test-verdict-BWtRmdiR.js → test-verdict-oNSv1rVr.js} +2 -2
- package/server/{tldr-daemon-CneJ24eL.js → tldr-daemon-CRSAkhBx.js} +1 -1
- package/server/{tldr-daemon-CMVBT4kT.js → tldr-daemon-McqCk2X7.js} +2 -2
- package/server/tmux-CYucGrTl.js +4 -0
- package/server/{tmux-BqXzRuaH.js → tmux-wnT_hg-s.js} +91 -19
- package/server/{token-CO3INKbh.js → token-BdfZLRg1.js} +2 -2
- package/server/{token-util-DyJJyX_B.js → token-util-Crcay9j_.js} +1 -1
- package/server/token-util-DfUS3Lpp.js +3 -0
- package/server/{tracker-config-DVzhaUxO.js → tracker-config-tfAOWgng.js} +2 -2
- package/server/{tracker-utils-xnVJVrrO.js → tracker-utils-Dbg_pVZg.js} +2 -2
- package/server/{traefik-connect-A5k54mCv.js → traefik-connect-DoQvQ6oJ.js} +1 -1
- package/server/{tunnel-DauSR-rs.js → tunnel-B1MNIgkL.js} +1 -1
- package/server/{tunnel-CwOnS-PB.js → tunnel-skW68j9B.js} +3 -3
- package/server/{typed-errors-B-gfU2RB.js → typed-errors-CZ3GFBvo.js} +1 -1
- package/server/{typed-errors-DzC4zXbI.js → typed-errors-DXqf3RnP.js} +1 -1
- package/server/{types-DjpLVpsj.js → types-PW4zkxCM.js} +1 -1
- package/server/{types-DbxY2QB6.js → types-pLpbsNto.js} +1 -1
- package/server/{uat-failure-feedback-BVqsWlrr.js → uat-failure-feedback-ly8ZwtfC.js} +5 -5
- package/server/{uat-promote-verification-DmG097QS.js → uat-promote-verification-BBaMwfdc.js} +5 -5
- package/server/{uat-train-DVUNW03P.js → uat-train-BBEiYSep.js} +0 -0
- package/server/{uat-train-COSy-vEX.js → uat-train-D7Ran2FB.js} +1 -1
- package/server/{validate-Dvv83iBx.js → validate-BYcBcBwg.js} +3 -3
- package/server/{validation-DlHafKzu.js → validation-BfG2jW5C.js} +9 -6
- package/server/{validation-BdCjzWLN.js → validation-nSrYiYvA.js} +1 -1
- package/server/{verification-artifact-CaSbxUVg.js → verification-artifact-Cmhgq4b_.js} +1 -1
- package/server/{verification-artifact-0Zku8N-W.js → verification-artifact-DglwaHke.js} +1 -1
- package/server/{verification-runner-DwP2fUEF.js → verification-runner-BEq5ZF-h.js} +53 -27
- package/server/{verification-runner-C6wdZda2.js → verification-runner-CFjAuv9u.js} +1 -1
- package/server/{vtt-parser-luerJpYT.js → vtt-parser-Va--tv27.js} +1 -1
- package/server/work-agent-prompt-BnhKNAg7.js +3 -0
- package/server/{work-agent-prompt--9AWNYwZ.js → work-agent-prompt-CaD2ue8m.js} +14 -14
- package/server/{work-agent-start-BNQO65W7.js → work-agent-start-0nJ-6UeA.js} +2 -2
- package/server/{work-agent-start-DkzseQFl.js → work-agent-start-D8NEN5KD.js} +1 -1
- package/server/workflows-BtHRlFIm.js +2 -0
- package/server/{workflows-BYwR2aIN.js → workflows-C7mxM1qc.js} +114 -41
- package/server/{workspace-iTnTycOB.js → workspace-BAhMgMaO.js} +3 -3
- package/server/{workspace-B-QJa3Ps.js → workspace-Dbqv9ehn.js} +1 -1
- package/server/{workspace-anchor-drift-CHiGg8iu.js → workspace-anchor-drift-B_3kyyxJ.js} +4 -4
- package/server/{workspace-anchor-drift-DTt6h2Em.js → workspace-anchor-drift-Bpa3xoni.js} +1 -1
- package/server/{workspace-config-D0CavVtz.js → workspace-config-D-bNq2CF.js} +1 -1
- package/server/{workspace-manager-5BKPV6SY.js → workspace-manager-BrbX90Rm.js} +1 -1
- package/server/{workspace-manager-W1OnbvU5.js → workspace-manager-CM8RCrSc.js} +17 -17
- package/server/{workspace-metadata-tbbevEmP.js → workspace-metadata-BEOwJSdK.js} +1 -1
- package/server/{workspace-metadata-dJhXvZGQ.js → workspace-metadata-Cu6yfxBS.js} +2 -2
- package/server/{workspaces-BlpbOPZ7.js → workspaces-C7LAuZfe.js} +140 -709
- package/sync-sources/dev-skills/pan-style-guide/SKILL.md +90 -15
- package/sync-sources/hooks/linear-mcp-auth-hook +6 -1
- package/sync-sources/rules/agent-message-delivery.md +21 -14
- package/sync-sources/rules/handoff-isolate-cwd.md +4 -4
- package/sync-sources/rules/pan-handoff-focus-limit.md +14 -5
- package/sync-sources/rules/ste-writing.md +17 -0
- package/sync-sources/rules/work-agents-via-pan.md +2 -1
- package/sync-sources/rules/writing-style.md +3 -2
- package/sync-sources/skills/{skill-creator → claude-skill-creator}/SKILL.md +1 -1
- package/sync-sources/skills/{skill-creator → claude-skill-creator}/scripts/init_skill.py +1 -1
- package/sync-sources/skills/{skill-creator → claude-skill-creator}/scripts/package_skill.py +1 -1
- package/sync-sources/skills/pan-gauntlet-loop/SKILL.md +230 -0
- package/sync-sources/skills/pan-gauntlet-loop/assets/PROMPT.template.md +92 -0
- package/sync-sources/skills/pan-gauntlet-loop/assets/REFERENCE-BAR.template.md +53 -0
- package/sync-sources/skills/pan-gauntlet-loop/assets/STYLE.template.md +41 -0
- package/sync-sources/skills/pan-gauntlet-loop/assets/gauntlet-index.html +237 -0
- package/sync-sources/skills/pan-gauntlet-loop/references/domains.md +106 -0
- package/sync-sources/skills/pan-handoff/SKILL.md +24 -6
- package/sync-sources/skills/pan-help/SKILL.md +1 -1
- package/sync-sources/skills/pan-peer-review/SKILL.md +3 -3
- package/sync-sources/skills/pan-restart/SKILL.md +6 -3
- package/sync-sources/skills/pan-start/SKILL.md +3 -0
- package/sync-sources/skills/pan-swarm/SKILL.md +32 -44
- package/sync-sources/skills/pan-sync/SKILL.md +1 -1
- package/server/activity-logger-BejO16Am.js +0 -3
- package/server/agent-state-DH_-Jkua.js +0 -3
- package/server/agents-megfmQHM.js +0 -3
- package/server/archive-planning-C-H9cM_J.js +0 -2
- package/server/build-info-PQlh_Rhb.js +0 -2
- package/server/cli-TaZspPHS.js +0 -2
- package/server/cliproxy-36ncAXlu.js +0 -3
- package/server/context-layers-CF6zHws4.js +0 -4
- package/server/conversations-AnGJ5rtX.js +0 -3
- package/server/deacon-BEH-IY0v.js +0 -5
- package/server/deacon-swarm-BHX-kR1b.js +0 -2
- package/server/deacon-swarm-BiLfNm_v.js +0 -1522
- package/server/dead-end-trip-BWpDg1Qd.js +0 -2
- package/server/delivery-cJM6zRjJ.js +0 -3
- package/server/deploy-queue-CmVBZEja.js +0 -2
- package/server/dist-VKBfkdi7.js +0 -3
- package/server/durable-review-pipeline-DgcVCYDL.js +0 -3
- package/server/factory-D4V2wd_V.js +0 -717
- package/server/forge-CrP1L3i6.js +0 -2
- package/server/hume-1ubD_6O7.js +0 -3
- package/server/inspect-agent-CfxERkNt.js +0 -2
- package/server/merge-ops-DtHx17Vd.js +0 -2
- package/server/merge-rebase-BvB4UuNS.js +0 -2
- package/server/project-repos-BJiShUsN.js +0 -3
- package/server/providers-CStNGwze.js +0 -3
- package/server/public/assets/index-BFEwfmqX.js +0 -860
- package/server/public/assets/index-_USwyTAT.css +0 -1
- package/server/public/assets/mermaid-GHXKKRXX-Dsln95SK.js +0 -1
- package/server/pull-requests-C1Cqp2yo.js +0 -2
- package/server/rally-CjayjUIl.js +0 -3
- package/server/resume-D7JuMCRQ.js +0 -3
- package/server/review-agent-BUNTVJK2.js +0 -2
- package/server/settings-DBWB1gsG.js +0 -2
- package/server/specialists-D8gsOCwh.js +0 -3
- package/server/specs-BqkrRnU9.js +0 -3
- package/server/stuck-remediation-Di5JYkoo.js +0 -1164
- package/server/stuck-remediation-TNM1VhZb.js +0 -2
- package/server/supervisor-DX8VsPnb.js +0 -2
- package/server/tmux-CqNapnrr.js +0 -4
- package/server/token-util-Bu8bPF9f.js +0 -3
- package/server/workflows-Cf4LAnhg.js +0 -2
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { a as init_git_utils, c as rehydrateHeadAnchor, u as snapshotWorkspaceHeadsPromise } from "./git-utils-
|
|
4
|
-
import { o as init_synthesis_verdict, s as readLatestSynthesisVerdictAsync } from "./synthesis-verdict-
|
|
5
|
-
import { t as getCloisterEventStore } from "./event-store-provider-
|
|
6
|
-
import { t as
|
|
1
|
+
import { i as emitActivityEntryOnce, l as init_activity_logger } from "./activity-logger-SlTXYCVf.js";
|
|
2
|
+
import { C as init_tmux } from "./tmux-wnT_hg-s.js";
|
|
3
|
+
import { a as init_git_utils, c as rehydrateHeadAnchor, u as snapshotWorkspaceHeadsPromise } from "./git-utils-BdHk8y7g.js";
|
|
4
|
+
import { o as init_synthesis_verdict, s as readLatestSynthesisVerdictAsync } from "./synthesis-verdict-CGFF8uQI.js";
|
|
5
|
+
import { t as getCloisterEventStore } from "./event-store-provider-Bu1Qrg6v.js";
|
|
6
|
+
import { t as getAgentEffectiveLastActivityMs } from "./agent-idle-D-UQ7gDv.js";
|
|
7
|
+
import { t as recordReviewVerdict } from "./review-verdict-writer-Cy_1pnIj.js";
|
|
7
8
|
import "effect";
|
|
8
9
|
import "fs";
|
|
9
10
|
import "path";
|
|
@@ -136,7 +137,8 @@ function evaluateReviewConvoyLiveness(issueId, status, agents, now = Date.now())
|
|
|
136
137
|
return agentIssue === issueUpper && role === "review";
|
|
137
138
|
});
|
|
138
139
|
const coordinatorId = `agent-${issueId.toLowerCase()}-review`;
|
|
139
|
-
|
|
140
|
+
const coordinator = reviewAgents.find((agent) => agent.id === coordinatorId);
|
|
141
|
+
if (coordinator?.status === "stopped" || coordinator?.status === "error") return {
|
|
140
142
|
active: false,
|
|
141
143
|
reason: "coordinator stopped"
|
|
142
144
|
};
|
|
@@ -145,10 +147,17 @@ function evaluateReviewConvoyLiveness(issueId, status, agents, now = Date.now())
|
|
|
145
147
|
active: false,
|
|
146
148
|
reason: "review watchdog expired"
|
|
147
149
|
};
|
|
148
|
-
|
|
150
|
+
const currentRunId = coordinator?.reviewRunId;
|
|
151
|
+
const currentReviewAgents = currentRunId ? reviewAgents.filter((agent) => agent.reviewRunId === currentRunId) : reviewAgents;
|
|
152
|
+
for (const agent of currentReviewAgents) {
|
|
149
153
|
if (agent.status === "stopped" || agent.status === "error") continue;
|
|
150
|
-
const
|
|
151
|
-
if (!Number.isFinite(
|
|
154
|
+
const persistedLastActivity = reviewTimestampMs(agent.lastActivity ?? void 0);
|
|
155
|
+
if (!Number.isFinite(persistedLastActivity) || now - persistedLastActivity < 9e5) return {
|
|
156
|
+
active: true,
|
|
157
|
+
reason: `active review agent ${agent.id}`
|
|
158
|
+
};
|
|
159
|
+
const effectiveLastActivity = getAgentEffectiveLastActivityMs(agent.id);
|
|
160
|
+
if (effectiveLastActivity !== null && now - effectiveLastActivity < 9e5) return {
|
|
152
161
|
active: true,
|
|
153
162
|
reason: `active review agent ${agent.id}`
|
|
154
163
|
};
|
|
@@ -161,4 +170,4 @@ function evaluateReviewConvoyLiveness(issueId, status, agents, now = Date.now())
|
|
|
161
170
|
//#endregion
|
|
162
171
|
export { observeActiveReviewArtifact as a, convergeRowFromVerdictOfRecord as i, reviewTimestampMs as n, REVIEW_SUB_ROLES as r, evaluateReviewConvoyLiveness as t };
|
|
163
172
|
|
|
164
|
-
//# sourceMappingURL=review-convoy-liveness-
|
|
173
|
+
//# sourceMappingURL=review-convoy-liveness-BBvyuRLC.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as resolveReviewParentRunState } from "./review-run-recovery-
|
|
1
|
+
import { t as resolveReviewParentRunState } from "./review-run-recovery-THHMKlXJ.js";
|
|
2
2
|
export { resolveReviewParentRunState };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as PAN_DIRNAME, m as init_types } from "./types-
|
|
1
|
+
import { _ as init_agent_state, k as saveAgentState } from "./agent-state-FABw8neJ.js";
|
|
2
|
+
import { a as PAN_DIRNAME, m as init_types } from "./types-pLpbsNto.js";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { Effect } from "effect";
|
|
5
5
|
import { readdir, stat } from "node:fs/promises";
|
|
@@ -60,4 +60,4 @@ async function resolveReviewParentRunState(parent, options = {}) {
|
|
|
60
60
|
//#endregion
|
|
61
61
|
export { resolveReviewParentRunState as t };
|
|
62
62
|
|
|
63
|
-
//# sourceMappingURL=review-run-recovery-
|
|
63
|
+
//# sourceMappingURL=review-run-recovery-THHMKlXJ.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { _ as markWorkspaceStuck, d as getReviewStatusSync, f as getReviewStatusesSync, h as loadReviewStatuses, i as clearReviewStatus, p as init_review_status, t as FEEDBACK_DELIVERY_STUCK_REASON, w as setReviewStatusSync } from "./review-status-
|
|
1
|
+
import { _ as markWorkspaceStuck, d as getReviewStatusSync, f as getReviewStatusesSync, h as loadReviewStatuses, i as clearReviewStatus, p as init_review_status, t as FEEDBACK_DELIVERY_STUCK_REASON, w as setReviewStatusSync } from "./review-status-DpniqzPT.js";
|
|
2
2
|
init_review_status();
|
|
3
3
|
export { FEEDBACK_DELIVERY_STUCK_REASON, clearReviewStatus, getReviewStatusSync, getReviewStatusesSync, loadReviewStatuses, markWorkspaceStuck, setReviewStatusSync };
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { $ as readIssueRecord, $t as findProjectByPathSync,
|
|
3
|
-
import {
|
|
4
|
-
import { a as updateIssueRecord, i as init_record_update } from "./record-update-
|
|
2
|
+
import { $ as readIssueRecord, $t as findProjectByPathSync, Hi as packageRoot, Ht as init_state_read_home, On as resolveProjectFromIssueSync, Ri as getOverdeckHome, Wt as resolveStateReadHomeSync, Y as init_record, fn as init_projects, on as getProjectSync, p as loadConfigSync, q as getIssueWorkspacePath, t as init_config_yaml, tt as readIssueRecordSync, zi as init_paths } from "./config-yaml-D60AnTIu.js";
|
|
3
|
+
import { l as init_activity_logger, o as emitActivityEntrySync, s as emitActivityTtsSync } from "./activity-logger-SlTXYCVf.js";
|
|
4
|
+
import { a as updateIssueRecord, i as init_record_update } from "./record-update-BPqpBu3O.js";
|
|
5
5
|
import { n as truncateReviewStatusNote, t as init_review_status_limits } from "./review-status-limits-RG_QNh_k.js";
|
|
6
6
|
import { n as readActiveReviewArtifactContext, t as init_agent_state_source } from "./agent-state-source-69g8dqMg.js";
|
|
7
|
-
import { c as registerWorkStartVerdictAdapter, f as init_agent_state_sync, i as init_work_start_verdicts, n as readPipelineTelemetryAgentState, p as listOverdeckAgentStatesSync, s as registerVerdictPreservationStatusReader, t as init_pipeline_agent_reader } from "./pipeline-agent-reader-
|
|
8
|
-
import { d as init_cost_sync, i as getCostBreakdownByStageAndModelSync, o as getCostForIssueSync } from "./cost-sync-
|
|
9
|
-
import { a as registerCanonicalReviewStatusResolver, n as init_review_status_source, o as registerReviewStatusMapReader } from "./review-status-source-
|
|
10
|
-
import { a as PAN_DIRNAME, f as WORKSPACE_RUNTIME_DIRNAME, m as init_types$3, r as PAN_CONTINUES_DIRNAME } from "./types-
|
|
11
|
-
import { o as init_lifecycle, r as XBRIEF_FILENAME_SUFFIX, t as LEGACY_VBRIEF_FILENAME_SUFFIX } from "./lifecycle-
|
|
12
|
-
import { r as notifyPipelineSync, t as init_pipeline_notifier } from "./pipeline-notifier-
|
|
13
|
-
import { c as getReviewStatusesFromDb, h as normalizeReviewStatusSync, i as getAllReviewStatusesFromDb, l as init_review_status_sync, m as init_review_status_normalize, p as upsertReviewStatusSync, r as deleteReviewStatus, s as getReviewStatusFromDbSync, t as clearWorkspaceStuck$1, u as markWorkspaceStuck$1 } from "./review-status-sync-
|
|
14
|
-
import { i as init_merge_set, r as getMergeSetSync } from "./merge-set-
|
|
15
|
-
import { c as readMemoizedArtifactVerdict, o as init_synthesis_verdict } from "./synthesis-verdict-
|
|
7
|
+
import { c as registerWorkStartVerdictAdapter, f as init_agent_state_sync, i as init_work_start_verdicts, n as readPipelineTelemetryAgentState, p as listOverdeckAgentStatesSync, s as registerVerdictPreservationStatusReader, t as init_pipeline_agent_reader } from "./pipeline-agent-reader-CeWhQzXC.js";
|
|
8
|
+
import { d as init_cost_sync, i as getCostBreakdownByStageAndModelSync, o as getCostForIssueSync } from "./cost-sync-DfmvLT9L.js";
|
|
9
|
+
import { a as registerCanonicalReviewStatusResolver, n as init_review_status_source, o as registerReviewStatusMapReader } from "./review-status-source-Jq0BXmn3.js";
|
|
10
|
+
import { a as PAN_DIRNAME, f as WORKSPACE_RUNTIME_DIRNAME, m as init_types$3, r as PAN_CONTINUES_DIRNAME } from "./types-pLpbsNto.js";
|
|
11
|
+
import { o as init_lifecycle, r as XBRIEF_FILENAME_SUFFIX, t as LEGACY_VBRIEF_FILENAME_SUFFIX } from "./lifecycle-DVXyUil2.js";
|
|
12
|
+
import { r as notifyPipelineSync, t as init_pipeline_notifier } from "./pipeline-notifier-p190L97e.js";
|
|
13
|
+
import { c as getReviewStatusesFromDb, h as normalizeReviewStatusSync, i as getAllReviewStatusesFromDb, l as init_review_status_sync, m as init_review_status_normalize, p as upsertReviewStatusSync, r as deleteReviewStatus, s as getReviewStatusFromDbSync, t as clearWorkspaceStuck$1, u as markWorkspaceStuck$1 } from "./review-status-sync-C6ZKTI8f.js";
|
|
14
|
+
import { i as init_merge_set, r as getMergeSetSync } from "./merge-set-CyW-xSn4.js";
|
|
15
|
+
import { c as readMemoizedArtifactVerdict, o as init_synthesis_verdict } from "./synthesis-verdict-CGFF8uQI.js";
|
|
16
16
|
import { basename, dirname, join } from "node:path";
|
|
17
17
|
import { Data, Effect } from "effect";
|
|
18
18
|
import { existsSync, readFileSync, readdirSync, statSync } from "fs";
|
|
@@ -6978,9 +6978,9 @@ var init_service = __esmMin((() => {
|
|
|
6978
6978
|
//#region ../../lib/telemetry/pipeline.ts
|
|
6979
6979
|
async function readCanonicalPipelineMembership(issueId) {
|
|
6980
6980
|
const [membershipModule, gatherModule, recordModule] = await Promise.all([
|
|
6981
|
-
import("./pipeline-membership-
|
|
6982
|
-
import("./pipeline-membership-gather-
|
|
6983
|
-
import("./record-
|
|
6981
|
+
import("./pipeline-membership-C9ykcjsn.js"),
|
|
6982
|
+
import("./pipeline-membership-gather-C9E22B2W.js"),
|
|
6983
|
+
import("./record-DYOg97Iv.js")
|
|
6984
6984
|
]);
|
|
6985
6985
|
const project = recordModule.resolveProjectForIssue(issueId);
|
|
6986
6986
|
if (!project) return false;
|
|
@@ -7078,6 +7078,10 @@ function mergeGateEligibility(status) {
|
|
|
7078
7078
|
eligible: false,
|
|
7079
7079
|
reason: "no review record"
|
|
7080
7080
|
};
|
|
7081
|
+
if (status.retiredAt) return {
|
|
7082
|
+
eligible: false,
|
|
7083
|
+
reason: "retired"
|
|
7084
|
+
};
|
|
7081
7085
|
if (status.reviewStatus !== "passed" && status.reviewStatus !== "skipped") return {
|
|
7082
7086
|
eligible: false,
|
|
7083
7087
|
reason: `review is ${status.reviewStatus}`
|
|
@@ -7128,7 +7132,8 @@ function loadReadyForMergeFlags(issueIds) {
|
|
|
7128
7132
|
for (const key of journal.clearedFields ?? []) delete merged[key];
|
|
7129
7133
|
merged.issueId = issueId;
|
|
7130
7134
|
merged.updatedAt = journal.updatedAt;
|
|
7131
|
-
|
|
7135
|
+
const hasBlockers = (merged.blockerReasons?.length ?? 0) > 0;
|
|
7136
|
+
merged.readyForMerge = merged.retiredAt || hasBlockers ? false : reviewGatesPassedSync(merged);
|
|
7132
7137
|
status = normalizeReviewStatusSync(merged);
|
|
7133
7138
|
}
|
|
7134
7139
|
}
|
|
@@ -7183,10 +7188,12 @@ function setReviewStatusSync(issueId, update, existing) {
|
|
|
7183
7188
|
delete update.testStatus;
|
|
7184
7189
|
delete update.testNotes;
|
|
7185
7190
|
}
|
|
7191
|
+
const freshPrIdentity = update.prNumber !== void 0 && update.prNumber !== status.prNumber || update.prUrl !== void 0 && update.prUrl !== status.prUrl;
|
|
7186
7192
|
const merged = settleMergedVerification({
|
|
7187
7193
|
...status,
|
|
7188
7194
|
...update
|
|
7189
7195
|
});
|
|
7196
|
+
if (freshPrIdentity) merged.retiredAt = void 0;
|
|
7190
7197
|
if (update.reviewStatus !== status.reviewStatus && [
|
|
7191
7198
|
"passed",
|
|
7192
7199
|
"blocked",
|
|
@@ -7224,7 +7231,7 @@ function setReviewStatusSync(issueId, update, existing) {
|
|
|
7224
7231
|
timestamp: now,
|
|
7225
7232
|
...update.releaseNotes ? { notes: update.releaseNotes } : {}
|
|
7226
7233
|
});
|
|
7227
|
-
const readyForMerge = (merged.blockerReasons?.length ?? 0) > 0 || merged.uatStatus === "failed" ? false : update.readyForMerge !== void 0 ? update.readyForMerge : reviewGatesPassedSync(merged);
|
|
7234
|
+
const readyForMerge = Boolean(merged.retiredAt) || (merged.blockerReasons?.length ?? 0) > 0 || merged.uatStatus === "failed" ? false : update.readyForMerge !== void 0 ? update.readyForMerge : reviewGatesPassedSync(merged);
|
|
7228
7235
|
const boundedHistory = rawHistory.slice(-20).map((entry) => ({
|
|
7229
7236
|
...entry,
|
|
7230
7237
|
notes: entry.notes ? truncateReviewStatusNote(entry.notes) : void 0
|
|
@@ -7243,9 +7250,9 @@ function setReviewStatusSync(issueId, update, existing) {
|
|
|
7243
7250
|
readyForMerge,
|
|
7244
7251
|
history: boundedHistory
|
|
7245
7252
|
});
|
|
7246
|
-
if (readyForMerge && !status.readyForMerge && updated.prUrl) (async () => {
|
|
7253
|
+
if (readyForMerge && !status.readyForMerge && !updated.retiredAt && updated.prUrl) (async () => {
|
|
7247
7254
|
try {
|
|
7248
|
-
const { isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-
|
|
7255
|
+
const { isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-BWziYCf3.js");
|
|
7249
7256
|
if (!isGitHubAppConfigured()) return;
|
|
7250
7257
|
const prMatch = updated.prUrl.match(/github\.com\/([^/]+)\/([^/]+)\/pull/);
|
|
7251
7258
|
if (!prMatch) return;
|
|
@@ -7514,6 +7521,61 @@ async function deliverReviewVerdictFeedbackHostSide(issueId, status) {
|
|
|
7514
7521
|
console.warn(`[review-status] host-side review feedback delivery for ${issueId} did not complete (non-fatal): ${err instanceof Error ? err.message : String(err)}`);
|
|
7515
7522
|
}
|
|
7516
7523
|
}
|
|
7524
|
+
/**
|
|
7525
|
+
* PAN-3674: a pending review whose dispatch already ran (reviewSpawnedAt set)
|
|
7526
|
+
* but produced no live reviewer sessions is stranded by a failed spawn — the
|
|
7527
|
+
* 2026-08-13 PAN-3668 incident sat like this for 5h while the dashboard showed
|
|
7528
|
+
* a benign 'Pending'. needsReviewDispatch stands down once spawnedAt covers the
|
|
7529
|
+
* request, so without this repair nothing ever retries.
|
|
7530
|
+
*/
|
|
7531
|
+
function isStrandedPendingReview(status, now = Date.now()) {
|
|
7532
|
+
if (status.reviewStatus !== "pending") return false;
|
|
7533
|
+
if (status.readyForMerge === true || status.mergeStatus === "merged") return false;
|
|
7534
|
+
if (status.verificationStatus !== "passed" && status.verificationStatus !== "skipped") return false;
|
|
7535
|
+
const spawned = status.reviewSpawnedAt;
|
|
7536
|
+
if (spawned === void 0 || spawned === null) return false;
|
|
7537
|
+
const spawnedMs = typeof spawned === "number" ? spawned : Date.parse(spawned);
|
|
7538
|
+
if (!Number.isFinite(spawnedMs)) return false;
|
|
7539
|
+
return now - spawnedMs >= STRANDED_REVIEW_SPAWN_AGE_MS;
|
|
7540
|
+
}
|
|
7541
|
+
function maybeRedispatchStrandedReviewHostSide(issueId, status) {
|
|
7542
|
+
if (!isStrandedPendingReview(status)) return;
|
|
7543
|
+
const last = strandedReviewRedispatchAt.get(issueId) ?? 0;
|
|
7544
|
+
if (Date.now() - last < STRANDED_REDISPATCH_COOLDOWN_MS) return;
|
|
7545
|
+
strandedReviewRedispatchAt.set(issueId, Date.now());
|
|
7546
|
+
redispatchStrandedReviewHostSide(issueId, status);
|
|
7547
|
+
}
|
|
7548
|
+
async function redispatchStrandedReviewHostSide(issueId, status) {
|
|
7549
|
+
try {
|
|
7550
|
+
const { listSessions } = await import("./tmux-CYucGrTl.js");
|
|
7551
|
+
const { isReviewSessionForIssue } = await import("./specialists-registry-BRLCi61y.js");
|
|
7552
|
+
if ((await Effect.runPromise(listSessions()).catch(() => [])).some((s) => isReviewSessionForIssue(s.name, void 0, issueId))) return;
|
|
7553
|
+
const { resolveProjectFromIssueSync } = await import("./projects-BMuEf14J.js");
|
|
7554
|
+
const resolved = resolveProjectFromIssueSync(issueId);
|
|
7555
|
+
if (!resolved) return;
|
|
7556
|
+
const { existsSync } = await import("fs");
|
|
7557
|
+
const workspace = join$1(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
7558
|
+
if (!existsSync(workspace)) return;
|
|
7559
|
+
const { dispatchRegisteredReviewHostSide } = await import("./durable-review-pipeline-BOEZ0chh.js");
|
|
7560
|
+
const result = await dispatchRegisteredReviewHostSide({
|
|
7561
|
+
issueId,
|
|
7562
|
+
workspace,
|
|
7563
|
+
branch: `feature/${issueId.toLowerCase()}`,
|
|
7564
|
+
...status.prUrl ? { prUrl: status.prUrl } : {}
|
|
7565
|
+
});
|
|
7566
|
+
if (!result) return;
|
|
7567
|
+
const message = result.success ? `${issueId} — stranded pending review re-dispatched after a failed spawn (PAN-3674): ${result.message ?? "ok"}` : `${issueId} — stranded pending review re-dispatch failed (PAN-3674): ${result.error ?? result.message ?? "unknown"}`;
|
|
7568
|
+
console.log(`[review-status] ${message}`);
|
|
7569
|
+
emitActivityEntrySync({
|
|
7570
|
+
source: "review",
|
|
7571
|
+
level: result.success ? "info" : "warn",
|
|
7572
|
+
issueId,
|
|
7573
|
+
message
|
|
7574
|
+
});
|
|
7575
|
+
} catch (err) {
|
|
7576
|
+
console.warn(`[review-status] stranded review re-dispatch for ${issueId} did not complete (non-fatal): ${err instanceof Error ? err.message : String(err)}`);
|
|
7577
|
+
}
|
|
7578
|
+
}
|
|
7517
7579
|
function maybeAutoDispatchReviewHostSide(issueId, status) {
|
|
7518
7580
|
if (!needsReviewDispatch({
|
|
7519
7581
|
reviewRequestedAt: status.reviewRequestedAt,
|
|
@@ -7522,6 +7584,7 @@ function maybeAutoDispatchReviewHostSide(issueId, status) {
|
|
|
7522
7584
|
mergeStatus: status.mergeStatus,
|
|
7523
7585
|
readyForMerge: status.readyForMerge
|
|
7524
7586
|
})) {
|
|
7587
|
+
maybeRedispatchStrandedReviewHostSide(issueId, status);
|
|
7525
7588
|
if (!isReviewRequestStale({ reviewRequestedAt: status.reviewRequestedAt }) || staleReviewRequestClearAttemptedAt.has(issueId)) return;
|
|
7526
7589
|
staleReviewRequestClearAttemptedAt.set(issueId, Date.now());
|
|
7527
7590
|
try {
|
|
@@ -7544,7 +7607,7 @@ function maybeAutoDispatchReviewHostSide(issueId, status) {
|
|
|
7544
7607
|
}
|
|
7545
7608
|
async function dispatchReviewHostSide(issueId, prUrl) {
|
|
7546
7609
|
try {
|
|
7547
|
-
const { hasDurableReviewPipelineDispatch, startRegisteredDurableReviewPipelineHostSide } = await import("./durable-review-pipeline-
|
|
7610
|
+
const { hasDurableReviewPipelineDispatch, startRegisteredDurableReviewPipelineHostSide } = await import("./durable-review-pipeline-BOEZ0chh.js");
|
|
7548
7611
|
if (!hasDurableReviewPipelineDispatch()) {
|
|
7549
7612
|
if (!loggedMissingPipelineHandler) {
|
|
7550
7613
|
loggedMissingPipelineHandler = true;
|
|
@@ -7572,13 +7635,13 @@ function maybeRecoverTestVerdictHostSide(issueId, status) {
|
|
|
7572
7635
|
}
|
|
7573
7636
|
async function recoverTestVerdictHostSide(issueId) {
|
|
7574
7637
|
try {
|
|
7575
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
7638
|
+
const { resolveProjectFromIssueSync } = await import("./projects-BMuEf14J.js");
|
|
7576
7639
|
const resolved = resolveProjectFromIssueSync(issueId);
|
|
7577
7640
|
if (!resolved) return;
|
|
7578
7641
|
const { existsSync } = await import("fs");
|
|
7579
7642
|
const workspace = join$1(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
|
|
7580
7643
|
if (!existsSync(workspace)) return;
|
|
7581
|
-
const { readTestVerdictArtifact } = await import("./test-verdict-
|
|
7644
|
+
const { readTestVerdictArtifact } = await import("./test-verdict-9mvl7pQn.js");
|
|
7582
7645
|
const artifact = readTestVerdictArtifact(workspace);
|
|
7583
7646
|
if (!artifact) return;
|
|
7584
7647
|
setReviewStatusSync(issueId, {
|
|
@@ -7619,12 +7682,13 @@ function resetPipelineVerdictsForWorkStartSync(issueId, options = {}) {
|
|
|
7619
7682
|
reviewRequestedAt: void 0,
|
|
7620
7683
|
reviewSpawnedAt: void 0,
|
|
7621
7684
|
conflictResolutionDispatchedAt: void 0,
|
|
7622
|
-
blockerReasons: void 0
|
|
7685
|
+
blockerReasons: void 0,
|
|
7686
|
+
retiredAt: void 0
|
|
7623
7687
|
});
|
|
7624
7688
|
}
|
|
7625
7689
|
async function deliverUatFailureToWorkAgentHostSide(issueId, status) {
|
|
7626
7690
|
try {
|
|
7627
|
-
const { relayUatFailureFeedbackPromise } = await import("./uat-failure-feedback-
|
|
7691
|
+
const { relayUatFailureFeedbackPromise } = await import("./uat-failure-feedback-ly8ZwtfC.js");
|
|
7628
7692
|
await relayUatFailureFeedbackPromise({
|
|
7629
7693
|
issueId,
|
|
7630
7694
|
uatNotes: status.uatNotes,
|
|
@@ -7636,7 +7700,7 @@ async function deliverUatFailureToWorkAgentHostSide(issueId, status) {
|
|
|
7636
7700
|
}
|
|
7637
7701
|
async function clearUatFailureAnchorHostSide(issueId) {
|
|
7638
7702
|
try {
|
|
7639
|
-
const { clearUatFailureFeedbackAnchor } = await import("./uat-failure-feedback-
|
|
7703
|
+
const { clearUatFailureFeedbackAnchor } = await import("./uat-failure-feedback-ly8ZwtfC.js");
|
|
7640
7704
|
clearUatFailureFeedbackAnchor(issueId);
|
|
7641
7705
|
} catch (err) {
|
|
7642
7706
|
console.warn(`[review-status] host-side UAT-failure anchor clear for ${issueId} did not complete (non-fatal): ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -7644,13 +7708,13 @@ async function clearUatFailureAnchorHostSide(issueId) {
|
|
|
7644
7708
|
}
|
|
7645
7709
|
async function deliverTestFailureToWorkAgentHostSide(issueId, status) {
|
|
7646
7710
|
try {
|
|
7647
|
-
const { resolveProjectFromIssueSync } = await import("./projects-
|
|
7711
|
+
const { resolveProjectFromIssueSync } = await import("./projects-BMuEf14J.js");
|
|
7648
7712
|
const resolved = resolveProjectFromIssueSync(issueId);
|
|
7649
7713
|
const workspace = resolved ? join$1(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`) : void 0;
|
|
7650
7714
|
const notes = status.testNotes;
|
|
7651
7715
|
let feedbackPath;
|
|
7652
7716
|
try {
|
|
7653
|
-
const { writeFeedbackFile } = await import("./feedback-writer-
|
|
7717
|
+
const { writeFeedbackFile } = await import("./feedback-writer-BzN4qvaP.js");
|
|
7654
7718
|
const r = await Effect.runPromise(writeFeedbackFile({
|
|
7655
7719
|
issueId,
|
|
7656
7720
|
workspacePath: workspace,
|
|
@@ -7662,10 +7726,10 @@ async function deliverTestFailureToWorkAgentHostSide(issueId, status) {
|
|
|
7662
7726
|
if (r.success) feedbackPath = r.filePath;
|
|
7663
7727
|
} catch {}
|
|
7664
7728
|
const message = `SPECIALIST FEEDBACK: test-agent reported FAILED for ${issueId}.\n\n${feedbackPath ? `MUST READ: ${feedbackPath}\n\n` : ""}${notes ? `${notes.slice(0, 400)}\n\n` : ""}Fix the failing tests, commit and push, then re-run pan done ${issueId}. Do NOT stop at the prompt.`;
|
|
7665
|
-
const { resolveIssueFeedbackTarget, surfaceIssueFeedbackNeedsYou } = await import("./feedback-target-
|
|
7729
|
+
const { resolveIssueFeedbackTarget, surfaceIssueFeedbackNeedsYou } = await import("./feedback-target-DSVpi0gT.js");
|
|
7666
7730
|
const target = await resolveIssueFeedbackTarget(issueId);
|
|
7667
7731
|
if ("agentId" in target) {
|
|
7668
|
-
const { messageAgent } = await import("./agents-
|
|
7732
|
+
const { messageAgent } = await import("./agents-DixZjXWm.js");
|
|
7669
7733
|
await messageAgent(target.agentId, message, "internal", { owesRework: true });
|
|
7670
7734
|
console.log(`[review-status] delivered test failure to ${target.agentId} for ${issueId} (host-side)`);
|
|
7671
7735
|
} else await surfaceIssueFeedbackNeedsYou(issueId, target.reason, {
|
|
@@ -7720,24 +7784,26 @@ function clearStuckMergeStatuses() {
|
|
|
7720
7784
|
}
|
|
7721
7785
|
}
|
|
7722
7786
|
/**
|
|
7723
|
-
*
|
|
7724
|
-
*
|
|
7725
|
-
*
|
|
7726
|
-
* This happens when:
|
|
7727
|
-
* 1. A merge attempt was made (merging → verifying)
|
|
7728
|
-
* 2. The server restarted while verifying — clearStuckMergeStatuses reset mergeStatus to 'pending'
|
|
7729
|
-
* 3. At restart time, verificationStatus was 'pending' (reset by the request-review cycle)
|
|
7730
|
-
* 4. The old verificationSatisfied check blocked readyForMerge because of 'pending' status
|
|
7731
|
-
*
|
|
7732
|
-
* With verificationSatisfied now only blocking on 'failed', these issues should be
|
|
7733
|
-
* re-evaluated and readyForMerge restored so they reappear on the Awaiting Merge page.
|
|
7787
|
+
* Restore merge eligibility after a restart only when every gate passes and
|
|
7788
|
+
* canonical pipeline membership confirms that the issue still has an open PR.
|
|
7734
7789
|
*/
|
|
7735
|
-
function fixStuckReadyForMerge() {
|
|
7790
|
+
async function fixStuckReadyForMerge(gatherEligibility) {
|
|
7736
7791
|
const statuses = loadReviewStatuses();
|
|
7737
|
-
const stuck = Object.values(statuses).filter((s) => s.readyForMerge === false && s.reviewStatus === "passed" && (s.testStatus === "passed" || s.testStatus === "skipped") && verificationSatisfied(s) && (s.mergeStatus === "pending" || s.mergeStatus === "queued" || s.mergeStatus === void 0 || s.mergeStatus === null) && (s.uatStatus === void 0 || s.uatStatus === "passed"));
|
|
7792
|
+
const stuck = Object.values(statuses).filter((s) => !s.retiredAt && s.readyForMerge === false && s.reviewStatus === "passed" && (s.testStatus === "passed" || s.testStatus === "skipped") && verificationSatisfied(s) && (s.mergeStatus === "pending" || s.mergeStatus === "queued" || s.mergeStatus === void 0 || s.mergeStatus === null) && (s.uatStatus === void 0 || s.uatStatus === "passed"));
|
|
7738
7793
|
if (stuck.length === 0) return;
|
|
7794
|
+
const mergeEligibility = await import("./merge-eligibility-C4rTS97F.js");
|
|
7795
|
+
const memberships = await (gatherEligibility ?? mergeEligibility.gatherMergeEligibility)(stuck.map((status) => status.issueId));
|
|
7739
7796
|
console.log(`[review-status] Restoring readyForMerge for ${stuck.length} issue(s) with passed review+test`);
|
|
7740
7797
|
for (const s of stuck) {
|
|
7798
|
+
const membership = memberships.get(s.issueId.toUpperCase());
|
|
7799
|
+
if (!membership || !mergeEligibility.isMergeEligible(membership)) {
|
|
7800
|
+
if (membership) setReviewStatusSync(s.issueId, {
|
|
7801
|
+
readyForMerge: false,
|
|
7802
|
+
retiredAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
7803
|
+
});
|
|
7804
|
+
console.log(`[review-status] skipping ${s.issueId} — pipeline membership is ${membership?.bucket ?? "unavailable"}, not merge-eligible`);
|
|
7805
|
+
continue;
|
|
7806
|
+
}
|
|
7741
7807
|
console.log(`[review-status] Restoring readyForMerge=true for ${s.issueId} (verif=${s.verificationStatus}, merge=${s.mergeStatus})`);
|
|
7742
7808
|
setReviewStatusSync(s.issueId, { readyForMerge: true });
|
|
7743
7809
|
}
|
|
@@ -7861,7 +7927,7 @@ function setAutoMerge(issueId, autoMerge) {
|
|
|
7861
7927
|
console.error(`[review-status] Failed to set autoMerge for ${issueId}:`, err);
|
|
7862
7928
|
}
|
|
7863
7929
|
}
|
|
7864
|
-
var DEFAULT_STATUS_FILE, reviewVerdictFeedbackDelivery, reviewDispatchAttemptAt, staleReviewRequestClearAttemptedAt, REVIEW_AUTO_DISPATCH_THROTTLE_MS, loggedMissingPipelineHandler, testVerdictRecoveryAt, TEST_VERDICT_RECOVERY_THROTTLE_MS, FEEDBACK_DELIVERY_STUCK_REASON, ReviewStatusError, setReviewStatus, getReviewStatus;
|
|
7930
|
+
var DEFAULT_STATUS_FILE, reviewVerdictFeedbackDelivery, reviewDispatchAttemptAt, staleReviewRequestClearAttemptedAt, REVIEW_AUTO_DISPATCH_THROTTLE_MS, STRANDED_REVIEW_SPAWN_AGE_MS, STRANDED_REDISPATCH_COOLDOWN_MS, strandedReviewRedispatchAt, loggedMissingPipelineHandler, testVerdictRecoveryAt, TEST_VERDICT_RECOVERY_THROTTLE_MS, FEEDBACK_DELIVERY_STUCK_REASON, ReviewStatusError, setReviewStatus, getReviewStatus;
|
|
7865
7931
|
var init_review_status = __esmMin((() => {
|
|
7866
7932
|
init_pipeline_notifier();
|
|
7867
7933
|
init_activity_logger();
|
|
@@ -7895,6 +7961,9 @@ var init_review_status = __esmMin((() => {
|
|
|
7895
7961
|
reviewDispatchAttemptAt = /* @__PURE__ */ new Map();
|
|
7896
7962
|
staleReviewRequestClearAttemptedAt = /* @__PURE__ */ new Map();
|
|
7897
7963
|
REVIEW_AUTO_DISPATCH_THROTTLE_MS = 3e4;
|
|
7964
|
+
STRANDED_REVIEW_SPAWN_AGE_MS = 20 * 6e4;
|
|
7965
|
+
STRANDED_REDISPATCH_COOLDOWN_MS = 10 * 6e4;
|
|
7966
|
+
strandedReviewRedispatchAt = /* @__PURE__ */ new Map();
|
|
7898
7967
|
loggedMissingPipelineHandler = false;
|
|
7899
7968
|
testVerdictRecoveryAt = /* @__PURE__ */ new Map();
|
|
7900
7969
|
TEST_VERDICT_RECOVERY_THROTTLE_MS = 6e4;
|
|
@@ -7930,4 +7999,4 @@ var init_review_status = __esmMin((() => {
|
|
|
7930
7999
|
//#endregion
|
|
7931
8000
|
export { resolvePipelineTelemetryContext as A, needsReviewDispatch as B, setReviewStatus as C, capturePipelineStage as D, init_review_verdict_guards as E, init_install_id as F, findBlockingFindings as G, init_review_status_reconcile as H, init_config as I, findWorkspaceVerdictConflicts as J, init_review_findings as K, resolveTelemetryEnabled as L, init_service as M, synchronizeAnalyticsServices as N, capturePipelineStageForIssue as O, getOrCreateInstallId as P, readWorkspaceVerdictFallback as Q, telemetryEnvironmentForcesOff as R, setDeaconIgnored as S, clearSupersededReviewInfrastructureFailure as T, reviewGatesPassedSync as U, MERGED_VERIFICATION_REASON as V, verificationSatisfied as W, readJournalStatus as X, init_review_status_record_sync as Y, readJournalStatusSync as Z, markWorkspaceStuck as _, clearStuckMergeStatuses as a, resetPipelineVerdictsForWorkStartSync as b, fixStuckCommentedReviews as c, getReviewStatusSync as d, getReviewStatusesSync as f, loadReviewStatusesForIssues as g, loadReviewStatuses as h, clearReviewStatus as i, getAnalyticsService as j, init_pipeline as k, fixStuckReadyForMerge as l, loadReadyForMergeFlags as m, ReviewStatusError as n, clearWorkspaceStuck as o, init_review_status as p, drainWorkspaceVerdictFallback as q, clearFeedbackDeliveryStuck as r, dispatchReviewHostSide as s, FEEDBACK_DELIVERY_STUCK_REASON as t, getReviewStatus as u, mergeGateEligibility as v, setReviewStatusSync as w, setAutoMerge as x, registerReviewVerdictFeedbackDelivery as y, init_review_dispatch_decision as z };
|
|
7932
8001
|
|
|
7933
|
-
//# sourceMappingURL=review-status-
|
|
8002
|
+
//# sourceMappingURL=review-status-DpniqzPT.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as getReviewStatusSync, p as init_review_status } from "./review-status-
|
|
2
|
-
import { t as enrichReviewStatus } from "./review-status-enrichment-
|
|
1
|
+
import { d as getReviewStatusSync, p as init_review_status } from "./review-status-DpniqzPT.js";
|
|
2
|
+
import { t as enrichReviewStatus } from "./review-status-enrichment-PDI4-faj.js";
|
|
3
3
|
import { Effect } from "effect";
|
|
4
4
|
import { isDeepStrictEqual } from "node:util";
|
|
5
5
|
//#region review-status-emit.ts
|
|
@@ -47,4 +47,4 @@ function emitReviewStatusChanged(append, issueId, status) {
|
|
|
47
47
|
//#endregion
|
|
48
48
|
export { sameCanonicalReviewStatus as n, emitReviewStatusChanged as t };
|
|
49
49
|
|
|
50
|
-
//# sourceMappingURL=review-status-emit-
|
|
50
|
+
//# sourceMappingURL=review-status-emit-D7sM720S.js.map
|
package/server/{review-status-enrichment-D-rQshu6.js → review-status-enrichment-PDI4-faj.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { On as resolveProjectFromIssueSync, fn as init_projects } from "./config-yaml-
|
|
2
|
-
import {
|
|
1
|
+
import { On as resolveProjectFromIssueSync, fn as init_projects } from "./config-yaml-D60AnTIu.js";
|
|
2
|
+
import { C as init_tmux, j as listSessionNames } from "./tmux-wnT_hg-s.js";
|
|
3
3
|
import { Data, Effect } from "effect";
|
|
4
4
|
import { existsSync } from "fs";
|
|
5
5
|
import { join } from "path";
|
|
@@ -124,4 +124,4 @@ const enrichReviewStatus = (issueId, status) => Effect.tryPromise({
|
|
|
124
124
|
//#endregion
|
|
125
125
|
export { enrichReviewStatusFromSessions as n, enrichReviewStatus as t };
|
|
126
126
|
|
|
127
|
-
//# sourceMappingURL=review-status-enrichment-
|
|
127
|
+
//# sourceMappingURL=review-status-enrichment-PDI4-faj.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as init_review_status_source, s as resolveCanonicalReviewStatus } from "./review-status-source-
|
|
1
|
+
import { n as init_review_status_source, s as resolveCanonicalReviewStatus } from "./review-status-source-Jq0BXmn3.js";
|
|
2
2
|
init_review_status_source();
|
|
3
3
|
export { resolveCanonicalReviewStatus };
|
|
@@ -57,4 +57,4 @@ var init_review_status_source = __esmMin((() => {
|
|
|
57
57
|
//#endregion
|
|
58
58
|
export { registerCanonicalReviewStatusResolver as a, readReviewStatusMap as i, init_review_status_source as n, registerReviewStatusMapReader as o, isRoleTerminal as r, resolveCanonicalReviewStatus as s, classifyAdvancingSessionLifecycle as t };
|
|
59
59
|
|
|
60
|
-
//# sourceMappingURL=review-status-source-
|
|
60
|
+
//# sourceMappingURL=review-status-source-Jq0BXmn3.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-
|
|
2
|
+
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-CJRi_5Wu.js";
|
|
3
3
|
import { t as init_review_status_limits } from "./review-status-limits-RG_QNh_k.js";
|
|
4
4
|
import { Effect } from "effect";
|
|
5
5
|
//#region ../../lib/review-status-normalize.ts
|
|
@@ -63,6 +63,7 @@ function rowToReviewStatus(row, history) {
|
|
|
63
63
|
releaseNotes: row.release_notes ?? void 0,
|
|
64
64
|
updatedAt: msToIso(row.updated_at) ?? (/* @__PURE__ */ new Date(0)).toISOString(),
|
|
65
65
|
readyForMerge: row.ready_for_merge === 1,
|
|
66
|
+
retiredAt: msToIso(row.retired_at),
|
|
66
67
|
autoRequeueCount: row.auto_requeue_count ?? void 0,
|
|
67
68
|
mergeRetryCount: row.merge_retry_count ?? void 0,
|
|
68
69
|
prUrl: row.pr_url ?? void 0,
|
|
@@ -132,9 +133,9 @@ function upsertReviewStatusSync(status) {
|
|
|
132
133
|
strike_ready_head, strike_ready_at, strike_landing_state,
|
|
133
134
|
strike_recovery_count, strike_transport_retry_count,
|
|
134
135
|
strike_next_attempt_at, strike_landing_attempts,
|
|
135
|
-
review_cycle_history
|
|
136
|
+
review_cycle_history, retired_at
|
|
136
137
|
) VALUES (
|
|
137
|
-
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
|
|
138
|
+
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
|
|
138
139
|
)
|
|
139
140
|
ON CONFLICT(issue_id) DO UPDATE SET
|
|
140
141
|
review_status = excluded.review_status,
|
|
@@ -187,8 +188,9 @@ function upsertReviewStatusSync(status) {
|
|
|
187
188
|
strike_transport_retry_count = excluded.strike_transport_retry_count,
|
|
188
189
|
strike_next_attempt_at = excluded.strike_next_attempt_at,
|
|
189
190
|
strike_landing_attempts = excluded.strike_landing_attempts,
|
|
190
|
-
review_cycle_history = excluded.review_cycle_history
|
|
191
|
-
|
|
191
|
+
review_cycle_history = excluded.review_cycle_history,
|
|
192
|
+
retired_at = excluded.retired_at
|
|
193
|
+
`).run(s.issueId, s.reviewStatus, s.testStatus, s.uatStatus ?? null, s.mergeStatus ?? null, s.inspectStatus ?? null, null, isoToMs(s.inspectStartedAt), s.inspectBeadId ?? null, s.inspectOwnerSession ?? null, s.verificationStatus ?? null, null, s.verificationCycleCount ?? null, s.verificationMaxCycles ?? null, null, null, null, null, s.releaseStatus ?? null, s.releaseNotes ?? null, isoToMs(s.updatedAt) ?? Date.now(), s.readyForMerge ? 1 : 0, s.autoRequeueCount ?? null, s.mergeRetryCount ?? null, s.prUrl ?? null, s.prHeadSha ?? null, s.prNumber ?? null, s.stuck ? 1 : 0, s.stuckReason ?? null, isoToMs(s.stuckAt), s.stuckDetails ?? null, s.reviewedAtCommit ?? null, isoToMs(s.reviewSpawnedAt), isoToMs(s.conflictResolutionDispatchedAt), s.testRetryCount ?? null, s.reviewRetryCount ?? null, isoToMs(s.recoveryStartedAt), s.deaconIgnored ? 1 : 0, isoToMs(s.deaconIgnoredAt), s.deaconIgnoredReason ?? null, s.blockerReasons ? JSON.stringify(s.blockerReasons) : null, s.lastVerifiedCommit ?? null, s.mergeStep ?? null, s.autoMerge === void 0 ? null : s.autoMerge ? 1 : 0, s.strikeReadyHead ?? null, isoToMs(s.strikeReadyAt), s.strikeLandingState ?? null, s.strikeRecoveryCount ?? null, s.strikeTransportRetryCount ?? null, isoToMs(s.strikeNextAttemptAt), s.strikeLandingAttempts ? JSON.stringify(s.strikeLandingAttempts) : null, s.reviewCycleHistory ? JSON.stringify(s.reviewCycleHistory) : null, isoToMs(s.retiredAt));
|
|
192
194
|
if (s.history && s.history.length > 0) {
|
|
193
195
|
const insertHistory = db.prepare(`INSERT OR IGNORE INTO status_history (issue_id, type, status, timestamp, notes)
|
|
194
196
|
VALUES (?, ?, ?, ?, ?)`);
|
|
@@ -333,10 +335,11 @@ function getMergeBlockerReconcileCandidatesSync() {
|
|
|
333
335
|
return getOverdeckDatabaseSync().prepare(`
|
|
334
336
|
SELECT issue_id, pr_url, blocker_reasons, ready_for_merge
|
|
335
337
|
FROM review_status
|
|
336
|
-
WHERE
|
|
338
|
+
WHERE retired_at IS NULL AND (
|
|
339
|
+
ready_for_merge = 1
|
|
337
340
|
OR blocker_reasons LIKE '%merge_conflict%'
|
|
338
341
|
OR blocker_reasons LIKE '%not_mergeable%'
|
|
339
|
-
OR blocker_reasons LIKE '%failing_checks%'
|
|
342
|
+
OR blocker_reasons LIKE '%failing_checks%')
|
|
340
343
|
`).all().map((row) => ({
|
|
341
344
|
issueId: row.issue_id.toUpperCase(),
|
|
342
345
|
prUrl: row.pr_url ?? void 0,
|
|
@@ -362,4 +365,4 @@ var init_review_status_sync = __esmMin((() => {
|
|
|
362
365
|
//#endregion
|
|
363
366
|
export { getMergeBlockerReconcileCandidates as a, getReviewStatusesFromDb as c, setAutoMerge as d, setDeaconIgnored as f, normalizeReviewStatusSync as h, getAllReviewStatusesFromDb as i, init_review_status_sync as l, init_review_status_normalize as m, clearWorkspaceStuckAndResetHistory as n, getMergeBlockerReconcileCandidatesSync as o, upsertReviewStatusSync as p, deleteReviewStatus as r, getReviewStatusFromDbSync as s, clearWorkspaceStuck as t, markWorkspaceStuck as u };
|
|
364
367
|
|
|
365
|
-
//# sourceMappingURL=review-status-sync-
|
|
368
|
+
//# sourceMappingURL=review-status-sync-C6ZKTI8f.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as getMergeBlockerReconcileCandidates, c as getReviewStatusesFromDb, d as setAutoMerge, f as setDeaconIgnored, i as getAllReviewStatusesFromDb, l as init_review_status_sync, n as clearWorkspaceStuckAndResetHistory, o as getMergeBlockerReconcileCandidatesSync, p as upsertReviewStatusSync, r as deleteReviewStatus, s as getReviewStatusFromDbSync, t as clearWorkspaceStuck, u as markWorkspaceStuck } from "./review-status-sync-
|
|
1
|
+
import { a as getMergeBlockerReconcileCandidates, c as getReviewStatusesFromDb, d as setAutoMerge, f as setDeaconIgnored, i as getAllReviewStatusesFromDb, l as init_review_status_sync, n as clearWorkspaceStuckAndResetHistory, o as getMergeBlockerReconcileCandidatesSync, p as upsertReviewStatusSync, r as deleteReviewStatus, s as getReviewStatusFromDbSync, t as clearWorkspaceStuck, u as markWorkspaceStuck } from "./review-status-sync-C6ZKTI8f.js";
|
|
2
2
|
init_review_status_sync();
|
|
3
3
|
export { clearWorkspaceStuck, clearWorkspaceStuckAndResetHistory, deleteReviewStatus, getAllReviewStatusesFromDb, getMergeBlockerReconcileCandidates, getMergeBlockerReconcileCandidatesSync, getReviewStatusFromDbSync, getReviewStatusesFromDb, markWorkspaceStuck, setAutoMerge, setDeaconIgnored, upsertReviewStatusSync };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { On as resolveProjectFromIssueSync, fn as init_projects } from "./config-yaml-
|
|
2
|
-
import {
|
|
3
|
-
import { a as PAN_DIRNAME, m as init_types } from "./types-
|
|
4
|
-
import { d as getReviewStatusSync, p as init_review_status, r as clearFeedbackDeliveryStuck } from "./review-status-
|
|
5
|
-
import { d as init_review_verdict_report, l as findVerdictReport } from "./synthesis-verdict-
|
|
6
|
-
import { a as writeFeedbackFile, i as init_feedback_writer } from "./feedback-writer-
|
|
7
|
-
import { n as resolveIssueFeedbackTarget, r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-
|
|
1
|
+
import { On as resolveProjectFromIssueSync, fn as init_projects } from "./config-yaml-D60AnTIu.js";
|
|
2
|
+
import { Ht as init_messaging, Ut as messageAgent, _ as init_agent_state, g as getAgentStateSync } from "./agent-state-FABw8neJ.js";
|
|
3
|
+
import { a as PAN_DIRNAME, m as init_types } from "./types-pLpbsNto.js";
|
|
4
|
+
import { d as getReviewStatusSync, p as init_review_status, r as clearFeedbackDeliveryStuck } from "./review-status-DpniqzPT.js";
|
|
5
|
+
import { d as init_review_verdict_report, l as findVerdictReport } from "./synthesis-verdict-CGFF8uQI.js";
|
|
6
|
+
import { a as writeFeedbackFile, i as init_feedback_writer } from "./feedback-writer-Ds1Wjsz4.js";
|
|
7
|
+
import { n as resolveIssueFeedbackTarget, r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-yPD_wclF.js";
|
|
8
8
|
import { join } from "node:path";
|
|
9
9
|
import { Effect } from "effect";
|
|
10
10
|
import { existsSync } from "node:fs";
|
|
@@ -228,4 +228,4 @@ async function deliverReviewVerdictFeedbackFromStatus(issueId, status) {
|
|
|
228
228
|
//#endregion
|
|
229
229
|
export { deliverReviewVerdictFeedbackFromStatus as n, postPrComment as r, deliverReviewVerdictFeedback as t };
|
|
230
230
|
|
|
231
|
-
//# sourceMappingURL=review-verdict-feedback-
|
|
231
|
+
//# sourceMappingURL=review-verdict-feedback-B2ojHFH5.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as deliverReviewVerdictFeedback } from "./review-verdict-feedback-
|
|
1
|
+
import { t as deliverReviewVerdictFeedback } from "./review-verdict-feedback-B2ojHFH5.js";
|
|
2
2
|
export { deliverReviewVerdictFeedback };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { On as resolveProjectFromIssueSync, fn as init_projects } from "./config-yaml-
|
|
2
|
-
import {
|
|
3
|
-
import { a as init_git_utils, n as formatAnchorShort, o as parseCompositeSnapshot } from "./git-utils-
|
|
4
|
-
import {
|
|
5
|
-
import { d as getReviewStatusSync, p as init_review_status, w as setReviewStatusSync } from "./review-status-
|
|
6
|
-
import { t as getCloisterEventStore } from "./event-store-provider-
|
|
1
|
+
import { On as resolveProjectFromIssueSync, fn as init_projects } from "./config-yaml-D60AnTIu.js";
|
|
2
|
+
import { l as init_activity_logger, o as emitActivityEntrySync } from "./activity-logger-SlTXYCVf.js";
|
|
3
|
+
import { a as init_git_utils, n as formatAnchorShort, o as parseCompositeSnapshot } from "./git-utils-BdHk8y7g.js";
|
|
4
|
+
import { d as resolveWorkspaceRepoRootsSync, i as init_project_repos } from "./project-repos-CsfvLtmr.js";
|
|
5
|
+
import { d as getReviewStatusSync, p as init_review_status, w as setReviewStatusSync } from "./review-status-DpniqzPT.js";
|
|
6
|
+
import { t as getCloisterEventStore } from "./event-store-provider-Bu1Qrg6v.js";
|
|
7
7
|
import { join } from "path";
|
|
8
8
|
import { execFile } from "child_process";
|
|
9
9
|
import { promisify } from "util";
|
|
@@ -205,4 +205,4 @@ async function recordReviewVerdict(issueId, input) {
|
|
|
205
205
|
//#endregion
|
|
206
206
|
export { recordReviewVerdict as t };
|
|
207
207
|
|
|
208
|
-
//# sourceMappingURL=review-verdict-writer-
|
|
208
|
+
//# sourceMappingURL=review-verdict-writer-Cy_1pnIj.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as recordReviewVerdict } from "./review-verdict-writer-
|
|
1
|
+
import { t as recordReviewVerdict } from "./review-verdict-writer-Cy_1pnIj.js";
|
|
2
2
|
export { recordReviewVerdict };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { c as synthesizeStatusRollup, n as commitStatusRollup } from "./rollup-
|
|
1
|
+
import { c as synthesizeStatusRollup, n as commitStatusRollup } from "./rollup-DU3xBQu2.js";
|
|
2
2
|
export { commitStatusRollup, synthesizeStatusRollup };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { k as MemoryStatus, t as init_src } from "./src-
|
|
2
|
-
import { a as resolveArchiveDir, f as resolveStatusFile, i as init_paths, l as resolveObservationsFile, n as ensureDir, r as ensureParentDir, u as resolvePendingDir } from "./paths-
|
|
3
|
-
import { i as init_settings, n as getMemoryRollupPendingThreshold } from "./settings-
|
|
4
|
-
import { i as updateMemoryHealth, n as extractWithProviderPolicy, r as init_health, t as init_providers } from "./providers-
|
|
1
|
+
import { k as MemoryStatus, t as init_src } from "./src-CdwN6WY6.js";
|
|
2
|
+
import { a as resolveArchiveDir, f as resolveStatusFile, i as init_paths, l as resolveObservationsFile, n as ensureDir, r as ensureParentDir, u as resolvePendingDir } from "./paths-rETQhTF2.js";
|
|
3
|
+
import { i as init_settings, n as getMemoryRollupPendingThreshold } from "./settings-nAT-eK56.js";
|
|
4
|
+
import { i as updateMemoryHealth, n as extractWithProviderPolicy, r as init_health, t as init_providers } from "./providers-CxPKmyif.js";
|
|
5
5
|
import { Result, Schema } from "effect";
|
|
6
6
|
import { dirname } from "path";
|
|
7
7
|
import { randomUUID } from "crypto";
|
|
@@ -100,8 +100,8 @@ function pendingTurnRangeKey(turn) {
|
|
|
100
100
|
return `${safeFileSegment(turn.identity.sessionId)}_${turn.fromOffset}_${turn.toOffset}`;
|
|
101
101
|
}
|
|
102
102
|
async function enqueueStatusRollupEvent(job) {
|
|
103
|
-
const { initEventStore } = await import("./event-store-
|
|
104
|
-
const { synthesizeStatusRollup, commitStatusRollup } = await import("./rollup-
|
|
103
|
+
const { initEventStore } = await import("./event-store-C50Qt-f1.js");
|
|
104
|
+
const { synthesizeStatusRollup, commitStatusRollup } = await import("./rollup-Cp0KEoOu.js");
|
|
105
105
|
const store = await initEventStore();
|
|
106
106
|
const eventIssueId = job.identity.issueId ?? job.identity.workspaceId;
|
|
107
107
|
await store.appendAsync({
|
|
@@ -386,7 +386,7 @@ async function clearPendingTurns(projectId, workspaceId, pendingTurns) {
|
|
|
386
386
|
return cleared;
|
|
387
387
|
}
|
|
388
388
|
async function emitStatusUpdatedEvent(event) {
|
|
389
|
-
const { initEventStore } = await import("./event-store-
|
|
389
|
+
const { initEventStore } = await import("./event-store-C50Qt-f1.js");
|
|
390
390
|
await (await initEventStore()).appendAsync({
|
|
391
391
|
type: "memory.status_updated",
|
|
392
392
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -470,4 +470,4 @@ function isEnoent(error) {
|
|
|
470
470
|
//#endregion
|
|
471
471
|
export { readCurrentStatus as a, synthesizeStatusRollup as c, readArchivedStatuses as i, maybeTriggerStatusRollup as l, commitStatusRollup as n, readObservationsSince as o, readArchivedStatusEntries as r, readRecentObservations as s, buildStatusRollupPrompt as t, writePendingTurn as u };
|
|
472
472
|
|
|
473
|
-
//# sourceMappingURL=rollup-
|
|
473
|
+
//# sourceMappingURL=rollup-DU3xBQu2.js.map
|