@askexenow/exe-os 0.9.370 → 0.9.372
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/deploy/compose/docker-compose.yml +46 -15
- package/deploy/stack-manifests/v0.9.json +117 -2
- package/dist/.dist-verified.json +3 -3
- package/dist/{active-agent-H5UZGJ5D.js → active-agent-GRT5MKD5.js} +3 -3
- package/dist/{active-agent-L6GFD4NP.js → active-agent-L2ZSSXDK.js} +3 -3
- package/dist/{agent-defs-generator-BARBPY6L.js → agent-defs-generator-M4ZNYIVX.js} +2 -2
- package/dist/{agentic-ontology-OZM624IZ.js → agentic-ontology-DMPRDEUX.js} +1 -1
- package/dist/{backfill-metadata-43B5R5JT.js → backfill-metadata-ZMEHJQ5M.js} +5 -5
- package/dist/{backup-verify-FW5GEF4B.js → backup-verify-EX2K732J.js} +1 -1
- package/dist/{behavior-injection-RT4ET4ZF.js → behavior-injection-22AGMS25.js} +12 -11
- package/dist/{behaviors-ZLEW6AIW.js → behaviors-DVFXAWF5.js} +10 -9
- package/dist/bin/agentic-ontology-backfill.js +6 -6
- package/dist/bin/agentic-reflection-backfill.js +7 -7
- package/dist/bin/agentic-semantic-label.js +6 -6
- package/dist/bin/backfill-conversations.js +8 -7
- package/dist/bin/backfill-responses.js +8 -7
- package/dist/bin/backfill-vectors.js +10 -9
- package/dist/bin/bulk-sync-postgres.js +14 -13
- package/dist/bin/cc-doctor.js +5 -5
- package/dist/bin/cleanup-stale-review-tasks.js +18 -17
- package/dist/bin/cli.js +30 -22
- package/dist/bin/deferred-daemon-restart.js +123 -94
- package/dist/bin/exe-agent-config.js +2 -2
- package/dist/bin/exe-agent.js +8 -8
- package/dist/bin/exe-assign.js +10 -9
- package/dist/bin/exe-boot.js +46 -35
- package/dist/bin/exe-call.js +4 -4
- package/dist/bin/exe-cloud.js +15 -14
- package/dist/bin/exe-config-dump.js +2 -2
- package/dist/bin/exe-dispatch.js +19 -18
- package/dist/bin/exe-doctor.js +5 -5
- package/dist/bin/exe-export-behaviors.js +14 -13
- package/dist/bin/exe-forget.js +7 -7
- package/dist/bin/exe-gateway.js +7 -7
- package/dist/bin/exe-healthcheck.js +5 -5
- package/dist/bin/exe-heartbeat.js +21 -20
- package/dist/bin/exe-kill.js +22 -21
- package/dist/bin/exe-launch-agent.js +29 -28
- package/dist/bin/exe-mcp.js +3 -3
- package/dist/bin/exe-memory-reads.js +5 -5
- package/dist/bin/exe-new-employee.js +8 -8
- package/dist/bin/exe-os-mcp-proxy.js +3 -3
- package/dist/bin/exe-pending-messages.js +19 -18
- package/dist/bin/exe-pending-notifications.js +18 -17
- package/dist/bin/exe-pending-reviews.js +18 -17
- package/dist/bin/exe-rename.js +4 -4
- package/dist/bin/exe-repo-truth.js +369 -0
- package/dist/bin/exe-review.js +21 -20
- package/dist/bin/exe-search.js +6 -6
- package/dist/bin/exe-session-cleanup.js +22 -21
- package/dist/bin/exe-settings.js +14 -13
- package/dist/bin/exe-start-codex.js +19 -18
- package/dist/bin/exe-start-opencode.js +15 -14
- package/dist/bin/exe-status.js +20 -19
- package/dist/bin/exe-support.js +3 -3
- package/dist/bin/exe-team.js +4 -4
- package/dist/bin/exe-watchdog.js +1 -1
- package/dist/bin/git-sweep.js +19 -18
- package/dist/bin/graph-backfill.js +6 -6
- package/dist/bin/graph-export.js +6 -6
- package/dist/bin/import-history.js +9 -9
- package/dist/bin/install-launchd.js +1 -1
- package/dist/bin/install.js +91 -90
- package/dist/bin/intercom-check.js +4 -4
- package/dist/bin/mcp-sessions.js +2 -2
- package/dist/bin/orchestration-metrics.js +4 -4
- package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
- package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
- package/dist/bin/reconcile-backlog.js +2 -2
- package/dist/bin/registry-proxy.js +1 -1
- package/dist/bin/scan-tasks.js +18 -17
- package/dist/bin/setup.js +1 -1
- package/dist/bin/shard-migrate.js +5 -5
- package/dist/bin/stack-update.js +5 -5
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/{boot-generation-Z7ZM5LE5.js → boot-generation-OHXH4YC5.js} +3 -3
- package/dist/{boot-review-sections-52Y62Q6M.js → boot-review-sections-N5IXIGSS.js} +17 -16
- package/dist/{branch-hygiene-HFJ3HA62.js → branch-hygiene-KCGXRAWP.js} +125 -73
- package/dist/build-manifest.json +938 -918
- package/dist/{capability-cards-SKMGT3G2.js → capability-cards-4PXVLIVS.js} +2 -2
- package/dist/{capacity-monitor-JPFS5FYT.js → capacity-monitor-FKMQXORX.js} +19 -18
- package/dist/{catchup-brief-R4FP7ERW.js → catchup-brief-SN5EKO4N.js} +22 -21
- package/dist/{chunk-3TSDANOL.js → chunk-23QKEUF6.js} +11 -11
- package/dist/{chunk-33VQTJ6H.js → chunk-3KTQWMHI.js} +1 -1
- package/dist/{chunk-QS6HI4B6.js → chunk-3TTKAT6V.js} +31 -9
- package/dist/{chunk-D3QU2KNF.js → chunk-44C7QNZS.js} +1 -1
- package/dist/{chunk-S74ZNCBS.js → chunk-4ZJ5BPY6.js} +1 -1
- package/dist/{chunk-FFG3OMOH.js → chunk-53PYNYTW.js} +3 -3
- package/dist/{chunk-VZXEDC6K.js → chunk-5AHDQCTB.js} +4 -4
- package/dist/{chunk-JRPGAOHL.js → chunk-5AHRZI3R.js} +1 -1
- package/dist/{chunk-L6BZDFWT.js → chunk-5APCDDJZ.js} +1 -1
- package/dist/{chunk-5XRKPKHJ.js → chunk-5DCCKHDY.js} +3 -3
- package/dist/{chunk-64HUCOAL.js → chunk-5V7BD7Z4.js} +9 -1
- package/dist/{chunk-QK26AJD7.js → chunk-6XEYELCA.js} +1 -1
- package/dist/{chunk-WAIFOWCF.js → chunk-77JP3LK4.js} +6 -6
- package/dist/{chunk-C2CQ3KXS.js → chunk-7PSLK36P.js} +1 -1
- package/dist/{chunk-E63E3GUT.js → chunk-7R73IAHU.js} +9 -9
- package/dist/{chunk-L24EAOSG.js → chunk-7V6M3QUS.js} +1 -1
- package/dist/{chunk-BFP7JOD7.js → chunk-7WQRFSZI.js} +3 -3
- package/dist/{chunk-QILQ5FCG.js → chunk-A7JYF4RG.js} +6 -0
- package/dist/{chunk-P5XTVIEC.js → chunk-AAUWFXOX.js} +4 -4
- package/dist/{chunk-OPI5HGW6.js → chunk-AMKSDKMK.js} +1 -1
- package/dist/{chunk-U6SWEAAK.js → chunk-CNC57JCS.js} +4 -4
- package/dist/{chunk-I3FXDCUE.js → chunk-DKBPCOU4.js} +50 -20
- package/dist/{chunk-TTAPKUQV.js → chunk-E2WEFZOR.js} +1 -1
- package/dist/{chunk-AYMYU3RC.js → chunk-E7UCDSUE.js} +4 -4
- package/dist/{chunk-AWWAZBL7.js → chunk-ECHLVLA7.js} +1 -1
- package/dist/{chunk-EKOB53FE.js → chunk-EEXX4UMQ.js} +1 -1
- package/dist/{chunk-YTDIGGFZ.js → chunk-ELXFSIIM.js} +2 -2
- package/dist/{chunk-XFZHTFH5.js → chunk-ERVQTR7P.js} +2 -2
- package/dist/{chunk-VFI3HGKM.js → chunk-FB343XQX.js} +2 -2
- package/dist/{chunk-MMDOULD5.js → chunk-FBYAXTDM.js} +1 -1
- package/dist/{chunk-XWTZEVBQ.js → chunk-GH6YJOOC.js} +5 -5
- package/dist/{chunk-4HNVZDCM.js → chunk-GU62SNDH.js} +1 -1
- package/dist/{chunk-RLWSVSDV.js → chunk-HDW4XPDV.js} +1 -1
- package/dist/{chunk-6LU3DRZF.js → chunk-HECXZGGZ.js} +9 -9
- package/dist/{chunk-DZU7LMXH.js → chunk-HHE2HV3V.js} +1 -1
- package/dist/{chunk-637HNKYP.js → chunk-HIIXCAEE.js} +2 -2
- package/dist/{chunk-REOG2KQS.js → chunk-HIVZ53YB.js} +1 -1
- package/dist/{chunk-QCQT5RXR.js → chunk-HV6Y6F4X.js} +95 -3
- package/dist/{chunk-RLDMUSRM.js → chunk-IDZPQG2D.js} +1 -1
- package/dist/{chunk-NHJUJWLY.js → chunk-IPMUWYRQ.js} +2 -2
- package/dist/chunk-IVU3WN7S.js +227 -0
- package/dist/{chunk-WG3B2V6A.js → chunk-JJUGI2YL.js} +1 -1
- package/dist/{chunk-U5MEWTAY.js → chunk-JKXZGRWR.js} +1 -1
- package/dist/{chunk-EJ5BRL7C.js → chunk-JOO35RHR.js} +2 -2
- package/dist/{chunk-FAAHUZFK.js → chunk-JR23BL74.js} +3 -3
- package/dist/{chunk-6FMS6DGO.js → chunk-JTWTBX2M.js} +1 -1
- package/dist/{chunk-DLMLM63F.js → chunk-KPMC7PY7.js} +1 -1
- package/dist/{chunk-RHDDSIFC.js → chunk-KXYFBBZR.js} +1 -1
- package/dist/{chunk-MO2A7GUU.js → chunk-KYFFVTGO.js} +1 -1
- package/dist/{chunk-J7OPJPYG.js → chunk-L6ZNURWN.js} +1 -1
- package/dist/{chunk-AJH2JOKV.js → chunk-LAZKEJMS.js} +147 -147
- package/dist/{chunk-KNIYPHUM.js → chunk-LDL3S7AC.js} +1 -1
- package/dist/{chunk-5CYFJQGV.js → chunk-MBNIJXKI.js} +3 -3
- package/dist/{chunk-RYDR7TRT.js → chunk-MDGYXUOV.js} +1 -1
- package/dist/{chunk-SUCWKBYC.js → chunk-MEGRQ53A.js} +5 -5
- package/dist/{chunk-MXI2DAXR.js → chunk-MINXPXAB.js} +3 -3
- package/dist/{chunk-CWBFOAGM.js → chunk-NQZUSEAR.js} +1 -1
- package/dist/{chunk-5PISZ3DK.js → chunk-O4ZFRK6W.js} +11 -11
- package/dist/{chunk-5GHQD5NZ.js → chunk-OKGIOWOB.js} +2 -2
- package/dist/{chunk-AQL6BFAP.js → chunk-OW5RZIDW.js} +8 -8
- package/dist/{chunk-HIIEIDD2.js → chunk-OYQNNKNS.js} +10 -10
- package/dist/{chunk-5SRQG3SV.js → chunk-OZBII5E3.js} +4 -4
- package/dist/{chunk-VMJ2UH4S.js → chunk-PGLPUP37.js} +1 -1
- package/dist/{chunk-ZWYPGZJA.js → chunk-PM6WSWVU.js} +2 -2
- package/dist/{chunk-MZVEUPJA.js → chunk-QLA3RTH4.js} +2 -2
- package/dist/{chunk-LKB7OV6U.js → chunk-QR624DER.js} +1 -1
- package/dist/{chunk-RPJIULZL.js → chunk-QTI4QAWA.js} +1 -1
- package/dist/{chunk-ZXZHEAWO.js → chunk-QTYJPWJN.js} +4 -4
- package/dist/{chunk-ZVTKWWLV.js → chunk-QZL6E4UB.js} +1 -1
- package/dist/{chunk-75IYPYUY.js → chunk-RBYHJDAT.js} +3 -3
- package/dist/{chunk-KBXPVEO5.js → chunk-RGUDGC6A.js} +4 -4
- package/dist/{chunk-ZSYERTWA.js → chunk-RIK5GRWI.js} +3 -3
- package/dist/{chunk-KDP2HV43.js → chunk-RLR6VVKV.js} +4 -4
- package/dist/{chunk-GL4VN2FS.js → chunk-RNLF3CBB.js} +1 -1
- package/dist/{chunk-D26CLVB4.js → chunk-RUVO3NJC.js} +3 -3
- package/dist/{chunk-DOQ5F3GZ.js → chunk-RUWWES2K.js} +2 -2
- package/dist/{chunk-T3TSX4XB.js → chunk-SEP5ITFQ.js} +1 -1
- package/dist/chunk-SI5SZAJA.js +178 -0
- package/dist/{chunk-3WRQAAVT.js → chunk-T4EK56WI.js} +1 -1
- package/dist/{chunk-NKTNJSHK.js → chunk-TGEPLJ66.js} +3 -3
- package/dist/{chunk-C6ILSUXT.js → chunk-TGPQMMQP.js} +3 -3
- package/dist/{chunk-T7QPOQMD.js → chunk-THM7J6UI.js} +4 -4
- package/dist/{chunk-4OVLY2NR.js → chunk-TK4MI6F6.js} +3 -3
- package/dist/{chunk-X4C3SORV.js → chunk-U3XLRMJD.js} +1 -1
- package/dist/{chunk-BJ45A2NG.js → chunk-UKLF7F3Z.js} +5 -5
- package/dist/{chunk-BNHAZ65R.js → chunk-UQUUNGTP.js} +5 -1
- package/dist/{chunk-SWVRUCVM.js → chunk-UTDMTQNH.js} +1 -1
- package/dist/{chunk-JMH4BGNX.js → chunk-UVW7YFAF.js} +4 -4
- package/dist/{chunk-IWIESOAK.js → chunk-VKXS2YGN.js} +1 -1
- package/dist/{chunk-KU2ASWMO.js → chunk-VX2F4ZUY.js} +2 -2
- package/dist/{chunk-QZ4JDQ6R.js → chunk-W25RLOQ2.js} +2 -2
- package/dist/{chunk-DNKCJ6KV.js → chunk-WAEKYKTK.js} +1 -1
- package/dist/{chunk-FB43C242.js → chunk-WUKQVNLP.js} +1 -1
- package/dist/{chunk-UBR5M2TY.js → chunk-WZJVGA5I.js} +1 -1
- package/dist/{chunk-LMZD3A6K.js → chunk-XHYHX6F7.js} +26 -26
- package/dist/{chunk-YXCZKTTC.js → chunk-XXSNLM6R.js} +1 -1
- package/dist/{chunk-PZGLP65B.js → chunk-YFCNWQAM.js} +2 -2
- package/dist/{chunk-DPZ7EUY5.js → chunk-YWUQVHDL.js} +1 -1
- package/dist/{chunk-REEX7LTW.js → chunk-ZISQOOER.js} +2 -2
- package/dist/{chunk-YQ3QJ3SM.js → chunk-ZXB56YR2.js} +10 -10
- package/dist/{chunk-XGT2AOL7.js → chunk-ZYCLSEZT.js} +2 -2
- package/dist/{cleanup-graph-garbage-V6GERATJ.js → cleanup-graph-garbage-IPYDS5OX.js} +7 -7
- package/dist/{cloud-sync-command-RVPVF3H3.js → cloud-sync-command-JLNVG7H4.js} +2 -2
- package/dist/{cloud-sync-db-init-GIZFUJQB.js → cloud-sync-db-init-JXUF6GI3.js} +1 -1
- package/dist/{cloud-sync-shutdown-PQ6YZ3PA.js → cloud-sync-shutdown-Z4SBP6PL.js} +2 -2
- package/dist/{co-activation-6CM4E5ZK.js → co-activation-74RDFTKS.js} +2 -2
- package/dist/{co-occurrence-KJ7HM3EG.js → co-occurrence-CN3TBYVR.js} +5 -5
- package/dist/{code-context-index-XOP6TLPZ.js → code-context-index-D4MJ4VFX.js} +4 -3
- package/dist/{conversation-entity-extractor-PSFZQUJ5.js → conversation-entity-extractor-QGTLH4BP.js} +3 -3
- package/dist/{crdt-sync-POXIZVEF.js → crdt-sync-7T4WCOKD.js} +1 -1
- package/dist/{crm-webhook-V2H27KYR.js → crm-webhook-FTW3XZTO.js} +2 -2
- package/dist/{cto-delegation-gate-J3ND5BWL.js → cto-delegation-gate-SZCE34LB.js} +17 -16
- package/dist/{daemon-orchestration-M62T3FS2.js → daemon-orchestration-IGPHVNFR.js} +22 -21
- package/dist/{daemon-ready-MKBH4QWD.js → daemon-ready-OT2VQLS7.js} +1 -1
- package/dist/{destructive-data-guard-5SKHIZNN.js → destructive-data-guard-6I5MDFVD.js} +1 -1
- package/dist/{doc-graph-extractor-3BX3UPBB.js → doc-graph-extractor-VPTRIEKN.js} +5 -5
- package/dist/{documents-3D5LWOXL.js → documents-URULIXGM.js} +10 -9
- package/dist/{dreaming-WPBIOUHX.js → dreaming-VIZO3QDO.js} +21 -20
- package/dist/{employee-boot-brief-LWIOXW2Y.js → employee-boot-brief-XLOG4ULP.js} +25 -24
- package/dist/{exe-drift-UDKYXOFS.js → exe-drift-TLQM3IHD.js} +3 -3
- package/dist/{exe-export-ON37IIOT.js → exe-export-7YWYWJHY.js} +11 -10
- package/dist/{exe-import-ORFMQV3J.js → exe-import-DW6VAUKW.js} +11 -10
- package/dist/{exe-key-46N4TFWU.js → exe-key-TLJP2B4Y.js} +88 -87
- package/dist/{exe-org-ZYY5MUFH.js → exe-org-LU46N36E.js} +12 -12
- package/dist/{exe-snapshot-GLD66ZHQ.js → exe-snapshot-QHUZRS62.js} +23 -22
- package/dist/{fast-db-init-YFY566EG.js → fast-db-init-SCTOOIUT.js} +1 -1
- package/dist/{founder-context-N73W5XMG.js → founder-context-ZFZC4UHO.js} +2 -2
- package/dist/gateway/index.js +11 -11
- package/dist/{git-main-guard-TGK3RQY3.js → git-main-guard-TN27QBAI.js} +11 -1
- package/dist/{git-staleness-TNJ3XJJ4.js → git-staleness-GSGP344N.js} +2 -2
- package/dist/{global-procedures-7Y7LULZC.js → global-procedures-YAR7G4C6.js} +3 -3
- package/dist/{graph-auto-extract-4NEJ3OXA.js → graph-auto-extract-GNQS64F5.js} +5 -5
- package/dist/{graph-rag-WKAUQZUN.js → graph-rag-RMSFLUOB.js} +3 -3
- package/dist/{hook-integrity-D7BN2SLB.js → hook-integrity-CF567MVN.js} +1 -1
- package/dist/{hook-prefetch-7OJQ4IJ6.js → hook-prefetch-36BK4F7U.js} +18 -17
- package/dist/hooks/bug-report-worker.js +22 -21
- package/dist/hooks/codex-stop-task-finalizer.js +23 -22
- package/dist/hooks/commit-complete.js +21 -20
- package/dist/hooks/error-recall.js +8 -8
- package/dist/hooks/exe-heartbeat-hook.js +4 -4
- package/dist/hooks/ingest-worker.js +6 -5
- package/dist/hooks/ingest.js +11 -11
- package/dist/hooks/instructions-loaded.js +5 -5
- package/dist/hooks/manifest.json +20 -20
- package/dist/hooks/notification.js +5 -5
- package/dist/hooks/post-compact.js +4 -4
- package/dist/hooks/post-tool-combined.js +12 -12
- package/dist/hooks/pre-compact.js +21 -20
- package/dist/hooks/pre-tool-use.js +33 -32
- package/dist/hooks/prompt-submit.js +35 -34
- package/dist/hooks/session-end.js +26 -25
- package/dist/hooks/session-start.js +17 -17
- package/dist/hooks/stop.js +27 -26
- package/dist/hooks/subagent-stop.js +22 -21
- package/dist/hooks/summary-worker.js +26 -25
- package/dist/index.js +29 -28
- package/dist/{installer-KPDMTHOD.js → installer-LUN4HQIC.js} +5 -5
- package/dist/{installer-HTFYSA5U.js → installer-MPRFUQJE.js} +5 -5
- package/dist/{installer-ZHTVJJNQ.js → installer-OC5VXNC7.js} +5 -5
- package/dist/{intercom-queue-D57B3JR3.js → intercom-queue-6DZ7BANV.js} +17 -16
- package/dist/lib/cloud-sync.js +14 -13
- package/dist/lib/consolidation.js +7 -7
- package/dist/lib/database.js +2 -2
- package/dist/lib/db-backup.js +1 -1
- package/dist/lib/db-daemon-client.js +4 -3
- package/dist/lib/db-write-worker.js +3 -3
- package/dist/lib/db.js +2 -2
- package/dist/lib/device-registry.js +1 -1
- package/dist/lib/embedder.js +4 -3
- package/dist/lib/employee-templates.js +4 -4
- package/dist/lib/employees.js +2 -2
- package/dist/lib/exe-daemon-client.js +3 -2
- package/dist/lib/exe-daemon.js +103 -83
- package/dist/lib/hybrid-search.js +6 -6
- package/dist/lib/identity.js +2 -2
- package/dist/lib/license.js +4 -2
- package/dist/lib/messaging.js +18 -17
- package/dist/lib/registry-proxy.js +1 -1
- package/dist/lib/reminders.js +3 -3
- package/dist/lib/schedules.js +6 -6
- package/dist/lib/session-registry.js +4 -4
- package/dist/lib/skill-learning.js +11 -10
- package/dist/lib/status-brief.js +1 -1
- package/dist/lib/store.js +5 -5
- package/dist/lib/task-router.js +3 -3
- package/dist/lib/tasks.js +19 -18
- package/dist/lib/tmux-routing.js +17 -16
- package/dist/lib/token-spend.js +3 -3
- package/dist/{license-gate-SUVXUQ7E.js → license-gate-ESER24PJ.js} +3 -3
- package/dist/{license-sync-TXGIO2PM.js → license-sync-JVG5KNIY.js} +2 -2
- package/dist/{linux-systemd-LRW3BYSS.js → linux-systemd-YUADJCJQ.js} +1 -1
- package/dist/mcp/register-tools.js +87 -86
- package/dist/mcp/server.js +88 -87
- package/dist/mcp/tools/complete-reminder.js +4 -4
- package/dist/mcp/tools/create-reminder.js +4 -4
- package/dist/mcp/tools/create-task.js +21 -20
- package/dist/mcp/tools/deactivate-behavior.js +12 -11
- package/dist/mcp/tools/list-reminders.js +4 -4
- package/dist/mcp/tools/list-tasks.js +21 -20
- package/dist/mcp/tools/send-message.js +20 -19
- package/dist/mcp/tools/update-task.js +20 -19
- package/dist/{mcp-http-config-WCOGCXVR.js → mcp-http-config-6K6IKH5F.js} +3 -3
- package/dist/{mcp-session-identity-JMFMB6G3.js → mcp-session-identity-LRC6WJSD.js} +17 -16
- package/dist/{memory-cards-IYRUCVDG.js → memory-cards-V3OZHIYP.js} +5 -5
- package/dist/{memory-graph-extractor-M6HSDITL.js → memory-graph-extractor-JC2Z64L4.js} +6 -6
- package/dist/{memory-poisoning-defense-CHGY62QP.js → memory-poisoning-defense-YM4QJHCX.js} +2 -2
- package/dist/{memory-pressure-watchdog-FB5E7MLA.js → memory-pressure-watchdog-6F6KEQHN.js} +18 -17
- package/dist/{memory-queue-client-HIHCA3W4.js → memory-queue-client-COA4ABEV.js} +4 -3
- package/dist/{memory-reflection-BPGUYVRK.js → memory-reflection-QXHJPYPC.js} +2 -2
- package/dist/{notification-ledger-4425CXFW.js → notification-ledger-6QRLQW4Q.js} +18 -17
- package/dist/{notifications-JGVJO7S2.js → notifications-7B6D7Y5C.js} +17 -16
- package/dist/{orchestration-events-PGKDGE45.js → orchestration-events-GY5VP5LU.js} +3 -3
- package/dist/{orchestrator-DV5G5DKQ.js → orchestrator-JVPVOYWA.js} +19 -18
- package/dist/{org-brief-session-LXCHYYX7.js → org-brief-session-GRV5R5E3.js} +5 -5
- package/dist/{org-consent-policy-52Z4LKHG.js → org-consent-policy-3FHHSYXV.js} +1 -1
- package/dist/{org-join-BMBQDMVF.js → org-join-BY4PV6UO.js} +2 -2
- package/dist/{org-key-admin-SCCVVE2H.js → org-key-admin-WSCPT2CZ.js} +3 -3
- package/dist/{org-partner-runtime-HKGI37ND.js → org-partner-runtime-UJDGECZ4.js} +5 -5
- package/dist/{org-row-visibility-K5OFWTXE.js → org-row-visibility-V5DXIHTE.js} +1 -1
- package/dist/{pipeline-router-NMWDS5I5.js → pipeline-router-YY5FQKTY.js} +3 -3
- package/dist/{plan-limits-P4E7P3O5.js → plan-limits-OVX6SN6B.js} +5 -5
- package/dist/{projection-worker-BSORYGBV.js → projection-worker-D2472IOD.js} +2 -2
- package/dist/{prospective-memory-3JTGI6VV.js → prospective-memory-JXO2A6PL.js} +2 -2
- package/dist/{push-notifications-P2HVB7LZ.js → push-notifications-HR3FZRDI.js} +18 -17
- package/dist/{reproject-worktree-memories-IXYGHTGA.js → reproject-worktree-memories-OSS3PGRF.js} +127 -35
- package/dist/{reranker-6RA63RUL.js → reranker-IMZRPYJ2.js} +1 -1
- package/dist/{retrieval-health-YDVLDURR.js → retrieval-health-W7OD44FE.js} +1 -1
- package/dist/{review-polling-XVOU2VTL.js → review-polling-2INP7H6M.js} +18 -17
- package/dist/runtime/index.js +25 -24
- package/dist/{session-events-6AUB5AKL.js → session-events-G4XUPVWV.js} +18 -17
- package/dist/{session-kill-telemetry-OXXPCDBI.js → session-kill-telemetry-W7MHWJTQ.js} +18 -17
- package/dist/{session-scope-E4NRAFZL.js → session-scope-LG2J4EMQ.js} +17 -16
- package/dist/{setup-wizard-RNV6UE6J.js → setup-wizard-YQJI3SVM.js} +1 -1
- package/dist/{skill-refinement-6U66DBPY.js → skill-refinement-RA37U756.js} +3 -3
- package/dist/{stack-promote-T7YOBPL6.js → stack-promote-IYBRXHTA.js} +4 -4
- package/dist/{stack-release-H7ICM4KT.js → stack-release-OXWLVVG6.js} +4 -4
- package/dist/{stack-update-MZIBQHVZ.js → stack-update-2CZEROPK.js} +3 -3
- package/dist/{steward-gate-TVRANLPZ.js → steward-gate-LTNFB3FY.js} +3 -3
- package/dist/{subagent-brief-injection-Y3IJY34K.js → subagent-brief-injection-OHLWLECQ.js} +26 -25
- package/dist/supervisor-handoff-CSJQMI53.js +37 -0
- package/dist/{support-inbox-2GGCRQEA.js → support-inbox-4KCEPAZQ.js} +3 -3
- package/dist/{task-enforcement-HMGS7GJD.js → task-enforcement-LGXWXGVZ.js} +18 -17
- package/dist/{task-request-inbox-EHPQR74T.js → task-request-inbox-WHCOSUCP.js} +1 -1
- package/dist/{task-scope-H2XPGS6Y.js → task-scope-KXF7Y6KA.js} +17 -16
- package/dist/{tasks-crud-4F6ECDNC.js → tasks-crud-5EM55WRZ.js} +17 -16
- package/dist/{tasks-notify-4F3HFDCG.js → tasks-notify-VFMAURTN.js} +18 -17
- package/dist/{tasks-review-M5G5J2T3.js → tasks-review-MHGMBHUZ.js} +17 -16
- package/dist/{telemetry-upload-DFRMVTOF.js → telemetry-upload-6NRTN7QJ.js} +7 -7
- package/dist/{token-budget-4CISVC2P.js → token-budget-LZPOYTRP.js} +3 -3
- package/dist/{tool-capability-index-BT2GGLLI.js → tool-capability-index-ED5OAPMW.js} +1 -1
- package/dist/{tool-telemetry-WHTCFN2L.js → tool-telemetry-ZX7VSAXK.js} +1 -1
- package/dist/tui/App.js +25 -24
- package/dist/{tui-data-36IHMXIQ.js → tui-data-CC5POSUV.js} +17 -16
- package/dist/{update-support-JQSTFOWO.js → update-support-KH6NSQON.js} +16 -15
- package/dist/{work-claims-CH77EFZ4.js → work-claims-MNK7PEPW.js} +3 -3
- package/dist/{work-state-heartbeat-YC3O6M2G.js → work-state-heartbeat-YEWT5NMZ.js} +1 -1
- package/dist/{worker-gate-BJTF4TUP.js → worker-gate-BOQSIU2Z.js} +1 -1
- package/dist/{workflow-engine-ZWRIDV6J.js → workflow-engine-MUUD7ZEX.js} +2 -2
- package/dist/{worktree-YNPSWYQY.js → worktree-GOGT2LZP.js} +4 -4
- package/dist/{worktree-sweep-GRMHU4DA.js → worktree-sweep-46VWPVQT.js} +5 -5
- package/package.json +2 -1
- package/release-notes.json +31 -60
- package/stack.release.json +4 -4
- package/dist/{chunk-Z4AN75KW.js → chunk-3F2UB4IQ.js} +0 -0
- package/dist/{chunk-442EX2PZ.js → chunk-3Y5THOU6.js} +0 -0
- package/dist/{chunk-KOYGRP2L.js → chunk-5N4SG5NB.js} +3 -3
- /package/dist/{chunk-ME3A4LKV.js → chunk-7UTJA6HF.js} +0 -0
- /package/dist/{chunk-YSDIJ3VI.js → chunk-7XGXRD22.js} +0 -0
- /package/dist/{chunk-EQJ462VM.js → chunk-ADNBOKYZ.js} +0 -0
- /package/dist/{chunk-6CAX7YH4.js → chunk-FZQWVQJG.js} +0 -0
- /package/dist/{chunk-2A76BLAD.js → chunk-GB3AHV5F.js} +0 -0
- /package/dist/{chunk-P3IOJTWW.js → chunk-HR2R2QER.js} +0 -0
- /package/dist/{chunk-5HNXTAXL.js → chunk-ORA5BWCV.js} +0 -0
- /package/dist/{chunk-PREXA444.js → chunk-R6FLELV6.js} +0 -0
- /package/dist/{chunk-G2H2KV4N.js → chunk-V4XAKXXF.js} +0 -0
- /package/dist/{chunk-7AQ2C4LT.js → chunk-VJSDGDNS.js} +0 -0
- /package/dist/{chunk-VQ7F3W7P.js → chunk-WV3TOOL7.js} +0 -0
- /package/dist/{core-memory-KIV3WFOQ.js → core-memory-6WBNT2HL.js} +0 -0
- /package/dist/{entity-boost-CDFAXVYL.js → entity-boost-MT336PI3.js} +0 -0
- /package/dist/{memory-isolation-CPTYUIPJ.js → memory-isolation-EJ45IXBH.js} +0 -0
- /package/dist/{message-queue-client-PL2POQOV.js → message-queue-client-MVBTYCSV.js} +0 -0
- /package/dist/{oauth-server-NJRJAT7X.js → oauth-server-TZFNQAFS.js} +0 -0
- /package/dist/{project-boot-QYYCFYFC.js → project-boot-LXLU2J32.js} +0 -0
- /package/dist/{wiki-acl-OROXIW3P.js → wiki-acl-WXRJGZ5Q.js} +0 -0
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
import {
|
|
2
2
|
queryTaskRows
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XHYHX6F7.js";
|
|
4
4
|
import "./chunk-BTSWFMEH.js";
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-WAEKYKTK.js";
|
|
6
|
+
import "./chunk-44C7QNZS.js";
|
|
7
|
+
import "./chunk-JTWTBX2M.js";
|
|
7
8
|
import "./chunk-KI5PFRG6.js";
|
|
8
|
-
import "./chunk-D3QU2KNF.js";
|
|
9
9
|
import "./chunk-WT4RI36X.js";
|
|
10
|
+
import "./chunk-E23LNUWJ.js";
|
|
10
11
|
import "./chunk-QAEWWYHL.js";
|
|
11
12
|
import "./chunk-EIKATSE4.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-RYDR7TRT.js";
|
|
13
|
+
import "./chunk-MDGYXUOV.js";
|
|
14
14
|
import "./chunk-GBNB4EWD.js";
|
|
15
15
|
import "./chunk-UXLO7VHX.js";
|
|
16
16
|
import "./chunk-DSOQUQTV.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-E2WEFZOR.js";
|
|
18
18
|
import "./chunk-AJIXH5JF.js";
|
|
19
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-L6ZNURWN.js";
|
|
20
20
|
import "./chunk-XTWHNLGD.js";
|
|
21
21
|
import "./chunk-AM7S2TY6.js";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-HIIXCAEE.js";
|
|
23
23
|
import "./chunk-CVYC6DUW.js";
|
|
24
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-QZL6E4UB.js";
|
|
25
25
|
import "./chunk-CDUB5Q6J.js";
|
|
26
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-UQUUNGTP.js";
|
|
27
|
+
import "./chunk-IVU3WN7S.js";
|
|
27
28
|
import "./chunk-RIECV7SR.js";
|
|
28
29
|
import "./chunk-LNOS24GV.js";
|
|
29
30
|
import "./chunk-NLEW62VC.js";
|
|
@@ -31,21 +32,21 @@ import "./chunk-W2IRQJ6R.js";
|
|
|
31
32
|
import "./chunk-HYZV25LY.js";
|
|
32
33
|
import "./chunk-GJV3WDWM.js";
|
|
33
34
|
import "./chunk-MP2AFCGL.js";
|
|
34
|
-
import "./chunk-
|
|
35
|
+
import "./chunk-5DCCKHDY.js";
|
|
35
36
|
import "./chunk-TKDITWDN.js";
|
|
36
37
|
import "./chunk-BBMTVAE3.js";
|
|
37
38
|
import "./chunk-5YEUPUV4.js";
|
|
38
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-UTDMTQNH.js";
|
|
39
40
|
import "./chunk-YYB5PMTK.js";
|
|
40
41
|
import "./chunk-NJFJWQNN.js";
|
|
41
42
|
import "./chunk-V3W3SATA.js";
|
|
42
43
|
import "./chunk-JY5GAZYC.js";
|
|
43
44
|
import "./chunk-FXU7JOXK.js";
|
|
44
45
|
import "./chunk-WNBZJSQT.js";
|
|
45
|
-
import "./chunk-
|
|
46
|
+
import "./chunk-DKBPCOU4.js";
|
|
46
47
|
import "./chunk-A7XLR3K7.js";
|
|
47
|
-
import "./chunk-
|
|
48
|
-
import "./chunk-
|
|
48
|
+
import "./chunk-GB3AHV5F.js";
|
|
49
|
+
import "./chunk-A7JYF4RG.js";
|
|
49
50
|
import "./chunk-ARX6TAGN.js";
|
|
50
51
|
import "./chunk-QMSEL5YS.js";
|
|
51
52
|
import "./chunk-HSGBZSCA.js";
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getRemoteDefaultBranch,
|
|
3
|
+
ghPrStateLookup,
|
|
4
|
+
listRemoteHeads
|
|
5
|
+
} from "./chunk-SI5SZAJA.js";
|
|
1
6
|
import {
|
|
2
7
|
EXE_AI_DIR
|
|
3
8
|
} from "./chunk-QMSEL5YS.js";
|
|
@@ -16,6 +21,9 @@ var MAX_BRANCHES_SCANNED = 60;
|
|
|
16
21
|
var DEFAULT_LISTING_CAP = 10;
|
|
17
22
|
var SCAN_CONCURRENCY = 8;
|
|
18
23
|
var DEFAULT_CACHE_MAX_AGE_MS = 90 * 60 * 1e3;
|
|
24
|
+
function isAttention(c) {
|
|
25
|
+
return c === "closed_unmerged" || c === "never_proposed";
|
|
26
|
+
}
|
|
19
27
|
async function git(repoRoot, args) {
|
|
20
28
|
const { stdout } = await execFileAsync("git", args, {
|
|
21
29
|
cwd: repoRoot,
|
|
@@ -24,21 +32,6 @@ async function git(repoRoot, args) {
|
|
|
24
32
|
});
|
|
25
33
|
return stdout.trim();
|
|
26
34
|
}
|
|
27
|
-
async function detectRemoteBase(repoRoot) {
|
|
28
|
-
for (const candidate of ["main", "master"]) {
|
|
29
|
-
try {
|
|
30
|
-
await git(repoRoot, ["rev-parse", "--verify", `refs/remotes/origin/${candidate}`]);
|
|
31
|
-
return `origin/${candidate}`;
|
|
32
|
-
} catch {
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
function parseRefLine(line) {
|
|
38
|
-
const [name, committedAt] = line.split("");
|
|
39
|
-
if (!name) return null;
|
|
40
|
-
return { name: name.replace(/^origin\//, ""), committedAt: committedAt ?? "" };
|
|
41
|
-
}
|
|
42
35
|
async function mapPool(items, concurrency, fn) {
|
|
43
36
|
const results = new Array(items.length);
|
|
44
37
|
let next = 0;
|
|
@@ -53,74 +46,115 @@ async function mapPool(items, concurrency, fn) {
|
|
|
53
46
|
await Promise.all(Array.from({ length: lanes }, () => worker()));
|
|
54
47
|
return results;
|
|
55
48
|
}
|
|
56
|
-
async function scanUnmergedBranchesRaw(repoRoot) {
|
|
57
|
-
const emptyRaw = {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
49
|
+
async function scanUnmergedBranchesRaw(repoRoot, prStateLookup = ghPrStateLookup) {
|
|
50
|
+
const emptyRaw = {
|
|
51
|
+
branches: [],
|
|
52
|
+
truncated: false,
|
|
53
|
+
remoteRead: false,
|
|
54
|
+
prStateAvailable: false
|
|
55
|
+
};
|
|
56
|
+
const heads = await listRemoteHeads(repoRoot);
|
|
57
|
+
if (!heads) return emptyRaw;
|
|
58
|
+
const remoteDefault = await getRemoteDefaultBranch(repoRoot);
|
|
59
|
+
let baseName = remoteDefault?.name;
|
|
60
|
+
if (!baseName) {
|
|
61
|
+
baseName = heads.find((h) => h.name === "main")?.name ?? heads.find((h) => h.name === "master")?.name;
|
|
63
62
|
}
|
|
64
|
-
if (!
|
|
65
|
-
const
|
|
66
|
-
|
|
63
|
+
if (!baseName) return { ...emptyRaw, remoteRead: true };
|
|
64
|
+
const baseSha = heads.find((h) => h.name === baseName)?.sha ?? remoteDefault?.sha;
|
|
65
|
+
if (!baseSha) return { ...emptyRaw, remoteRead: true };
|
|
66
|
+
let baseLocal = false;
|
|
67
67
|
try {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
`--no-merged=${baseRef}`,
|
|
71
|
-
"--sort=-committerdate",
|
|
72
|
-
"--format=%(refname:short)%(committerdate:iso-strict)",
|
|
73
|
-
"refs/remotes/origin"
|
|
74
|
-
]);
|
|
75
|
-
lines = raw ? raw.split("\n") : [];
|
|
68
|
+
await git(repoRoot, ["cat-file", "-e", `${baseSha}^{commit}`]);
|
|
69
|
+
baseLocal = true;
|
|
76
70
|
} catch {
|
|
77
|
-
|
|
71
|
+
baseLocal = false;
|
|
78
72
|
}
|
|
79
|
-
const baseShort = baseRef.replace(/^origin\//, "");
|
|
80
73
|
const candidates = [];
|
|
81
74
|
let truncated = false;
|
|
82
|
-
for (const
|
|
83
|
-
|
|
84
|
-
if (!parsed) continue;
|
|
85
|
-
if (parsed.name === baseShort || parsed.name === "HEAD") continue;
|
|
75
|
+
for (const h of heads) {
|
|
76
|
+
if (h.name === baseName || h.name === "HEAD") continue;
|
|
86
77
|
if (candidates.length >= MAX_BRANCHES_SCANNED) {
|
|
87
78
|
truncated = true;
|
|
88
79
|
break;
|
|
89
80
|
}
|
|
90
|
-
candidates.push(
|
|
81
|
+
candidates.push(h);
|
|
91
82
|
}
|
|
92
|
-
const
|
|
83
|
+
const measured = await mapPool(candidates, SCAN_CONCURRENCY, async (c) => {
|
|
93
84
|
let ahead = 0;
|
|
85
|
+
let aheadUnknown = true;
|
|
86
|
+
let committedAt = "";
|
|
87
|
+
if (baseLocal) {
|
|
88
|
+
try {
|
|
89
|
+
const cnt = await git(repoRoot, ["rev-list", "--count", `${baseSha}..${c.sha}`]);
|
|
90
|
+
ahead = parseInt(cnt, 10) || 0;
|
|
91
|
+
aheadUnknown = false;
|
|
92
|
+
} catch {
|
|
93
|
+
aheadUnknown = true;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
94
96
|
try {
|
|
95
|
-
|
|
96
|
-
ahead = parseInt(cnt, 10) || 0;
|
|
97
|
+
committedAt = await git(repoRoot, ["log", "-1", "--format=%cI", c.sha]);
|
|
97
98
|
} catch {
|
|
98
|
-
|
|
99
|
+
committedAt = "";
|
|
99
100
|
}
|
|
100
|
-
return { c, ahead };
|
|
101
|
+
return { c, ahead, aheadUnknown, committedAt };
|
|
101
102
|
});
|
|
103
|
+
const kept = measured.filter((m) => m.aheadUnknown || m.ahead > 0);
|
|
104
|
+
const prMap = await prStateLookup(repoRoot, kept.map((m) => m.c.name));
|
|
105
|
+
const prStateAvailable = prMap !== null;
|
|
102
106
|
const now = Date.now();
|
|
103
|
-
const out =
|
|
104
|
-
|
|
105
|
-
if (ahead <= 0) continue;
|
|
106
|
-
const committedMs = c.committedAt ? Date.parse(c.committedAt) : NaN;
|
|
107
|
+
const out = kept.map((m) => {
|
|
108
|
+
const committedMs = m.committedAt ? Date.parse(m.committedAt) : NaN;
|
|
107
109
|
const ageHours = Number.isFinite(committedMs) ? Math.max(0, (now - committedMs) / 36e5) : 0;
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
110
|
+
const pr = prMap?.get(m.c.name);
|
|
111
|
+
return {
|
|
112
|
+
name: m.c.name,
|
|
113
|
+
ahead: m.ahead,
|
|
114
|
+
aheadUnknown: m.aheadUnknown,
|
|
115
|
+
committedAt: m.committedAt,
|
|
116
|
+
ageHours,
|
|
117
|
+
// filesChanged retained in the shape (cosmetic) but no longer computed — 0.
|
|
118
|
+
filesChanged: 0,
|
|
119
|
+
classification: pr?.state ?? "unknown",
|
|
120
|
+
prNumber: pr?.number ?? null
|
|
121
|
+
};
|
|
122
|
+
});
|
|
123
|
+
out.sort((a, b) => (Date.parse(b.committedAt) || 0) - (Date.parse(a.committedAt) || 0));
|
|
124
|
+
return { branches: out, truncated, remoteRead: true, prStateAvailable };
|
|
111
125
|
}
|
|
112
|
-
function finalizeScan(
|
|
113
|
-
const refreshed =
|
|
126
|
+
function finalizeScan(raw, staleHours, listingCap, include, now = Date.now()) {
|
|
127
|
+
const refreshed = raw.branches.map((b) => {
|
|
114
128
|
const ms = b.committedAt ? Date.parse(b.committedAt) : NaN;
|
|
115
129
|
const ageHours = Number.isFinite(ms) ? Math.max(0, (now - ms) / 36e5) : b.ageHours;
|
|
116
130
|
return { ...b, ageHours };
|
|
117
131
|
});
|
|
118
|
-
const
|
|
132
|
+
const selected = include ? refreshed.filter((b) => include.includes(b.classification)) : refreshed.filter((b) => isAttention(b.classification));
|
|
133
|
+
return {
|
|
134
|
+
branches: selected.slice(0, listingCap),
|
|
135
|
+
total: selected.length,
|
|
136
|
+
staleCount: selected.filter((b) => b.ageHours >= staleHours).length,
|
|
137
|
+
truncated: raw.truncated,
|
|
138
|
+
liveTotal: refreshed.length,
|
|
139
|
+
mergedCount: refreshed.filter((b) => b.classification === "merged").length,
|
|
140
|
+
openCount: refreshed.filter((b) => b.classification === "open").length,
|
|
141
|
+
unknownCount: refreshed.filter((b) => b.classification === "unknown").length,
|
|
142
|
+
remoteRead: raw.remoteRead,
|
|
143
|
+
prStateAvailable: raw.prStateAvailable
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
function unknownScanResult() {
|
|
119
147
|
return {
|
|
120
|
-
branches:
|
|
121
|
-
total:
|
|
122
|
-
staleCount,
|
|
123
|
-
truncated
|
|
148
|
+
branches: [],
|
|
149
|
+
total: 0,
|
|
150
|
+
staleCount: 0,
|
|
151
|
+
truncated: false,
|
|
152
|
+
liveTotal: 0,
|
|
153
|
+
mergedCount: 0,
|
|
154
|
+
openCount: 0,
|
|
155
|
+
unknownCount: 0,
|
|
156
|
+
remoteRead: false,
|
|
157
|
+
prStateAvailable: false
|
|
124
158
|
};
|
|
125
159
|
}
|
|
126
160
|
async function scanUnmergedBranches(repoRoot, options = {}) {
|
|
@@ -128,13 +162,13 @@ async function scanUnmergedBranches(repoRoot, options = {}) {
|
|
|
128
162
|
const listingCap = options.listingCap ?? DEFAULT_LISTING_CAP;
|
|
129
163
|
let raw;
|
|
130
164
|
try {
|
|
131
|
-
raw = await scanUnmergedBranchesRaw(repoRoot);
|
|
165
|
+
raw = await scanUnmergedBranchesRaw(repoRoot, options.prStateLookup);
|
|
132
166
|
} catch {
|
|
133
|
-
return
|
|
167
|
+
return unknownScanResult();
|
|
134
168
|
}
|
|
135
|
-
return finalizeScan(raw
|
|
169
|
+
return finalizeScan(raw, staleHours, listingCap, options.include);
|
|
136
170
|
}
|
|
137
|
-
var BRANCH_SCAN_CACHE_VERSION =
|
|
171
|
+
var BRANCH_SCAN_CACHE_VERSION = 2;
|
|
138
172
|
function branchScanCacheDir() {
|
|
139
173
|
return join(EXE_AI_DIR, "session-cache");
|
|
140
174
|
}
|
|
@@ -177,29 +211,47 @@ async function scanUnmergedBranchesCached(repoRoot, options = {}, cacheOpts = {}
|
|
|
177
211
|
if (entry?.scannedAt) {
|
|
178
212
|
const age = Date.now() - Date.parse(entry.scannedAt);
|
|
179
213
|
if (Number.isFinite(age) && age >= 0 && age <= maxAgeMs) {
|
|
180
|
-
return finalizeScan(
|
|
214
|
+
return finalizeScan(
|
|
215
|
+
{
|
|
216
|
+
branches: entry.branches ?? [],
|
|
217
|
+
truncated: entry.truncated ?? false,
|
|
218
|
+
remoteRead: entry.remoteRead ?? false,
|
|
219
|
+
prStateAvailable: entry.prStateAvailable ?? false
|
|
220
|
+
},
|
|
221
|
+
staleHours,
|
|
222
|
+
listingCap,
|
|
223
|
+
options.include
|
|
224
|
+
);
|
|
181
225
|
}
|
|
182
226
|
}
|
|
183
227
|
}
|
|
184
228
|
let raw;
|
|
185
229
|
try {
|
|
186
|
-
raw = await scanUnmergedBranchesRaw(repoRoot);
|
|
230
|
+
raw = await scanUnmergedBranchesRaw(repoRoot, options.prStateLookup);
|
|
187
231
|
} catch {
|
|
188
|
-
return
|
|
232
|
+
return unknownScanResult();
|
|
189
233
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
234
|
+
if (raw.remoteRead) {
|
|
235
|
+
await writeBranchScanCacheEntryAsync(repoRoot, {
|
|
236
|
+
scannedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
237
|
+
branches: raw.branches,
|
|
238
|
+
truncated: raw.truncated,
|
|
239
|
+
remoteRead: raw.remoteRead,
|
|
240
|
+
prStateAvailable: raw.prStateAvailable
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
return finalizeScan(raw, staleHours, listingCap, options.include);
|
|
196
244
|
}
|
|
197
245
|
function slugForMatch(input) {
|
|
198
246
|
return input.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
199
247
|
}
|
|
200
248
|
async function findMatchingBranches(repoRoot, opts) {
|
|
201
249
|
const result = [];
|
|
202
|
-
const scan = await
|
|
250
|
+
const scan = await scanUnmergedBranchesCached(repoRoot, {
|
|
251
|
+
listingCap: MAX_BRANCHES_SCANNED,
|
|
252
|
+
include: ["closed_unmerged", "never_proposed", "open"],
|
|
253
|
+
prStateLookup: opts.prStateLookup
|
|
254
|
+
});
|
|
203
255
|
if (scan.branches.length === 0) return result;
|
|
204
256
|
const idToken = opts.id ? slugForMatch(opts.id) : "";
|
|
205
257
|
const shortId = idToken ? idToken.replace(/-/g, "").slice(0, 8) : "";
|