stim 1.36.0 → 1.38.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/README.md +3 -1
- package/dist/{acquire-artifact-DGTHCd0Q.mjs → acquire-artifact-QKPDkesw.mjs} +2 -2
- package/dist/{act-CvN9xyV6.mjs → act-Bh3t-NuH.mjs} +28 -34
- package/dist/{activity-BpdDvA8Q.mjs → activity-CANftndU.mjs} +6 -6
- package/dist/{agent-device-usage-output-pbhaW7_k.mjs → agent-device-usage-output-CuROXefb.mjs} +5 -5
- package/dist/{android-SJx1V3R3.mjs → android-27_JgJ1T.mjs} +7 -7
- package/dist/{android-B0qTdwnt.mjs → android-Biwc4Dck.mjs} +5 -5
- package/dist/{android-5wkcMFDG.mjs → android-DGLG_VQ3.mjs} +2 -2
- package/dist/{android-e9WP10cE.mjs → android-Z6Eev9rL.mjs} +51 -42
- package/dist/{android-cas-BS9_55U5.mjs → android-cas-BDAwwL82.mjs} +4 -4
- package/dist/android-cas-compiler.mjs +1 -1
- package/dist/{android-image-BZ57YL6R.mjs → android-image-BcUD6bPi.mjs} +3 -3
- package/dist/api.d.mts +12 -5
- package/dist/api.mjs +34 -31
- package/dist/{apk-signed-tail-eZyXIrnc.mjs → apk-signed-tail-DHMkXs4s.mjs} +2 -2
- package/dist/{artifact-C3srrGVU.mjs → artifact-Dc1GsK7o.mjs} +29 -15
- package/dist/{artifact-platform-DqCWUieN.mjs → artifact-platform-BaGL1i1X.mjs} +1 -1
- package/dist/{artifact-ubNdxo_K.mjs → artifact-sGoFVK1q.mjs} +12 -12
- package/dist/{auto-placement-CKFpFCuq.mjs → auto-placement-RNh4kx2T.mjs} +7 -7
- package/dist/{browser-web-B63vLrj6.mjs → browser-web-7Oj57Roa.mjs} +15 -15
- package/dist/{build-B_Dx9SKJ.mjs → build-DkE5vjp1.mjs} +29 -28
- package/dist/{build-cache-BW8T4oD2.mjs → build-cache-CJ65Efv7.mjs} +10 -7
- package/dist/{build-plan-CeIooJqn.mjs → build-plan-DWajg5l_.mjs} +8 -7
- package/dist/{cache-manifest-CxWkZmUr.mjs → cache-manifest-BO0TIcPV.mjs} +1 -1
- package/dist/cache-manifest.mjs +1 -1
- package/dist/{cdp-C216kOAn.mjs → cdp-CgT47_9A.mjs} +1 -1
- package/dist/{chrome-C8sC5tdl.mjs → chrome-DL5znvmo.mjs} +1 -1
- package/dist/{cli-COdXswmc.mjs → cli-BSlwv9hI.mjs} +21 -21
- package/dist/cli.mjs +1 -1
- package/dist/{client-KSWIeQLA.mjs → client-qwmHFSga.mjs} +16 -12
- package/dist/collector-run.mjs +7 -7
- package/dist/{command-output-T3cDctRE.mjs → command-output-DsjhOzJ3.mjs} +1 -1
- package/dist/{config-BA3TgoIP.mjs → config-CNmN-ndb.mjs} +2 -2
- package/dist/{dependencies-LH-7k1Vr.mjs → dependencies-oku1ZLep.mjs} +144 -71
- package/dist/{dependency-state-Blfp3AkG.mjs → dependency-state-CBhPJAs_.mjs} +2 -2
- package/dist/{detached-entry-tfrgGVWb.mjs → detached-entry-VqFeEE9W.mjs} +1 -1
- package/dist/{dev-client-MO_DjTZr.mjs → dev-client-DL5UtVdx.mjs} +2 -2
- package/dist/{device-DNTWFFB1.mjs → device-CxMwX0VO.mjs} +17 -16
- package/dist/{device-android-BB9Lugr8.mjs → device-android-CSlBXuh_.mjs} +9 -9
- package/dist/{device-capacity-CpAVcKgq.mjs → device-capacity-D_IlxZRL.mjs} +84 -37
- package/dist/device-host-worker.mjs +28 -16
- package/dist/{device-pool-BJToGG-q.mjs → device-pool-BEaTdtss.mjs} +3 -3
- package/dist/{device-provision-CxQDCtrc.mjs → device-provision-C9NPdCne.mjs} +10 -10
- package/dist/{device-BZWt_aPJ.mjs → device-yfuJ-v4s.mjs} +11 -11
- package/dist/{doctor-C-46SkBe.mjs → doctor-BAA3zN5U.mjs} +1 -1
- package/dist/{doctor-DV639Iw_.mjs → doctor-BQ1Kl44s.mjs} +15 -21
- package/dist/{doctor-CYZ45LnX.mjs → doctor-QNzDE4aW.mjs} +24 -24
- package/dist/{doctor-fingerprint-DqWvIhMb.mjs → doctor-fingerprint-Bo4z8YNP.mjs} +1 -1
- package/dist/doctor-fingerprint.mjs +1 -1
- package/dist/{doctor-watchman-TZxYt_98.mjs → doctor-watchman-B8e3s9ko.mjs} +5 -5
- package/dist/{eas-build-Xf5Jd6LR.mjs → eas-build-4rg9WpEg.mjs} +4 -4
- package/dist/{eas-fallback-DNYPNinw.mjs → eas-fallback-UGo0SG7T.mjs} +6 -6
- package/dist/{eas-session-ledger-CXZ4aix0.mjs → eas-session-ledger-BDpSdFDM.mjs} +6 -6
- package/dist/{error-diagnostics-CvB5bpPU.mjs → error-diagnostics-CW9xl6ot.mjs} +10 -10
- package/dist/{exec-CGuDzt40.mjs → exec-L37dbiIb.mjs} +7 -1
- package/dist/{gc-DiUhrVFo.mjs → gc-3DHVCn-k.mjs} +52 -36
- package/dist/{gc-8Qm_K1iy.mjs → gc-BQ5dXnC7.mjs} +2 -2
- package/dist/{guide-CuvHRP53.mjs → guide-DqJCc4vW.mjs} +209 -78
- package/dist/{hosted-android-D__HGVIO.mjs → hosted-android-gwLspaz6.mjs} +4 -4
- package/dist/{hosted-client-DMOOu8vD.mjs → hosted-client-B_h_bTlz.mjs} +4 -4
- package/dist/{hosted-logs-CClIktQM.mjs → hosted-logs-BpQSRDRU.mjs} +17 -10
- package/dist/{hosted-logs-sync-B7XCeqVm.mjs → hosted-logs-sync-D3L1hDpM.mjs} +5 -5
- package/dist/{hosted-macos-D4sDJIbB.mjs → hosted-macos-GK4O1s7x.mjs} +6 -6
- package/dist/{hosted-native-BiiUG_Q6.mjs → hosted-native-B6ur_0OJ.mjs} +8 -8
- package/dist/{ios-Qam0bT9n.mjs → ios-2Qr4_Zu2.mjs} +1 -1
- package/dist/{ios-BZuhvLGr.mjs → ios-Bi0bQiZ_.mjs} +8 -8
- package/dist/{ios-BhfpRfNf.mjs → ios-DQEzde6f.mjs} +23 -10
- package/dist/{ios-BhpUWyN7.mjs → ios-M7nRVb33.mjs} +100 -37
- package/dist/{ios-device-vhYL1N--.mjs → ios-device-BLm1BZB4.mjs} +3 -3
- package/dist/{ios-device-DLdEDWJj.mjs → ios-device-ygijU78G.mjs} +1 -1
- package/dist/{ios-project-Cz0S1Sz-.mjs → ios-project-Bsm-eqwv.mjs} +7 -7
- package/dist/ios-runtime-DLiKoOkd.mjs +150 -0
- package/dist/{ios-signing-BcH88ecn.mjs → ios-signing-rWR_Mu5Z.mjs} +3 -3
- package/dist/{ios-state-Avwz2cbZ.mjs → ios-state-tzD0s7pt.mjs} +1 -1
- package/dist/{js-swap-Desu2iII.mjs → js-swap-Cuky0ZAQ.mjs} +60 -13
- package/dist/{launch-6ckG9UrC.mjs → launch-B-pkNlqg.mjs} +48 -28
- package/dist/{lightened-B6TnpHMX.mjs → lightened-KHWHmzGs.mjs} +5 -5
- package/dist/{logs-B-DMy1K0.mjs → logs-B0etn-BD.mjs} +7 -7
- package/dist/{logs-CO0CJRiC.mjs → logs-HomiqPhV.mjs} +6 -6
- package/dist/{macos-CduEmWAK.mjs → macos-C5liDnbP.mjs} +1 -1
- package/dist/macos-run.mjs +1 -1
- package/dist/{macos-B1aCXhem.mjs → macos-zMxSibx5.mjs} +22 -23
- package/dist/maintenance-run.mjs +6 -6
- package/dist/{metro-DM3yJL1M.mjs → metro-Cj6W4qOO.mjs} +4 -4
- package/dist/{metro-request-O8Q-JvBg.mjs → metro-request-BWCl3Zco.mjs} +2 -2
- package/dist/{prebuild-Di2IhUue.mjs → miss-reason-CeHvzeVm.mjs} +12 -272
- package/dist/{named-ports-BvB_CO9B.mjs → named-ports-DZ8DrkH1.mjs} +3 -3
- package/dist/{native-android-28NOG2-y.mjs → native-android-DtWLzg6g.mjs} +18 -18
- package/dist/{native-gradle-artifact-inputs-DxVEtS6_.mjs → native-gradle-artifact-inputs-D4w20_6d.mjs} +5 -5
- package/dist/{native-runtime-C3_NkUlW.mjs → native-runtime-BfvvAJLd.mjs} +6 -6
- package/dist/{native-source-ChAGj7R1.mjs → native-source-D2ZfiQ6U.mjs} +1 -1
- package/dist/{native-xcode-inputs-BWFTw5cJ.mjs → native-xcode-inputs-BHvnAq4o.mjs} +3 -3
- package/dist/{native-xcode-ios-B4Qoc7-U.mjs → native-xcode-ios-CYxrg_kK.mjs} +18 -19
- package/dist/offload-worker.mjs +23 -22
- package/dist/{operation-exec-DKlBcKAL.mjs → operation-exec-DNynwpqO.mjs} +1 -1
- package/dist/{ownership-C3y8wLSl.mjs → ownership-BLgOimfp.mjs} +3 -3
- package/dist/{page-Dj8IqvGM.mjs → page-CoN9al_x.mjs} +2 -2
- package/dist/{phone-reverses-BhSxbqom.mjs → phone-reverses-vRveZKSG.mjs} +4 -4
- package/dist/{placement-log-B8RCSzOm.mjs → placement-log-CM0DSELs.mjs} +1 -1
- package/dist/{plan-placement-BI4r55aP.mjs → plan-placement-CIrvKq8y.mjs} +6 -6
- package/dist/{ports-DhOSyWm9.mjs → ports-CKORWlC0.mjs} +3 -3
- package/dist/{project-Clk1JAWL.mjs → project-DIo71tGq.mjs} +16 -16
- package/dist/{pull-request-BpMTNkMB.mjs → pull-request-m8cMZ3aE.mjs} +2 -2
- package/dist/pull-requests.mjs +1 -1
- package/dist/{react-native-android-bdHBMrnf.mjs → react-native-android-B7VYSlKj.mjs} +41 -36
- package/dist/{react-native-build-CJega_NM.mjs → react-native-build-CFYTYmG4.mjs} +13 -10
- package/dist/{react-native-doctor-CY7BGITE.mjs → react-native-doctor-CnpVfE0k.mjs} +6 -6
- package/dist/{react-native-ios-Bo5EDVel.mjs → react-native-ios-ByeXo_NP.mjs} +18 -18
- package/dist/{recorded-build-BuGL_fnm.mjs → recorded-build-B4prJjSD.mjs} +20 -2
- package/dist/{recordings-6i2-x8LU.mjs → recordings-Byu5SzlI.mjs} +1 -1
- package/dist/{registration-DKjJGQ6p.mjs → registration-C-3PDR3X.mjs} +1 -1
- package/dist/{reload-BvDuvygc.mjs → reload-DANrKhQR.mjs} +1 -1
- package/dist/{reload-A_axEbeS.mjs → reload-DTd9g1EG.mjs} +16 -16
- package/dist/{remote-PD6CM0xp.mjs → remote-BWuq9qHV.mjs} +4 -4
- package/dist/{remote-WK_swZEw.mjs → remote-NOM82XE0.mjs} +10 -10
- package/dist/{result-BkDpN5Mz.mjs → result-C-ISEJ5F.mjs} +17 -17
- package/dist/{run-CTFi4Nq2.mjs → run-DQwx6djG.mjs} +2 -2
- package/dist/{server-bare-W0aPsRZE.mjs → server-bare-B_wRfchQ.mjs} +2 -2
- package/dist/{server-command-S00-ddjK.mjs → server-command-DgXYowQf.mjs} +6 -6
- package/dist/{server-expo-cc-cmfsl.mjs → server-expo-ByBM8DVv.mjs} +10 -8
- package/dist/server-expo-D7rwjAFp.mjs +2 -0
- package/dist/{settings-C_Xu4RNZ.mjs → settings-BthPoY3t.mjs} +2 -2
- package/dist/{settings-Bap-qjnp.mjs → settings-Cz8kQJzr.mjs} +49 -12
- package/dist/{settings-payload-D5jjhmrw.mjs → settings-payload-BOcxsZ6k.mjs} +5 -5
- package/dist/{settings-write-C5huI-iS.mjs → settings-write-BuMPL1rd.mjs} +6 -6
- package/dist/settings.schema.json +32 -2
- package/dist/{simslim-DlBvwgeF.mjs → simslim-BMgpTRWe.mjs} +2 -2
- package/dist/{slot-launch-qEQVTth7.mjs → slot-launch-BIm9w8kH.mjs} +6 -6
- package/dist/{stage-CxVI_MlP.mjs → stage-CX1Byp3n.mjs} +6 -5
- package/dist/{start-CVzivp35.mjs → start-BZWr85b2.mjs} +1 -1
- package/dist/{start-YpT_JpQQ.mjs → start-DI0ofPO-.mjs} +12 -12
- package/dist/{state-B4B5P4LU.mjs → state-45P8Kd6Z.mjs} +2 -2
- package/dist/{state-B9VFI6r0.mjs → state-C2vELPyr.mjs} +4 -4
- package/dist/{stats-COoePEri.mjs → stats-BDljWVWU.mjs} +5 -5
- package/dist/{stats-report-BVRCqwWA.mjs → stats-report-Ci6TAfFm.mjs} +1 -1
- package/dist/{status-CIvU5-TF.mjs → status-BG2S-a1d.mjs} +1 -1
- package/dist/{status-CQWmNl1f.mjs → status-C2PdxK6q.mjs} +1 -1
- package/dist/{status-CIg0k7Qb.mjs → status-DEZjHP4q.mjs} +32 -34
- package/dist/{status-watch--rfZynD_.mjs → status-watch-Cs18eFkQ.mjs} +5 -5
- package/dist/status-worker.mjs +1 -1
- package/dist/{stim-desktop-D0P_bzmd.mjs → stim-desktop-DWGAfaud.mjs} +2 -2
- package/dist/{stop-BiI4_VFG.mjs → stop-B2zDplJa.mjs} +2 -2
- package/dist/{stop-C3d5qG7C.mjs → stop-BPrTEOaz.mjs} +16 -16
- package/dist/{stop-BEBBruvD.mjs → stop-DrxHVVX9.mjs} +5 -5
- package/dist/supervisor-run.mjs +15 -15
- package/dist/{support-BJbXovoO.mjs → support-BeVRaMWT.mjs} +13 -14
- package/dist/{support-Vckdzrmk.mjs → support-DBKG3Yyb.mjs} +7 -7
- package/dist/{swiftpm-artifact-inputs-DbuF-Yrr.mjs → swiftpm-artifact-inputs-CfNAb6Vm.mjs} +4 -4
- package/dist/{swiftpm-macos-Bu8xeBfM.mjs → swiftpm-macos-xdHjJHIj.mjs} +11 -11
- package/dist/toolchain-CTsPS5tL.mjs +2 -0
- package/dist/{toolchain-DCnWAxQL.mjs → toolchain-CZvtCZ-m.mjs} +11 -8
- package/dist/trigger-Bp3lruF2.mjs +2 -0
- package/dist/{trigger-BtB4kbe0.mjs → trigger-G_gbfIVB.mjs} +2 -2
- package/dist/{warm-progress-DwsGBpph.mjs → warm-progress-D3a0KviW.mjs} +20 -16
- package/dist/{web-D2En0Wa5.mjs → web-BvAweypa.mjs} +9 -9
- package/dist/web-DDL3usMb.mjs +2 -0
- package/dist/web-run.mjs +8 -8
- package/dist/windows-report.mjs +1 -1
- package/dist/{workspace-state-BhwAJBgA.mjs → workspace-state-CHEN_xzy.mjs} +3 -3
- package/dist/{workspaces-Dh5N70qW.mjs → workspaces-BgAYIccE.mjs} +218 -54
- package/dist/{worktree-DLm4s2Ib.mjs → worktree-C0YZ6mnk.mjs} +1 -1
- package/dist/{worktree-Yw3EW77B.mjs → worktree-kGPE9Pcw.mjs} +339 -37
- package/package.json +7 -7
- package/dist/server-expo-BWJDa7Qb.mjs +0 -2
- package/dist/toolchain-CIRdNl-c.mjs +0 -2
- package/dist/trigger-D8B7QR0q.mjs +0 -2
- package/dist/web-Dpj70t4p.mjs +0 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as ANDROID_AVD_CONFIG_HELP } from "./settings-
|
|
2
|
-
import { i as findProjectRoot$1 } from "./project-
|
|
3
|
-
import { h as RECENT_LAUNCH_MS } from "./eas-session-ledger-
|
|
4
|
-
import { o as guideStatus, t as WATCHMAN_NESTED_WORKTREES } from "./doctor-watchman-
|
|
5
|
-
import "./status-watch
|
|
1
|
+
import { t as ANDROID_AVD_CONFIG_HELP } from "./settings-Cz8kQJzr.mjs";
|
|
2
|
+
import { i as findProjectRoot$1 } from "./project-DIo71tGq.mjs";
|
|
3
|
+
import { h as RECENT_LAUNCH_MS } from "./eas-session-ledger-BDpSdFDM.mjs";
|
|
4
|
+
import { o as guideStatus, t as WATCHMAN_NESTED_WORKTREES } from "./doctor-watchman-B8e3s9ko.mjs";
|
|
5
|
+
import "./status-watch-Cs18eFkQ.mjs";
|
|
6
6
|
import { SETTINGS, SETTINGS_SCHEMA_URL, TUTORIAL_VERSION } from "@stim-cli/core/state";
|
|
7
7
|
import chalk from "chalk";
|
|
8
8
|
//#region src/guide/agent.ts
|
|
@@ -616,8 +616,15 @@ All methods accept signal. run builds, installs and launches. iOS and Android ru
|
|
|
616
616
|
also accept recordedBuild: true, which installs and launches the app the last
|
|
617
617
|
build with the same scheme and configuration (or variant) recorded in this
|
|
618
618
|
workspace, without fingerprinting, building or replacing its JS, and refuses with
|
|
619
|
-
STIM_NO_RECORDED_BUILD when there is none.
|
|
620
|
-
|
|
619
|
+
STIM_NO_RECORDED_BUILD when there is none. They also accept cleanAppState: true,
|
|
620
|
+
which before install uninstalls every other user app except XCUITest runners
|
|
621
|
+
(*.xctrunner) and clears the app's data
|
|
622
|
+
(iOS: defaults, data container and the simulator keychain; Android: pm clear),
|
|
623
|
+
whether or not the install is skipped, on a local simulator or emulator only: a
|
|
624
|
+
run placed on another machine or on EAS is not cleaned. Both refuse device, and
|
|
625
|
+
cleanAppState refuses a local simulator or emulator Stim does not own, with
|
|
626
|
+
STIM_BAD_ARG.
|
|
627
|
+
@stim-cli/ci sets both; the CLI and the private Desktop transport set neither.
|
|
621
628
|
Web requires a running server, just like stim web.
|
|
622
629
|
|
|
623
630
|
build produces an artifact without acquiring a device, starting a runtime, or
|
|
@@ -635,13 +642,18 @@ Build options:
|
|
|
635
642
|
ios: scheme, configuration, arch (arm64, x86_64, all), buildCache, remoteBuild, easProfile
|
|
636
643
|
android: variant, abi (arm64-v8a, armeabi-v7a, x86, x86_64, all), buildCache, remoteBuild, easProfile
|
|
637
644
|
macos: remoteBuild
|
|
638
|
-
An iOS build targets the simulator
|
|
639
|
-
|
|
640
|
-
|
|
645
|
+
An iOS build targets the simulator and defaults to the host architecture in
|
|
646
|
+
every configuration; arch all builds every architecture the project lists. An
|
|
647
|
+
Android Debug build defaults to the host ABI while
|
|
648
|
+
optimizations.android.targetAbiOnly is on, the default; Release defaults to all.
|
|
649
|
+
macOS builds the configured Debug SwiftPM app.
|
|
641
650
|
Build results retain an owned appPath (iOS), apkPath (Android) or bundle (macOS)
|
|
642
|
-
inside this workspace
|
|
643
|
-
|
|
644
|
-
|
|
651
|
+
inside this workspace. An iOS or Android build also records its app in workspace
|
|
652
|
+
state for recordedBuild runs; the last build per scheme and configuration or
|
|
653
|
+
variant wins. A successful build removes the workspace's other copies for its
|
|
654
|
+
platform that no recorded build points to, so a copy lasts until a build replaces
|
|
655
|
+
its record (for macOS, until the next macOS build) or the worktree is removed.
|
|
656
|
+
Copy or export a result you need to keep before the next build. easProfile downloads a
|
|
645
657
|
completed EAS development build instead of compiling; it never starts an EAS build.
|
|
646
658
|
A build leaves a running app's last build record and build log untouched; it
|
|
647
659
|
writes its own build-artifact-<platform>.ndjson. No distribution archive or web build
|
|
@@ -958,12 +970,14 @@ leased until <time>" for each one.`,
|
|
|
958
970
|
the ios.scheme setting; absent for automatic selection;
|
|
959
971
|
not the app URL scheme
|
|
960
972
|
cacheKey the shared-build-cache key derived from it (the
|
|
961
|
-
configuration is part of it: -release-sim vs
|
|
973
|
+
configuration is part of it: -release-sim-arm64 vs
|
|
962
974
|
-debug-sim-arm64). A single-architecture simulator build
|
|
963
|
-
ends in its architecture (-arm64 or -x86-64): a local
|
|
964
|
-
|
|
965
|
-
host's
|
|
966
|
-
|
|
975
|
+
ends in its architecture (-arm64 or -x86-64): a local build
|
|
976
|
+
compiles this machine's in every configuration, a --remote
|
|
977
|
+
build the remote host's (a React Native Release build
|
|
978
|
+
offloaded to a worker may also contain other
|
|
979
|
+
architectures). A build of every architecture the project
|
|
980
|
+
lists (stim build --arch all) has no suffix
|
|
967
981
|
With --eas-profile, fingerprint is computed by EAS CLI using the selected
|
|
968
982
|
profile/environment, and cacheKey identifies the EAS project and build ID
|
|
969
983
|
separately from local native builds. cacheHit is "remote" for the EAS
|
|
@@ -1627,7 +1641,8 @@ RULES
|
|
|
1627
1641
|
invalidProjects { path } the registry key is not absolute
|
|
1628
1642
|
orphanedPorts { project, label, port }
|
|
1629
1643
|
orphanedWorkspaces { dir, projectRoot, bytes } --delete removes the
|
|
1630
|
-
whole workspace directory
|
|
1644
|
+
whole workspace directory; projectRoot is null
|
|
1645
|
+
for an empty directory with no workspace.json
|
|
1631
1646
|
linkedWorktrees { path, idleDays, mergedInto, pullRequest,
|
|
1632
1647
|
pullRequestUnknown, willRemove, reason,
|
|
1633
1648
|
detail, eligibleAt, buildState } mergedInto is the
|
|
@@ -1718,9 +1733,10 @@ RULES
|
|
|
1718
1733
|
whose absolute workspace root is missing on a
|
|
1719
1734
|
mounted volume; --delete forgets the entry
|
|
1720
1735
|
only and contacts no EAS session
|
|
1721
|
-
staleStatusCaches { kind: "disk-usage" | "pull-request"
|
|
1722
|
-
file, bytes } entries of
|
|
1723
|
-
|
|
1736
|
+
staleStatusCaches { kind: "disk-usage" | "pull-request" | "git-merge",
|
|
1737
|
+
path, file, bytes } entries of
|
|
1738
|
+
$STIM_HOME/disk-usage, pull-requests and
|
|
1739
|
+
git-merge whose path is gone from a
|
|
1724
1740
|
mounted volume; --delete removes the file
|
|
1725
1741
|
idleDevices { kind, id, name, project, slot, lastActivityAt,
|
|
1726
1742
|
idleForMs, buildInProgress } booted owned
|
|
@@ -1759,7 +1775,7 @@ RULES
|
|
|
1759
1775
|
workspaceBuildOutputs { dir, projectRoot, inTreeDirs, bytes, idleDays,
|
|
1760
1776
|
willClear, reason, detail } derived-data,
|
|
1761
1777
|
gradle-build, android-cas, cache-provider,
|
|
1762
|
-
macos/build, macos/<Product>.app and
|
|
1778
|
+
js-swap-tmp, macos/build, macos/<Product>.app and
|
|
1763
1779
|
macos/staging-* of each workspace; inTreeDirs
|
|
1764
1780
|
lists the project's android/app/build,
|
|
1765
1781
|
android/build,
|
|
@@ -1855,12 +1871,14 @@ RULES
|
|
|
1855
1871
|
"busy" | "unknown", reclaimable, reason,
|
|
1856
1872
|
detail } without --cache, or with --cache
|
|
1857
1873
|
watchman or gradle-daemons; reclaimable marks
|
|
1858
|
-
the ones gc --delete
|
|
1859
|
-
|
|
1874
|
+
the ones gc --delete would stop (watchman) or
|
|
1875
|
+
gc --delete --cache gradle-daemons would
|
|
1876
|
+
(\`guide cleanup memory\`)
|
|
1860
1877
|
watchmanRoots { path, stale: "missing" | "pruned-worktree" |
|
|
1861
1878
|
null, subscriptions, triggers, removable,
|
|
1862
1879
|
detail } removable marks the stale roots
|
|
1863
|
-
--cache watchman would
|
|
1880
|
+
gc --delete (or --cache watchman) would
|
|
1881
|
+
watch-del
|
|
1864
1882
|
memoryNotices { message } why the memory sweep was skipped
|
|
1865
1883
|
bytes is null when the size is unknown: not measured, or the measurement
|
|
1866
1884
|
failed. idleDays is null when the last use is unknown. listed is false for
|
|
@@ -2846,6 +2864,9 @@ project's before exiting. You get your shell back with a bundler running: no
|
|
|
2846
2864
|
backgrounding idiom, no sleep, no poll loop, and no chance of building against
|
|
2847
2865
|
another worktree's bundler.
|
|
2848
2866
|
|
|
2867
|
+
If Expo cannot be resolved in a linked worktree, run \`stim worktree warm\`
|
|
2868
|
+
there before retrying. The refusal also names dependency installation.
|
|
2869
|
+
|
|
2849
2870
|
--json one line of facts on stdout, everything else on stderr:
|
|
2850
2871
|
{ port, supervisorPid, mode, logsDir, alreadyRunning }
|
|
2851
2872
|
--wait <seconds> how long to wait for server and remote tunnel readiness
|
|
@@ -3014,8 +3035,9 @@ WHAT THE SUPERVISOR IS
|
|
|
3014
3035
|
for the bundle lines.
|
|
3015
3036
|
|
|
3016
3037
|
expo-child and command-child put the Node the app pins (.nvmrc,
|
|
3017
|
-
.node-version, .tool-versions nodejs, or package.json volta.node)
|
|
3018
|
-
|
|
3038
|
+
.node-version, .tool-versions nodejs, or package.json volta.node), looking
|
|
3039
|
+
from the app directory up to its repository or worktree root, first on PATH
|
|
3040
|
+
when an nvm, fnm, Volta, asdf, mise or linked Homebrew
|
|
3019
3041
|
node/node@NN install satisfies the pin and the node already on PATH does
|
|
3020
3042
|
not; the metro log then records a project_node event naming it. When no
|
|
3021
3043
|
install has the version the pin names, the newest install of the pinned
|
|
@@ -4043,7 +4065,8 @@ Branch on the code, never on the message.`,
|
|
|
4043
4065
|
the first diagnostics are the phase names and the last error lines the
|
|
4044
4066
|
script printed, ahead of the compiler diagnostics.
|
|
4045
4067
|
Three Android refusals share this code without gradle itself failing:
|
|
4046
|
-
- NO ANDROID SDK, before gradle starts:
|
|
4068
|
+
- NO ANDROID SDK, before gradle starts: local React Native emulator runs
|
|
4069
|
+
refuse before Metro or device setup. Nothing exists at the SDK path
|
|
4047
4070
|
Stim resolves (ANDROID_HOME, else ANDROID_SDK_ROOT, else the default
|
|
4048
4071
|
location), and there is no android/local.properties. Set ANDROID_HOME to the SDK or write sdk.dir
|
|
4049
4072
|
into android/local.properties; \`stim doctor --platform android\` reports
|
|
@@ -4285,7 +4308,9 @@ too old to speak protocol 2, incompatible
|
|
|
4285
4308
|
toolchain/runtime/CPU, low disk, busy, sync/build failure, artifact failure,
|
|
4286
4309
|
or a checkout that changed while it built. Unsupported build kinds also refuse.
|
|
4287
4310
|
No local xcodebuild, Gradle or SwiftPM compile or alternate machine follows a
|
|
4288
|
-
refusal. For stim
|
|
4311
|
+
refusal. For stim android, a known toolchain refusal on the named machine stops
|
|
4312
|
+
before prebuild; busy, low disk and unreachable are checked again afterward.
|
|
4313
|
+
For stim ios, a toolchain difference on the named machine, such as Xcode,
|
|
4289
4314
|
the simulator runtime or the CPU, refuses before this machine runs prebuild or pod
|
|
4290
4315
|
install, even when prebuild would have produced an app the local cache already holds, or the
|
|
4291
4316
|
machine already holds the exact artifact. A
|
|
@@ -4780,7 +4805,8 @@ so a Debug run on one is wired to a LAN origin instead of localhost.`,
|
|
|
4780
4805
|
owned by this Stim home, or it is not booted or running. Permission and push
|
|
4781
4806
|
also refuse when no app is recorded for the device. Run the platform command
|
|
4782
4807
|
the remedy names (\`stim ios\` or \`stim android\`, with \`--slot\` for a named
|
|
4783
|
-
slot) and retry.
|
|
4808
|
+
slot) and retry. A non-Mac client cannot run a local iOS simulator; run the
|
|
4809
|
+
iOS tool on a Mac with a local Stim-owned simulator. No tool runs before this refusal.`
|
|
4784
4810
|
},
|
|
4785
4811
|
STIM_DEVICE_TOOL_UNSUPPORTED: {
|
|
4786
4812
|
summary: "that device tool has no equivalent on that platform",
|
|
@@ -5562,6 +5588,16 @@ not on any remote" (worktree remove)
|
|
|
5562
5588
|
source path and warm cannot move it, it prints "removed <dir>/Pods/Manifest.lock
|
|
5563
5589
|
so pod install runs" and \`stim ios\` runs \`pod install\`.
|
|
5564
5590
|
|
|
5591
|
+
"carry left out <app>/<platform>: <reason>"
|
|
5592
|
+
The app is an Expo project whose ios/ or android/ Git ignores, and Stim
|
|
5593
|
+
cannot show the source checkout's copy was generated from the app's current
|
|
5594
|
+
inputs: Stim has no prebuild record for it, its last prebuild did not
|
|
5595
|
+
finish, or the record names an earlier native fingerprint. Warm does not
|
|
5596
|
+
copy it, so the first \`stim <platform>\` in this worktree generates it
|
|
5597
|
+
fresh. Nothing to fix. To let later warms copy it, delete <platform>/ in
|
|
5598
|
+
the source checkout and run \`stim <platform>\` there, so Stim generates it
|
|
5599
|
+
fresh and records that.
|
|
5600
|
+
|
|
5565
5601
|
"carry carried <dir>/Pods but there is no <dir>/Podfile.lock"
|
|
5566
5602
|
Warm copied Pods but the destination has no Podfile.lock. Follow the printed
|
|
5567
5603
|
pod-install command before building.
|
|
@@ -6189,7 +6225,9 @@ not the caller's. The returned fingerprint remains null; transfer digests never
|
|
|
6189
6225
|
become reusable APK cache keys. Workers with native-gradle-peer-cache can offer a
|
|
6190
6226
|
completed APK for declared source and resolved variant, ABI and build options,
|
|
6191
6227
|
rechecking current private inputs against the saved receipt at offer and fetch.
|
|
6192
|
-
|
|
6228
|
+
When this machine has a JDK, native-gradle-peer-jdk also selects that exact
|
|
6229
|
+
JDK major for the private-input check. Older workers skip this lookup and use
|
|
6230
|
+
normal build placement. A hit skips source upload and compilation even while that worker is busy or
|
|
6193
6231
|
this machine has room. A miss follows normal placement; older Gradle workers
|
|
6194
6232
|
still build normally. Off mode, explicit local builds and disabled remote cache
|
|
6195
6233
|
reads skip peer lookup. Hosts without native-gradle-build refuse before upload.
|
|
@@ -6218,6 +6256,7 @@ cleanup stops that workspace, including resources created before a build fails.
|
|
|
6218
6256
|
|
|
6219
6257
|
Or install npm install --global @stim-cli/ci and use stim-ci directly.
|
|
6220
6258
|
Platforms: ios, android, macos, web. Everything after -- is argv, not a shell.
|
|
6259
|
+
Without --, run installs and launches the app, then stops it with exit code 0.
|
|
6221
6260
|
build is the only step that compiles (or restores from the cache, or with
|
|
6222
6261
|
--eas-profile downloads an EAS development build). It records the app for this
|
|
6223
6262
|
checkout, platform and selectors (iOS scheme and configuration, Android variant)
|
|
@@ -6228,6 +6267,16 @@ Metro from run. With no recorded build for the selectors, run refuses with
|
|
|
6228
6267
|
STIM_NO_RECORDED_BUILD and names the stim-ci build command. Build and run must
|
|
6229
6268
|
share the Stim home (--home or STIM_HOME). macOS and web run unchanged: macOS
|
|
6230
6269
|
run builds the app itself.
|
|
6270
|
+
Every iOS and Android run on this machine starts from clean app state, even when
|
|
6271
|
+
the install is skipped: it uninstalls every other user app except XCUITest runners
|
|
6272
|
+
(*.xctrunner), clears the app's defaults and data
|
|
6273
|
+
container and resets the simulator keychain on iOS, and runs pm clear on Android.
|
|
6274
|
+
A run that ios.remote or android.remote places on another machine or on EAS is
|
|
6275
|
+
not cleaned. build always compiles on this machine and ignores remote.build. An
|
|
6276
|
+
iOS build, and an Android Debug build, target this machine's architecture only;
|
|
6277
|
+
when run can land on
|
|
6278
|
+
another machine or on EAS, build with --arch all (iOS) or --abi all (Android).
|
|
6279
|
+
Plain stim ios and stim android clean only a device they adopt.
|
|
6231
6280
|
build exports nothing unless --export <path> is given (an APK, or a tar.gz).
|
|
6232
6281
|
--artifacts selects a directory for result, test and diagnostic files; without
|
|
6233
6282
|
it none are written, no logs are copied and the action uploads nothing.
|
|
@@ -6690,8 +6739,10 @@ ${HOSTED_RECORDING("simulator")}
|
|
|
6690
6739
|
|
|
6691
6740
|
If hosting.agentDriver is none, the driver cannot enforce its policy, or the
|
|
6692
6741
|
host does not advertise hosted-ios-agent, agent reports
|
|
6693
|
-
{ driver: 'none', setting: 'hosting.agentDriver' }.
|
|
6694
|
-
|
|
6742
|
+
{ driver: 'none', setting: 'hosting.agentDriver' }. A run whose host disables
|
|
6743
|
+
the driver prints a notice; plain status also names the host setting when
|
|
6744
|
+
agent control is unavailable. Update the host and check its setting and
|
|
6745
|
+
agent-device installation. No other simulator becomes reachable.
|
|
6695
6746
|
Client hello carries only name and version, not features, so the host cannot gate
|
|
6696
6747
|
daemon startup or grant issuance on client support. The client checks the host's
|
|
6697
6748
|
hosted-ios-agent feature before using a grant.
|
|
@@ -7067,7 +7118,7 @@ result as proof instead of requiring an unrelated screenshot.`
|
|
|
7067
7118
|
at adoption renamed for the adopting workspace, then, inside the boot
|
|
7068
7119
|
the run pays anyway, \`simctl privacy reset all\` and
|
|
7069
7120
|
\`simctl keychain reset\`; at install, every other user app
|
|
7070
|
-
is uninstalled, and this workspace's app, when it is
|
|
7121
|
+
except XCUITest runners (*.xctrunner) is uninstalled, and this workspace's app, when it is
|
|
7071
7122
|
installed, has its preferences domain deleted (an
|
|
7072
7123
|
expo-dev-client app's is replaced by the two dev-menu-off
|
|
7073
7124
|
keys, see \`guide facts devmenu\`) and its data
|
|
@@ -7735,7 +7786,7 @@ WHAT MAKES THE CACHE ACTUALLY HIT: .FINGERPRINTIGNORE
|
|
|
7735
7786
|
looks exactly like a cache that is not there.
|
|
7736
7787
|
|
|
7737
7788
|
Stim ignores paths a fresh checkout never has and no native Debug build
|
|
7738
|
-
reads: android/local.properties, android/.idea, *.xcodeproj/xcuserdata, and,
|
|
7789
|
+
reads: android/local.properties, android/.idea, *.xcodeproj/xcuserdata, .git (and its contents), .expo, and,
|
|
7739
7790
|
while a .gitignore pattern matches them (even when committed), the
|
|
7740
7791
|
\`react-native bundle\` output ios/main.jsbundle and ios/assets. A project
|
|
7741
7792
|
does not repeat those.
|
|
@@ -8048,7 +8099,7 @@ OPT-IN CONCURRENCY LIMITS (UNLIMITED BY DEFAULT)
|
|
|
8048
8099
|
summary: "every flag per command, Android variants and flavors, the per-run simulator model, runtime and system image",
|
|
8049
8100
|
body: () => `THE OPTION SURFACE, IN FULL
|
|
8050
8101
|
start --json --wait <seconds> --remote --reset-cache
|
|
8051
|
-
ios --remote-build <local|auto|remote|remote-only|name> --slot <name> --json --plan --no-metro-check --no-build-cache --scheme <name> --configuration <name> --device-type <name> --runtime <version> --simulator-app <xcode|siniulator|stim-desktop> --device [udid] --wait <seconds> --no-wait --remote <eas|proxy|local|auto|remote|remote-only|machine>
|
|
8102
|
+
ios --remote-build <local|auto|remote|remote-only|name> --slot <name> --json --plan --no-metro-check --no-build-cache --scheme <name> --configuration <name> --device-type <name> --runtime <version> --install-runtime --simulator-app <xcode|siniulator|stim-desktop> --device [udid] --wait <seconds> --no-wait --remote <eas|proxy|local|auto|remote|remote-only|machine>
|
|
8052
8103
|
android --remote-build <local|auto|remote|remote-only|name> --slot <name> --json --plan --no-metro-check --no-build-cache --variant <name> --system-image <id> --device-profile <id> --device [serial] --wait <seconds> --no-wait --remote <proxy|eas|local|auto|remote|remote-only|machine>
|
|
8053
8104
|
ios/android --wait bounds owned-device slot waits (default 600s), or physical
|
|
8054
8105
|
leases with --device (default 60s). Remote targets do not join this local
|
|
@@ -8226,16 +8277,18 @@ OPT-IN CONCURRENCY LIMITS (UNLIMITED BY DEFAULT)
|
|
|
8226
8277
|
|
|
8227
8278
|
Warm copies installed dependencies, Pods, native output, and other ignored
|
|
8228
8279
|
paths eligible under the source checkout's Git ignore rules, including .env
|
|
8229
|
-
and local configuration. The source's nonempty
|
|
8230
|
-
|
|
8231
|
-
|
|
8232
|
-
|
|
8233
|
-
|
|
8234
|
-
|
|
8235
|
-
|
|
8236
|
-
|
|
8237
|
-
|
|
8238
|
-
|
|
8280
|
+
and local configuration. The source's nonempty .worktreeexclude replaces its
|
|
8281
|
+
resolved worktree.exclude setting. Nested registered worktrees and ignored
|
|
8282
|
+
entries named .DS_Store, .DerivedData, .idea, .jj or .pnpm-store are not
|
|
8283
|
+
copied, and neither are android/build/generated/autolinking and .expo/types.
|
|
8284
|
+
Warm never walks a copied directory, so a .DS_Store or .idea inside a copied
|
|
8285
|
+
directory stays. Warm deletes only these paths from the copy: .pnpm-store in
|
|
8286
|
+
a copied node_modules (pnpm refills it from the network or its global
|
|
8287
|
+
store), the autolinking directory under a copied android, android/build or
|
|
8288
|
+
android/build/generated (Gradle regenerates it for the destination checkout
|
|
8289
|
+
on its next build), types in a copied .expo (Expo Router's typed routes,
|
|
8290
|
+
possibly generated from the source's older routes; Expo regenerates them on
|
|
8291
|
+
the destination's first expo start), and the
|
|
8239
8292
|
expo-modules-jsi/apple/.DerivedData Xcode build state, directly under
|
|
8240
8293
|
node_modules or in the pnpm virtual store. An ignored directory that Git
|
|
8241
8294
|
reports above those names (for example an app directory with no tracked
|
|
@@ -8243,9 +8296,9 @@ OPT-IN CONCURRENCY LIMITS (UNLIMITED BY DEFAULT)
|
|
|
8243
8296
|
$STIM_HOME/trash and a detached, low-priority rm deletes them after warm
|
|
8244
8297
|
returns (through the programmatic API, before the call resolves); when the
|
|
8245
8298
|
rename is not possible (Windows, $STIM_HOME on another volume), warm deletes
|
|
8246
|
-
them before it returns. Warm also skips paths
|
|
8247
|
-
|
|
8248
|
-
|
|
8299
|
+
them before it returns. Warm also skips paths overlapping a nested
|
|
8300
|
+
destination worktree or below a symlink ancestor. Tracked .idea settings
|
|
8301
|
+
come from Git and stay untouched by warm.
|
|
8249
8302
|
|
|
8250
8303
|
A carried ios/Pods still names the source checkout's path in its generated
|
|
8251
8304
|
files and in the checksum of a podspec that embeds that path (the
|
|
@@ -8265,6 +8318,17 @@ OPT-IN CONCURRENCY LIMITS (UNLIMITED BY DEFAULT)
|
|
|
8265
8318
|
cannot (stale node_modules, a leftover path, an error), warm deletes
|
|
8266
8319
|
ios/Pods/Manifest.lock so \`stim ios\` runs \`pod install\`.
|
|
8267
8320
|
|
|
8321
|
+
In an Expo project whose ios/ or android/ Git ignores, warm copies that
|
|
8322
|
+
directory only when the source's last Stim prebuild of it ran on the app's
|
|
8323
|
+
current native fingerprint, and records the same prebuild in the worktree.
|
|
8324
|
+
Otherwise it leaves the directory out and prints
|
|
8325
|
+
"carry left out <app>/<platform>: <reason>"; the first
|
|
8326
|
+
\`stim <platform>\` there generates it fresh. A directory generated outside
|
|
8327
|
+
Stim has no record and is left out. To make it eligible, delete it in the
|
|
8328
|
+
source checkout and run \`stim <platform>\` there so Stim generates it
|
|
8329
|
+
fresh; running Stim over the existing directory records it as current even
|
|
8330
|
+
when it came from an older template.
|
|
8331
|
+
|
|
8268
8332
|
Other generated state stays eligible: .gradle, .cxx, *.tsbuildinfo, build
|
|
8269
8333
|
directories, and embedded JavaScript need project-specific decisions about
|
|
8270
8334
|
regeneration. Native intermediates can record the source checkout's paths;
|
|
@@ -8328,6 +8392,26 @@ OPT-IN CONCURRENCY LIMITS (UNLIMITED BY DEFAULT)
|
|
|
8328
8392
|
ios.runtime, android.systemImage, android.deviceProfile) for that one
|
|
8329
8393
|
invocation, exactly as \`--configuration\` overrides ios.configuration.
|
|
8330
8394
|
|
|
8395
|
+
\`stim ios --runtime 26.5 --install-runtime --remote local\` installs that
|
|
8396
|
+
missing iOS runtime with Xcode, then continues the run. Use
|
|
8397
|
+
\`--remote <mac>\` for a named approved hosting Mac, including from Linux.
|
|
8398
|
+
ios.autoInstallRuntime enables the same opt-in for an explicit ios.runtime
|
|
8399
|
+
or --runtime version; it defaults to false. Installation requires an exact
|
|
8400
|
+
major.minor[.patch] version, about 8-10 GB to download (actual size varies),
|
|
8401
|
+
and at least 20 GB free on the simulator volume for download and unpacking.
|
|
8402
|
+
A child-aware ownership claim serializes Stim installs in this Mac's Stim
|
|
8403
|
+
home and the installer takes an available build slot. Run output shows
|
|
8404
|
+
Xcode progress locally and periodic waiting messages remotely; status shows
|
|
8405
|
+
the install phase and remote machine. Without opt-in, a missing runtime
|
|
8406
|
+
still refuses. Automatic placement, eas/proxy and physical-device runs do
|
|
8407
|
+
not install runtimes: choose --remote local or one named Mac first.
|
|
8408
|
+
Xcode Settings > Components lists downloadable versions supported by Xcode;
|
|
8409
|
+
Stim retains Xcode's error for unavailable versions. Installed versions
|
|
8410
|
+
appear in stim doctor and xcrun simctl list runtimes. Runtimes are shared
|
|
8411
|
+
Xcode components, not Stim-owned devices: remove them manually through
|
|
8412
|
+
Xcode Settings > Components after checking other workspaces no longer need
|
|
8413
|
+
them. Stim does not prune them.
|
|
8414
|
+
|
|
8331
8415
|
A name that is not INSTALLED on this machine refuses with STIM_BAD_ARG
|
|
8332
8416
|
before anything is created, and the message lists the installed names, so a
|
|
8333
8417
|
wrong guess is one command, not a created simulator. A blank value is the
|
|
@@ -8730,6 +8814,9 @@ THE POOL: WHICH DEVICE AN ID-LESS \`--device\` PICKS
|
|
|
8730
8814
|
alive on the device rather than by a bundle fetch. Device logs are still
|
|
8731
8815
|
collected, so \`logs --errors\` answers "does it repro in release/Hermes
|
|
8732
8816
|
bytecode".
|
|
8817
|
+
EAS and proxy adapters cannot verify a release or native process launch:
|
|
8818
|
+
launched stays "unverified" with a notice that process verification is
|
|
8819
|
+
unavailable. These adapters collect no device logs or native crash reports.
|
|
8733
8820
|
|
|
8734
8821
|
On a release CACHE HIT the cached APK carries its BUILDER's baked-in JS, so
|
|
8735
8822
|
it is never installed as-is. Stim copies it aside, regenerates this
|
|
@@ -8740,7 +8827,11 @@ THE POOL: WHICH DEVICE AN ID-LESS \`--device\` PICKS
|
|
|
8740
8827
|
mmaps it), then zipaligns and re-signs with apksigner. The keystore defaults
|
|
8741
8828
|
to android/app/debug.keystore with the standard password; android.keystore /
|
|
8742
8829
|
android.keystorePassword override it (see \`guide settings\`). The cache
|
|
8743
|
-
entry itself is never modified.
|
|
8830
|
+
entry itself is never modified. The bundler runs with TMPDIR set to the
|
|
8831
|
+
workspace's js-swap-tmp/, which holds Metro's default cache; Stim empties it
|
|
8832
|
+
when an EXPO_PUBLIC_ value, EXPO_NO_DOTENV, NODE_ENV or a .env* file in the
|
|
8833
|
+
project root differs from the previous swap's. A metro.config.js that sets
|
|
8834
|
+
its own cacheStores keeps its own cache location.
|
|
8744
8835
|
|
|
8745
8836
|
AN EXPO-UPDATES APP GETS A FRESH EMBEDDED UPDATE. expo-updates launches the
|
|
8746
8837
|
update with the newest commitTime for the binary's runtime version, and the
|
|
@@ -8792,13 +8883,16 @@ THE POOL: WHICH DEVICE AN ID-LESS \`--device\` PICKS
|
|
|
8792
8883
|
skips Metro ENTIRELY: no gate, no port wiring, no dev-client deep link (a
|
|
8793
8884
|
plain \`simctl launch\`), and the payload says \`metroPort: null\` --
|
|
8794
8885
|
\`launched\` is verified by the app PROCESS staying alive, not by a bundle
|
|
8795
|
-
fetch. The build cache keys on the configuration
|
|
8796
|
-
|
|
8797
|
-
|
|
8886
|
+
fetch. The build cache keys on the configuration and this Mac's simulator
|
|
8887
|
+
architecture, the only one a local build compiles
|
|
8888
|
+
(\`<fingerprint>-release-sim-arm64\`), and because a cached Release .app
|
|
8889
|
+
carries its builder's baked-in JS, a cache hit regenerates THIS workspace's bundle
|
|
8798
8890
|
(the project's own \`expo export:embed\` / \`react-native bundle\`, plus
|
|
8799
8891
|
its own hermesc when Hermes is enabled) into a copy of the artifact,
|
|
8800
8892
|
refreshes an expo-updates manifest as described above, re-signs it and
|
|
8801
|
-
installs that
|
|
8893
|
+
installs that. Like the Android swap, it bundles with a workspace-private
|
|
8894
|
+
default Metro cache that is emptied when the EXPO_PUBLIC_ values,
|
|
8895
|
+
EXPO_NO_DOTENV, NODE_ENV or .env* files change. Any swap failure falls back to a full build
|
|
8802
8896
|
rather than ever installing stale JS. A simulator Release build can run on
|
|
8803
8897
|
a remote machine (stim guide settings, remote.build), which bundles the JS
|
|
8804
8898
|
of the checkout it synced, its gitignored .env.production files included,
|
|
@@ -9049,8 +9143,9 @@ In on mode a pass runs, cheapest to rebuild first:
|
|
|
9049
9143
|
3. build-cache and Metro entries, least recently used first, down to
|
|
9050
9144
|
maintenance.capTargetPercent of caches.buildCacheMaxGb or
|
|
9051
9145
|
caches.metroCacheMaxGb, and entries unused for olderThanDays
|
|
9052
|
-
4. the Swift compilation cache, emptied whole
|
|
9053
|
-
|
|
9146
|
+
4. the Swift compilation cache, emptied whole once it is over
|
|
9147
|
+
caches.swiftCompilationCacheMaxGb (default 0, no cap), whatever the free
|
|
9148
|
+
disk, and kept while an iOS build holds its shared
|
|
9054
9149
|
claim (taken for each xcodebuild run that compiles with it) or that
|
|
9055
9150
|
claim is unresolved; the emptying holds the exclusive claim
|
|
9056
9151
|
5. linked worktrees whose branch or pull request finished (gc's finished
|
|
@@ -9248,8 +9343,9 @@ WHAT RECLAIMS AN OWNED DEVICE
|
|
|
9248
9343
|
shuts DOWN (never deletes) owned devices with no
|
|
9249
9344
|
driver, claim or activity for that long
|
|
9250
9345
|
|
|
9251
|
-
\`gc --delete
|
|
9252
|
-
|
|
9346
|
+
\`gc --delete\` also shuts down an unused watchman daemon, and \`gc --delete
|
|
9347
|
+
--cache gradle-daemons\` stops idle Gradle and Kotlin daemons. They are shared
|
|
9348
|
+
helper processes, not devices (\`guide cleanup memory\`).
|
|
9253
9349
|
|
|
9254
9350
|
\`worktree remove\` and \`gc --delete\` are the only two commands that delete;
|
|
9255
9351
|
\`gc --delete\` deletes worktrees only through \`worktree remove\`. \`gc
|
|
@@ -9722,8 +9818,15 @@ ORPHANED WORKSPACE DIRECTORIES
|
|
|
9722
9818
|
"Orphaned workspace directories" when the recorded project root is gone,
|
|
9723
9819
|
its volume is mounted, no registry key equals it or sits under it, and the
|
|
9724
9820
|
workspace is not in use. \`gc --delete\` re-checks each one, then removes
|
|
9725
|
-
it. A directory with
|
|
9726
|
-
|
|
9821
|
+
it. A directory with an unparseable workspace.json, or a root on an
|
|
9822
|
+
unmounted volume, is reported under Skipped and never deleted.
|
|
9823
|
+
A directory with no workspace.json that holds only leftovers of a removed
|
|
9824
|
+
workspace is reported the same way: maintenance.ndjson, log-error-index.json,
|
|
9825
|
+
ended-agents.json, empty lock files and an agent-device directory with no
|
|
9826
|
+
running daemon. It counts as gone when it is empty, or when the project
|
|
9827
|
+
root its maintenance log names maps to the directory name and is gone. Any
|
|
9828
|
+
other file (state.json, for one), a held lock or a log naming no root keeps
|
|
9829
|
+
it under Skipped. The empty directory report has no project root.
|
|
9727
9830
|
|
|
9728
9831
|
DELETED WORKTREES STILL REGISTERED
|
|
9729
9832
|
A worktree deleted outside Stim keeps its registry entry; \`stim status\`
|
|
@@ -9758,9 +9861,11 @@ TMPDIR LEFTOVERS
|
|
|
9758
9861
|
STALE STATUS CACHE ENTRIES
|
|
9759
9862
|
\`stim status\` caches each folder's size under $STIM_HOME/disk-usage and
|
|
9760
9863
|
each worktree's pull request under $STIM_HOME/pull-requests, which the
|
|
9761
|
-
maintenance worktree check and \`gc --delete\` also write.
|
|
9864
|
+
maintenance worktree check and \`gc --delete\` also write. The merge check
|
|
9865
|
+
caches each worktree's verdict under $STIM_HOME/git-merge. \`worktree
|
|
9762
9866
|
remove\` drops the entries of the worktree it removed (its checkout,
|
|
9763
|
-
node_modules and workspace folder,
|
|
9867
|
+
node_modules and workspace folder, its pull request and its merge
|
|
9868
|
+
verdict), not the size
|
|
9764
9869
|
entries of its owned devices' data folders. \`gc\` reports the
|
|
9765
9870
|
entries of a folder or worktree that was removed some other way under "Stale
|
|
9766
9871
|
status cache entries", and \`gc --delete\` removes them. An entry counts as
|
|
@@ -9819,6 +9924,10 @@ WHICH stim-* DEVICES gc DELETES
|
|
|
9819
9924
|
\`rm -rf <dir>\` for AVD data with no registration), and
|
|
9820
9925
|
never runs it. Boot, shutdown and teardown re-check ownership by the same
|
|
9821
9926
|
rule, so a device that stops matching is left alone.
|
|
9927
|
+
With STIM_HOME set, gc skips the device sweep because simulators and AVDs
|
|
9928
|
+
are machine-global, but pruning a dead project still deletes the devices its
|
|
9929
|
+
record marks as owned. gc lists them as to be deleted under "Device sweep
|
|
9930
|
+
notices"; every other stim-* device is reported as not touched.
|
|
9822
9931
|
|
|
9823
9932
|
ANDROID DATA WITHOUT A REGISTRATION
|
|
9824
9933
|
\`gc\` also reports stim-*.avd directories whose .ini registration is
|
|
@@ -9838,6 +9947,9 @@ BUILD LOCKS
|
|
|
9838
9947
|
\`gc --delete\` clears them. A lock whose builder IS running is a build in
|
|
9839
9948
|
progress -- it is named in the report and touched by nothing, because
|
|
9840
9949
|
removing it would put a second workspace on the same compile.
|
|
9950
|
+
\`gc --delete\` also removes the empty directories under ~/.stim/process-locks
|
|
9951
|
+
that removed projects and worktrees leave behind; it never touches a lock
|
|
9952
|
+
that holds a claim.
|
|
9841
9953
|
|
|
9842
9954
|
DEVICE LEASES
|
|
9843
9955
|
A workspace can hold a timed lease on a physical device. The lease is one
|
|
@@ -9988,7 +10100,7 @@ THE ONE CASE GC WILL NOT REAP
|
|
|
9988
10100
|
Wall-clock timestamps and command names are not ownership proof.`
|
|
9989
10101
|
},
|
|
9990
10102
|
memory: {
|
|
9991
|
-
summary: "watchman and Gradle and Kotlin daemon memory in gc, and when gc --delete --cache
|
|
10103
|
+
summary: "watchman and Gradle and Kotlin daemon memory in gc, and when gc --delete and gc --delete --cache gradle-daemons stop them",
|
|
9992
10104
|
body: () => `MEMORY
|
|
9993
10105
|
Every \`gc\` without --cache, and \`gc --cache watchman\` or
|
|
9994
10106
|
\`gc --cache gradle-daemons\`, reports the long-lived helpers that grow while
|
|
@@ -9996,19 +10108,22 @@ THE ONE CASE GC WILL NOT REAP
|
|
|
9996
10108
|
daemons. Each line gives the pid, physical footprint (the measure status
|
|
9997
10109
|
uses; resident size when the footprint cannot be read), uptime and whether
|
|
9998
10110
|
it is idle, and a kept one says why. The reclaimable line totals what
|
|
9999
|
-
the
|
|
10111
|
+
the commands below would free now.
|
|
10000
10112
|
|
|
10001
|
-
|
|
10002
|
-
|
|
10003
|
-
|
|
10113
|
+
Watchman is stopped by a plain \`gc --delete\` and by \`gc --delete --cache
|
|
10114
|
+
watchman\`; \`--cache all\` and every other \`--cache\` value leave it alone.
|
|
10115
|
+
The Gradle and Kotlin daemons are stopped only by \`--cache gradle-daemons\`:
|
|
10116
|
+
stim gc --delete (or: stim gc --delete --cache watchman)
|
|
10004
10117
|
runs \`watchman watch-del\` on each stale root
|
|
10005
10118
|
with no subscription or trigger, then
|
|
10006
10119
|
\`watchman shutdown-server\` only when
|
|
10007
10120
|
\`debug-status\` lists no client but gc's own
|
|
10008
|
-
call
|
|
10009
|
-
|
|
10010
|
-
|
|
10011
|
-
|
|
10121
|
+
call, every root's subscriptions and
|
|
10122
|
+
triggers were readable and no root has a
|
|
10123
|
+
trigger; otherwise the daemon is kept and
|
|
10124
|
+
the report names each client, as the Stim
|
|
10125
|
+
workspace whose dev server it belongs to
|
|
10126
|
+
where it can
|
|
10012
10127
|
stim gc --delete --cache gradle-daemons
|
|
10013
10128
|
stops each Gradle daemon its own
|
|
10014
10129
|
\`gradle --status\` reports IDLE, then each
|
|
@@ -10118,7 +10233,7 @@ a changed value.
|
|
|
10118
10233
|
|
|
10119
10234
|
WORKSPACE BUILD OUTPUTS
|
|
10120
10235
|
Each workspace directory holds derived-data/, gradle-build/, android-cas/,
|
|
10121
|
-
cache-provider/, macos/build, the staged macos/<Product>.app and macos/staging-*
|
|
10236
|
+
cache-provider/, js-swap-tmp/, macos/build, the staged macos/<Product>.app and macos/staging-*
|
|
10122
10237
|
leftovers. The project's own android/app/build, android/build,
|
|
10123
10238
|
android/.gradle and .build count with them when git ignores every file in
|
|
10124
10239
|
the directory and tracks none; one that fails that check, or is not in a
|
|
@@ -10235,8 +10350,13 @@ DEVICE RECORDINGS
|
|
|
10235
10350
|
stays.
|
|
10236
10351
|
|
|
10237
10352
|
SHARED BUILD CACHES
|
|
10238
|
-
The caches that make a second workspace fast are alive by design and
|
|
10239
|
-
|
|
10353
|
+
The caches that make a second workspace fast are alive by design and, with
|
|
10354
|
+
one exception, not touched by a plain \`gc --delete\`. The exception is the
|
|
10355
|
+
Swift compilation cache (the Xcode CAS under $STIM_HOME/compilation-cache):
|
|
10356
|
+
once it is over caches.swiftCompilationCacheMaxGb (default 0, no cap), a
|
|
10357
|
+
plain \`gc --delete\` empties it whole, since age trimming would corrupt its
|
|
10358
|
+
index. It is kept, with the build named, while an iOS build holds its shared
|
|
10359
|
+
claim or that claim is unresolved. Every \`gc\` run reports them anyway,
|
|
10240
10360
|
each row tagged (registered) or (detected), with its size:
|
|
10241
10361
|
stim gc # report, caches included
|
|
10242
10362
|
stim gc --delete --older-than 30 # trim entries nothing has used
|
|
@@ -10363,6 +10483,15 @@ KEYS STIM READS
|
|
|
10363
10483
|
The \`--runtime\` flag overrides this per invocation,
|
|
10364
10484
|
and an uninstalled version refuses the same way,
|
|
10365
10485
|
naming the layer the value came from
|
|
10486
|
+
ios.autoInstallRuntime false (default). With true and an explicit ios.runtime
|
|
10487
|
+
or --runtime version, install a missing iOS runtime
|
|
10488
|
+
with Xcode on the local or named approved Mac before
|
|
10489
|
+
continuing. --install-runtime opts in for one run.
|
|
10490
|
+
Requires 20 GB free for download and unpacking;
|
|
10491
|
+
typically downloads 8-10 GB (actual size varies).
|
|
10492
|
+
Automatic placement, eas/proxy and physical phones
|
|
10493
|
+
do not install runtimes. Shared runtimes are removed
|
|
10494
|
+
manually in Xcode Settings > Components.
|
|
10366
10495
|
ios.scheme e.g. "RNTester" -- the shared Xcode scheme to build
|
|
10367
10496
|
when the workspace lists several and none matches
|
|
10368
10497
|
its name, which otherwise refuses with
|
|
@@ -10376,7 +10505,7 @@ KEYS STIM READS
|
|
|
10376
10505
|
(simulator only). Committing
|
|
10377
10506
|
{ "ios": { "configuration": "Release" } } makes every
|
|
10378
10507
|
\`stim ios\` in the app a release-shaped build:
|
|
10379
|
-
embedded JS, no Metro, cache keyed -release-sim
|
|
10508
|
+
embedded JS, no Metro, cache keyed -release-sim-<arch>, and
|
|
10380
10509
|
a JS-bundle swap on cache hits. The \`--configuration\`
|
|
10381
10510
|
flag overrides this per invocation. Unset means Debug.
|
|
10382
10511
|
ios.remote where the simulator runs, with the same meaning as
|
|
@@ -11330,7 +11459,7 @@ stats. A listed paired name with a cache hit compiles nothing, contacts no worke
|
|
|
11330
11459
|
and records buildMachine with builtOn absent. Build failures retain the selected
|
|
11331
11460
|
value; builtOn is here or the configured machine entry when compilation ran.
|
|
11332
11461
|
Prebuild and pod install still run on this machine before a named offload; stim ios
|
|
11333
|
-
|
|
11462
|
+
and stim android check the machine's toolchain first. A refusal
|
|
11334
11463
|
starts no local xcodebuild, Gradle or SwiftPM compile.
|
|
11335
11464
|
A React Native offload sends the tracked and untracked files, and the gitignored
|
|
11336
11465
|
files the native fingerprint hashes or the Expo config reads, such as .env.local
|
|
@@ -11424,7 +11553,9 @@ do not query peer caches. Older workers continue normal placement. This peer
|
|
|
11424
11553
|
lookup also covers declared native Gradle worker APKs when the worker supports
|
|
11425
11554
|
native-gradle-peer-cache. It rechecks current private inputs against the saved
|
|
11426
11555
|
receipt at offer and fetch for the requested source, resolved variant, ABI and
|
|
11427
|
-
build options.
|
|
11556
|
+
build options. With a known local JDK, lookup also requires native-gradle-peer-jdk
|
|
11557
|
+
and rechecks on that exact JDK major; older workers use normal build placement.
|
|
11558
|
+
Caller fingerprints stay null; worker keys stay worker-scoped.
|
|
11428
11559
|
React Native and Expo development builds also query enabled paired workers
|
|
11429
11560
|
with react-native-peer-cache after local and configured-provider misses. Their
|
|
11430
11561
|
post-mutation fingerprint, native build choices and compatible toolchain must
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { d as throwIfCancelled } from "./exec-
|
|
2
|
-
import { l as call, u as connectHost } from "./hosted-client-
|
|
3
|
-
import { a as requestHostedMetro } from "./metro-request-
|
|
4
|
-
import { a as stopHostedNative, i as prepareHostedNative, r as placeHostedNative } from "./hosted-native-
|
|
1
|
+
import { d as throwIfCancelled } from "./exec-L37dbiIb.mjs";
|
|
2
|
+
import { l as call, u as connectHost } from "./hosted-client-B_h_bTlz.mjs";
|
|
3
|
+
import { a as requestHostedMetro } from "./metro-request-BWCl3Zco.mjs";
|
|
4
|
+
import { a as stopHostedNative, i as prepareHostedNative, r as placeHostedNative } from "./hosted-native-B6ur_0OJ.mjs";
|
|
5
5
|
//#region src/device-host/hosted-android.ts
|
|
6
6
|
async function prepareHostedAndroid(machine, selectors, recorded, mode) {
|
|
7
7
|
return await prepareHostedNative(machine, selectors, recorded, "android", false, mode);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { d as throwIfCancelled, l as cancellableSleep } from "./exec-
|
|
2
|
-
import { F as diagnoseConnectFailure, q as resolveEndpoint } from "./config-
|
|
3
|
-
import { t as BuildConnection } from "./client-
|
|
4
|
-
import { nt as configuredMachines } from "./support-
|
|
1
|
+
import { d as throwIfCancelled, l as cancellableSleep } from "./exec-L37dbiIb.mjs";
|
|
2
|
+
import { F as diagnoseConnectFailure, q as resolveEndpoint } from "./config-CNmN-ndb.mjs";
|
|
3
|
+
import { t as BuildConnection } from "./client-qwmHFSga.mjs";
|
|
4
|
+
import { nt as configuredMachines } from "./support-BeVRaMWT.mjs";
|
|
5
5
|
import { createHash } from "node:crypto";
|
|
6
6
|
import { lstatSync, readFileSync, readdirSync, readlinkSync } from "node:fs";
|
|
7
7
|
import { join } from "node:path";
|