@joshuafolkken/kit 1.3044.0 → 1.3099.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/.claude/skills/workflow-commands/backlogrun-steps.md +1 -1
- package/.claude/skills/workflow-commands/fullrun-steps.md +3 -3
- package/.claude/skills/workflow-commands/halfrun.md +3 -2
- package/.claude/skills/workflow-commands/kickoff.md +9 -2
- package/.claude/skills/workflow-commands/prerequisite.md +2 -0
- package/.claude/skills/workflow-commands/retrospective.md +2 -1
- package/.claude/skills/workflow-commands/split-assessment.md +4 -0
- package/.github/workflows/ci.yml +0 -20
- package/.github/workflows/pr-classification.yml +0 -5
- package/.github/workflows/publish.yml +0 -1
- package/.github/workflows/sonar-qube.yml +0 -5
- package/README.md +2 -0
- package/SECURITY.md +2 -1
- package/dist/.inputs-verified.json +1 -1
- package/dist/commands/adopt.js +29 -20
- package/dist/commands/auto-ok-judge-cli.js +43 -33
- package/dist/commands/auto-ok-main.js +73 -74
- package/dist/commands/backlog-budget-main.js +5 -6
- package/dist/commands/backlog-drive-cli.js +286 -305
- package/dist/commands/backlog-next-main.js +111 -108
- package/dist/commands/backlog-offer-main.js +148 -112
- package/dist/commands/backlog-plan-cli.js +123 -120
- package/dist/commands/backlog-triage-cli.js +131 -128
- package/dist/commands/backlogrun-cli.js +274 -264
- package/dist/commands/behavior-cli.js +23 -26
- package/dist/commands/bytes-command.js +56 -59
- package/dist/commands/cases-cli.js +4 -5
- package/dist/commands/check-commit-message-main.js +3 -4
- package/dist/commands/check-related.js +125 -119
- package/dist/commands/chunk-26JL4UU4.js +365 -0
- package/dist/commands/chunk-2BIVHPCA.js +85 -0
- package/dist/commands/chunk-2CKJODCK.js +245 -0
- package/dist/commands/chunk-2CNVIA35.js +335 -0
- package/dist/commands/chunk-2E6PSONB.js +46 -0
- package/dist/commands/chunk-2GA4775H.js +77 -0
- package/dist/commands/chunk-2O64H5UJ.js +462 -0
- package/dist/commands/chunk-2OEXY4GM.js +252 -0
- package/dist/commands/chunk-2OMIHPPE.js +51 -0
- package/dist/commands/chunk-2ONSHOAY.js +46 -0
- package/dist/commands/chunk-2SA3W4JF.js +41 -0
- package/dist/commands/chunk-2VY7CJ2R.js +212 -0
- package/dist/commands/chunk-2WRDAQPJ.js +74 -0
- package/dist/commands/chunk-2XLR7R6E.js +541 -0
- package/dist/commands/chunk-33TAOZUE.js +29 -0
- package/dist/commands/chunk-36XHHYNU.js +158 -0
- package/dist/commands/chunk-3CJNQU7P.js +179 -0
- package/dist/commands/chunk-3D5T6KMW.js +59 -0
- package/dist/commands/chunk-3EW5LTN3.js +114 -0
- package/dist/commands/chunk-3F3RNIG2.js +128 -0
- package/dist/commands/chunk-3FLTEJZY.js +74 -0
- package/dist/commands/chunk-3JWPTRNI.js +60 -0
- package/dist/commands/chunk-3LUPGBW4.js +137 -0
- package/dist/commands/chunk-3MQTOUXT.js +94 -0
- package/dist/commands/chunk-3PCUERXE.js +19 -0
- package/dist/commands/chunk-3U6A5WON.js +173 -0
- package/dist/commands/chunk-3VLDFM5I.js +426 -0
- package/dist/commands/chunk-3YT3RCSI.js +140 -0
- package/dist/commands/chunk-43DU7DYZ.js +540 -0
- package/dist/commands/chunk-43H725LG.js +132 -0
- package/dist/commands/chunk-46STCE6Q.js +48 -0
- package/dist/commands/chunk-46WEC6HZ.js +82 -0
- package/dist/commands/chunk-47J4KOZP.js +46 -0
- package/dist/commands/chunk-47W7PF4T.js +22 -0
- package/dist/commands/chunk-4F4KARQN.js +229 -0
- package/dist/commands/chunk-4HB7NWXP.js +263 -0
- package/dist/commands/chunk-4HOTJAO6.js +89 -0
- package/dist/commands/chunk-4I5AA4P5.js +237 -0
- package/dist/commands/chunk-4IDINPBE.js +525 -0
- package/dist/commands/chunk-4NSIW3UB.js +104 -0
- package/dist/commands/chunk-4YTKV6WV.js +37 -0
- package/dist/commands/chunk-5ARNFMQK.js +1263 -0
- package/dist/commands/chunk-5AZTSESD.js +114 -0
- package/dist/commands/chunk-5FUI2MLY.js +89 -0
- package/dist/commands/chunk-5GI5GLC4.js +214 -0
- package/dist/commands/chunk-5IHEBIPD.js +333 -0
- package/dist/commands/chunk-5KAW5GPF.js +44 -0
- package/dist/commands/chunk-5KSJEWXR.js +77 -0
- package/dist/commands/chunk-5OF2B4BF.js +35 -0
- package/dist/commands/chunk-5PLJ7R3D.js +126 -0
- package/dist/commands/chunk-5PPWXOCF.js +64 -0
- package/dist/commands/chunk-5VQCL33M.js +46 -0
- package/dist/commands/chunk-5Y7FOJLX.js +186 -0
- package/dist/commands/chunk-5YTEMF4O.js +110 -0
- package/dist/commands/chunk-6AHAY5VZ.js +69 -0
- package/dist/commands/chunk-6FN37DER.js +330 -0
- package/dist/commands/chunk-6JD4VNO4.js +124 -0
- package/dist/commands/chunk-6KUA7MRG.js +64 -0
- package/dist/commands/chunk-6LDEZFYR.js +88 -0
- package/dist/commands/chunk-6NXIZMIK.js +122 -0
- package/dist/commands/chunk-6O45F6YI.js +86 -0
- package/dist/commands/chunk-6OHJBQDE.js +184 -0
- package/dist/commands/chunk-6WDCCG3M.js +1249 -0
- package/dist/commands/chunk-6ZHXEQAI.js +715 -0
- package/dist/commands/chunk-736NECRD.js +16 -0
- package/dist/commands/chunk-77LEKVEE.js +32 -0
- package/dist/commands/chunk-7CX5VYOL.js +50 -0
- package/dist/commands/chunk-7DGHFBU7.js +247 -0
- package/dist/commands/chunk-7EAYFMDN.js +235 -0
- package/dist/commands/chunk-7HP3FQGQ.js +51 -0
- package/dist/commands/chunk-7HYYHCTN.js +402 -0
- package/dist/commands/chunk-7JOOMFDI.js +155 -0
- package/dist/commands/chunk-7K5ITPHR.js +338 -0
- package/dist/commands/chunk-7OEBSPPU.js +321 -0
- package/dist/commands/chunk-7ULYLGUK.js +492 -0
- package/dist/commands/chunk-A3JYZWBS.js +803 -0
- package/dist/commands/chunk-A3LCN4KA.js +84 -0
- package/dist/commands/chunk-ABLXBG6C.js +98 -0
- package/dist/commands/chunk-ABM2MZBF.js +161 -0
- package/dist/commands/chunk-AN7BFVHU.js +244 -0
- package/dist/commands/chunk-AQCVEQSM.js +99 -0
- package/dist/commands/chunk-AU563VKH.js +75 -0
- package/dist/commands/chunk-AUTD5FV2.js +1077 -0
- package/dist/commands/chunk-AV26CMY6.js +304 -0
- package/dist/commands/chunk-B2PJEV3S.js +246 -0
- package/dist/commands/chunk-B545ENGY.js +214 -0
- package/dist/commands/chunk-B5HP6T4L.js +170 -0
- package/dist/commands/chunk-B73IIRMS.js +207 -0
- package/dist/commands/chunk-BBLEC4YQ.js +109 -0
- package/dist/commands/chunk-BDSG6JKH.js +977 -0
- package/dist/commands/chunk-BFKTUD3V.js +33 -0
- package/dist/commands/chunk-BLRXHK2V.js +17 -0
- package/dist/commands/chunk-BML6MEUB.js +326 -0
- package/dist/commands/chunk-BPDNGJXY.js +63 -0
- package/dist/commands/chunk-BQLKWGGC.js +118 -0
- package/dist/commands/chunk-BRMJVCP7.js +167 -0
- package/dist/commands/chunk-BRWR5YKU.js +268 -0
- package/dist/commands/chunk-BUZAYEBD.js +319 -0
- package/dist/commands/chunk-BVUL57IX.js +139 -0
- package/dist/commands/chunk-C7FGDZWP.js +224 -0
- package/dist/commands/chunk-CC4BIGCA.js +20 -0
- package/dist/commands/chunk-CCHJZEF5.js +4220 -0
- package/dist/commands/chunk-CDK7QZWG.js +44 -0
- package/dist/commands/chunk-CDYFUCDC.js +72 -0
- package/dist/commands/chunk-CEADAQIL.js +170 -0
- package/dist/commands/chunk-CNL3SLM6.js +116 -0
- package/dist/commands/chunk-CNQ7D2GZ.js +104 -0
- package/dist/commands/chunk-CTXJVMHW.js +48 -0
- package/dist/commands/chunk-CUWT6UQO.js +13 -0
- package/dist/commands/chunk-CVRDJCOE.js +125 -0
- package/dist/commands/chunk-D6CF5QGM.js +80 -0
- package/dist/commands/chunk-DACNQAXC.js +20 -0
- package/dist/commands/chunk-DDOS32JU.js +74 -0
- package/dist/commands/chunk-DDZVMXZD.js +481 -0
- package/dist/commands/chunk-DF6QD4AF.js +52 -0
- package/dist/commands/chunk-DFEXNB44.js +159 -0
- package/dist/commands/chunk-DHDKG5HZ.js +151 -0
- package/dist/commands/chunk-DHJRFBKO.js +223 -0
- package/dist/commands/chunk-DKDWOE3C.js +78 -0
- package/dist/commands/chunk-DKO5VTEH.js +65 -0
- package/dist/commands/chunk-DLHH3MLS.js +85 -0
- package/dist/commands/chunk-DOYNK72G.js +81 -0
- package/dist/commands/chunk-DS53UUDH.js +679 -0
- package/dist/commands/chunk-DUA4E4ES.js +230 -0
- package/dist/commands/chunk-DURHGVRC.js +33 -0
- package/dist/commands/chunk-DVCMQMRN.js +191 -0
- package/dist/commands/chunk-E3YKMCCJ.js +108 -0
- package/dist/commands/chunk-E4F2RTKC.js +272 -0
- package/dist/commands/chunk-E4PFCTXN.js +127 -0
- package/dist/commands/chunk-EAOTR2WL.js +24 -0
- package/dist/commands/chunk-EHPTXSAT.js +315 -0
- package/dist/commands/chunk-EHVEWJQ4.js +33 -0
- package/dist/commands/chunk-EMFSPPMH.js +98 -0
- package/dist/commands/chunk-EPICTV2P.js +46 -0
- package/dist/commands/chunk-ES42XPAD.js +123 -0
- package/dist/commands/chunk-ESUY7KTZ.js +137 -0
- package/dist/commands/chunk-EVVQJJFV.js +507 -0
- package/dist/commands/chunk-EWXXEGXL.js +149 -0
- package/dist/commands/chunk-F2RDEF2J.js +205 -0
- package/dist/commands/chunk-F2U46HAE.js +52 -0
- package/dist/commands/chunk-F2VYWU6Z.js +653 -0
- package/dist/commands/chunk-F4SGOTUF.js +36 -0
- package/dist/commands/chunk-F4YMLVWN.js +183 -0
- package/dist/commands/chunk-F57LACNC.js +84 -0
- package/dist/commands/chunk-F5N2QIFD.js +213 -0
- package/dist/commands/chunk-F7B4ESZE.js +80 -0
- package/dist/commands/chunk-FA7CN75F.js +160 -0
- package/dist/commands/chunk-FDASVHZD.js +241 -0
- package/dist/commands/chunk-FEYZ575X.js +278 -0
- package/dist/commands/chunk-FJM2HWKW.js +299 -0
- package/dist/commands/chunk-FJMXUDEY.js +3985 -0
- package/dist/commands/chunk-FM7VVAK6.js +426 -0
- package/dist/commands/chunk-FQWRM5FC.js +67 -0
- package/dist/commands/chunk-FT33ZCSB.js +298 -0
- package/dist/commands/chunk-FTAWHAI7.js +170 -0
- package/dist/commands/chunk-G2DNS74C.js +53 -0
- package/dist/commands/chunk-G3BBCAAH.js +90 -0
- package/dist/commands/chunk-G75GWNNY.js +101 -0
- package/dist/commands/chunk-GA2YSPFH.js +32 -0
- package/dist/commands/chunk-GABDPTDK.js +907 -0
- package/dist/commands/chunk-GAVSK6P6.js +230 -0
- package/dist/commands/chunk-GB2BRQVL.js +300 -0
- package/dist/commands/chunk-GBMZXFFC.js +44 -0
- package/dist/commands/chunk-GDP7QXYE.js +76 -0
- package/dist/commands/chunk-GGWXF7RJ.js +70 -0
- package/dist/commands/chunk-GHOTKHI4.js +30 -0
- package/dist/commands/chunk-GMVN6ZP2.js +48 -0
- package/dist/commands/chunk-GNTTGRCX.js +133 -0
- package/dist/commands/chunk-GOY5JECO.js +130 -0
- package/dist/commands/chunk-GZL6ISVM.js +72 -0
- package/dist/commands/chunk-HALHQILI.js +51 -0
- package/dist/commands/chunk-HAT7AFBF.js +85 -0
- package/dist/commands/chunk-HDVSZ6CZ.js +292 -0
- package/dist/commands/chunk-HE3GOMR7.js +88 -0
- package/dist/commands/chunk-HEFUC4ZW.js +65 -0
- package/dist/commands/chunk-HHS3LYLV.js +30 -0
- package/dist/commands/chunk-HQZ65PJE.js +167 -0
- package/dist/commands/chunk-HRN73FQJ.js +77 -0
- package/dist/commands/chunk-HSZECERZ.js +271 -0
- package/dist/commands/chunk-HYE3MBAN.js +113 -0
- package/dist/commands/chunk-IAB6LCJL.js +18 -0
- package/dist/commands/chunk-IAGENI2U.js +42 -0
- package/dist/commands/chunk-ICPVBHIX.js +48 -0
- package/dist/commands/chunk-IONGJJYM.js +179 -0
- package/dist/commands/chunk-IP23WOWP.js +126 -0
- package/dist/commands/chunk-IPS7EBE5.js +140 -0
- package/dist/commands/chunk-IXZZSST7.js +459 -0
- package/dist/commands/chunk-IY3DSDRW.js +173 -0
- package/dist/commands/chunk-J2RUI4KN.js +47 -0
- package/dist/commands/chunk-J3PCRUVY.js +1223 -0
- package/dist/commands/chunk-J4XHEOOW.js +156 -0
- package/dist/commands/chunk-JDHLHYJJ.js +208 -0
- package/dist/commands/chunk-JEYITIWB.js +423 -0
- package/dist/commands/chunk-JGX7JIW4.js +126 -0
- package/dist/commands/chunk-JHIGDFBS.js +59 -0
- package/dist/commands/chunk-JI2EGXZX.js +53 -0
- package/dist/commands/chunk-JNV3VRK2.js +47 -0
- package/dist/commands/chunk-JPMAW2VZ.js +91 -0
- package/dist/commands/chunk-JQEY6KDP.js +90 -0
- package/dist/commands/chunk-JSJDIEGZ.js +88 -0
- package/dist/commands/chunk-JT5ICRFF.js +44 -0
- package/dist/commands/chunk-JU2MAYQ3.js +997 -0
- package/dist/commands/chunk-JUCJ4Y42.js +77 -0
- package/dist/commands/chunk-K3OZBV3L.js +49 -0
- package/dist/commands/chunk-K6P5PISC.js +114 -0
- package/dist/commands/chunk-KDCHY7XO.js +88 -0
- package/dist/commands/chunk-KDGX3JTV.js +51 -0
- package/dist/commands/chunk-KGSEWOKI.js +353 -0
- package/dist/commands/chunk-KIS7JFNP.js +217 -0
- package/dist/commands/chunk-KJPZPTS4.js +245 -0
- package/dist/commands/chunk-KKHD3C2P.js +114 -0
- package/dist/commands/chunk-KKIIY5I5.js +67 -0
- package/dist/commands/chunk-KN46UC77.js +114 -0
- package/dist/commands/chunk-KP2BVAS5.js +125 -0
- package/dist/commands/chunk-KPAJBJXG.js +63 -0
- package/dist/commands/chunk-KPMAJP6D.js +145 -0
- package/dist/commands/chunk-KR6WUAJM.js +122 -0
- package/dist/commands/chunk-KWLNK2NJ.js +391 -0
- package/dist/commands/chunk-L2CLCNXW.js +144 -0
- package/dist/commands/chunk-L7MDU6D7.js +155 -0
- package/dist/commands/chunk-L7VD4MLF.js +78 -0
- package/dist/commands/chunk-LBVYFW3I.js +38 -0
- package/dist/commands/chunk-LE3M42CF.js +350 -0
- package/dist/commands/chunk-LIPUSINQ.js +140 -0
- package/dist/commands/chunk-LJVZWE3A.js +1885 -0
- package/dist/commands/chunk-LKSSQVDA.js +49 -0
- package/dist/commands/chunk-LL6G34MF.js +93 -0
- package/dist/commands/chunk-LNQOL2CL.js +321 -0
- package/dist/commands/chunk-LS7P324N.js +72 -0
- package/dist/commands/chunk-LU5EOGFQ.js +50 -0
- package/dist/commands/chunk-LX2ENXHZ.js +197 -0
- package/dist/commands/chunk-M32UPB2D.js +110 -0
- package/dist/commands/chunk-M3UGRNNB.js +103 -0
- package/dist/commands/chunk-MDGPJOLK.js +351 -0
- package/dist/commands/chunk-MDKRTUE4.js +288 -0
- package/dist/commands/chunk-MFZVRWRS.js +34 -0
- package/dist/commands/chunk-MHF6BDQI.js +128 -0
- package/dist/commands/chunk-MLJDW7YN.js +64 -0
- package/dist/commands/chunk-MNLHYAJO.js +80 -0
- package/dist/commands/chunk-MOD3FG4V.js +419 -0
- package/dist/commands/chunk-MRAEJLXL.js +83 -0
- package/dist/commands/chunk-MRW2WYJS.js +68 -0
- package/dist/commands/chunk-MXPCEZL5.js +23 -0
- package/dist/commands/chunk-N2XH7QBY.js +103 -0
- package/dist/commands/chunk-N2ZF6T4E.js +332 -0
- package/dist/commands/chunk-N36NZMAL.js +79 -0
- package/dist/commands/chunk-N4EMFHQ6.js +114 -0
- package/dist/commands/chunk-N4P64UIH.js +211 -0
- package/dist/commands/chunk-NABSSY4P.js +204 -0
- package/dist/commands/chunk-NDQIJBRQ.js +100 -0
- package/dist/commands/chunk-NDR4PCVG.js +29 -0
- package/dist/commands/chunk-NEOCCN6D.js +302 -0
- package/dist/commands/chunk-NFKWFOFM.js +45 -0
- package/dist/commands/chunk-NFUPJBBG.js +516 -0
- package/dist/commands/chunk-NHEBKL7X.js +170 -0
- package/dist/commands/chunk-NHTEC5U4.js +99 -0
- package/dist/commands/chunk-NOSODWWK.js +1132 -0
- package/dist/commands/chunk-NPXXYG6Z.js +580 -0
- package/dist/commands/chunk-NR2JDBPV.js +75 -0
- package/dist/commands/chunk-NRULNBYI.js +1153 -0
- package/dist/commands/chunk-NTGF5N3N.js +110 -0
- package/dist/commands/chunk-NTIVNQKF.js +73 -0
- package/dist/commands/chunk-NUCFIYZL.js +119 -0
- package/dist/commands/chunk-NVMV7BYX.js +88 -0
- package/dist/commands/chunk-NYWPTYGL.js +169 -0
- package/dist/commands/chunk-NZ45KOLL.js +104 -0
- package/dist/commands/chunk-O45BX4EL.js +39 -0
- package/dist/commands/chunk-O46T4ANI.js +229 -0
- package/dist/commands/chunk-O5JGV7NA.js +245 -0
- package/dist/commands/chunk-O7ESC4HL.js +566 -0
- package/dist/commands/chunk-OBYLXHCH.js +86 -0
- package/dist/commands/chunk-OHN3QARP.js +769 -0
- package/dist/commands/chunk-OKBZGLD5.js +393 -0
- package/dist/commands/chunk-OKN63ZH5.js +109 -0
- package/dist/commands/chunk-ON4IKRGS.js +469 -0
- package/dist/commands/chunk-OT74RSQO.js +82 -0
- package/dist/commands/chunk-OVCVINYW.js +143 -0
- package/dist/commands/chunk-OZKLVTYI.js +342 -0
- package/dist/commands/chunk-OZN4HOZT.js +74 -0
- package/dist/commands/chunk-P3LJ2Q4N.js +555 -0
- package/dist/commands/chunk-P43GWYR6.js +185 -0
- package/dist/commands/chunk-P6ASP2DY.js +132 -0
- package/dist/commands/chunk-PBAEJ5PT.js +38 -0
- package/dist/commands/chunk-PCZROH3R.js +100 -0
- package/dist/commands/chunk-PJYTUUTH.js +34 -0
- package/dist/commands/chunk-PKXTISWR.js +58 -0
- package/dist/commands/chunk-PSGLUBSB.js +74 -0
- package/dist/commands/chunk-PUQA7F6Y.js +186 -0
- package/dist/commands/chunk-PVRDJU2B.js +126 -0
- package/dist/commands/chunk-Q3HM2BEH.js +45 -0
- package/dist/commands/chunk-Q42NF2TL.js +47 -0
- package/dist/commands/chunk-Q4ULMZAS.js +106 -0
- package/dist/commands/chunk-QCRUPRQ2.js +207 -0
- package/dist/commands/chunk-QFIKPGMC.js +280 -0
- package/dist/commands/chunk-QSBYULSS.js +100 -0
- package/dist/commands/chunk-QSJCZATC.js +18 -0
- package/dist/commands/chunk-QTJPCXEW.js +23 -0
- package/dist/commands/chunk-QTQAI2M2.js +179 -0
- package/dist/commands/chunk-QTVVFV4Q.js +127 -0
- package/dist/commands/chunk-QX2EMUXV.js +102 -0
- package/dist/commands/chunk-QXBOECGL.js +272 -0
- package/dist/commands/chunk-QXCG3SG4.js +88 -0
- package/dist/commands/chunk-QZVMGAWV.js +307 -0
- package/dist/commands/chunk-R36VZIKU.js +53 -0
- package/dist/commands/chunk-R3F7F3TX.js +94 -0
- package/dist/commands/chunk-R5AABJZJ.js +1062 -0
- package/dist/commands/chunk-R7PYR4HW.js +389 -0
- package/dist/commands/chunk-RAQ3E6OT.js +258 -0
- package/dist/commands/chunk-RESNXNDG.js +54 -0
- package/dist/commands/chunk-RFIOZTXY.js +305 -0
- package/dist/commands/chunk-RFWB2KAV.js +102 -0
- package/dist/commands/chunk-RFXON3FK.js +25 -0
- package/dist/commands/chunk-RGEB5L37.js +66 -0
- package/dist/commands/chunk-RGRLLF2J.js +119 -0
- package/dist/commands/chunk-RLRIMYXM.js +178 -0
- package/dist/commands/chunk-RNB3DQOZ.js +70 -0
- package/dist/commands/chunk-RO4QEZJO.js +172 -0
- package/dist/commands/chunk-RS5HBJY6.js +161 -0
- package/dist/commands/chunk-RV7EQIE4.js +202 -0
- package/dist/commands/chunk-RWPCK3CO.js +41 -0
- package/dist/commands/chunk-RWYSVFIA.js +250 -0
- package/dist/commands/chunk-RYKK75YT.js +289 -0
- package/dist/commands/chunk-S4JE63QE.js +704 -0
- package/dist/commands/chunk-S4OZJIXD.js +134 -0
- package/dist/commands/chunk-S5GX3H4P.js +91 -0
- package/dist/commands/chunk-SC57VV6A.js +60 -0
- package/dist/commands/chunk-SD4EX75H.js +177 -0
- package/dist/commands/chunk-SJITWFNY.js +480 -0
- package/dist/commands/chunk-SKGDMAIA.js +33 -0
- package/dist/commands/chunk-SNSZ25XZ.js +393 -0
- package/dist/commands/chunk-SOETJZWH.js +7672 -0
- package/dist/commands/chunk-SQZZHK6X.js +119 -0
- package/dist/commands/chunk-SRTEE34O.js +93 -0
- package/dist/commands/chunk-SYTCTLMD.js +285 -0
- package/dist/commands/chunk-T6JUDQMW.js +181 -0
- package/dist/commands/chunk-TEXUEBGE.js +208 -0
- package/dist/commands/chunk-TFDVTU6O.js +910 -0
- package/dist/commands/chunk-TFYYXETQ.js +472 -0
- package/dist/commands/chunk-TMFKVJUW.js +121 -0
- package/dist/commands/chunk-TNJU4CXD.js +32 -0
- package/dist/commands/chunk-TRHWBUWE.js +61 -0
- package/dist/commands/chunk-TROCFVCU.js +45 -0
- package/dist/commands/chunk-TUBBESHU.js +85 -0
- package/dist/commands/chunk-TVZIFZZN.js +62 -0
- package/dist/commands/chunk-TXRWAL63.js +144 -0
- package/dist/commands/chunk-U46YTYJQ.js +92 -0
- package/dist/commands/chunk-U5EO4QEV.js +48 -0
- package/dist/commands/chunk-UCO333EX.js +47 -0
- package/dist/commands/chunk-UIXQ4IYT.js +445 -0
- package/dist/commands/chunk-UJGNYPMD.js +716 -0
- package/dist/commands/chunk-URZ4RDC4.js +220 -0
- package/dist/commands/chunk-UUA63LCI.js +77 -0
- package/dist/commands/chunk-UUH3DE77.js +57 -0
- package/dist/commands/chunk-UVY5ODCM.js +60 -0
- package/dist/commands/chunk-UWMB6EOU.js +45 -0
- package/dist/commands/chunk-UY62WJV6.js +120 -0
- package/dist/commands/chunk-UZDKCGDC.js +198 -0
- package/dist/commands/chunk-VAHQ4AFM.js +585 -0
- package/dist/commands/chunk-VCWNMRH7.js +71 -0
- package/dist/commands/chunk-VL5I2IOD.js +332 -0
- package/dist/commands/chunk-VLN6TSPJ.js +139 -0
- package/dist/commands/chunk-VMG3QB6C.js +81 -0
- package/dist/commands/chunk-VO25PMGS.js +58 -0
- package/dist/commands/chunk-VPRQFM2T.js +37 -0
- package/dist/commands/chunk-VTLWODJ2.js +133 -0
- package/dist/commands/chunk-VUCDGQ6Y.js +260 -0
- package/dist/commands/chunk-VY7ZJMDT.js +469 -0
- package/dist/commands/chunk-W4BR6QNU.js +1241 -0
- package/dist/commands/chunk-W7X7MZZN.js +449 -0
- package/dist/commands/chunk-WCYRNNKF.js +76 -0
- package/dist/commands/chunk-WEUUJIWQ.js +84 -0
- package/dist/commands/chunk-WNBJK6QE.js +84 -0
- package/dist/commands/chunk-WORHUJ6T.js +73 -0
- package/dist/commands/chunk-WR5PKCQW.js +61 -0
- package/dist/commands/chunk-WR73HTRG.js +121 -0
- package/dist/commands/chunk-WRHMYSW7.js +36 -0
- package/dist/commands/chunk-WRNMUQTD.js +95 -0
- package/dist/commands/chunk-WROJTXWZ.js +138 -0
- package/dist/commands/chunk-WTIPX5NG.js +43 -0
- package/dist/commands/chunk-WWLCQREY.js +225 -0
- package/dist/commands/chunk-WXLW7S4M.js +71 -0
- package/dist/commands/chunk-WXXLJQBO.js +67 -0
- package/dist/commands/chunk-X4LYH6Q4.js +56 -0
- package/dist/commands/chunk-XAEL24EG.js +66 -0
- package/dist/commands/chunk-XDR2BRDL.js +216 -0
- package/dist/commands/chunk-XRQMVAB4.js +85 -0
- package/dist/commands/chunk-XUXCFPDK.js +218 -0
- package/dist/commands/chunk-XXPDFJRI.js +48 -0
- package/dist/commands/chunk-Y6OGDG5I.js +49 -0
- package/dist/commands/chunk-YANDBVAT.js +430 -0
- package/dist/commands/chunk-YD7XK2TX.js +550 -0
- package/dist/commands/chunk-YEAE46TS.js +98 -0
- package/dist/commands/chunk-YEQFAEVW.js +112 -0
- package/dist/commands/chunk-YJZAD4Z5.js +103 -0
- package/dist/commands/chunk-YNCF66RK.js +1052 -0
- package/dist/commands/chunk-YOA25SII.js +210 -0
- package/dist/commands/chunk-YOZTZMAT.js +38 -0
- package/dist/commands/chunk-YSGRHVZG.js +897 -0
- package/dist/commands/chunk-YSLGWRQN.js +646 -0
- package/dist/commands/chunk-YT5JR2CB.js +105 -0
- package/dist/commands/chunk-YTXCLGGL.js +168 -0
- package/dist/commands/chunk-YVHJN2HS.js +74 -0
- package/dist/commands/chunk-YY7XVVSB.js +43 -0
- package/dist/commands/chunk-Z2NUK47W.js +1314 -0
- package/dist/commands/chunk-Z5GZV4DV.js +16 -0
- package/dist/commands/chunk-ZB52ZIEA.js +1629 -0
- package/dist/commands/chunk-ZCD4AV2P.js +73 -0
- package/dist/commands/chunk-ZCHZU6NX.js +799 -0
- package/dist/commands/chunk-ZEH2B3DF.js +239 -0
- package/dist/commands/chunk-ZGANVZCA.js +92 -0
- package/dist/commands/chunk-ZGEUWHFF.js +297 -0
- package/dist/commands/chunk-ZHSNQ2F7.js +161 -0
- package/dist/commands/chunk-ZI3SABMH.js +347 -0
- package/dist/commands/chunk-ZIIUBGON.js +773 -0
- package/dist/commands/chunk-ZJJLROJY.js +269 -0
- package/dist/commands/chunk-ZNIIA275.js +59 -0
- package/dist/commands/chunk-ZV6BZZJ2.js +271 -0
- package/dist/commands/ci-timing-cli.js +22 -3
- package/dist/commands/code-symbol-cli.js +21 -7
- package/dist/commands/codex-hook-adapter.js +124 -119
- package/dist/commands/command-derive.js +9 -11
- package/dist/commands/cost-audit-main.js +118 -119
- package/dist/commands/cost-main.js +5 -7
- package/dist/commands/cspell-cached.js +55 -57
- package/dist/commands/defect-origin-main.js +42 -37
- package/dist/commands/defect-report-main.js +33 -25
- package/dist/commands/diff-summary-cli.js +3 -4
- package/dist/commands/disposition-cli.js +117 -118
- package/dist/commands/doctor.js +24 -11
- package/dist/commands/document-read-cli.js +50 -53
- package/dist/commands/document-section-main.js +50 -53
- package/dist/commands/dogfood-commit-cli.js +19 -4
- package/dist/commands/effect-audit-cli.js +40 -41
- package/dist/commands/epic-audit-main.js +88 -86
- package/dist/commands/epic-bundle-main.js +122 -119
- package/dist/commands/epic-check.js +37 -31
- package/dist/commands/epic-main.js +129 -126
- package/dist/commands/epic-next-main.js +85 -83
- package/dist/commands/eval-run.js +6 -7
- package/dist/commands/format-edited-cli.js +71 -46
- package/dist/commands/format.js +41 -56
- package/dist/commands/fresh-machine-cli.js +24 -7
- package/dist/commands/gh-usage-cli.js +22 -22
- package/dist/commands/git-followup-workflow.js +170 -159
- package/dist/commands/git-gh-checks-failed-main.js +23 -15
- package/dist/commands/git-workflow.js +52 -53
- package/dist/commands/github-release-cli.js +3 -3
- package/dist/commands/hook-ledger-cli.js +93 -94
- package/dist/commands/init-main.js +40 -40
- package/dist/commands/inputs.json +1999 -1954
- package/dist/commands/issue-ack-cli.js +28 -21
- package/dist/commands/issue-already-done-cli.js +107 -110
- package/dist/commands/issue-body-cli.js +71 -73
- package/dist/commands/issue-cite-main.js +35 -28
- package/dist/commands/issue-comment-main.js +36 -30
- package/dist/commands/issue-consolidate-cli.js +54 -54
- package/dist/commands/issue-file-main.js +274 -148
- package/dist/commands/issue-fold-existing-cli.js +126 -123
- package/dist/commands/issue-fold-main.js +57 -60
- package/dist/commands/issue-lint-main.js +59 -61
- package/dist/commands/issue-measured-cli.js +108 -110
- package/dist/commands/issue-plan-cli.js +156 -155
- package/dist/commands/issue-premise-unmet-cli.js +111 -113
- package/dist/commands/issue-priority-cli.js +38 -32
- package/dist/commands/issue-read-main.js +38 -33
- package/dist/commands/issue-release-class-cli.js +37 -31
- package/dist/commands/issue-release-main.js +35 -29
- package/dist/commands/issue-scout-main.js +123 -120
- package/dist/commands/issue-spill-main.js +149 -144
- package/dist/commands/issue-state-main.js +36 -31
- package/dist/commands/issue-tick-cli.js +37 -31
- package/dist/commands/josh-completion.js +21 -24
- package/dist/commands/lane-adopt-cli.js +53 -55
- package/dist/commands/lane-breakdown-cli.js +193 -172
- package/dist/commands/lane-cli.js +199 -180
- package/dist/commands/lane-launch-main.js +106 -56
- package/dist/commands/lane-limit-cli.js +119 -116
- package/dist/commands/lane-measure-cli.js +408 -245
- package/dist/commands/lane-pause-cli.js +51 -54
- package/dist/commands/lane-plan-cli.js +148 -147
- package/dist/commands/lane-resolve-cli.js +48 -50
- package/dist/commands/lane-restart-cli.js +185 -168
- package/dist/commands/lane-why-cli.js +121 -122
- package/dist/commands/lane-withdraw-cli.js +84 -86
- package/dist/commands/latest-corepack.js +3 -2
- package/dist/commands/latest-if-required-cli.js +12 -15
- package/dist/commands/latest-lane-guard-main.js +2 -3
- package/dist/commands/latest-scope-main.js +5 -7
- package/dist/commands/latest-update.js +3 -2
- package/dist/commands/lines-command.js +8 -10
- package/dist/commands/lint-parallel-main.js +65 -67
- package/dist/commands/lint-related.js +149 -133
- package/dist/commands/lint-rule.js +64 -66
- package/dist/commands/lockfile-policy.js +29 -32
- package/dist/commands/main-merge-main.js +23 -25
- package/dist/commands/main-sync-main.js +23 -24
- package/dist/commands/managed-config-scope-cli.js +11 -10
- package/dist/commands/measure-rerun-cli.js +31 -26
- package/dist/commands/metrics-command.js +97 -100
- package/dist/commands/observation-record-cli.js +24 -14
- package/dist/commands/observations-flush-cli.js +50 -52
- package/dist/commands/overrides-check.js +1 -1
- package/dist/commands/package-scout-cli.js +70 -73
- package/dist/commands/pin-verify-cli.js +21 -2
- package/dist/commands/plan-consumers-main.js +3 -4
- package/dist/commands/plan-scaffold-cli.js +145 -146
- package/dist/commands/pr-classification-main.js +22 -3
- package/dist/commands/pre-commit-lint.js +30 -34
- package/dist/commands/pre-commit-type-check.js +55 -55
- package/dist/commands/pre-push-unit.js +69 -70
- package/dist/commands/pretool-guard-cli.js +111 -113
- package/dist/commands/prevent-main-commit.js +2 -3
- package/dist/commands/project-profile-cli.js +24 -9
- package/dist/commands/propagate.js +31 -23
- package/dist/commands/prose-stale-cli.js +48 -42
- package/dist/commands/publishable-range-check.js +3 -3
- package/dist/commands/read-set-cli.js +58 -61
- package/dist/commands/refactor-scan-cli.js +8 -9
- package/dist/commands/release-cli.js +57 -57
- package/dist/commands/release-scope-main.js +41 -36
- package/dist/commands/rename-cli.js +64 -36
- package/dist/commands/repo-party-cli.js +3 -4
- package/dist/commands/report-template-cli.js +4 -5
- package/dist/commands/reserved-run.js +17 -20
- package/dist/commands/retrospective-cli.js +126 -127
- package/dist/commands/review-attest-cli.js +28 -20
- package/dist/commands/review-brief-main.js +184 -167
- package/dist/commands/review-findings-cli.js +23 -13
- package/dist/commands/review-pair-cli.js +180 -156
- package/dist/commands/review-record-main.js +171 -147
- package/dist/commands/review-round2-cli.js +89 -91
- package/dist/commands/review-stops-cli.js +51 -54
- package/dist/commands/review-submit-cli.js +184 -167
- package/dist/commands/rule-list.js +78 -80
- package/dist/commands/rule-value-cli.js +115 -116
- package/dist/commands/ruleset-check-cli.js +23 -6
- package/dist/commands/run-add-cli.js +115 -75
- package/dist/commands/run-board-main.js +173 -169
- package/dist/commands/run-carry-cli.js +182 -174
- package/dist/commands/run-chain-cli.js +184 -160
- package/dist/commands/run-cut-cli.js +206 -168
- package/dist/commands/run-ending-cli.js +51 -54
- package/dist/commands/run-entry-cli.js +230 -283
- package/dist/commands/run-event-cli.js +18 -21
- package/dist/commands/run-handoff-cli.js +75 -78
- package/dist/commands/run-handoff-lanes-cli.js +48 -51
- package/dist/commands/run-hold-main.js +105 -107
- package/dist/commands/run-liveness-cli.js +47 -49
- package/dist/commands/run-merge-main.js +159 -151
- package/dist/commands/run-next-cli.js +128 -129
- package/dist/commands/run-park-cli.js +137 -140
- package/dist/commands/run-pause-cli.js +190 -186
- package/dist/commands/run-pickup-cli.js +49 -52
- package/dist/commands/run-prep-main.js +124 -125
- package/dist/commands/run-prime-cli.js +175 -147
- package/dist/commands/run-progress-main.js +149 -146
- package/dist/commands/run-report-cli.js +60 -60
- package/dist/commands/run-review-cli.js +229 -214
- package/dist/commands/run-ship-cli.js +258 -252
- package/dist/commands/run-ship-evidence-cli.js +71 -72
- package/dist/commands/run-ship-lap-W66LTXJJ.js +28 -0
- package/dist/commands/run-ship-wait-main.js +83 -85
- package/dist/commands/run-split-cli.js +176 -172
- package/dist/commands/run-stale-main.js +72 -75
- package/dist/commands/run-status-cli.js +44 -44
- package/dist/commands/run-step-cli.js +213 -211
- package/dist/commands/run-tail-cli.js +23 -18
- package/dist/commands/run-tidy-main.js +67 -69
- package/dist/commands/run-wake-main.js +206 -187
- package/dist/commands/run-watcher-guard-cli.js +63 -66
- package/dist/commands/security-audit-main.js +21 -24
- package/dist/commands/security-audit-provision-main.js +9 -11
- package/dist/commands/selfcheck-cli.js +63 -57
- package/dist/commands/session-language-main.js +70 -73
- package/dist/commands/sonar-hotspots-cli.js +9 -8
- package/dist/commands/sonar-new-code-cli.js +3 -4
- package/dist/commands/split-assess-cli.js +55 -58
- package/dist/commands/split-child-recover-cli.js +38 -39
- package/dist/commands/start.js +64 -64
- package/dist/commands/stash-pop-main.js +4 -5
- package/dist/commands/stash-push-main.js +7 -9
- package/dist/commands/stop-guard.js +180 -176
- package/dist/commands/sync-main.js +30 -15
- package/dist/commands/telegram-test-main.js +29 -22
- package/dist/commands/test-declared.js +29 -15
- package/dist/commands/test-e2e-guard.js +54 -54
- package/dist/commands/test-pinned-main.js +57 -56
- package/dist/commands/test-reach-cli.js +40 -32
- package/dist/commands/test-red-main.js +12 -14
- package/dist/commands/test-related-XBDH2IOH.js +113 -0
- package/dist/commands/test-related-main.js +89 -89
- package/dist/commands/test-unit-guard-main.js +37 -37
- package/dist/commands/time-cli.js +54 -57
- package/dist/commands/time-density-cli.js +26 -29
- package/dist/commands/tree-status-cli.js +6 -8
- package/dist/commands/type-check-command.js +26 -11
- package/dist/commands/ui-routes-cli.js +5 -6
- package/dist/commands/ui-shot-cli.js +1 -1
- package/dist/commands/uninstall.js +44 -43
- package/dist/commands/unused-members-KVKZDTXD.js +329 -0
- package/dist/commands/unused-members-cli.js +27 -12
- package/dist/commands/upstream-interrupt-main.js +159 -151
- package/dist/commands/verification-gate.js +85 -86
- package/dist/commands/version-check.js +25 -8
- package/dist/hooks/chunk-3SA3FIQC.js +6869 -0
- package/dist/hooks/chunk-46PTTMGE.js +1625 -0
- package/dist/hooks/chunk-5NIBRHWG.js +77 -0
- package/dist/hooks/chunk-76QKN2K3.js +258 -0
- package/dist/hooks/chunk-CHEKMGFP.js +321 -0
- package/dist/hooks/chunk-DCILEVDR.js +5173 -0
- package/dist/hooks/chunk-HVNGIM5W.js +5092 -0
- package/dist/hooks/chunk-L6IZZ2IL.js +11219 -0
- package/dist/hooks/chunk-UZXMFOVK.js +9170 -0
- package/dist/hooks/chunk-WCJ2GWYJ.js +1381 -0
- package/dist/hooks/chunk-YRKS5ZKE.js +1915 -0
- package/dist/hooks/codex-hook-adapter.js +11 -12
- package/dist/hooks/daemon.js +2140 -1387
- package/dist/hooks/format-edited.js +6 -6
- package/dist/hooks/inputs.json +543 -518
- package/dist/hooks/pretool-guard.js +8 -8
- package/dist/hooks/run-ship-lap-P5555IG7.js +8 -0
- package/dist/hooks/session-lang.js +9 -7
- package/dist/hooks/stop-guard.js +970 -668
- package/dist/inputs.json +77 -68
- package/dist/josh.js +1029 -577
- package/dist/registry-migrate.mjs +33938 -0
- package/dist/version/index.js +4251 -175
- package/package.json +4 -1
- package/prompts/collaboration-workflow/principles.md +4 -1
- package/prompts/collaboration-workflow/rule-delivery.md +1 -1
- package/scripts/agent/codex-launch-identity.ts +70 -0
- package/scripts/auto-ok/auto-ok-cli.ts +2 -0
- package/scripts/auto-ok/auto-ok-judge-write.ts +2 -0
- package/scripts/auto-ok/auto-ok-judge.ts +3 -1
- package/scripts/backlog/backlog-arrival.ts +1 -1
- package/scripts/backlog/backlog-budget.ts +5 -2
- package/scripts/backlog/backlog-defect-priority.ts +1 -1
- package/scripts/backlog/backlog-dispatch-bound.ts +17 -0
- package/scripts/backlog/backlog-drain-flush.ts +38 -3
- package/scripts/backlog/backlog-drive-cli.ts +1 -1
- package/scripts/backlog/backlog-drive-hold.ts +28 -5
- package/scripts/backlog/backlog-drive-launch.ts +37 -15
- package/scripts/backlog/backlog-drive-listing.ts +39 -23
- package/scripts/backlog/backlog-drive-retrospective-unit.ts +3 -2
- package/scripts/backlog/backlog-drive-split-unit.ts +1 -0
- package/scripts/backlog/backlog-hold-codes.ts +7 -0
- package/scripts/backlog/backlog-hold-text.ts +14 -1
- package/scripts/backlog/backlog-measure-close.ts +6 -0
- package/scripts/backlog/backlog-next-shared.ts +20 -2
- package/scripts/backlog/backlog-next.ts +24 -3
- package/scripts/backlog/backlog-offer-cli.ts +69 -16
- package/scripts/build/build-migration.ts +25 -0
- package/scripts/build/build.ts +2 -0
- package/scripts/epic/epic-classify.ts +6 -1
- package/scripts/epic/epic-live.ts +46 -0
- package/scripts/followup/followup-failed-tests.ts +71 -10
- package/scripts/followup/followup-job-rerun.ts +2 -2
- package/scripts/followup/git-followup-finish.ts +16 -1
- package/scripts/gate/change-scope-action.integration.test.ts +88 -0
- package/scripts/gate/change-scope-action.ts +2 -0
- package/scripts/gate/check-related-order.ts +6 -7
- package/scripts/gate/check-related.ts +18 -8
- package/scripts/gate/core-admission.ts +17 -30
- package/scripts/gate/core-budget-poll.ts +183 -0
- package/scripts/gate/core-budget-timing.ts +1 -1
- package/scripts/gate/core-budget.ts +24 -112
- package/scripts/gate/core-wait-record.ts +52 -7
- package/scripts/gate/machine-capacity.ts +6 -2
- package/scripts/gate/metrics-totals.ts +11 -0
- package/scripts/gate/path-glob.test.ts +18 -0
- package/scripts/gate/toolchain-inputs.consumer.test.ts +36 -0
- package/scripts/gate/verification-inputs.ts +2 -1
- package/scripts/gh/fix-gh-packages-logic.ts +22 -15
- package/scripts/gh/gh-request-tally.ts +4 -0
- package/scripts/hooks/bash-revert.ts +79 -31
- package/scripts/hooks/format-edited-file.ts +6 -8
- package/scripts/hooks/implementation-shell.ts +3 -2
- package/scripts/init/distributed-paths.ts +18 -5
- package/scripts/init/init-actions.ts +16 -1
- package/scripts/init/init-bootstrap.ts +2 -0
- package/scripts/init/init-logic.ts +40 -8
- package/scripts/init/init.ts +11 -3
- package/scripts/issue/defect-rate-cli.ts +19 -13
- package/scripts/issue/issue-file-batch.ts +7 -3
- package/scripts/issue/issue-file-cli.ts +19 -6
- package/scripts/issue/issue-file-main.ts +6 -1
- package/scripts/issue/issue-file-pass.ts +17 -0
- package/scripts/issue/issue-file.ts +3 -0
- package/scripts/issue/issue-not-before.ts +9 -2
- package/scripts/issue/issue-observation-gate.ts +141 -0
- package/scripts/issue/issue-observation-prime.ts +83 -0
- package/scripts/issue/issue-publication-state.ts +61 -0
- package/scripts/issue/issue-publication.ts +144 -0
- package/scripts/issue/issue-sample-prime.ts +2 -0
- package/scripts/issue/issue-search-count.ts +26 -0
- package/scripts/issue/issue-search.ts +128 -3
- package/scripts/issue/issue-spill-cli.ts +4 -0
- package/scripts/issue/upstream-interrupt-cli.ts +21 -5
- package/scripts/josh/josh-commands-ai.ts +1 -1
- package/scripts/josh/josh-commands-development.ts +1 -1
- package/scripts/josh/josh-commands-issue-write.ts +9 -0
- package/scripts/josh/josh-commands-run.ts +6 -1
- package/scripts/josh/josh-commands-ship.ts +5 -5
- package/scripts/josh/josh-run.ts +5 -2
- package/scripts/josh/shared-cache.ts +16 -1
- package/scripts/lane/lane-await.ts +15 -0
- package/scripts/lane/lane-cli.ts +2 -0
- package/scripts/lane/lane-dispatch-dependency.ts +102 -0
- package/scripts/lane/lane-dispatch-wait-stats.ts +239 -0
- package/scripts/lane/lane-dispatch.ts +44 -5
- package/scripts/lane/lane-early-push-count.ts +21 -0
- package/scripts/lane/lane-install.ts +15 -5
- package/scripts/lane/lane-launch-cli.ts +35 -14
- package/scripts/lane/lane-ledger-kind.ts +2 -0
- package/scripts/lane/lane-ledger-schema-ship.ts +5 -1
- package/scripts/lane/lane-ledger-schema.ts +15 -1
- package/scripts/lane/lane-ledger-write.ts +4 -1
- package/scripts/lane/lane-relaunch.ts +25 -2
- package/scripts/lane/lane-state-record.ts +2 -0
- package/scripts/lane/lane-state.ts +8 -1
- package/scripts/lane/lane-stats-tables.ts +2 -0
- package/scripts/lane/openai-lane-supervisor.ts +16 -1
- package/scripts/lib/inherited-scope.ts +48 -0
- package/scripts/lint/format-steps.ts +93 -0
- package/scripts/lint/format.ts +6 -49
- package/scripts/lint/lint-related-fix.ts +35 -0
- package/scripts/lint/lint-related.ts +22 -35
- package/scripts/propagate/propagate-steps.ts +9 -4
- package/scripts/registry-migration/migrate-cli.ts +50 -0
- package/scripts/registry-migration/migrate-files.ts +154 -0
- package/scripts/registry-migration/migrate-lock.ts +147 -0
- package/scripts/registry-migration/migrate.ts +235 -0
- package/scripts/registry-migration/npm-acquisition.ts +118 -0
- package/scripts/review/review-record-cli.ts +27 -13
- package/scripts/review/review-record-pinned.ts +15 -6
- package/scripts/run/add/run-add-cli.ts +21 -3
- package/scripts/run/add/run-add.ts +26 -9
- package/scripts/run/board/run-board-layout.ts +11 -6
- package/scripts/run/board/run-board-read.ts +29 -69
- package/scripts/run/board/run-board-reason.ts +12 -0
- package/scripts/run/board/run-board-render-lanes.ts +26 -9
- package/scripts/run/board/run-board-render-lead.ts +9 -0
- package/scripts/run/board/run-board-retry-wait.ts +35 -0
- package/scripts/run/board/run-board-root-layout.ts +69 -0
- package/scripts/run/board/run-board-seat.ts +9 -2
- package/scripts/run/board/run-board-setup.ts +6 -4
- package/scripts/run/board/run-board-single.ts +69 -4
- package/scripts/run/board/run-board-span-read.ts +85 -0
- package/scripts/run/board/run-board-tick.ts +12 -4
- package/scripts/run/carry/run-carry-reclaim.ts +12 -2
- package/scripts/run/carry/run-carry-session.ts +48 -0
- package/scripts/run/carry/run-carry.ts +21 -14
- package/scripts/run/cut/run-cut-resume.ts +15 -3
- package/scripts/run/cut/run-cut.ts +1 -1
- package/scripts/run/detached-launch.ts +14 -5
- package/scripts/run/early-push-record.ts +6 -2
- package/scripts/run/event/run-event-setup.ts +2 -0
- package/scripts/run/event/run-event-stream-emit.ts +27 -7
- package/scripts/run/hold/run-hold-cli.ts +40 -5
- package/scripts/run/hold/run-hold-ended.ts +50 -0
- package/scripts/run/merge/run-merge-cut-release.ts +17 -0
- package/scripts/run/merge/run-merge-human-review.ts +6 -0
- package/scripts/run/merge/run-merge-steps.ts +4 -57
- package/scripts/run/merge/run-merge-waits.ts +54 -0
- package/scripts/run/prime/run-prime-cli.ts +16 -2
- package/scripts/run/review/run-review-cli.ts +5 -7
- package/scripts/run/review/run-review-early-push.ts +19 -8
- package/scripts/run/review/run-review-join-read.ts +33 -6
- package/scripts/run/review/run-review-pinned-remaining.ts +124 -0
- package/scripts/run/review/run-review-pinned-steps.ts +7 -1
- package/scripts/run/run-halfrun-resume.ts +49 -6
- package/scripts/run/run-headless.ts +3 -0
- package/scripts/run/run-pr-return.ts +14 -5
- package/scripts/run/run-repair-attempt.ts +219 -0
- package/scripts/run/ship/run-ship-lap.ts +5 -17
- package/scripts/run/ship/run-ship-pre-detach-pinned.ts +4 -13
- package/scripts/run/ship/run-ship-scoped.ts +66 -30
- package/scripts/run/startup/run-startup-schema.ts +31 -0
- package/scripts/run/startup/run-startup-store.ts +130 -0
- package/scripts/run/startup/run-startup.ts +119 -0
- package/scripts/run/wake/run-wake-codex.ts +144 -0
- package/scripts/run/wake/run-wake-driver.ts +32 -7
- package/scripts/run/wake/run-wake-handoff.ts +9 -8
- package/scripts/run/wake/run-wake-loop.ts +23 -3
- package/scripts/run/wake/run-wake-ports.ts +17 -3
- package/scripts/run/wake/run-wake-takeover.ts +6 -3
- package/scripts/run/wake/run-wake-window.ts +4 -1
- package/scripts/run/wake/run-wake.ts +5 -0
- package/scripts/sync/sync-ai-files.ts +17 -0
- package/scripts/sync/sync-configs.ts +11 -1
- package/scripts/sync/sync.ts +5 -1
- package/scripts/test/test-pinned-cache-logic.ts +13 -7
- package/scripts/test/test-pinned-cache.ts +33 -11
- package/scripts/test/test-related-cap.ts +7 -3
- package/scripts/test/test-related-imports.ts +92 -0
- package/scripts/test/test-runner-config.ts +19 -0
- package/scripts/test/vitest-failure-summary.ts +7 -0
- package/scripts/version/npm-registry.ts +45 -7
- package/scripts/version/upgrade-shell-command.ts +34 -2
- package/templates/workflows/ci.yml +0 -15
- package/templates/workflows/github-release.yml +0 -5
- package/dist/commands/chunk-23GH6B3D.js +0 -333
- package/dist/commands/chunk-24OATKOF.js +0 -7534
- package/dist/commands/chunk-24ZDAWML.js +0 -48
- package/dist/commands/chunk-2BB5ZR2F.js +0 -128
- package/dist/commands/chunk-2BJJUTZA.js +0 -59
- package/dist/commands/chunk-2CXT6MBR.js +0 -51
- package/dist/commands/chunk-2DJLAUYB.js +0 -109
- package/dist/commands/chunk-2EZTYLO4.js +0 -179
- package/dist/commands/chunk-2FJJYCBD.js +0 -149
- package/dist/commands/chunk-2PHOLX62.js +0 -43
- package/dist/commands/chunk-2QM72JCJ.js +0 -338
- package/dist/commands/chunk-2VRITY55.js +0 -41
- package/dist/commands/chunk-2XAH3MHV.js +0 -23
- package/dist/commands/chunk-34KZDKQJ.js +0 -304
- package/dist/commands/chunk-352KLSFX.js +0 -67
- package/dist/commands/chunk-36LOGVJ7.js +0 -38
- package/dist/commands/chunk-3AEDZZNL.js +0 -223
- package/dist/commands/chunk-3B2HEFNO.js +0 -51
- package/dist/commands/chunk-3PEXBHRN.js +0 -33
- package/dist/commands/chunk-3Z425MM3.js +0 -61
- package/dist/commands/chunk-3ZOX4G4U.js +0 -88
- package/dist/commands/chunk-452HWOJ7.js +0 -395
- package/dist/commands/chunk-475EFIJV.js +0 -178
- package/dist/commands/chunk-47UZB54M.js +0 -73
- package/dist/commands/chunk-4DN4XVPL.js +0 -716
- package/dist/commands/chunk-4DVM57T7.js +0 -86
- package/dist/commands/chunk-4EADHJVC.js +0 -247
- package/dist/commands/chunk-4HERA2GY.js +0 -95
- package/dist/commands/chunk-4JI35CVO.js +0 -70
- package/dist/commands/chunk-4L4LNWZ7.js +0 -143
- package/dist/commands/chunk-4N32QKJZ.js +0 -170
- package/dist/commands/chunk-4NRSFLG7.js +0 -185
- package/dist/commands/chunk-4OKRPAUT.js +0 -98
- package/dist/commands/chunk-4PUKDAXL.js +0 -42
- package/dist/commands/chunk-4Q64PG46.js +0 -478
- package/dist/commands/chunk-4UDTQVDD.js +0 -278
- package/dist/commands/chunk-4WR2LEZL.js +0 -123
- package/dist/commands/chunk-4ZJOC6OK.js +0 -298
- package/dist/commands/chunk-4ZQM4I7R.js +0 -533
- package/dist/commands/chunk-54X37JEJ.js +0 -170
- package/dist/commands/chunk-56KW5EOK.js +0 -85
- package/dist/commands/chunk-5CG3XU3O.js +0 -74
- package/dist/commands/chunk-5ESZLHDZ.js +0 -514
- package/dist/commands/chunk-5FBRMARM.js +0 -578
- package/dist/commands/chunk-5RG4S66L.js +0 -47
- package/dist/commands/chunk-5UJGACVN.js +0 -137
- package/dist/commands/chunk-5Y7B7FDL.js +0 -44
- package/dist/commands/chunk-5Z6E5ZUV.js +0 -89
- package/dist/commands/chunk-5ZNUH4LV.js +0 -1722
- package/dist/commands/chunk-5ZTQX7OS.js +0 -125
- package/dist/commands/chunk-66NX6EXR.js +0 -29
- package/dist/commands/chunk-66TGK5XL.js +0 -84
- package/dist/commands/chunk-6CFHLMKM.js +0 -555
- package/dist/commands/chunk-6DDK5XWK.js +0 -74
- package/dist/commands/chunk-6GQX752S.js +0 -145
- package/dist/commands/chunk-6HRRZANN.js +0 -55
- package/dist/commands/chunk-6MAZ55GF.js +0 -1241
- package/dist/commands/chunk-6OP63TBT.js +0 -78
- package/dist/commands/chunk-6Q3XUCLM.js +0 -204
- package/dist/commands/chunk-6RUWU2SB.js +0 -45
- package/dist/commands/chunk-6UCWAFQY.js +0 -245
- package/dist/commands/chunk-6WKJ3GDA.js +0 -408
- package/dist/commands/chunk-6YURRFRU.js +0 -461
- package/dist/commands/chunk-6YVURZAJ.js +0 -350
- package/dist/commands/chunk-6Z4YZG7P.js +0 -169
- package/dist/commands/chunk-77BIN247.js +0 -122
- package/dist/commands/chunk-7ABHNNY3.js +0 -529
- package/dist/commands/chunk-7C7FOKJK.js +0 -115
- package/dist/commands/chunk-7HAGC6SW.js +0 -1062
- package/dist/commands/chunk-7KKUFLH5.js +0 -56
- package/dist/commands/chunk-7LJQMM2K.js +0 -102
- package/dist/commands/chunk-7MJYLUF4.js +0 -99
- package/dist/commands/chunk-7NHZCI5Y.js +0 -704
- package/dist/commands/chunk-7OQ56DVW.js +0 -239
- package/dist/commands/chunk-7VWPGTZO.js +0 -260
- package/dist/commands/chunk-7YZXS3AK.js +0 -30
- package/dist/commands/chunk-A4HOQKOG.js +0 -85
- package/dist/commands/chunk-A6T2N7VC.js +0 -159
- package/dist/commands/chunk-AAUDI7WJ.js +0 -250
- package/dist/commands/chunk-AC26ZUG5.js +0 -259
- package/dist/commands/chunk-ACZ52JPI.js +0 -140
- package/dist/commands/chunk-AJ65WNJB.js +0 -230
- package/dist/commands/chunk-AK7SEO4Y.js +0 -177
- package/dist/commands/chunk-AKK56GNX.js +0 -205
- package/dist/commands/chunk-AKQYYHP2.js +0 -461
- package/dist/commands/chunk-ALDAS2WG.js +0 -137
- package/dist/commands/chunk-ANUTT56I.js +0 -85
- package/dist/commands/chunk-AVVMDVGO.js +0 -68
- package/dist/commands/chunk-B3M5WSGN.js +0 -72
- package/dist/commands/chunk-B7ZNIEDV.js +0 -351
- package/dist/commands/chunk-BCUDQWYK.js +0 -77
- package/dist/commands/chunk-BF6YX4HE.js +0 -70
- package/dist/commands/chunk-BHRS7HAM.js +0 -272
- package/dist/commands/chunk-BIKGPT52.js +0 -29
- package/dist/commands/chunk-BJA5U4Q7.js +0 -75
- package/dist/commands/chunk-BMKWSWWE.js +0 -126
- package/dist/commands/chunk-BMTYUJNT.js +0 -59
- package/dist/commands/chunk-BRHPRDDV.js +0 -127
- package/dist/commands/chunk-BRUBX64M.js +0 -33
- package/dist/commands/chunk-BTZJDHQT.js +0 -46
- package/dist/commands/chunk-BYFC6MD2.js +0 -72
- package/dist/commands/chunk-BYGJ3BCJ.js +0 -803
- package/dist/commands/chunk-C2SEDMZ3.js +0 -238
- package/dist/commands/chunk-C54QXJD6.js +0 -4208
- package/dist/commands/chunk-C6QSVO5K.js +0 -56
- package/dist/commands/chunk-CBAKBWSZ.js +0 -332
- package/dist/commands/chunk-CFHRNTE5.js +0 -326
- package/dist/commands/chunk-CGLLAEKZ.js +0 -110
- package/dist/commands/chunk-CHKYPF5O.js +0 -82
- package/dist/commands/chunk-CJBW6BWG.js +0 -800
- package/dist/commands/chunk-CJKPF5DJ.js +0 -156
- package/dist/commands/chunk-CKUKK7JG.js +0 -252
- package/dist/commands/chunk-CMHGDCGN.js +0 -263
- package/dist/commands/chunk-CNGTHSUS.js +0 -750
- package/dist/commands/chunk-CP2J4RV2.js +0 -3987
- package/dist/commands/chunk-CQZI7RIK.js +0 -72
- package/dist/commands/chunk-CWCKCZS6.js +0 -188
- package/dist/commands/chunk-D5HIP4HT.js +0 -289
- package/dist/commands/chunk-D6D6WQR6.js +0 -125
- package/dist/commands/chunk-D7JRJI44.js +0 -297
- package/dist/commands/chunk-D7OAU32Z.js +0 -119
- package/dist/commands/chunk-DAAX7XDS.js +0 -1208
- package/dist/commands/chunk-DBKTFB5V.js +0 -18
- package/dist/commands/chunk-DEZF7QZZ.js +0 -184
- package/dist/commands/chunk-DMD74E3F.js +0 -39
- package/dist/commands/chunk-DPJVKTO4.js +0 -41
- package/dist/commands/chunk-DXJQHJQ4.js +0 -73
- package/dist/commands/chunk-DYZOOWVW.js +0 -912
- package/dist/commands/chunk-EBI2BAKQ.js +0 -47
- package/dist/commands/chunk-EDKOSZ3K.js +0 -88
- package/dist/commands/chunk-EFDVE5P5.js +0 -121
- package/dist/commands/chunk-EGIHAEMT.js +0 -72
- package/dist/commands/chunk-EKLU6QR7.js +0 -507
- package/dist/commands/chunk-ELY76WAR.js +0 -65
- package/dist/commands/chunk-EM3HAZF6.js +0 -52
- package/dist/commands/chunk-EMTZAGT5.js +0 -51
- package/dist/commands/chunk-ENKFCOVY.js +0 -472
- package/dist/commands/chunk-ERG4QRNG.js +0 -224
- package/dist/commands/chunk-EUGNQCYK.js +0 -139
- package/dist/commands/chunk-EW4NPUMQ.js +0 -363
- package/dist/commands/chunk-EWVR5AEX.js +0 -140
- package/dist/commands/chunk-EXDFKKMH.js +0 -113
- package/dist/commands/chunk-EXWB34R2.js +0 -238
- package/dist/commands/chunk-EYMPBHDN.js +0 -61
- package/dist/commands/chunk-EZ7IPKIH.js +0 -20
- package/dist/commands/chunk-EZSO25UZ.js +0 -80
- package/dist/commands/chunk-F6IQHZYY.js +0 -94
- package/dist/commands/chunk-FDS65XOJ.js +0 -212
- package/dist/commands/chunk-FFHEGWPK.js +0 -91
- package/dist/commands/chunk-FGL6DBZU.js +0 -71
- package/dist/commands/chunk-FHFWNNUC.js +0 -144
- package/dist/commands/chunk-FIUCHMCF.js +0 -32
- package/dist/commands/chunk-FJX7AENO.js +0 -74
- package/dist/commands/chunk-FKZ5E4JD.js +0 -97
- package/dist/commands/chunk-FMZWRDKH.js +0 -302
- package/dist/commands/chunk-FOKCRIAN.js +0 -67
- package/dist/commands/chunk-FQGWO2ZH.js +0 -43
- package/dist/commands/chunk-FROACLVU.js +0 -525
- package/dist/commands/chunk-FURNDIT3.js +0 -34
- package/dist/commands/chunk-FVDQNMP6.js +0 -93
- package/dist/commands/chunk-FVVZIJUC.js +0 -425
- package/dist/commands/chunk-FWU3H4TX.js +0 -17
- package/dist/commands/chunk-G3HBYHFA.js +0 -16
- package/dist/commands/chunk-G4E4M2P4.js +0 -299
- package/dist/commands/chunk-G5KSL2Q2.js +0 -151
- package/dist/commands/chunk-G6XC7V6Y.js +0 -58
- package/dist/commands/chunk-GCPP5XIG.js +0 -90
- package/dist/commands/chunk-GITT5A5A.js +0 -198
- package/dist/commands/chunk-GJYMI2CM.js +0 -48
- package/dist/commands/chunk-GLC47H7I.js +0 -285
- package/dist/commands/chunk-GUR54ELE.js +0 -328
- package/dist/commands/chunk-GW4UWR3O.js +0 -126
- package/dist/commands/chunk-GY4DMCKS.js +0 -306
- package/dist/commands/chunk-H6JQRHDC.js +0 -80
- package/dist/commands/chunk-HATKF6VX.js +0 -173
- package/dist/commands/chunk-HG2NZQD5.js +0 -135
- package/dist/commands/chunk-HH3CVIFU.js +0 -93
- package/dist/commands/chunk-HHMMGDMP.js +0 -469
- package/dist/commands/chunk-HI5WPM6C.js +0 -127
- package/dist/commands/chunk-HQGNXR6I.js +0 -245
- package/dist/commands/chunk-HTIDHEEN.js +0 -108
- package/dist/commands/chunk-HVCQYZVD.js +0 -38
- package/dist/commands/chunk-HWEZRNPL.js +0 -66
- package/dist/commands/chunk-HX3FFIO5.js +0 -74
- package/dist/commands/chunk-HXDTA5VU.js +0 -208
- package/dist/commands/chunk-I2KCGKJI.js +0 -107
- package/dist/commands/chunk-I63RNFFR.js +0 -213
- package/dist/commands/chunk-IAD4WLLI.js +0 -98
- package/dist/commands/chunk-IB5TT73I.js +0 -177
- package/dist/commands/chunk-IBAYXCMU.js +0 -156
- package/dist/commands/chunk-IGDJNXX2.js +0 -49
- package/dist/commands/chunk-ILGPZ47M.js +0 -33
- package/dist/commands/chunk-IYJEBWW5.js +0 -44
- package/dist/commands/chunk-J22PSIXR.js +0 -418
- package/dist/commands/chunk-J66YBAAM.js +0 -161
- package/dist/commands/chunk-J6WKZRV2.js +0 -391
- package/dist/commands/chunk-J7IO3AYH.js +0 -179
- package/dist/commands/chunk-JAKC2BHX.js +0 -88
- package/dist/commands/chunk-JCAQ7B6J.js +0 -124
- package/dist/commands/chunk-JHN6RCE6.js +0 -123
- package/dist/commands/chunk-JIGBNCDR.js +0 -88
- package/dist/commands/chunk-JJHWTFWQ.js +0 -76
- package/dist/commands/chunk-JJRKTWLK.js +0 -64
- package/dist/commands/chunk-JKOGWGQM.js +0 -92
- package/dist/commands/chunk-JM6EVOFN.js +0 -172
- package/dist/commands/chunk-JQXPLMCO.js +0 -81
- package/dist/commands/chunk-JV24VP2O.js +0 -81
- package/dist/commands/chunk-JVKXJ763.js +0 -45
- package/dist/commands/chunk-K275REYP.js +0 -37
- package/dist/commands/chunk-K4G3HOKS.js +0 -105
- package/dist/commands/chunk-K64EIHD2.js +0 -138
- package/dist/commands/chunk-KB3OQWDT.js +0 -71
- package/dist/commands/chunk-KCFOP5RI.js +0 -1310
- package/dist/commands/chunk-KGE4AS2Y.js +0 -134
- package/dist/commands/chunk-KIILCKQR.js +0 -220
- package/dist/commands/chunk-KK2SL42W.js +0 -241
- package/dist/commands/chunk-KKIMVXAP.js +0 -280
- package/dist/commands/chunk-KODXWMBX.js +0 -77
- package/dist/commands/chunk-KPSKWTOS.js +0 -208
- package/dist/commands/chunk-KVHNQHX3.js +0 -100
- package/dist/commands/chunk-KWYQR5MK.js +0 -269
- package/dist/commands/chunk-KXHXMERX.js +0 -214
- package/dist/commands/chunk-KZ5BBBMO.js +0 -271
- package/dist/commands/chunk-KZ7HD37E.js +0 -121
- package/dist/commands/chunk-KZSM5M5P.js +0 -89
- package/dist/commands/chunk-KZZWPUJW.js +0 -25
- package/dist/commands/chunk-L7DAL54N.js +0 -347
- package/dist/commands/chunk-LAR76BFA.js +0 -114
- package/dist/commands/chunk-LB557AHJ.js +0 -192
- package/dist/commands/chunk-LJXKVLYI.js +0 -229
- package/dist/commands/chunk-LOOFYHUM.js +0 -773
- package/dist/commands/chunk-LQXFVZTS.js +0 -13
- package/dist/commands/chunk-LT7QSHR4.js +0 -995
- package/dist/commands/chunk-LUXWDMKI.js +0 -426
- package/dist/commands/chunk-LWAXXZPS.js +0 -118
- package/dist/commands/chunk-LX7TIEMI.js +0 -1612
- package/dist/commands/chunk-LZ5QXE5N.js +0 -244
- package/dist/commands/chunk-LZPPSOTP.js +0 -122
- package/dist/commands/chunk-M4UV3BEV.js +0 -313
- package/dist/commands/chunk-M6JDU5EK.js +0 -133
- package/dist/commands/chunk-MDLOETXL.js +0 -211
- package/dist/commands/chunk-MFBNNTBM.js +0 -44
- package/dist/commands/chunk-MGF64OHV.js +0 -32
- package/dist/commands/chunk-MI2OS6TL.js +0 -132
- package/dist/commands/chunk-MLW4S35K.js +0 -389
- package/dist/commands/chunk-MN425CU6.js +0 -63
- package/dist/commands/chunk-MPGJ4ONJ.js +0 -634
- package/dist/commands/chunk-MRORPFSO.js +0 -402
- package/dist/commands/chunk-MUGTOJUL.js +0 -319
- package/dist/commands/chunk-MVHPRYHE.js +0 -91
- package/dist/commands/chunk-MWO6FOSZ.js +0 -393
- package/dist/commands/chunk-MXC4IBZ7.js +0 -104
- package/dist/commands/chunk-N7QTMTST.js +0 -210
- package/dist/commands/chunk-NDBX7LSS.js +0 -32
- package/dist/commands/chunk-NEGJ77RV.js +0 -173
- package/dist/commands/chunk-NEGRE5VW.js +0 -101
- package/dist/commands/chunk-NFPD2P3V.js +0 -53
- package/dist/commands/chunk-NHIW7JE6.js +0 -335
- package/dist/commands/chunk-NILSN7A4.js +0 -158
- package/dist/commands/chunk-NOLFSPOB.js +0 -74
- package/dist/commands/chunk-NSAVEXVR.js +0 -353
- package/dist/commands/chunk-NT67QTZO.js +0 -65
- package/dist/commands/chunk-NU7W6QGT.js +0 -155
- package/dist/commands/chunk-NYWGJLBU.js +0 -19
- package/dist/commands/chunk-OAAVY2JK.js +0 -49
- package/dist/commands/chunk-OGS2DK7I.js +0 -47
- package/dist/commands/chunk-OHNP3QL2.js +0 -186
- package/dist/commands/chunk-OIPV3PWW.js +0 -870
- package/dist/commands/chunk-OIX2363L.js +0 -16
- package/dist/commands/chunk-OJ65BZBV.js +0 -646
- package/dist/commands/chunk-OKZWEVR4.js +0 -352
- package/dist/commands/chunk-OL6IF4JC.js +0 -20
- package/dist/commands/chunk-OMPRILFH.js +0 -29
- package/dist/commands/chunk-OOWGH2RG.js +0 -85
- package/dist/commands/chunk-OP2RFVLS.js +0 -102
- package/dist/commands/chunk-ORKVN2LO.js +0 -56
- package/dist/commands/chunk-OSBWXZJ4.js +0 -492
- package/dist/commands/chunk-OT3UMEWK.js +0 -47
- package/dist/commands/chunk-OVWPZDWP.js +0 -64
- package/dist/commands/chunk-OWYK2BEJ.js +0 -1222
- package/dist/commands/chunk-OX3VQLV2.js +0 -488
- package/dist/commands/chunk-OZJP77UM.js +0 -103
- package/dist/commands/chunk-OZZWRJQI.js +0 -246
- package/dist/commands/chunk-P3H3DKTE.js +0 -69
- package/dist/commands/chunk-P4D5RESF.js +0 -88
- package/dist/commands/chunk-P4KIQRSL.js +0 -119
- package/dist/commands/chunk-P5SOYWH2.js +0 -37
- package/dist/commands/chunk-P7FPXAHP.js +0 -29
- package/dist/commands/chunk-PE7B7242.js +0 -84
- package/dist/commands/chunk-PFO7EYAP.js +0 -45
- package/dist/commands/chunk-PHLOTUB7.js +0 -366
- package/dist/commands/chunk-PTNQCCIB.js +0 -41
- package/dist/commands/chunk-PTZEFQUX.js +0 -211
- package/dist/commands/chunk-Q5Q2QYVU.js +0 -112
- package/dist/commands/chunk-Q7EEIOAD.js +0 -120
- package/dist/commands/chunk-QABRNGQV.js +0 -88
- package/dist/commands/chunk-QAHFPCFR.js +0 -50
- package/dist/commands/chunk-QDFVVRQP.js +0 -92
- package/dist/commands/chunk-QGAERR7D.js +0 -99
- package/dist/commands/chunk-QHWJJ6X5.js +0 -53
- package/dist/commands/chunk-QJRVDE7T.js +0 -307
- package/dist/commands/chunk-QMDKDQKW.js +0 -114
- package/dist/commands/chunk-QOSC5RKD.js +0 -18
- package/dist/commands/chunk-QQ4CIYMF.js +0 -132
- package/dist/commands/chunk-QV5FKMOU.js +0 -80
- package/dist/commands/chunk-QWWTC3XR.js +0 -109
- package/dist/commands/chunk-QXQ56E56.js +0 -27
- package/dist/commands/chunk-R54Z2Z3X.js +0 -114
- package/dist/commands/chunk-R6QE5VJG.js +0 -46
- package/dist/commands/chunk-RG53UFNW.js +0 -418
- package/dist/commands/chunk-RGGEQM6G.js +0 -140
- package/dist/commands/chunk-RH6ZWJOA.js +0 -77
- package/dist/commands/chunk-RHKCWJQX.js +0 -62
- package/dist/commands/chunk-RKIAX4DZ.js +0 -191
- package/dist/commands/chunk-RLBFEHHC.js +0 -300
- package/dist/commands/chunk-RN2YDNLF.js +0 -229
- package/dist/commands/chunk-RRAIRS2T.js +0 -54
- package/dist/commands/chunk-RS764ZMU.js +0 -46
- package/dist/commands/chunk-RUIBQMOV.js +0 -38
- package/dist/commands/chunk-RUQY5TS3.js +0 -83
- package/dist/commands/chunk-RVUJ6F5L.js +0 -181
- package/dist/commands/chunk-RW64VHEB.js +0 -130
- package/dist/commands/chunk-RXYMJPJB.js +0 -114
- package/dist/commands/chunk-S4M6UWR2.js +0 -103
- package/dist/commands/chunk-SASX3W2M.js +0 -99
- package/dist/commands/chunk-SFNBUB6D.js +0 -110
- package/dist/commands/chunk-SJ2ZN575.js +0 -90
- package/dist/commands/chunk-SP7DKYGU.js +0 -1263
- package/dist/commands/chunk-SSL6A3Y4.js +0 -165
- package/dist/commands/chunk-SVAKCXZ7.js +0 -44
- package/dist/commands/chunk-SYOXIKB7.js +0 -705
- package/dist/commands/chunk-SZG5HDNP.js +0 -321
- package/dist/commands/chunk-T25S4QHL.js +0 -52
- package/dist/commands/chunk-T4F33UKZ.js +0 -114
- package/dist/commands/chunk-T4UYEHWG.js +0 -50
- package/dist/commands/chunk-TAEGXID2.js +0 -58
- package/dist/commands/chunk-TCBUX52E.js +0 -701
- package/dist/commands/chunk-TEPYEUYG.js +0 -585
- package/dist/commands/chunk-TFLHYC2F.js +0 -141
- package/dist/commands/chunk-TJKM56WJ.js +0 -109
- package/dist/commands/chunk-TLAB552K.js +0 -445
- package/dist/commands/chunk-TP6L4W3W.js +0 -82
- package/dist/commands/chunk-TR7WWYD5.js +0 -60
- package/dist/commands/chunk-TVZXG4Y4.js +0 -197
- package/dist/commands/chunk-TYNH2R66.js +0 -1150
- package/dist/commands/chunk-U3IVVR4W.js +0 -33
- package/dist/commands/chunk-U5P6G3UV.js +0 -77
- package/dist/commands/chunk-U7XU5RG3.js +0 -86
- package/dist/commands/chunk-UKBBWMLE.js +0 -1189
- package/dist/commands/chunk-ULVVGGTY.js +0 -64
- package/dist/commands/chunk-UNMSZGSG.js +0 -269
- package/dist/commands/chunk-URDT2O2K.js +0 -36
- package/dist/commands/chunk-UTHUX7VU.js +0 -88
- package/dist/commands/chunk-V4Z7G4UH.js +0 -73
- package/dist/commands/chunk-V5FD7DVV.js +0 -48
- package/dist/commands/chunk-VCPGFBMN.js +0 -655
- package/dist/commands/chunk-VGPIQNDB.js +0 -24
- package/dist/commands/chunk-VJE3RJAX.js +0 -23
- package/dist/commands/chunk-VK6D5CWA.js +0 -161
- package/dist/commands/chunk-VOF3N4WO.js +0 -114
- package/dist/commands/chunk-VQVPAVQ3.js +0 -45
- package/dist/commands/chunk-VV4TQYGD.js +0 -38
- package/dist/commands/chunk-W3FX7FYN.js +0 -84
- package/dist/commands/chunk-W7DRUOF7.js +0 -122
- package/dist/commands/chunk-WAEN2RTT.js +0 -161
- package/dist/commands/chunk-WCEUMOKK.js +0 -84
- package/dist/commands/chunk-WJ4NEDNI.js +0 -288
- package/dist/commands/chunk-WMMGXJXP.js +0 -92
- package/dist/commands/chunk-WOFLW2LX.js +0 -26
- package/dist/commands/chunk-WTH6NTXU.js +0 -128
- package/dist/commands/chunk-WWVYEHQT.js +0 -272
- package/dist/commands/chunk-X3TNPALI.js +0 -213
- package/dist/commands/chunk-XC6GG5JR.js +0 -78
- package/dist/commands/chunk-XDF25GSU.js +0 -536
- package/dist/commands/chunk-XFPEUYDV.js +0 -67
- package/dist/commands/chunk-XFWI6WHH.js +0 -60
- package/dist/commands/chunk-XGMRAKSL.js +0 -85
- package/dist/commands/chunk-XHGWMD3L.js +0 -104
- package/dist/commands/chunk-XKSUBUIH.js +0 -116
- package/dist/commands/chunk-XPBF5DG3.js +0 -419
- package/dist/commands/chunk-XUMYPESL.js +0 -160
- package/dist/commands/chunk-XXC32PVL.js +0 -541
- package/dist/commands/chunk-XXN2EZBY.js +0 -133
- package/dist/commands/chunk-XXNEY4B3.js +0 -110
- package/dist/commands/chunk-Y27PTXXI.js +0 -258
- package/dist/commands/chunk-Y4EBUI6M.js +0 -237
- package/dist/commands/chunk-YAU3LYNF.js +0 -60
- package/dist/commands/chunk-YDURQICF.js +0 -204
- package/dist/commands/chunk-YGFOGA7C.js +0 -1153
- package/dist/commands/chunk-YHJ2AJMA.js +0 -66
- package/dist/commands/chunk-YIA6FC3K.js +0 -78
- package/dist/commands/chunk-YM77CF4D.js +0 -183
- package/dist/commands/chunk-YNPRJCEO.js +0 -81
- package/dist/commands/chunk-YTBQAD5W.js +0 -170
- package/dist/commands/chunk-YVH2OLDS.js +0 -104
- package/dist/commands/chunk-ZAAHZY2A.js +0 -19
- package/dist/commands/chunk-ZBZ5DDCH.js +0 -1866
- package/dist/commands/chunk-ZLRUHSOP.js +0 -48
- package/dist/commands/chunk-ZNR75OXP.js +0 -444
- package/dist/commands/chunk-ZSOR4ISJ.js +0 -75
- package/dist/commands/chunk-ZVAIIHBE.js +0 -63
- package/dist/commands/chunk-ZYFHYQA7.js +0 -51
- package/dist/commands/chunk-ZZFFSQF4.js +0 -218
- package/dist/commands/chunk-ZZULXNC2.js +0 -47
- package/dist/commands/chunk-ZZXO6TFH.js +0 -232
- package/dist/commands/run-ship-lap-W5T2VHFC.js +0 -30
- package/dist/commands/test-related-ZCNC46MS.js +0 -113
- package/dist/commands/unused-members-STULPRBU.js +0 -331
- package/dist/hooks/chunk-5CUXGQT6.js +0 -8353
- package/dist/hooks/chunk-5R5YFQR5.js +0 -931
- package/dist/hooks/chunk-6RLY27FT.js +0 -232
- package/dist/hooks/chunk-6YGMIODI.js +0 -86
- package/dist/hooks/chunk-AO4TOV4V.js +0 -5026
- package/dist/hooks/chunk-FOW4B7OQ.js +0 -1795
- package/dist/hooks/chunk-G5WSPYJ6.js +0 -5663
- package/dist/hooks/chunk-HHIVWGHX.js +0 -6869
- package/dist/hooks/chunk-IURJANNZ.js +0 -1082
- package/dist/hooks/chunk-OV22V63P.js +0 -10980
- package/dist/hooks/chunk-SXABK6UV.js +0 -321
- package/dist/hooks/run-ship-lap-VCEOUHQI.js +0 -8
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { run_board_human_merge } from './run-board-human-merge'
|
|
2
|
+
import type { BoardPlan } from './run-board-layout'
|
|
3
|
+
import type { ItemStatus } from './run-board-status'
|
|
4
|
+
|
|
5
|
+
type Statuses = ReadonlyMap<number, ItemStatus>
|
|
6
|
+
|
|
7
|
+
// A `run:add --retry` settles an issue as waiting before it ever launched (`run-board-status.ts`). The
|
|
8
|
+
// plan, classified as `backlog:next` classifies it, is what says whether it starts next or waits: one the
|
|
9
|
+
// plan leaves unreached waits on something, so its status is dropped and it draws as the plan row it
|
|
10
|
+
// is — in the waiting section with its reason — rather than as an empty ⏳ lane (joshuafolkken/kit#7488).
|
|
11
|
+
function is_retry_wait(status: ItemStatus): boolean {
|
|
12
|
+
return status.state === 'waiting' && status.started_ms === undefined
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function released(unreached: ReadonlyArray<{ number: number }>, statuses: Statuses): Statuses {
|
|
16
|
+
const waits = new Set(unreached.map((child) => child.number))
|
|
17
|
+
|
|
18
|
+
return new Map(
|
|
19
|
+
[...statuses].filter(([issue, status]) => !(waits.has(issue) && is_retry_wait(status))),
|
|
20
|
+
)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// The human-merge overlay, then the retry waits the plan leaves unreached released to their plan rows.
|
|
24
|
+
function overlay_of(
|
|
25
|
+
plan: BoardPlan,
|
|
26
|
+
statuses: Statuses,
|
|
27
|
+
): ReturnType<typeof run_board_human_merge.overlay_of> {
|
|
28
|
+
const current = run_board_human_merge.overlay_of(plan, statuses)
|
|
29
|
+
|
|
30
|
+
return { ...current, statuses: released(current.plan.waves.unreached, current.statuses) }
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const run_board_retry_wait = { overlay_of }
|
|
34
|
+
|
|
35
|
+
export { run_board_retry_wait }
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { run_board_layout, type BoardLayout, type BoardRow, type RowRead } from './run-board-layout'
|
|
2
|
+
import type { LocalRead } from './run-board-read'
|
|
3
|
+
import type { EndedRoot } from './run-board-single'
|
|
4
|
+
import { run_board_status, type ItemStatus } from './run-board-status'
|
|
5
|
+
|
|
6
|
+
// The root checkout's single runs beside a carried run. A running one is drawn under 🏠 above the lanes
|
|
7
|
+
// (joshuafolkken/kit#7524), its row read off its own span's events and kept out of `active`, so the
|
|
8
|
+
// header counts no lane and no 🔄 for it. One a merge ended inside the run leaves 🏠 and is listed in
|
|
9
|
+
// `✅ done` as a lane's finished row is, in its place by its end (joshuafolkken/kit#7525).
|
|
10
|
+
|
|
11
|
+
type RootRead = Pick<LocalRead, 'root' | 'ended_roots' | 'lane_states'>
|
|
12
|
+
|
|
13
|
+
function live_of(local: RootRead, read: RowRead): Pick<BoardLayout, 'root'> {
|
|
14
|
+
const { root } = local
|
|
15
|
+
|
|
16
|
+
if (root === undefined) return {}
|
|
17
|
+
const status = run_board_status.statuses_of(root.events, local.lane_states).get(root.issue)
|
|
18
|
+
|
|
19
|
+
if (status === undefined) return {}
|
|
20
|
+
const statuses = new Map([[root.issue, status]])
|
|
21
|
+
const [row] = run_board_layout.local_layout_of(statuses, undefined, read).active
|
|
22
|
+
|
|
23
|
+
return row === undefined ? {} : { root: { name: root.command, row } }
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// A merge released the run's hold, so it ended merged.
|
|
27
|
+
function ended_status(run: EndedRoot): ItemStatus {
|
|
28
|
+
return { state: 'merged', started_ms: run.started_ms, ended_ms: run.ended_ms }
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// The ended runs' rows among the run's own, any row of the same issue replaced.
|
|
32
|
+
function active_of(
|
|
33
|
+
active: ReadonlyArray<BoardRow>,
|
|
34
|
+
ended: ReadonlyArray<EndedRoot>,
|
|
35
|
+
read: RowRead,
|
|
36
|
+
): ReadonlyArray<BoardRow> {
|
|
37
|
+
if (ended.length === 0) return active
|
|
38
|
+
|
|
39
|
+
const statuses = new Map(ended.map((run) => [run.issue, ended_status(run)]))
|
|
40
|
+
const rows = run_board_layout.local_layout_of(statuses, undefined, read).active
|
|
41
|
+
const kept = active.filter((row) => !statuses.has(row.number))
|
|
42
|
+
|
|
43
|
+
return [...kept, ...rows].toSorted(run_board_layout.active_order)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function layout_of(layout: BoardLayout, local: RootRead, read: RowRead): BoardLayout {
|
|
47
|
+
return {
|
|
48
|
+
...layout,
|
|
49
|
+
active: active_of(layout.active, local.ended_roots ?? [], read),
|
|
50
|
+
...live_of(local, read),
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// The baseline the header counts arrivals against: the rows the ended runs add to the run's are no
|
|
55
|
+
// arrival to its plan.
|
|
56
|
+
function baseline_of(
|
|
57
|
+
baseline_total: number | undefined,
|
|
58
|
+
run_layout: BoardLayout,
|
|
59
|
+
layout: BoardLayout,
|
|
60
|
+
): number | undefined {
|
|
61
|
+
if (baseline_total === undefined) return undefined
|
|
62
|
+
const { rows_of } = run_board_layout
|
|
63
|
+
|
|
64
|
+
return baseline_total + rows_of(layout).length - rows_of(run_layout).length
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const run_board_root_layout = { baseline_of, layout_of }
|
|
68
|
+
|
|
69
|
+
export { run_board_root_layout }
|
|
@@ -16,6 +16,8 @@ const { STAGE } = run_event_setup
|
|
|
16
16
|
const { WAIT_ICONS } = run_board_labels
|
|
17
17
|
const NO_CANDIDATE = 'no issue ready to start'
|
|
18
18
|
const HELD = 'held'
|
|
19
|
+
// A runnable row waits only for the driver a session restarts, not for a person (joshuafolkken/kit#7510).
|
|
20
|
+
const RESTART_PENDING = 'driver restart pending'
|
|
19
21
|
// The row waits that a free seat itself, or the driver's hold, answers — the row could run in the seat.
|
|
20
22
|
const ROOM_ICONS: ReadonlySet<string> = new Set([
|
|
21
23
|
WAIT_ICONS.lane,
|
|
@@ -77,6 +79,11 @@ function with_hold(lead: string, hold: string | undefined): string {
|
|
|
77
79
|
return hold === undefined ? lead : `${lead} — ${backlog_hold_text.text_of(hold)}`
|
|
78
80
|
}
|
|
79
81
|
|
|
82
|
+
// What keeps a runnable row out: the driver's absence a session restart ends, or a hold.
|
|
83
|
+
function held_lead(hold: string): string {
|
|
84
|
+
return backlog_hold_text.is_driver_restart(hold) ? RESTART_PENDING : HELD
|
|
85
|
+
}
|
|
86
|
+
|
|
80
87
|
// What a seat no refusal explains says: no runnable row, or the hold that keeps a runnable one out —
|
|
81
88
|
// the hold as a sentence, never its ledger code (`backlog-hold-text.ts`).
|
|
82
89
|
function idle_reason(room: SeatRoom): string | undefined {
|
|
@@ -84,7 +91,7 @@ function idle_reason(room: SeatRoom): string | undefined {
|
|
|
84
91
|
|
|
85
92
|
if (!has_candidate(room.layout)) return with_hold(NO_CANDIDATE, hold)
|
|
86
93
|
|
|
87
|
-
return hold === undefined ? undefined : with_hold(
|
|
94
|
+
return hold === undefined ? undefined : with_hold(held_lead(hold), hold)
|
|
88
95
|
}
|
|
89
96
|
|
|
90
97
|
// No seat line where the seats are unread — before the plan is read, or once the run stopped.
|
|
@@ -101,7 +108,7 @@ function reasons_of(room: SeatRoom): Array<string> {
|
|
|
101
108
|
return reasons.filter((reason) => reason !== undefined)
|
|
102
109
|
}
|
|
103
110
|
|
|
104
|
-
const run_board_seat = { NO_CANDIDATE, read_of, reasons_of }
|
|
111
|
+
const run_board_seat = { NO_CANDIDATE, RESTART_PENDING, read_of, reasons_of }
|
|
105
112
|
|
|
106
113
|
export { run_board_seat }
|
|
107
114
|
export type { SeatRead, SeatRoom }
|
|
@@ -50,11 +50,13 @@ function has_launched(events: ReadonlyArray<RunEvent>): boolean {
|
|
|
50
50
|
return events.some((event) => event.kind === KIND.CHILD_LAUNCH)
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
//
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
// An idle decision ends preparation before the drain's maintenance finishes.
|
|
54
|
+
function is_idle_decision(event: RunEvent): boolean {
|
|
55
|
+
return event.kind === KIND.DRAIN || (is_setup(event) && event.text === STAGE.WATCHING)
|
|
56
|
+
}
|
|
57
|
+
|
|
56
58
|
function has_started(events: ReadonlyArray<RunEvent>): boolean {
|
|
57
|
-
return has_launched(events) || events.some((event) => event
|
|
59
|
+
return has_launched(events) || events.some((event) => is_idle_decision(event))
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
// A lane is opening while the stage naming its issue is newer than the run's newest position: the
|
|
@@ -6,7 +6,8 @@ import { stamped_memo } from '#scripts/lib/stamped-memo'
|
|
|
6
6
|
import { run_event_scope } from '#scripts/run/event/run-event-scope'
|
|
7
7
|
import { run_event_stream, type RunEvent } from '#scripts/run/event/run-event-stream'
|
|
8
8
|
import { run_hold, type HoldRead } from '#scripts/run/hold/run-hold'
|
|
9
|
-
import type
|
|
9
|
+
import { run_hold_ended, type EndedHold } from '#scripts/run/hold/run-hold-ended'
|
|
10
|
+
import { run_board_span, type BoardSpan } from './run-board-span'
|
|
10
11
|
|
|
11
12
|
// A single `fullrun #N` or `halfrun #N` has no carry record; the only record that says it is running
|
|
12
13
|
// here is this checkout's hold (`run-hold.ts`), so the board draws it from there — no store of its own
|
|
@@ -24,6 +25,15 @@ interface SingleRun {
|
|
|
24
25
|
issue: number
|
|
25
26
|
}
|
|
26
27
|
|
|
28
|
+
interface RootRun extends SingleRun {
|
|
29
|
+
events: ReadonlyArray<RunEvent>
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
interface EndedRoot extends SingleRun {
|
|
33
|
+
started_ms: number
|
|
34
|
+
ended_ms: number
|
|
35
|
+
}
|
|
36
|
+
|
|
27
37
|
// The checkout's own git directory, resolved once per working directory: resolving it runs a `git`
|
|
28
38
|
// subprocess the redraw would wait on, as `run-board-read.ts`'s main work tree does.
|
|
29
39
|
const directories = stamped_memo.create<Promise<string | undefined>>()
|
|
@@ -68,8 +78,8 @@ async function directory_here(): Promise<string | undefined> {
|
|
|
68
78
|
}
|
|
69
79
|
|
|
70
80
|
// The single run held in this checkout; `undefined` where none is. A lane's hold is its `backlogrun`
|
|
71
|
-
// child's, drawn as that run's row, so only outside a lane
|
|
72
|
-
// `fullrun` in
|
|
81
|
+
// child's, drawn as that run's row, so only outside a lane is a hold read beside the carry record — a
|
|
82
|
+
// `fullrun` in the root checkout beside a running `backlogrun`.
|
|
73
83
|
async function span_here(is_carried: boolean): Promise<BoardSpan | undefined> {
|
|
74
84
|
if (is_carried && lane_paths.lane_issue_of(process.cwd()) !== undefined) return undefined
|
|
75
85
|
|
|
@@ -80,6 +90,41 @@ async function span_here(is_carried: boolean): Promise<BoardSpan | undefined> {
|
|
|
80
90
|
return span_of(run_hold.read_hold(run_hold.hold_path(directory)))
|
|
81
91
|
}
|
|
82
92
|
|
|
93
|
+
// A run the root checkout's merge released, as `run-hold-ended.ts` kept it; `undefined` where its
|
|
94
|
+
// record names no issue or no moment.
|
|
95
|
+
function ended_of(ended: EndedHold): EndedRoot | undefined {
|
|
96
|
+
if (!issue_number_shape.is_issue_number(ended.issue)) return undefined
|
|
97
|
+
|
|
98
|
+
const started_ms = run_event_scope.moment_of(ended.taken_at)
|
|
99
|
+
const ended_ms = run_event_scope.moment_of(ended.ended_at)
|
|
100
|
+
|
|
101
|
+
if (started_ms === undefined || ended_ms === undefined) return undefined
|
|
102
|
+
|
|
103
|
+
const command = ended.is_fullrun === true ? FULLRUN : HALFRUN
|
|
104
|
+
|
|
105
|
+
return { command, issue: Number(ended.issue), started_ms, ended_ms }
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function is_inside(run: EndedRoot, span: BoardSpan): boolean {
|
|
109
|
+
return run.ended_ms >= span.started_ms && run.ended_ms <= (span.ended_ms ?? Infinity)
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// The released runs that ended inside `span`, which the board lists in `✅ done` (joshuafolkken/kit#7525).
|
|
113
|
+
function ended_in(records: ReadonlyArray<EndedHold>, span: BoardSpan): Array<EndedRoot> {
|
|
114
|
+
return records
|
|
115
|
+
.map((record) => ended_of(record))
|
|
116
|
+
.filter((run): run is EndedRoot => run !== undefined && is_inside(run, span))
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// This checkout's released single runs inside `span`; none in a lane, where no merge records one.
|
|
120
|
+
async function ended_here(span: BoardSpan): Promise<Array<EndedRoot>> {
|
|
121
|
+
const directory = await directory_here()
|
|
122
|
+
|
|
123
|
+
if (directory === undefined) return []
|
|
124
|
+
|
|
125
|
+
return ended_in(run_hold_ended.read_ended(run_hold_ended.ended_path(directory)), span)
|
|
126
|
+
}
|
|
127
|
+
|
|
83
128
|
// The command and issue of a single run's invocation; `undefined` for any other run's.
|
|
84
129
|
function single_of(invocation: string): SingleRun | undefined {
|
|
85
130
|
const { command, issue } = SINGLE_INVOCATION.exec(invocation)?.groups ?? {}
|
|
@@ -118,6 +163,26 @@ function name_of(invocation: string): string | undefined {
|
|
|
118
163
|
return single_of(invocation)?.command
|
|
119
164
|
}
|
|
120
165
|
|
|
121
|
-
|
|
166
|
+
// The root checkout's single run beside a carried run, with its own span's events its row's phase is
|
|
167
|
+
// read from (joshuafolkken/kit#7524).
|
|
168
|
+
function root_of(span: BoardSpan, events: ReadonlyArray<RunEvent>): RootRun | undefined {
|
|
169
|
+
const single = single_of(span.invocation)
|
|
170
|
+
|
|
171
|
+
if (single === undefined) return undefined
|
|
172
|
+
|
|
173
|
+
return { ...single, events: events_of(span, run_board_span.events_of(events, span)) }
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
const run_board_single = {
|
|
177
|
+
ended_here,
|
|
178
|
+
ended_in,
|
|
179
|
+
events_of,
|
|
180
|
+
name_of,
|
|
181
|
+
root_of,
|
|
182
|
+
scope_of,
|
|
183
|
+
span_here,
|
|
184
|
+
span_of,
|
|
185
|
+
}
|
|
122
186
|
|
|
123
187
|
export { run_board_single }
|
|
188
|
+
export type { EndedRoot, RootRun }
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { backlogrun_launch } from '#scripts/backlog/backlogrun-launch'
|
|
2
|
+
import type { TableRead } from '#scripts/lane/lane-process-table'
|
|
3
|
+
import { run_carry, type CarryRead, type RunCarry } from '#scripts/run/carry/run-carry'
|
|
4
|
+
import { run_carry_ended } from '#scripts/run/carry/run-carry-ended'
|
|
5
|
+
import { run_stranded_detect } from '#scripts/run/run-stranded-detect'
|
|
6
|
+
import type { ProcessRoots } from './run-board-process-groups'
|
|
7
|
+
import { run_board_roots } from './run-board-roots'
|
|
8
|
+
import { run_board_single } from './run-board-single'
|
|
9
|
+
import { run_board_span, type BoardSpan } from './run-board-span'
|
|
10
|
+
|
|
11
|
+
// What `run:board` reads of the run drawn here: its span, the session it resumes from and the
|
|
12
|
+
// processes its record names.
|
|
13
|
+
interface SpanHere {
|
|
14
|
+
span: BoardSpan | undefined
|
|
15
|
+
resume: string | undefined
|
|
16
|
+
// The parent session's transcript, where the run's record names one.
|
|
17
|
+
transcript: string | undefined
|
|
18
|
+
roots: ProcessRoots
|
|
19
|
+
carry: RunCarry | undefined
|
|
20
|
+
is_stranded: boolean
|
|
21
|
+
is_session_active: boolean
|
|
22
|
+
// The root checkout's single run beside the carried one.
|
|
23
|
+
root?: BoardSpan | undefined
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const NO_SPAN: SpanHere = {
|
|
27
|
+
span: undefined,
|
|
28
|
+
resume: undefined,
|
|
29
|
+
transcript: undefined,
|
|
30
|
+
roots: {},
|
|
31
|
+
carry: undefined,
|
|
32
|
+
is_stranded: false,
|
|
33
|
+
is_session_active: false,
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Every process the run's record names is asked of `table`, the redraw's own `ps` snapshot — only once
|
|
37
|
+
// a run is found, so a repository with no run waits on no `ps`.
|
|
38
|
+
async function recorded_span_here(
|
|
39
|
+
repository: string,
|
|
40
|
+
table: TableRead | undefined,
|
|
41
|
+
read: CarryRead,
|
|
42
|
+
): Promise<SpanHere> {
|
|
43
|
+
const ended = run_carry_ended.read_ended(run_carry_ended.ended_path(repository))
|
|
44
|
+
const launch = backlogrun_launch.pending_launch(repository)
|
|
45
|
+
const span = run_board_span.span_of(read, ended, launch)
|
|
46
|
+
|
|
47
|
+
if (span === undefined) return NO_SPAN
|
|
48
|
+
|
|
49
|
+
const same_process = await run_board_roots.same_in(table)
|
|
50
|
+
const stranded_ports = run_stranded_detect.ports_with(same_process)
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
span,
|
|
54
|
+
resume: run_board_span.resume_of(read, ended, launch),
|
|
55
|
+
transcript: read.kind === 'carried' ? read.carry.owner_transcript : undefined,
|
|
56
|
+
roots: run_board_roots.roots_of(repository, read, same_process),
|
|
57
|
+
is_session_active: run_board_roots.session_is_active(repository, read, same_process),
|
|
58
|
+
carry: read.kind === 'carried' ? read.carry : undefined,
|
|
59
|
+
is_stranded: run_stranded_detect.is_stranded_at(repository, stranded_ports),
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// A single run this checkout holds is the one drawn (`run-board-single.ts`) before the ended run; it
|
|
64
|
+
// names no process. Beside a carried run it is the root checkout's, drawn as a row above the carried
|
|
65
|
+
// run's lanes, which stays the frame (joshuafolkken/kit#7524). No repository, no run.
|
|
66
|
+
async function span_here(
|
|
67
|
+
repository: string | undefined,
|
|
68
|
+
table: TableRead | undefined,
|
|
69
|
+
): Promise<SpanHere> {
|
|
70
|
+
if (repository === undefined) return NO_SPAN
|
|
71
|
+
const read = run_carry.read_carry(run_carry.carry_path(repository))
|
|
72
|
+
const is_carried = read.kind !== 'none'
|
|
73
|
+
const single = await run_board_single.span_here(is_carried)
|
|
74
|
+
|
|
75
|
+
if (single === undefined) return await recorded_span_here(repository, table, read)
|
|
76
|
+
const recorded = is_carried ? await recorded_span_here(repository, table, read) : NO_SPAN
|
|
77
|
+
|
|
78
|
+
// A carried record that reads no span leaves the single run the one drawn.
|
|
79
|
+
return recorded.span === undefined ? { ...NO_SPAN, span: single } : { ...recorded, root: single }
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const run_board_span_read = { span_here }
|
|
83
|
+
|
|
84
|
+
export { run_board_span_read }
|
|
85
|
+
export type { SpanHere }
|
|
@@ -13,6 +13,7 @@ import type { LocalRead } from './run-board-read'
|
|
|
13
13
|
import { run_board_reason, type ReasonRead } from './run-board-reason'
|
|
14
14
|
import { run_board_released } from './run-board-released'
|
|
15
15
|
import { run_board_render } from './run-board-render'
|
|
16
|
+
import { run_board_root_layout } from './run-board-root-layout'
|
|
16
17
|
import { run_board_seat, type SeatRead } from './run-board-seat'
|
|
17
18
|
import { run_board_setup } from './run-board-setup'
|
|
18
19
|
import type { Known } from './run-board-snapshot'
|
|
@@ -321,13 +322,20 @@ function draw(ports: BoardPorts, lines: ReadonlyArray<string>): void {
|
|
|
321
322
|
}
|
|
322
323
|
|
|
323
324
|
// The first total the plan gives is the baseline every later arrival is counted against; the run's own
|
|
324
|
-
// children before it are no total.
|
|
325
|
+
// children before it are no total. The root checkout's single runs are laid over the run's.
|
|
325
326
|
function draw_run(state: BoardState, local: LocalRead, redraw: Redraw): BoardState {
|
|
326
|
-
const
|
|
327
|
+
const read = closed_under(known_of(state), state.closed)
|
|
328
|
+
const run_layout = layout_for(state, local, redraw.now_ms)
|
|
329
|
+
const layout = run_board_root_layout.layout_of(run_layout, local, read)
|
|
327
330
|
const first_total =
|
|
328
|
-
state.plan === undefined ? undefined : run_board_header.counts_of(
|
|
331
|
+
state.plan === undefined ? undefined : run_board_header.counts_of(run_layout).total
|
|
329
332
|
const settled = { ...state, baseline_total: state.baseline_total ?? first_total }
|
|
330
|
-
const
|
|
333
|
+
const baseline_total = run_board_root_layout.baseline_of(
|
|
334
|
+
settled.baseline_total,
|
|
335
|
+
run_layout,
|
|
336
|
+
layout,
|
|
337
|
+
)
|
|
338
|
+
const { lines, spots } = frame_of({ ...settled, baseline_total }, local, layout, redraw)
|
|
331
339
|
|
|
332
340
|
draw(redraw.ports, lines)
|
|
333
341
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { stamp_file } from '#scripts/josh/stamp-file'
|
|
2
|
-
import { run_carry, type CarryOwner } from './run-carry'
|
|
2
|
+
import { run_carry, type CarryOwner, type RunCarry } from './run-carry'
|
|
3
3
|
import { run_carry_conversation } from './run-carry-conversation'
|
|
4
4
|
|
|
5
5
|
// **A resumed conversation has to take its record back before it falls quiet**.
|
|
@@ -12,12 +12,22 @@ import { run_carry_conversation } from './run-carry-conversation'
|
|
|
12
12
|
|
|
13
13
|
// Writes the record back under the caller's process when the caller is the record's own conversation
|
|
14
14
|
// in a new one; answers whether it did.
|
|
15
|
+
function reclaimed_owner(carry: RunCarry, owner: CarryOwner): RunCarry {
|
|
16
|
+
if (owner.session === undefined || owner.session !== carry.owner_session) {
|
|
17
|
+
return run_carry_conversation.reclaim_owner(carry, owner)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (owner.pid === undefined || carry.is_handed_off === true) return carry
|
|
21
|
+
|
|
22
|
+
return { ...carry, owner_pid: owner.pid, owner_start: owner.start }
|
|
23
|
+
}
|
|
24
|
+
|
|
15
25
|
function reclaim_at(target: string, owner: CarryOwner): boolean {
|
|
16
26
|
const read = run_carry.read_carry(target)
|
|
17
27
|
|
|
18
28
|
if (read.kind !== 'carried') return false
|
|
19
29
|
|
|
20
|
-
const reclaimed =
|
|
30
|
+
const reclaimed = reclaimed_owner(read.carry, owner)
|
|
21
31
|
|
|
22
32
|
if (reclaimed === read.carry) return false
|
|
23
33
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// A launch identity survives Codex's shell environment filtering without guessing its session PID.
|
|
2
|
+
import { lane_child_marker } from '#scripts/lane/lane-child-marker'
|
|
3
|
+
import { run_headless_keys } from '#scripts/run/run-headless-keys'
|
|
4
|
+
import type { CarryOwner, RunCarry } from './run-carry'
|
|
5
|
+
import { run_carry_conversation } from './run-carry-conversation'
|
|
6
|
+
|
|
7
|
+
const KEY = 'JOSH_CARRY_SESSION'
|
|
8
|
+
|
|
9
|
+
function own(): string | undefined {
|
|
10
|
+
if (
|
|
11
|
+
lane_child_marker.marked_issue(process.env) !== undefined ||
|
|
12
|
+
process.env[run_headless_keys.BESIDE_CHILD_KEY] === '1' ||
|
|
13
|
+
process.env[run_headless_keys.HANDOFF_CHILD_KEY] === '1'
|
|
14
|
+
) {
|
|
15
|
+
return undefined
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return process.env[KEY]
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function is_owned_by(carry: RunCarry, owner: CarryOwner): boolean {
|
|
22
|
+
if (carry.owner_session !== undefined) return carry.owner_session === owner.session
|
|
23
|
+
if (run_carry_conversation.is_same_conversation(carry, owner)) return true
|
|
24
|
+
|
|
25
|
+
return carry.owner_pid === owner.pid && carry.owner_start === owner.start
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function retain_execution(carry: RunCarry, owner: CarryOwner): CarryOwner {
|
|
29
|
+
if (
|
|
30
|
+
owner.session === undefined ||
|
|
31
|
+
owner.session !== carry.owner_session ||
|
|
32
|
+
owner.pid !== undefined
|
|
33
|
+
) {
|
|
34
|
+
return owner
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return {
|
|
38
|
+
...owner,
|
|
39
|
+
pid: carry.owner_pid,
|
|
40
|
+
start: carry.owner_start,
|
|
41
|
+
provider: carry.scheduler_provider,
|
|
42
|
+
is_headless: carry.is_owner_headless,
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const run_carry_session = { KEY, own, is_owned_by, retain_execution }
|
|
47
|
+
|
|
48
|
+
export { run_carry_session }
|
|
@@ -10,6 +10,7 @@ import { z } from 'zod'
|
|
|
10
10
|
import { run_carry_added, type CarryAddition } from './run-carry-added'
|
|
11
11
|
import { run_carry_change } from './run-carry-change'
|
|
12
12
|
import { run_carry_conversation } from './run-carry-conversation'
|
|
13
|
+
import { run_carry_session } from './run-carry-session'
|
|
13
14
|
|
|
14
15
|
// A `backlogrun` declares a budget — `--max` and `--idle` — and the session
|
|
15
16
|
// cut ends the session, so the next one would start from nothing. **The cut is an execution detail of
|
|
@@ -99,6 +100,7 @@ interface RunCarry {
|
|
|
99
100
|
// `undefined`, so absent and explicitly-undefined are the *same* record on disk — a type that told
|
|
100
101
|
// them apart would be asserting a distinction nothing here can observe.
|
|
101
102
|
owner_pid?: number | undefined
|
|
103
|
+
owner_session?: string | undefined
|
|
102
104
|
owner_start?: string | undefined
|
|
103
105
|
// The owner conversation's transcript, which outlives a restart of its process
|
|
104
106
|
// (`run-carry-conversation.ts`). Optional for the same reason as the pid.
|
|
@@ -142,6 +144,7 @@ interface RunCarry {
|
|
|
142
144
|
// token, so a reissued pid is never mistaken for the process that wrote the record — and the
|
|
143
145
|
// transcript of the conversation that process runs, which outlives it (`run-carry-conversation.ts`).
|
|
144
146
|
interface CarryOwner {
|
|
147
|
+
session?: string | undefined
|
|
145
148
|
provider?: AgentProvider | undefined
|
|
146
149
|
pid?: number | undefined
|
|
147
150
|
start?: string | undefined
|
|
@@ -207,6 +210,7 @@ const run_carry_schema = z.object({
|
|
|
207
210
|
// An absent owner reads as "no owner declared", which is the not-provably-live answer rather than a
|
|
208
211
|
// live one.
|
|
209
212
|
owner_pid: z.number().optional(),
|
|
213
|
+
owner_session: z.string().optional(),
|
|
210
214
|
owner_start: z.string().optional(),
|
|
211
215
|
owner_transcript: z.string().optional(),
|
|
212
216
|
is_owner_headless: z.boolean().optional(),
|
|
@@ -269,8 +273,10 @@ function owner_of(
|
|
|
269
273
|
// none exported, no owner is declared.
|
|
270
274
|
function session_owner(): CarryOwner {
|
|
271
275
|
const pid = agent_session_environment.own_session_pid()
|
|
276
|
+
const owner = pid === undefined ? NO_OWNER : owner_of(pid)
|
|
277
|
+
const session = run_carry_session.own()
|
|
272
278
|
|
|
273
|
-
return
|
|
279
|
+
return session === undefined ? owner : { ...owner, session }
|
|
274
280
|
}
|
|
275
281
|
|
|
276
282
|
function fresh_carry(invocation: string, owner: CarryOwner, now: Date): RunCarry {
|
|
@@ -284,6 +290,7 @@ function fresh_carry(invocation: string, owner: CarryOwner, now: Date): RunCarry
|
|
|
284
290
|
failures: NO_INCREMENT,
|
|
285
291
|
outages: NO_INCREMENT,
|
|
286
292
|
owner_pid: owner.pid,
|
|
293
|
+
owner_session: owner.session,
|
|
287
294
|
owner_start: owner.start,
|
|
288
295
|
owner_transcript: owner.transcript,
|
|
289
296
|
is_owner_headless: owner.is_headless,
|
|
@@ -318,17 +325,19 @@ function adopt_carry(
|
|
|
318
325
|
carry: RunCarry,
|
|
319
326
|
owner: CarryOwner = NO_OWNER,
|
|
320
327
|
): RunCarry | undefined {
|
|
328
|
+
const next_owner = run_carry_session.retain_execution(carry, owner)
|
|
321
329
|
// The run's own fields carry across untouched — the counters, the outage fold timestamp, `done` so the successor does not re-run what the cut session finished,
|
|
322
330
|
// and `retrospective` so a run resumed after a cut does not repeat its retrospective. Only the
|
|
323
331
|
// ownership fields are overridden: the new owner replaces the old — a caller that declared none
|
|
324
332
|
// writes `undefined`, so the previous owner cannot survive — and the declared hand-off is spent.
|
|
325
333
|
const next: RunCarry = {
|
|
326
334
|
...carry,
|
|
327
|
-
scheduler_provider:
|
|
328
|
-
owner_pid:
|
|
329
|
-
|
|
335
|
+
scheduler_provider: next_owner.provider,
|
|
336
|
+
owner_pid: next_owner.pid,
|
|
337
|
+
owner_session: owner.session,
|
|
338
|
+
owner_start: next_owner.start,
|
|
330
339
|
owner_transcript: owner.transcript,
|
|
331
|
-
is_owner_headless:
|
|
340
|
+
is_owner_headless: next_owner.is_headless,
|
|
332
341
|
is_handed_off: false,
|
|
333
342
|
}
|
|
334
343
|
|
|
@@ -352,11 +361,7 @@ function is_owner_live(
|
|
|
352
361
|
return carry.is_owner_headless !== true && run_carry_conversation.is_conversation_live(carry, now)
|
|
353
362
|
}
|
|
354
363
|
|
|
355
|
-
|
|
356
|
-
if (run_carry_conversation.is_same_conversation(carry, owner)) return true
|
|
357
|
-
|
|
358
|
-
return carry.owner_pid === owner.pid && carry.owner_start === owner.start
|
|
359
|
-
}
|
|
364
|
+
const { is_owned_by } = run_carry_session
|
|
360
365
|
|
|
361
366
|
// The one case that is not this caller's to touch: the record's owner is still running and it is
|
|
362
367
|
// somebody else. **The invocation text is not consulted** — a live owner holds the budget whatever
|
|
@@ -370,14 +375,15 @@ function is_foreign_live_owner(carry: RunCarry, owner: CarryOwner): boolean {
|
|
|
370
375
|
// conversation match would read that live session's record as the supervisor's own. The driver adopts
|
|
371
376
|
// the record for the supervisor's process (`run-wake-driver.ts` → `claim_record`), so without this a
|
|
372
377
|
// supervisor reads itself as a session at work.
|
|
378
|
+
function is_held_by_self(carry: RunCarry, caller: CarryOwner = owner_of(process.pid)): boolean {
|
|
379
|
+
return carry.owner_pid === caller.pid && carry.owner_start === caller.start
|
|
380
|
+
}
|
|
381
|
+
|
|
373
382
|
function is_held_by_another(
|
|
374
383
|
carry: RunCarry,
|
|
375
384
|
is_live: (carry: RunCarry) => boolean = is_owner_live,
|
|
376
385
|
): boolean {
|
|
377
|
-
|
|
378
|
-
const is_own = carry.owner_pid === caller.pid && carry.owner_start === caller.start
|
|
379
|
-
|
|
380
|
-
return !is_own && is_live(carry)
|
|
386
|
+
return !is_held_by_self(carry) && is_live(carry)
|
|
381
387
|
}
|
|
382
388
|
|
|
383
389
|
function is_handed_off_to(carry: RunCarry, invocation: string): boolean {
|
|
@@ -552,6 +558,7 @@ const run_carry = {
|
|
|
552
558
|
is_count_refused,
|
|
553
559
|
is_foreign_live_owner,
|
|
554
560
|
is_held_by_another,
|
|
561
|
+
is_held_by_self,
|
|
555
562
|
is_owner_live,
|
|
556
563
|
lost_message,
|
|
557
564
|
nothing_to_resume_message,
|
|
@@ -3,6 +3,7 @@ import { cost_verdict } from '#scripts/cost-runtime/cost-verdict'
|
|
|
3
3
|
import { issue_cite } from '#scripts/issue/issue-cite'
|
|
4
4
|
import { run_event_stream } from '#scripts/run/event/run-event-stream'
|
|
5
5
|
import { run_event_stream_emit } from '#scripts/run/event/run-event-stream-emit'
|
|
6
|
+
import { run_repair_attempt } from '#scripts/run/run-repair-attempt'
|
|
6
7
|
import { run_cut, type RunCut } from './run-cut'
|
|
7
8
|
import { run_cut_report } from './run-cut-report'
|
|
8
9
|
import { run_cut_review } from './run-cut-review'
|
|
@@ -110,6 +111,19 @@ async function verify_and_adopt(
|
|
|
110
111
|
return await adopt(target, cut_record)
|
|
111
112
|
}
|
|
112
113
|
|
|
114
|
+
async function resume_carried(
|
|
115
|
+
target: string,
|
|
116
|
+
cut: RunCut,
|
|
117
|
+
issue: string,
|
|
118
|
+
is_expired: boolean,
|
|
119
|
+
): Promise<number> {
|
|
120
|
+
if (await run_repair_attempt.prepare(issue, target)) {
|
|
121
|
+
return report(FRESH_VERDICT, SUCCESS_EXIT_CODE)
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return is_expired ? report_stale(cut) : await verify_and_adopt(target, cut, issue)
|
|
125
|
+
}
|
|
126
|
+
|
|
113
127
|
async function resume(target: string, issue: string): Promise<number> {
|
|
114
128
|
const read = run_cut.read_cut(target)
|
|
115
129
|
|
|
@@ -117,9 +131,7 @@ async function resume(target: string, issue: string): Promise<number> {
|
|
|
117
131
|
|
|
118
132
|
if (read.kind === 'unreadable') return report_unreadable()
|
|
119
133
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
return await verify_and_adopt(target, read.cut, issue)
|
|
134
|
+
return await resume_carried(target, read.cut, issue, read.kind === 'expired')
|
|
123
135
|
}
|
|
124
136
|
|
|
125
137
|
const run_cut_resume = {
|
|
@@ -450,7 +450,7 @@ function busy_message(cut: RunCut): string {
|
|
|
450
450
|
// A successor already resumed this cut, so a process that reaches `--resume` after its own hand-off is
|
|
451
451
|
// told to stop quietly rather than to investigate a tree that is not wrong.
|
|
452
452
|
function handed_off_message(cut: RunCut): string {
|
|
453
|
-
return `This cut was already
|
|
453
|
+
return `This cut was already adopted — ${describe_cut(cut)}. Nothing was resumed here; the record alone does not establish whether its owner is still running. After a trusted repair request on an open PR and confirmed owner exit, use \`pnpm josh run:add ${cut.issue} --retry\` in a live backlogrun, or \`pnpm josh run:entry ${cut.issue}\` in its lane. Active or unreadable owners remain protected.`
|
|
454
454
|
}
|
|
455
455
|
|
|
456
456
|
// The record does not match the tree the fresh process is in — wrong branch, a clean tree, an expired
|