stim 1.20.0 → 1.20.2

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.
Files changed (158) hide show
  1. package/README.md +6 -3
  2. package/dist/{activity-BrGh9EAI.mjs → activity-BSV745Kz.mjs} +4 -4
  3. package/dist/{agent-device-usage-output-DVyv_hWj.mjs → agent-device-usage-output-Dzgv6lgR.mjs} +5 -6
  4. package/dist/{android-Brx6EKvJ.mjs → android-DCKZrNvV.mjs} +37 -38
  5. package/dist/{android-0vv-OruW.mjs → android-Dlzxshgp.mjs} +5 -5
  6. package/dist/{android-CK3fpEyZ.mjs → android-HqP1_vB_.mjs} +3 -3
  7. package/dist/{android-BsYNR81W.mjs → android-Mz_Inn3w.mjs} +12 -12
  8. package/dist/{android-cas-DCAuXryb.mjs → android-cas-Bl-cLJBk.mjs} +4 -4
  9. package/dist/android-cas-compiler.mjs +1 -1
  10. package/dist/{api-zuX3ynYN.mjs → api-qvOzWyfO.mjs} +1 -1
  11. package/dist/api-run.mjs +19 -21
  12. package/dist/api.mjs +1 -1
  13. package/dist/{app-install-0LgaQRT7.mjs → app-install-BIKtMfPq.mjs} +71 -48
  14. package/dist/{artifact-DClXJNWx.mjs → artifact-D3czlUvT.mjs} +13 -13
  15. package/dist/{artifact-CnC0mfov.mjs → artifact-HSwkIWEQ.mjs} +12 -12
  16. package/dist/{browser-web-CzBmhmgs.mjs → browser-web-CA-F1GQo.mjs} +18 -18
  17. package/dist/{budget-BONq9vXY.mjs → budget-f7516Zk0.mjs} +23 -26
  18. package/dist/{build-BixRI6sB.mjs → build-DYDbfkk5.mjs} +28 -33
  19. package/dist/{build-plan-CP0tckNU.mjs → build-plan-B7SZsc2N.mjs} +17 -17
  20. package/dist/{cache-manifest-qA3dT2x2.mjs → cache-manifest-XH-fvDUj.mjs} +10 -5
  21. package/dist/cache-manifest.mjs +1 -1
  22. package/dist/cancellation-C_22VQTH.mjs +24 -0
  23. package/dist/{ccache-CjHQ5F8g.mjs → ccache-zdKiYQ3E.mjs} +7 -7
  24. package/dist/{chrome-Dp2lMLBe.mjs → chrome-BnzZMqsR.mjs} +1 -1
  25. package/dist/{cli-B2R8wH1F.mjs → cli-CLP3diBm.mjs} +20 -20
  26. package/dist/cli.mjs +1 -1
  27. package/dist/{client-BLy1Pw2V.mjs → client-qQAaXSUs.mjs} +21 -29
  28. package/dist/collector-run.d.mts +7 -6
  29. package/dist/collector-run.mjs +6 -7
  30. package/dist/{command-output-BjPN99ZB.mjs → command-output-BTy8hZ0F.mjs} +1 -1
  31. package/dist/{config-D0LhTY3S.mjs → config-BYDxlMY3.mjs} +43 -5
  32. package/dist/{created-devices-HU_DAb_Q.mjs → created-devices-Dzd5C2LF.mjs} +2 -2
  33. package/dist/{dependency-state-B2m8eqsS.mjs → dependency-state-DG0p31-y.mjs} +2 -2
  34. package/dist/{detached-entry-BXq4fIl-.mjs → detached-entry-B9C_zeQC.mjs} +1 -1
  35. package/dist/{dev-client-ClATaJoH.mjs → dev-client-DAWVIGBu.mjs} +2 -2
  36. package/dist/{device-DVCwAFlX.mjs → device-BECOiufl.mjs} +13 -14
  37. package/dist/{device-B7lsC0K1.mjs → device-DuiPJQSn.mjs} +8 -8
  38. package/dist/{device-capacity-Ca_ke1LE.mjs → device-capacity-CBUAcRyQ.mjs} +10 -11
  39. package/dist/device-host-worker.mjs +16 -17
  40. package/dist/{device-ios-CRUqPxKw.mjs → device-ios-COSi6oS1.mjs} +12 -15
  41. package/dist/{device-lease-DHOBXGgS.mjs → device-lease-BX1sJQ2E.mjs} +15 -18
  42. package/dist/{device-lease-run-CvDeHTkG.mjs → device-lease-run-Cw2M4z51.mjs} +4 -4
  43. package/dist/{device-pool-L2-5GxMy.mjs → device-pool-Bf-pOhSw.mjs} +3 -3
  44. package/dist/{device-remote-Bmg42063.mjs → device-remote-xRT0Vmo9.mjs} +14 -14
  45. package/dist/{doctor-C2MSuMMg.mjs → doctor-CB8oZKCk.mjs} +13 -13
  46. package/dist/{doctor-DPAqhVCK.mjs → doctor-kfMBnUw6.mjs} +78 -69
  47. package/dist/{doctor-watchman-CB4NnVZm.mjs → doctor-watchman-BRyV2adA.mjs} +9 -10
  48. package/dist/{eas-build-Dw_ec2Km.mjs → eas-build-JyfqyHfC.mjs} +5 -5
  49. package/dist/{eas-session-ledger-DZlC-Fq3.mjs → eas-session-ledger-Cm0Gwq2F.mjs} +6 -4
  50. package/dist/{error-diagnostics-Du7I_GuY.mjs → error-diagnostics-BR677IDM.mjs} +10 -10
  51. package/dist/{exec-B81Qodjn.mjs → exec-DqKo9GKJ.mjs} +22 -8
  52. package/dist/{gc-PWp34zGb.mjs → gc-qWOMdnER.mjs} +75 -24
  53. package/dist/git-DDfFzkMm.mjs +45 -0
  54. package/dist/{gradle-C2OEKCCI.mjs → gradle-DSrXb6lG.mjs} +6 -6
  55. package/dist/{guide-Dai9lphv.mjs → guide-G9cAbVAc.mjs} +81 -178
  56. package/dist/{hosted-android-DQ-Agsd8.mjs → hosted-android-C3MHGld1.mjs} +3 -3
  57. package/dist/{hosted-client-Io01s5By.mjs → hosted-client-ZEKpS9vw.mjs} +19 -11
  58. package/dist/{hosted-ios-DIxFnYp-.mjs → hosted-ios-l-o3iM9J.mjs} +1 -1
  59. package/dist/{hosted-logs-DP-ABU_M.mjs → hosted-logs-EzQM7-3Z.mjs} +7 -7
  60. package/dist/{hosted-macos-Aziw9T_9.mjs → hosted-macos-BACVAVqE.mjs} +10 -8
  61. package/dist/{hosted-native-BdAQi21M.mjs → hosted-native-A4s1QPXe.mjs} +13 -11
  62. package/dist/{idle-shutdown-DdMqoSUB.mjs → idle-shutdown-DtxhPTKe.mjs} +7 -7
  63. package/dist/{ios-BZ9dg2Fr.mjs → ios-BwVCF7oA.mjs} +8 -8
  64. package/dist/{ios-CZuv6gRv.mjs → ios-Ce7bc7br.mjs} +29 -29
  65. package/dist/{ios-CXLIUxXJ.mjs → ios-RkW4pnQf.mjs} +21 -17
  66. package/dist/{ios-device-B1B14xND.mjs → ios-device-B5veSDDQ.mjs} +1 -1
  67. package/dist/{ios-device-BreZOpM0.mjs → ios-device-D7pi2Sca.mjs} +14 -14
  68. package/dist/{ios-VGvNdsv2.mjs → ios-nOLJGVdy.mjs} +1 -1
  69. package/dist/{ios-project-B9drt_aY.mjs → ios-project-K9hY_Jab.mjs} +8 -8
  70. package/dist/{ios-state-CjrL2qv-.mjs → ios-state-CBLe1xYw.mjs} +1 -1
  71. package/dist/{js-swap-C8icNYIY.mjs → js-swap-Bb3nsS07.mjs} +13 -13
  72. package/dist/{launch-YrbqaIFj.mjs → launch-C3qJ6Agb.mjs} +46 -45
  73. package/dist/{launch-DxH0THLP.mjs → launch-F4sOqAhB.mjs} +21 -21
  74. package/dist/{launch-verify-BzRdbuO1.mjs → launch-verify-B6Q8hZP-.mjs} +11 -11
  75. package/dist/{logs-DHaRNfg7.mjs → logs-BGrEUaEs.mjs} +10 -11
  76. package/dist/{macos-V_3Ui7g4.mjs → macos-Ch5VJmcS.mjs} +40 -24
  77. package/dist/macos-D7uDvO-z.mjs +2 -0
  78. package/dist/macos-run.mjs +1 -1
  79. package/dist/maintenance-run.mjs +7 -7
  80. package/dist/{metro-D_j9sN-B.mjs → metro-DnCEjCxs.mjs} +8 -9
  81. package/dist/{metro-gateway-BBJldOdi.mjs → metro-gateway-CX9Xlkq2.mjs} +3 -3
  82. package/dist/{miss-reason-BPAzZS0r.mjs → miss-reason-mKzZ4VvN.mjs} +3 -3
  83. package/dist/{named-ports-C2lvoPsb.mjs → named-ports-4WopRPg-.mjs} +4 -5
  84. package/dist/{native-android-lHzaew7r.mjs → native-android-D5qc3-_v.mjs} +10 -10
  85. package/dist/{native-gradle-inputs-BQnIdAlL.mjs → native-gradle-inputs-BsLRrl7u.mjs} +3 -10
  86. package/dist/{native-runtime-BRmWL7ru.mjs → native-runtime-k8dTIrbK.mjs} +7 -8
  87. package/dist/{native-xcode-inputs-eutS19jU.mjs → native-xcode-inputs-CykopJdM.mjs} +7 -9
  88. package/dist/{native-xcode-ios-DP3cHLwu.mjs → native-xcode-ios-Bbf30Gm0.mjs} +15 -15
  89. package/dist/offload-worker.mjs +34 -38
  90. package/dist/{ownership-DXzMMSx6.mjs → ownership-DCtw_2IA.mjs} +3 -3
  91. package/dist/{page-Bv9s2KwY.mjs → page-DRHy329N.mjs} +1 -1
  92. package/dist/{placement-log-reFbjqEr.mjs → placement-log-MOfPVgaM.mjs} +1 -1
  93. package/dist/{plan-BDk2AeY_.mjs → plan-C4TjdPsR.mjs} +10 -10
  94. package/dist/{plan-placement-D_YYlE6N.mjs → plan-placement-V0TdzYXp.mjs} +3 -3
  95. package/dist/{ports-jzvAJXXL.mjs → ports-DdSUicVo.mjs} +3 -3
  96. package/dist/{prebuild-Bw44QxVh.mjs → prebuild-DYbucPXy.mjs} +7 -8
  97. package/dist/{preview-BaBJ72Al.mjs → preview-78a9kR_-.mjs} +31 -24
  98. package/dist/{project-B8_duAzW.mjs → project-_phNIJfs.mjs} +110 -47
  99. package/dist/{pull-request-vOhLNmIb.mjs → pull-request-CQ8sPbZa.mjs} +5 -18
  100. package/dist/pull-requests.mjs +1 -1
  101. package/dist/{react-native-android-chm1DMlA.mjs → react-native-android-CM1XRDwv.mjs} +34 -30
  102. package/dist/{react-native-build-oAw6gQeW.mjs → react-native-build-CtCccJtb.mjs} +6 -6
  103. package/dist/{react-native-doctor-DYXoh-6I.mjs → react-native-doctor-CfRnFfjs.mjs} +5 -5
  104. package/dist/{react-native-ios-SCTK_CT5.mjs → react-native-ios-Dhq_eiYQ.mjs} +14 -14
  105. package/dist/{recordings-Bk-VivUV.mjs → recordings-D0d5aQt0.mjs} +1 -1
  106. package/dist/{reload-D34GkY78.mjs → reload-C8JhxjSh.mjs} +17 -17
  107. package/dist/{remote-BU9UyhCJ.mjs → remote-BiR6aYjy.mjs} +7 -7
  108. package/dist/{remote-cache-Bsts6f6Y.mjs → remote-cache-OyOyVIS3.mjs} +4 -4
  109. package/dist/{result-BDoRk1k3.mjs → result-CaJg5Iat.mjs} +8 -8
  110. package/dist/{run-qvff78hv.mjs → run-BtPgpKks.mjs} +3 -3
  111. package/dist/{server-bare-dWjAarki.mjs → server-bare-R2m_gsH8.mjs} +3 -3
  112. package/dist/{server-command-7XIKlWtO.mjs → server-command-CTtCkmcQ.mjs} +5 -5
  113. package/dist/server-expo-Bigriskl.mjs +2 -0
  114. package/dist/{server-expo-CsYu2aKL.mjs → server-expo-DsguMGUF.mjs} +5 -10
  115. package/dist/{settings-Bbztm4oV.mjs → settings-B717odTD.mjs} +74 -115
  116. package/dist/{settings-CT3E71-i.mjs → settings-BORNaaCO.mjs} +5 -5
  117. package/dist/settings.schema.json +1 -1
  118. package/dist/{simslim-ChMfe8rg.mjs → simslim-CCr3rE-A.mjs} +2 -3
  119. package/dist/{slot-launch-B9hn96wd.mjs → slot-launch-DPt0m9Nd.mjs} +6 -6
  120. package/dist/{spawn-claims-Kqiifsk2.mjs → spawn-claims-DVS5RkMS.mjs} +1 -1
  121. package/dist/{stage-BNKKdDNc.mjs → stage-KNTQopqv.mjs} +9 -9
  122. package/dist/{start-CdvcTaXr.mjs → start-BWqzODpb.mjs} +19 -20
  123. package/dist/{start-CbQCSnXQ.mjs → start-TXeMmmO2.mjs} +1 -1
  124. package/dist/{state-Boo0IMJq.mjs → state-CG_OFoaA.mjs} +2 -2
  125. package/dist/{state-DI84A-uu.mjs → state-D1Icyjlu.mjs} +8 -7
  126. package/dist/{stats-BIIDrjA8.mjs → stats-BoY5sEPU.mjs} +5 -5
  127. package/dist/{status-BDGHwkCs.mjs → status-BTA7kKiQ.mjs} +1 -1
  128. package/dist/{status-DARMkc9q.mjs → status-WgFbkRzj.mjs} +30 -47
  129. package/dist/{status-watch-DvmI3SmN.mjs → status-watch-C23ILtf9.mjs} +4 -4
  130. package/dist/{stim-desktop-8GQX2OV8.mjs → stim-desktop-BzBN2Em2.mjs} +1 -1
  131. package/dist/{stop-iNemHsJC.mjs → stop-BNmBMi1F.mjs} +18 -19
  132. package/dist/{stop-WQPQHLuy.mjs → stop-DPEhunlw.mjs} +6 -6
  133. package/dist/{stop-CCZS-C9m.mjs → stop-DR6VoDIk.mjs} +2 -2
  134. package/dist/supervisor-run.mjs +16 -17
  135. package/dist/{support-DCco5fut.mjs → support-CwjbFs9H.mjs} +9 -9
  136. package/dist/{support-CnE_SIjt.mjs → support-DMTqj3Hm.mjs} +6 -6
  137. package/dist/{swiftpm-macos-afeNUExW.mjs → swiftpm-macos-DRNVJWlb.mjs} +9 -9
  138. package/dist/{tailnet-CoJUb2tB.mjs → tailnet-Dh-qiYzG.mjs} +5 -5
  139. package/dist/toolchain-BFkAcstd.mjs +2 -0
  140. package/dist/{toolchain-DqyDXs30.mjs → toolchain-DxSsNssu.mjs} +10 -10
  141. package/dist/trigger-9_USgmxz.mjs +2 -0
  142. package/dist/{trigger-C0MWBi8O.mjs → trigger-CigAYjeL.mjs} +2 -2
  143. package/dist/{warm-progress-C3ASD6z5.mjs → warm-progress-BuY-Fvfn.mjs} +43 -61
  144. package/dist/{watchman-CQl51YZu.mjs → watchman-CPQFZLXY.mjs} +6 -6
  145. package/dist/{web-B3eldHFH.mjs → web-BDBMxDpx.mjs} +9 -9
  146. package/dist/web-Dq-i3wzJ.mjs +2 -0
  147. package/dist/web-run.mjs +14 -14
  148. package/dist/{workspace-state-CSIFuuDa.mjs → workspace-state-DJt_MMvf.mjs} +16 -6
  149. package/dist/{workspaces-D2xSHBDY.mjs → workspaces-C36s2jb9.mjs} +15 -16
  150. package/dist/{worktree-BxDqaTev.mjs → worktree-CgvJYJ-Q.mjs} +96 -89
  151. package/dist/{worktree-q7_OZNY0.mjs → worktree-DpLdCHga.mjs} +1 -1
  152. package/package.json +6 -7
  153. package/dist/macos-C0iljhsN.mjs +0 -2
  154. package/dist/process-identity-Biv3arCO.mjs +0 -40
  155. package/dist/server-expo-DV43vep4.mjs +0 -2
  156. package/dist/toolchain-BIupIro1.mjs +0 -2
  157. package/dist/trigger-SHLOWJ4O.mjs +0 -2
  158. package/dist/web-BLXpOe6b.mjs +0 -2
@@ -1,7 +1,7 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
- import { b as workspaceDerivedData, x as workspaceDir } from "./workspace-state-CSIFuuDa.mjs";
3
- import { m as pbxString, p as pbxReferences } from "./project-B8_duAzW.mjs";
4
- import { f as NativeInputError, p as fingerprintNativeInputs } from "./native-gradle-inputs-BQnIdAlL.mjs";
1
+ import { r as gitQuiet } from "./git-DDfFzkMm.mjs";
2
+ import { b as workspaceDerivedData, x as workspaceDir } from "./workspace-state-DJt_MMvf.mjs";
3
+ import { m as pbxString, p as pbxReferences } from "./project-_phNIJfs.mjs";
4
+ import { f as NativeInputError, p as fingerprintNativeInputs } from "./native-gradle-inputs-BsLRrl7u.mjs";
5
5
  import { existsSync, readFileSync, realpathSync } from "node:fs";
6
6
  import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
7
7
  import { createHash } from "node:crypto";
@@ -68,9 +68,7 @@ function fold(path) {
68
68
  }
69
69
  function gitVisibility(sourceRoot) {
70
70
  if (!existsSync(join(sourceRoot, ".git"))) return null;
71
- const listing = getExecutor().runFileQuiet("git", [
72
- "-C",
73
- sourceRoot,
71
+ const listing = gitQuiet(sourceRoot, [
74
72
  "ls-files",
75
73
  "-z",
76
74
  "--cached",
@@ -83,7 +81,8 @@ function gitVisibility(sourceRoot) {
83
81
  "GIT_WORK_TREE",
84
82
  "GIT_INDEX_FILE",
85
83
  "GIT_COMMON_DIR"
86
- ]
84
+ ],
85
+ timeoutMs: 12e4
87
86
  });
88
87
  if (listing === null) return null;
89
88
  const listed = /* @__PURE__ */ new Set();
@@ -239,7 +238,6 @@ function nativeXcodeInputSnapshot(root, selection, parameters, sourceRoot = root
239
238
  if (base) visit(base, project.directory);
240
239
  const settings = entry.buildSettings;
241
240
  for (const [rawKey, setting] of Object.entries(settings && typeof settings === "object" ? settings : {})) {
242
- if (rawKey.endsWith("_comment")) continue;
243
241
  const key = pbxString(rawKey);
244
242
  const values = Array.isArray(setting) ? pbxReferences(setting) : [setting];
245
243
  for (const [valueIndex, value] of values.entries()) {
@@ -1,19 +1,19 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
- import { r as register } from "./cache-manifest-qA3dT2x2.mjs";
3
- import { Et as repoRoot, H as remoteIosSetting, Q as settingShapeErrors, W as resolveCacheProviderConfig, mt as gitCommonDir, q as resolveSettings } from "./settings-Bbztm4oV.mjs";
4
- import { T as filesystemBuildCapability, b as buildCacheKey } from "./device-lease-DHOBXGgS.mjs";
5
- import { g as sharedCompilationCache } from "./workspace-state-CSIFuuDa.mjs";
6
- import { f as NativeXcodeError, h as selectNativeXcodeProject, m as pbxString } from "./project-B8_duAzW.mjs";
7
- import { It as statsProjectKey } from "./budget-BONq9vXY.mjs";
1
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
2
+ import { r as register } from "./cache-manifest-XH-fvDUj.mjs";
3
+ import { Dt as repoRoot, H as remoteIosSetting, Q as settingShapeErrors, W as resolveCacheProviderConfig, ht as gitCommonDir, q as resolveSettings } from "./settings-B717odTD.mjs";
4
+ import { T as filesystemBuildCapability, b as buildCacheKey } from "./device-lease-BX1sJQ2E.mjs";
5
+ import { g as sharedCompilationCache } from "./workspace-state-DJt_MMvf.mjs";
6
+ import { f as NativeXcodeError, h as selectNativeXcodeProject, m as pbxString } from "./project-_phNIJfs.mjs";
7
+ import { It as statsProjectKey } from "./budget-f7516Zk0.mjs";
8
8
  import { l as artifactCachePolicy, p as resolveOptimizations } from "./errors-DzkMYh8Q.mjs";
9
- import { a as nativeTransferRefusal } from "./client-BLy1Pw2V.mjs";
10
- import { i as skippedMissReason, t as explainBuildMiss } from "./miss-reason-BPAzZS0r.mjs";
11
- import { C as compilationCacheSettings, D as parseXcodeMajor, E as parseSwiftVersion, f as podsAreStale, g as runPodInstall, h as runCaptured, p as readPodState, r as iosToolchain, x as buildXcode, y as HEARTBEAT_INTERVAL_MS } from "./toolchain-DqyDXs30.mjs";
12
- import { n as planFlagRefusal, t as planCachedBuild } from "./build-plan-CP0tckNU.mjs";
13
- import { a as deviceModelRefusal, h as resolveDeviceType, m as resolveConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-DCco5fut.mjs";
14
- import { t as IosRecipeRefusal } from "./ios-project-B9drt_aY.mjs";
15
- import { d as gateProfileForDevice, i as DEFAULT_DEPS, r as iosProcessRuntime } from "./launch-YrbqaIFj.mjs";
16
- import { a as nativeXcodeSources, i as nativeXcodePackages, n as nativeXcodeInputSnapshot, t as nativeXcodeHasPackages } from "./native-xcode-inputs-eutS19jU.mjs";
9
+ import { a as nativeTransferRefusal } from "./client-qQAaXSUs.mjs";
10
+ import { i as skippedMissReason, t as explainBuildMiss } from "./miss-reason-mKzZ4VvN.mjs";
11
+ import { C as compilationCacheSettings, D as parseXcodeMajor, E as parseSwiftVersion, f as podsAreStale, g as runPodInstall, h as runCaptured, p as readPodState, r as iosToolchain, x as buildXcode, y as HEARTBEAT_INTERVAL_MS } from "./toolchain-DxSsNssu.mjs";
12
+ import { n as planFlagRefusal, t as planCachedBuild } from "./build-plan-B7SZsc2N.mjs";
13
+ import { a as deviceModelRefusal, h as resolveDeviceType, m as resolveConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-CwjbFs9H.mjs";
14
+ import { t as IosRecipeRefusal } from "./ios-project-K9hY_Jab.mjs";
15
+ import { d as gateProfileForDevice, i as DEFAULT_DEPS, r as iosProcessRuntime } from "./launch-C3qJ6Agb.mjs";
16
+ import { a as nativeXcodeSources, i as nativeXcodePackages, n as nativeXcodeInputSnapshot, t as nativeXcodeHasPackages } from "./native-xcode-inputs-CykopJdM.mjs";
17
17
  import { existsSync } from "node:fs";
18
18
  import { join } from "node:path";
19
19
  //#region src/integrations/native-xcode-ios.ts
@@ -1,22 +1,23 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
- import { O as writeConfigSetting } from "./config-D0LhTY3S.mjs";
3
- import { d as androidLayoutSetting, y as iosProjectDirSetting } from "./settings-Bbztm4oV.mjs";
4
- import { D as fingerprintProject, M as refingerprintAfterMutation } from "./device-lease-DHOBXGgS.mjs";
5
- import { w as workspaceLogsDir, x as workspaceDir } from "./workspace-state-CSIFuuDa.mjs";
1
+ import { O as writeConfigSetting } from "./config-BYDxlMY3.mjs";
2
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
3
+ import { t as git } from "./git-DDfFzkMm.mjs";
4
+ import { d as androidLayoutSetting, y as iosProjectDirSetting } from "./settings-B717odTD.mjs";
5
+ import { D as fingerprintProject, M as refingerprintAfterMutation } from "./device-lease-BX1sJQ2E.mjs";
6
+ import { w as workspaceLogsDir, x as workspaceDir } from "./workspace-state-DJt_MMvf.mjs";
6
7
  import { n as stripAnsi } from "./process-output-Fpl8PYi8.mjs";
7
- import { d as projectRegistry, h as selectNativeXcodeProject } from "./project-B8_duAzW.mjs";
8
+ import { d as projectRegistry, h as selectNativeXcodeProject } from "./project-_phNIJfs.mjs";
8
9
  import { o as parseNdjsonText } from "./ndjson-GOnbyvso.mjs";
9
- import { n as CCACHE_UNAVAILABLE, o as resolveCcache } from "./ccache-CjHQ5F8g.mjs";
10
- import { i as assembleTaskFor } from "./gradle-C2OEKCCI.mjs";
11
- import { f as podsAreStale, g as runPodInstall, p as readPodState, u as workerToolchain } from "./toolchain-DqyDXs30.mjs";
12
- import { a as validateGradleManifest, d as verifyNativeTransfer, m as manifestDigest, n as gradleStateDirectories, o as verifyGradleTransfer, r as nativeGradleOutputs, t as gradleOffloadInputs } from "./native-gradle-inputs-BQnIdAlL.mjs";
13
- import { n as buildAndroid, o as gradlewPath, r as buildIos } from "./react-native-build-oAw6gQeW.mjs";
14
- import { n as buildAndroidOperation, t as buildIosOperation } from "./build-BixRI6sB.mjs";
15
- import { n as recordPrebuild, r as runPrebuild, t as planPrebuild } from "./prebuild-Bw44QxVh.mjs";
16
- import { f as podAction } from "./support-DCco5fut.mjs";
17
- import { r as stageBundle, t as resolveBundleExtras } from "./stage-BNKKdDNc.mjs";
18
- import { t as logLines } from "./run-qvff78hv.mjs";
19
- import { r as nativeXcodeMetadataDirectories } from "./native-xcode-inputs-eutS19jU.mjs";
10
+ import { n as CCACHE_UNAVAILABLE, o as resolveCcache } from "./ccache-zdKiYQ3E.mjs";
11
+ import { i as assembleTaskFor } from "./gradle-DSrXb6lG.mjs";
12
+ import { f as podsAreStale, g as runPodInstall, p as readPodState, u as workerToolchain } from "./toolchain-DxSsNssu.mjs";
13
+ import { a as validateGradleManifest, d as verifyNativeTransfer, m as manifestDigest, n as gradleStateDirectories, o as verifyGradleTransfer, r as nativeGradleOutputs, t as gradleOffloadInputs } from "./native-gradle-inputs-BsLRrl7u.mjs";
14
+ import { n as buildAndroid, o as gradlewPath, r as buildIos } from "./react-native-build-CtCccJtb.mjs";
15
+ import { n as buildAndroidOperation, t as buildIosOperation } from "./build-DYDbfkk5.mjs";
16
+ import { n as recordPrebuild, r as runPrebuild, t as planPrebuild } from "./prebuild-DYbucPXy.mjs";
17
+ import { f as podAction } from "./support-CwjbFs9H.mjs";
18
+ import { r as stageBundle, t as resolveBundleExtras } from "./stage-KNTQopqv.mjs";
19
+ import { t as logLines } from "./run-BtPgpKks.mjs";
20
+ import { r as nativeXcodeMetadataDirectories } from "./native-xcode-inputs-CykopJdM.mjs";
20
21
  import { chmodSync, constants, copyFileSync, cpSync, createReadStream, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, readlinkSync, realpathSync, renameSync, rmSync, statSync, symlinkSync, writeFileSync } from "node:fs";
21
22
  import { basename, dirname, join } from "node:path";
22
23
  import { createHash } from "node:crypto";
@@ -97,25 +98,23 @@ function materialize(job, src) {
97
98
  } catch {}
98
99
  mkdirSync(src, { recursive: true });
99
100
  if (!existsSync(join(src, ".git"))) {
100
- getExecutor().runFile("git", [
101
- "init",
102
- "--quiet",
103
- src
104
- ], { timeoutMs: 3e4 });
105
- getExecutor().runFile("git", [
106
- "-C",
107
- src,
101
+ git(src, ["init", "--quiet"], {
102
+ write: true,
103
+ timeoutMs: 3e4
104
+ });
105
+ git(src, [
108
106
  "config",
109
107
  "core.excludesFile",
110
108
  "/dev/null"
111
- ], { timeoutMs: 3e4 });
109
+ ], {
110
+ write: true,
111
+ timeoutMs: 3e4
112
+ });
112
113
  }
113
- getExecutor().runFile("git", [
114
- "-C",
115
- src,
116
- "read-tree",
117
- "--empty"
118
- ], { timeoutMs: 3e4 });
114
+ git(src, ["read-tree", "--empty"], {
115
+ write: true,
116
+ timeoutMs: 3e4
117
+ });
119
118
  let retained = [];
120
119
  if (job.native) {
121
120
  if (job.native.provider === "gradle") {
@@ -199,22 +198,19 @@ function materialize(job, src) {
199
198
  }
200
199
  if (job.native) {
201
200
  const indexed = job.manifest.filter((entry) => entry.kind !== "directory").map((entry) => `${entry.path}\0`);
202
- if (indexed.length) getExecutor().runFile("git", [
203
- "-C",
204
- src,
201
+ if (indexed.length) git(src, [
205
202
  "update-index",
206
203
  "--add",
207
204
  "--info-only",
208
205
  "-z",
209
206
  "--stdin"
210
207
  ], {
208
+ write: true,
211
209
  input: indexed.join(""),
212
210
  timeoutMs: 12e4
213
211
  });
214
212
  }
215
- const untracked = job.native ? [] : getExecutor().runFile("git", [
216
- "-C",
217
- src,
213
+ const untracked = job.native ? [] : git(src, [
218
214
  "ls-files",
219
215
  "-z",
220
216
  "-o",
@@ -1,6 +1,6 @@
1
- import { t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
2
- import { c as writeWorkspaceState, o as withWorkspaceStateLock, r as readWorkspaceState } from "./workspace-state-CSIFuuDa.mjs";
3
- import { s as pidExists } from "./metro-D_j9sN-B.mjs";
1
+ import { k as process_identity_exports } from "./config-BYDxlMY3.mjs";
2
+ import { c as writeWorkspaceState, o as withWorkspaceStateLock, r as readWorkspaceState } from "./workspace-state-DJt_MMvf.mjs";
3
+ import { s as pidExists } from "./metro-DnCEjCxs.mjs";
4
4
  import { realpathSync } from "node:fs";
5
5
  //#region src/collector/state.ts
6
6
  function collectorRoot(root) {
@@ -1,4 +1,4 @@
1
- import { t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
1
+ import { k as process_identity_exports } from "./config-BYDxlMY3.mjs";
2
2
  import { t as connectOwnedBrowser } from "./cdp-Dq_ypAlJ.mjs";
3
3
  //#region src/web/page.ts
4
4
  /** The record of a verified live browser: its supervisor and Chrome are the processes the record names. */
@@ -1,4 +1,4 @@
1
- import { m as buildPlacementSettings } from "./client-BLy1Pw2V.mjs";
1
+ import { m as buildPlacementSettings } from "./client-qQAaXSUs.mjs";
2
2
  //#region src/placement-log.ts
3
3
  /** `machine` is `local` when the run stays on this Mac. */
4
4
  function placementRecord(input) {
@@ -1,14 +1,14 @@
1
- import { p as getProject, z as deviceSlotPlatforms } from "./config-D0LhTY3S.mjs";
2
- import { B as remoteAndroidSetting, F as parseIosRemote, Q as settingShapeErrors, U as resolveAndroidLayout, W as resolveCacheProviderConfig, Y as settingFile, Z as settingOriginScope, a as SETTING_SHAPE_REMEDY, d as androidLayoutSetting, et as settingsLayers, f as androidLayoutSettingError, nt as unknownSettingKeys, p as cacheProviderSettingError, s as androidAvdConfigSettingError, u as androidDataPartitionSizeGbSettingError } from "./settings-Bbztm4oV.mjs";
3
- import { _ as detectIsExpo } from "./project-B8_duAzW.mjs";
4
- import { B as ownedAvdSystemImage, F as ownedAvdDeviceProfile, K as profileNeedsFoldFeature, Q as systemImageSupportsFold, W as pickDefaultSystemImage, dt as parkedMaxSetting, j as listInstalledSystemImages, k as listAvdDeviceProfiles, t as DEFAULT_AVD_DEVICE_PROFILE } from "./android-BsYNR81W.mjs";
1
+ import { V as deviceSlotPlatforms, p as getProject } from "./config-BYDxlMY3.mjs";
2
+ import { B as remoteAndroidSetting, F as parseIosRemote, Q as settingShapeErrors, U as resolveAndroidLayout, W as resolveCacheProviderConfig, Y as settingFile, Z as settingOriginScope, a as SETTING_SHAPE_REMEDY, d as androidLayoutSetting, et as settingsLayers, f as androidLayoutSettingError, nt as unknownSettingKeys, p as cacheProviderSettingError, s as androidAvdConfigSettingError, u as androidDataPartitionSizeGbSettingError } from "./settings-B717odTD.mjs";
3
+ import { _ as detectIsExpo } from "./project-_phNIJfs.mjs";
4
+ import { B as ownedAvdSystemImage, F as ownedAvdDeviceProfile, K as profileNeedsFoldFeature, Q as systemImageSupportsFold, W as pickDefaultSystemImage, dt as parkedMaxSetting, j as listInstalledSystemImages, k as listAvdDeviceProfiles, t as DEFAULT_AVD_DEVICE_PROFILE } from "./android-Mz_Inn3w.mjs";
5
5
  import { d as optimizationBuildProfile, l as artifactCachePolicy, p as resolveOptimizations, u as compilerCacheFallbackMessage } from "./errors-DzkMYh8Q.mjs";
6
- import { r as isPhysicalDeviceRequest } from "./native-runtime-BRmWL7ru.mjs";
7
- import { t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-Ca_ke1LE.mjs";
8
- import { C as remoteAvdFlagRefusal, D as systemImageRefusal, E as resolveVariant, T as resolveSystemImage, m as deviceProfileRefusal, v as foldableImageRefusal, w as resolveDeviceProfile, y as isReleaseVariant } from "./support-CnE_SIjt.mjs";
9
- import { c as readProductFlavors, s as productFlavorRefusal } from "./react-native-build-oAw6gQeW.mjs";
10
- import { n as resolveAndroidCas, r as resolveAndroidCompilerCache } from "./android-cas-DCAuXryb.mjs";
11
- import { l as parseDeviceWait } from "./device-lease-run-CvDeHTkG.mjs";
6
+ import { r as isPhysicalDeviceRequest } from "./native-runtime-k8dTIrbK.mjs";
7
+ import { t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-CBUAcRyQ.mjs";
8
+ import { C as remoteAvdFlagRefusal, D as systemImageRefusal, E as resolveVariant, T as resolveSystemImage, m as deviceProfileRefusal, v as foldableImageRefusal, w as resolveDeviceProfile, y as isReleaseVariant } from "./support-DMTqj3Hm.mjs";
9
+ import { c as readProductFlavors, s as productFlavorRefusal } from "./react-native-build-CtCccJtb.mjs";
10
+ import { n as resolveAndroidCas, r as resolveAndroidCompilerCache } from "./android-cas-Bl-cLJBk.mjs";
11
+ import { l as parseDeviceWait } from "./device-lease-run-Cw2M4z51.mjs";
12
12
  //#region src/integrations/android-project.ts
13
13
  var AndroidRecipeRefusal = class extends Error {
14
14
  failure;
@@ -1,6 +1,6 @@
1
- import { S as hostingMachines } from "./client-BLy1Pw2V.mjs";
2
- import { r as readHostedNative } from "./ios-state-CjrL2qv-.mjs";
3
- import { l as probeHost, s as automaticDevicePlacement } from "./build-plan-CP0tckNU.mjs";
1
+ import { S as hostingMachines } from "./client-qQAaXSUs.mjs";
2
+ import { r as readHostedNative } from "./ios-state-CBLe1xYw.mjs";
3
+ import { l as probeHost, s as automaticDevicePlacement } from "./build-plan-B7SZsc2N.mjs";
4
4
  import { automaticMachineEnabled } from "@stim-cli/core/state";
5
5
  //#region src/device-host/plan-placement.ts
6
6
  /**
@@ -1,6 +1,6 @@
1
- import { p as getProject } from "./config-D0LhTY3S.mjs";
2
- import { n as findCommandWorkspace } from "./project-B8_duAzW.mjs";
3
- import { n as getNamedPort, t as clearNamedPorts } from "./named-ports-C2lvoPsb.mjs";
1
+ import { p as getProject } from "./config-BYDxlMY3.mjs";
2
+ import { n as findCommandWorkspace } from "./project-_phNIJfs.mjs";
3
+ import { n as getNamedPort, t as clearNamedPorts } from "./named-ports-4WopRPg-.mjs";
4
4
  //#region src/commands/ports.ts
5
5
  async function inProject(action) {
6
6
  try {
@@ -1,9 +1,10 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
- import { a as updateWorkspaceState, r as readWorkspaceState } from "./workspace-state-CSIFuuDa.mjs";
1
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
2
+ import { t as git } from "./git-DDfFzkMm.mjs";
3
+ import { a as updateWorkspaceState, r as readWorkspaceState } from "./workspace-state-DJt_MMvf.mjs";
3
4
  import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
4
- import { _ as detectIsExpo } from "./project-B8_duAzW.mjs";
5
- import { a as spawnDeclared } from "./spawn-claims-Kqiifsk2.mjs";
6
- import { i as expoBinRefusal, r as expoBinPath } from "./server-expo-CsYu2aKL.mjs";
5
+ import { _ as detectIsExpo } from "./project-_phNIJfs.mjs";
6
+ import { a as spawnDeclared } from "./spawn-claims-DVS5RkMS.mjs";
7
+ import { i as expoBinRefusal, r as expoBinPath } from "./server-expo-DsguMGUF.mjs";
7
8
  import { existsSync } from "node:fs";
8
9
  import { join } from "node:path";
9
10
  //#region src/engine/prebuild.ts
@@ -35,9 +36,7 @@ function prebuildRecord(state) {
35
36
  }
36
37
  function gitTracksNativeDir(root, platform) {
37
38
  try {
38
- return getExecutor().runFile("git", [
39
- "-C",
40
- root,
39
+ return git(root, [
41
40
  "ls-files",
42
41
  "--",
43
42
  nativeDirName(platform)
@@ -1,20 +1,21 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
- import { H as projectDeviceSlots, M as isOnMountedVolume, N as listMountedVolumes, P as measuredDirectorySize, _ as loadConfig$1, p as getProject } from "./config-D0LhTY3S.mjs";
3
- import { n as readManifest } from "./cache-manifest-qA3dT2x2.mjs";
4
- import { At as sourceCheckoutOf, Dt as resolveFullRef, E as maintenanceKeepSetting, K as resolveProjectSettings, gt as hasPopulatedSubmodules, jt as unpushedCommits, pt as dirtyPaths, vt as hasUncommittedWork, xt as listWorktrees } from "./settings-Bbztm4oV.mjs";
5
- import { h as listBuildLocks, i as listLeaseFiles, r as leaseIsExpired } from "./device-lease-DHOBXGgS.mjs";
6
- import { E as workspaceStateFile, r as readWorkspaceState$1, s as workspaceLastUsed, w as workspaceLogsDir$1 } from "./workspace-state-CSIFuuDa.mjs";
7
- import { o as formatLongDuration, u as plural } from "./command-output-BjPN99ZB.mjs";
8
- import { r as findProjectRoot } from "./project-B8_duAzW.mjs";
9
- import { ft as readParked, z as ownedAvdSerialResolver } from "./android-BsYNR81W.mjs";
10
- import { C as recordGcResult, I as listBuildSlots, T as canonicalPath, a as collectWorkspaceOutputs, c as listWorkspaceDirs, i as collectOrphanedWorkspaces, p as workspaceInUse, s as isInsideWorkspaces } from "./workspaces-D2xSHBDY.mjs";
11
- import { _ as DEVICE_LIST_TIMEOUT_MS, at as discoverCaches, c as readVolumeSpace, i as enforceBudget, l as resolveBudget, nt as phase, o as machineNumber, r as cacheLabel, u as trimmableCaches, z as planCacheEmptying } from "./budget-BONq9vXY.mjs";
1
+ import { F as listMountedVolumes, I as measuredDirectorySize, P as isOnMountedVolume, W as projectDeviceSlots, _ as loadConfig$1, p as getProject } from "./config-BYDxlMY3.mjs";
2
+ import { n as isTimeoutError } from "./exec-DqKo9GKJ.mjs";
3
+ import { r as gitQuiet } from "./git-DDfFzkMm.mjs";
4
+ import { n as readManifest } from "./cache-manifest-XH-fvDUj.mjs";
5
+ import { E as maintenanceKeepSetting, K as resolveProjectSettings, Mt as unpushedCommits, Ot as resolveFullRef, St as listWorktrees, _t as hasPopulatedSubmodules, jt as sourceCheckoutOf, mt as dirtyPaths, yt as hasUncommittedWork } from "./settings-B717odTD.mjs";
6
+ import { h as listBuildLocks, i as listLeaseFiles, r as leaseIsExpired } from "./device-lease-BX1sJQ2E.mjs";
7
+ import { E as workspaceStateFile, r as readWorkspaceState$1, s as workspaceLastUsed, w as workspaceLogsDir$1 } from "./workspace-state-DJt_MMvf.mjs";
8
+ import { o as formatLongDuration, u as plural } from "./command-output-BTy8hZ0F.mjs";
9
+ import { r as findProjectRoot } from "./project-_phNIJfs.mjs";
10
+ import { ft as readParked, z as ownedAvdSerialResolver } from "./android-Mz_Inn3w.mjs";
11
+ import { C as recordGcResult, I as listBuildSlots, T as canonicalPath, a as collectWorkspaceOutputs, c as listWorkspaceDirs, i as collectOrphanedWorkspaces, p as workspaceInUse, s as isInsideWorkspaces } from "./workspaces-C36s2jb9.mjs";
12
+ import { _ as DEVICE_LIST_TIMEOUT_MS, at as discoverCaches, c as readVolumeSpace, i as enforceBudget, l as resolveBudget, nt as phase, o as machineNumber, r as cacheLabel, u as trimmableCaches, z as planCacheEmptying } from "./budget-f7516Zk0.mjs";
12
13
  import { s as metroStoreRoot } from "./errors-DzkMYh8Q.mjs";
13
- import { P as readHostMemoryPressure, d as listAllIosSims } from "./ios-CXLIUxXJ.mjs";
14
- import { n as describePullRequest, o as pullRequestLookups, r as endedPullRequest } from "./pull-request-vOhLNmIb.mjs";
14
+ import { P as readHostMemoryPressure, d as listAllIosSims } from "./ios-RkW4pnQf.mjs";
15
+ import { n as describePullRequest, o as pullRequestLookups, r as endedPullRequest } from "./pull-request-CQ8sPbZa.mjs";
15
16
  import { t as resolveMaintenanceSettings } from "./settings-Djl-mpjX.mjs";
16
- import { o as fetchDefaultBranch, s as mergeState } from "./warm-progress-C3ASD6z5.mjs";
17
- import { a as matchWorktreeEntry, i as excludeWatchmanCookies, p as removeWorktreeTarget, r as excludePodChurn, s as reclaimKeys } from "./worktree-BxDqaTev.mjs";
17
+ import { o as fetchDefaultBranch, s as mergeState } from "./warm-progress-BuY-Fvfn.mjs";
18
+ import { a as matchWorktreeEntry, i as excludeWatchmanCookies, p as removeWorktreeTarget, r as excludePodChurn, s as reclaimKeys } from "./worktree-CgvJYJ-Q.mjs";
18
19
  import { existsSync } from "node:fs";
19
20
  import { basename, isAbsolute, join, sep } from "node:path";
20
21
  import { isAbsolute as isAbsolute$1, join as join$1 } from "path";
@@ -202,6 +203,7 @@ function removalBlocker(facts, olderThan) {
202
203
  const merged = facts.merge?.merged ? facts.merge : null;
203
204
  const ended = endedPullRequest(facts.pullRequest);
204
205
  if (facts.unpushed.length && !merged?.coversUnpushed && ended?.state !== "merged") return skip("unpushed", `unpushed: ${plural(facts.unpushed.length, "commit")} on no remote or other branch`);
206
+ if (facts.submodules === null) return skip("submodules", "initialized submodules could not be checked");
205
207
  if (facts.submodules) return skip("submodules", "initialized submodules");
206
208
  if (merged || ended) return null;
207
209
  const notMerged = facts.merge && !facts.merge.merged ? facts.merge : null;
@@ -308,10 +310,7 @@ function logFiles$1(key) {
308
310
  }
309
311
  }
310
312
  function worktreeActivityOf(path, keys) {
311
- const gitDir = getExecutor().runFileQuiet("git", [
312
- "--no-optional-locks",
313
- "-C",
314
- path,
313
+ const gitDir = gitQuiet(path, [
315
314
  "rev-parse",
316
315
  "--path-format=absolute",
317
316
  "--git-dir"
@@ -351,11 +350,19 @@ function graceMsSetting() {
351
350
  }
352
351
  return (value ?? 0) * MINUTE_MS;
353
352
  }
353
+ function unlessTimedOut(read, unknown) {
354
+ try {
355
+ return read();
356
+ } catch (error) {
357
+ if (isTimeoutError(error)) return unknown;
358
+ throw error;
359
+ }
360
+ }
354
361
  function porcelainOf(path, gitAnswered) {
355
362
  if (gitAnswered === null) return null;
356
363
  if (!gitAnswered) return [];
357
- const lines = dirtyPaths(path, { limit: Infinity });
358
- return lines.length ? lines : null;
364
+ const lines = unlessTimedOut(() => dirtyPaths(path, { limit: Infinity }), null);
365
+ return lines?.length ? lines : null;
359
366
  }
360
367
  function candidateRoots() {
361
368
  const registered = Object.keys(loadConfig$1()?.projects ?? {}).filter(isAbsolute$1);
@@ -429,15 +436,15 @@ async function collectWorktreeSweep({ idle, olderThan, now }) {
429
436
  const idleDays = idleDaysOf(keys, now);
430
437
  const linked = !("refusal" in source) && entry !== null && source.path !== entry.path;
431
438
  const activity = linked && grace.ms > 0 ? worktreeActivityOf(path, keys) : null;
432
- const gitAnswered = linked ? hasUncommittedWork(path) : null;
439
+ const gitAnswered = linked ? unlessTimedOut(() => hasUncommittedWork(path), null) : null;
433
440
  const head = linked ? resolveFullRef(path, "HEAD") : null;
434
441
  const facts = {
435
442
  source: "refusal" in source ? source : linked ? "linked" : "source",
436
443
  bare: Boolean(entry?.bare),
437
444
  locked: Boolean(entry?.locked),
438
445
  porcelain: porcelainOf(path, gitAnswered),
439
- unpushed: linked ? unpushedCommits(path) : null,
440
- submodules: linked && hasPopulatedSubmodules(path),
446
+ unpushed: linked ? unlessTimedOut(() => unpushedCommits(path), null) : null,
447
+ submodules: linked ? unlessTimedOut(() => hasPopulatedSubmodules(path), null) : false,
441
448
  inUse: [],
442
449
  idleDays,
443
450
  merge: null,