stim 1.24.0 → 1.25.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/dist/{acquire-artifact-CEs02U2o.mjs → acquire-artifact-zA4S7RHE.mjs} +1 -1
- package/dist/{act-Cyvm8xYc.mjs → act-BbHS3oV8.mjs} +12 -12
- package/dist/{activity-Dq3ZcdD8.mjs → activity-BpjwrQXU.mjs} +3 -3
- package/dist/{agent-device-usage-output-CccomeE0.mjs → agent-device-usage-output-Bnkerfod.mjs} +3 -3
- package/dist/{android-BZppyPe_.mjs → android-BGwuK3Mc.mjs} +41 -36
- package/dist/{android-DcztblCT.mjs → android-CNZgRC-4.mjs} +5 -5
- package/dist/{android-882m4hxX.mjs → android-Cjcj8MCw.mjs} +2 -2
- package/dist/{android-cas-BtCOrNqb.mjs → android-cas-BVqh2Zep.mjs} +1 -1
- package/dist/{android-project-DVWyCbWU.d.mts → android-project-CTYaETc0.d.mts} +6 -2
- package/dist/{android-CX5IcRuf.mjs → android-saBeB4lr.mjs} +1 -1
- package/dist/api.d.mts +1 -1
- package/dist/api.mjs +22 -22
- package/dist/{artifact-BR5VNArK.mjs → artifact-Co8zixVx.mjs} +14 -13
- package/dist/{artifact-Bdt_n9Jc.mjs → artifact-DN8JNwqS.mjs} +13 -13
- package/dist/{browser-web-ycg9qWB8.mjs → browser-web-CCgZsHmI.mjs} +10 -10
- package/dist/{budget-dPGuhNai.mjs → budget-HyShrIpL.mjs} +62 -21
- package/dist/{build-CaF574eS.mjs → build-CAiw8Ezm.mjs} +22 -21
- package/dist/{build-cache-HFUQ9eLz.mjs → build-cache-CKCzxzxA.mjs} +22 -4
- package/dist/{build-plan-JsDUq4w1.mjs → build-plan-zCuHGlA8.mjs} +5 -5
- package/dist/{ccache-CCn1S6qG.mjs → ccache-h1FKhZeg.mjs} +3 -3
- package/dist/{cli-xqAidP7O.mjs → cli-C4w607Pz.mjs} +17 -17
- package/dist/cli.mjs +1 -1
- package/dist/{client-18-ZowoT.mjs → client-BQsmyp_-.mjs} +26 -17
- package/dist/collector-run.mjs +2 -2
- package/dist/{command-output-DxC0k2rk.mjs → command-output-BBvS1H6v.mjs} +1 -1
- package/dist/{dependency-state-C56ll9hY.mjs → dependency-state-BwNCYG5Q.mjs} +1 -1
- package/dist/{dev-client-w_fok0Ek.mjs → dev-client-CHoXXZeg.mjs} +2 -2
- package/dist/{device-BktRGdjS.mjs → device-B9FqTBYW.mjs} +64 -33
- package/dist/{device-4RUugw5X.mjs → device-F5-4z9ef.mjs} +13 -13
- package/dist/{device-capacity-Ic-kdmEV.mjs → device-capacity-ZYaRALv5.mjs} +7 -7
- package/dist/device-host-worker.mjs +10 -10
- package/dist/{device-ios-DzpSlZyd.mjs → device-ios-DkHBrmvH.mjs} +27 -16
- package/dist/{device-lease-run-DUtkbqBQ.mjs → device-lease-run-ogEeJ62K.mjs} +4 -4
- package/dist/{device-pool-CgBHk401.mjs → device-pool-BIg8MU8l.mjs} +2 -2
- package/dist/{doctor-BZ6oxNum.mjs → doctor-A_Nr_fDe.mjs} +1 -1
- package/dist/{doctor-C33AzVfR.mjs → doctor-Bm8TVpGn.mjs} +27 -21
- package/dist/doctor-fingerprint.mjs +1 -1
- package/dist/{doctor-DZgpqR6J.mjs → doctor-k3P3PizH.mjs} +12 -12
- package/dist/{doctor-watchman-B453A231.mjs → doctor-watchman-BovI1y3-.mjs} +3 -3
- package/dist/{eas-build-CxKUNHsb.mjs → eas-build-CyDKNTBP.mjs} +2 -2
- package/dist/{eas-fallback-LMxk9Kw0.mjs → eas-fallback-gaZi-dJL.mjs} +12 -11
- package/dist/{eas-session-ledger-Ck6YXPAO.mjs → eas-session-ledger-BMCA1gdO.mjs} +3 -3
- package/dist/{error-diagnostics-BkKCZq4P.mjs → error-diagnostics-B1Mj_-7h.mjs} +7 -7
- package/dist/{errors-ccaPc4ox.mjs → errors-DHm_U5gv.mjs} +2 -1
- package/dist/{gc-yVKpAOKM.mjs → gc-B9jcnmIk.mjs} +15 -15
- package/dist/{gc-DDWEAj0w.mjs → gc-eaz403W6.mjs} +2 -2
- package/dist/{guide-Bggftwc5.mjs → guide-DR0K0xW9.mjs} +113 -37
- package/dist/{hosted-android-D4dweBof.mjs → hosted-android-Bvb2-ZxD.mjs} +3 -3
- package/dist/{hosted-client-BBTVe3X6.mjs → hosted-client-rsRqysJc.mjs} +2 -2
- package/dist/{hosted-ios-Sn0djzg8.mjs → hosted-ios-RtVcJH3u.mjs} +1 -1
- package/dist/{hosted-logs-CYIZ5ubJ.mjs → hosted-logs-CWKGYWNX.mjs} +4 -4
- package/dist/{hosted-macos-CXjsUNBR.mjs → hosted-macos-d0pv9Tth.mjs} +5 -5
- package/dist/{hosted-native-Doxbfzem.mjs → hosted-native-BxTizGU2.mjs} +6 -6
- package/dist/{idle-shutdown-BInjLKqm.mjs → idle-shutdown-BIyfl0Zj.mjs} +6 -6
- package/dist/{ios-CVUFFZ6C.mjs → ios-BQzvJlzw.mjs} +59 -11
- package/dist/{ios-B1FXRCMX.mjs → ios-BRVM8b0P.mjs} +37 -32
- package/dist/{ios-BItP6lkn.mjs → ios-Dvt97HgQ.mjs} +8 -8
- package/dist/{ios-device-BI38NFFH.mjs → ios-device-CKSvk0bu.mjs} +1 -1
- package/dist/{ios-project-KYqeJURj.mjs → ios-project-DCUDo06I.mjs} +4 -4
- package/dist/{ios-state-DlElquYD.mjs → ios-state-CT9nV5SP.mjs} +1 -1
- package/dist/{js-swap-BvrQvXHY.mjs → js-swap-Z9HbC4cj.mjs} +4 -4
- package/dist/{launch-SfzGH_s9.mjs → launch-D0lPvFFu.mjs} +16 -16
- package/dist/{launch-BVlyQw3T.mjs → launch-DscF1QfM.mjs} +35 -35
- package/dist/{logs-DXE32kyb.mjs → logs-BsIRre8x.mjs} +7 -7
- package/dist/{logs-ovlU7m7N.mjs → logs-Crs9y34Z.mjs} +5 -5
- package/dist/{macos-B3BveDrU.mjs → macos-CcUlJPMu.mjs} +1 -1
- package/dist/{macos-CCfhb-jT.mjs → macos-D477nfzH.mjs} +17 -17
- package/dist/macos-run.mjs +1 -1
- package/dist/maintenance-run.mjs +5 -5
- package/dist/{metro-Bu8LBfzS.mjs → metro-1pJgCX4U.mjs} +1 -1
- package/dist/{metro-gateway-DtsOy-0P.mjs → metro-gateway-Bp9gJQAN.mjs} +1 -1
- package/dist/{named-ports-BWDuU5oQ.mjs → named-ports-BVbn8SvC.mjs} +1 -1
- package/dist/{native-android-96BBizbq.mjs → native-android-BvMizJn1.mjs} +14 -14
- package/dist/{native-gradle-artifact-inputs-BcLYBZil.mjs → native-gradle-artifact-inputs-BJscK4vN.mjs} +3 -3
- package/dist/{native-run-BmH7U8pr.mjs → native-run-D5OJsGwA.mjs} +2 -2
- package/dist/{native-runtime-DgtJkzIa.mjs → native-runtime-B9w_Qyz3.mjs} +6 -6
- package/dist/{native-xcode-inputs-irplbQb0.mjs → native-xcode-inputs-Cv4l-obn.mjs} +1 -1
- package/dist/{native-xcode-ios-BY-6hh6M.mjs → native-xcode-ios-DGrg90hE.mjs} +17 -16
- package/dist/offload-worker.d.mts +5 -2
- package/dist/offload-worker.mjs +21 -20
- package/dist/{ownership-DxlZGDcV.mjs → ownership-jxxz-19m.mjs} +2 -2
- package/dist/{phone-reverses-BdsdesVF.mjs → phone-reverses-CYb7RRAx.mjs} +2 -2
- package/dist/{placement-log-DUvqqsB-.mjs → placement-log-DjOXJRIH.mjs} +1 -1
- package/dist/{plan-placement-4axc0Hs7.mjs → plan-placement-BqKgKHCi.mjs} +3 -3
- package/dist/{ports-D-E_OiAO.mjs → ports-DtS1Amb0.mjs} +2 -2
- package/dist/{prebuild-DmVCf5xb.mjs → prebuild-JUaqOLpc.mjs} +6 -6
- package/dist/{project-Dz-hWkb-.mjs → project-BiC68mIp.mjs} +14 -14
- package/dist/{react-native-android-DOinxgwB.mjs → react-native-android-DRYqoJc4.mjs} +23 -22
- package/dist/{react-native-build-AuCu-aAP.mjs → react-native-build-CwZB-agu.mjs} +6 -6
- package/dist/{react-native-doctor-2ivJUmwZ.mjs → react-native-doctor-BCrytK7h.mjs} +6 -6
- package/dist/{react-native-ios-D5zTIuH8.mjs → react-native-ios-Cr1buNFo.mjs} +18 -17
- package/dist/{recordings-CdPwYwvs.mjs → recordings-BaoQ0t-J.mjs} +1 -1
- package/dist/{reload-Ck9RJeSq.mjs → reload-Beftw2X3.mjs} +1 -1
- package/dist/{reload-C1TTVesC.mjs → reload-FbSgMF8x.mjs} +13 -13
- package/dist/{remote-DEZ7AOVq.mjs → remote-BuZj6AyU.mjs} +15 -6
- package/dist/{result-DqBrb12U.mjs → result-CR2vk2cj.mjs} +14 -14
- package/dist/{run-BIwoU44q.mjs → run-BtzE09Dl.mjs} +1 -1
- package/dist/{selection-BLtvaqxc.mjs → selection-D5cxEl3t.mjs} +2 -2
- package/dist/{server-bare-Z1ToVLPn.mjs → server-bare-CH9X0RLn.mjs} +55 -3
- package/dist/{server-command-C0pmjNdG.mjs → server-command-CaBbDNU2.mjs} +4 -4
- package/dist/server-expo-C16Zf2k7.mjs +2 -0
- package/dist/{server-expo-Tt_hLRpy.mjs → server-expo-Ck8EIidM.mjs} +8 -6
- package/dist/{settings-RKwY33wv.mjs → settings-B5tCoq9N.mjs} +58 -60
- package/dist/{settings-kkt0vP4w.mjs → settings-DzH9mGQZ.mjs} +1 -1
- package/dist/{settings-write--gj6MACV.mjs → settings-write-n0zwfohx.mjs} +3 -3
- package/dist/settings.schema.json +38 -0
- package/dist/{simslim-CdWKT3vA.mjs → simslim-BjxszUAb.mjs} +20 -5
- package/dist/{slot-launch-A1BgotaM.mjs → slot-launch-QeuJMlnJ.mjs} +5 -5
- package/dist/{stage-ERTMh88n.mjs → stage-D8xlRU2D.mjs} +1 -1
- package/dist/{start-Bmg_qmHi.mjs → start-C1JLjkNw.mjs} +1 -1
- package/dist/{start-BKGrEhzG.mjs → start-YMpNwLhh.mjs} +7 -7
- package/dist/{state-B1ig0Kqy.mjs → state-DMRNP7-4.mjs} +2 -2
- package/dist/{state-BfAltYJP.mjs → state-DPaM3u5K.mjs} +1 -1
- package/dist/{stats-B-ckuiUg.mjs → stats-CP7STzZw.mjs} +3 -3
- package/dist/{status-DfFp6a76.mjs → status-CRLiJ-O_.mjs} +19 -19
- package/dist/{status-Pw-807f0.mjs → status-cNw6i0_t.mjs} +1 -1
- package/dist/{status-watch-XC7F-AMf.mjs → status-watch-Bc2J4TZn.mjs} +4 -4
- package/dist/status-worker.mjs +1 -1
- package/dist/{stop-BFu7X_Do.mjs → stop-Br7LKxBE.mjs} +2 -2
- package/dist/{stop-DhclRwOO.mjs → stop-COP6PQqw.mjs} +4 -4
- package/dist/{stop-CL1kDHds.mjs → stop-Db9Kh-UA.mjs} +69 -50
- package/dist/supervisor-run.mjs +13 -13
- package/dist/{support-B3tzVhKn.mjs → support-Cxj9CmII.mjs} +4 -4
- package/dist/{support-B1W-hmC2.mjs → support-qKcbgmI5.mjs} +14 -11
- package/dist/{swiftpm-artifact-inputs-BWYPj9Sn.mjs → swiftpm-artifact-inputs-iY9fsmOc.mjs} +1 -1
- package/dist/{swiftpm-macos-BVCP5mO4.mjs → swiftpm-macos-Bp_sn9P4.mjs} +8 -8
- package/dist/{toolchain-BjgKdoEf.mjs → toolchain-DB1aeqxO.mjs} +1 -1
- package/dist/{toolchain-D3bmRMia.mjs → toolchain-VzLJzZ7O.mjs} +14 -3
- package/dist/{warm-progress-ol0ZypEu.mjs → warm-progress-BV3ZPmcY.mjs} +3 -3
- package/dist/{web-BH7peScT.mjs → web-B4Yjyt1G.mjs} +6 -6
- package/dist/web-DS4UDWvf.mjs +2 -0
- package/dist/web-run.mjs +3 -3
- package/dist/{workspace-state-CeBpIZgr.mjs → workspace-state-CPSp3mav.mjs} +1 -1
- package/dist/{workspaces-CSV2Orf4.mjs → workspaces-C9w4aeXF.mjs} +10 -10
- package/dist/{worktree-Dw8kfacb.mjs → worktree-CclFIe1Z.mjs} +25 -25
- package/dist/{worktree-DEDUzO_L.mjs → worktree-Ct9Gk3KL.mjs} +1 -1
- package/dist/{xcode-DHu41qQ4.mjs → xcode-CiIIDnuD.mjs} +4 -4
- package/package.json +7 -7
- package/shim/bundle-response.cjs +53 -1
- package/shim/bundle-response.d.cts +1 -1
- package/shim/expo-metro-config.cjs +23 -1
- package/dist/server-expo-CEntXzRw.mjs +0 -2
- package/dist/web-BdOFlTJr.mjs +0 -2
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { Y as doctorIo, _ as loadConfig$1, p as getProject } from "./config-BZhXY15H.mjs";
|
|
2
|
-
import { f as refuseNoProject, l as phaseLine } from "./command-output-
|
|
3
|
-
import {
|
|
4
|
-
import { f as projectRegistry, t as NO_PROJECT_REFUSAL } from "./project-
|
|
5
|
-
import { c as inspectStimVersions, s as compareStimVersions } from "./eas-session-ledger-
|
|
6
|
-
import { a as inspectBudget,
|
|
7
|
-
import { B as readMemoryCulpritsAsync, f as listAllIosSimsAsync, h as listIosRuntimesAsync, l as iosRuntimeMatches, x as pickDefaultIosCreation
|
|
8
|
-
import { c as detectXcodeMajorAsync } from "./xcode-
|
|
9
|
-
import { s as offloadCheck } from "./client-
|
|
10
|
-
import { l as inspectBuildMachines, p as inspectDeviceHostMachines } from "./selection-
|
|
2
|
+
import { f as refuseNoProject, l as phaseLine } from "./command-output-BBvS1H6v.mjs";
|
|
3
|
+
import { Nt as repoRoot, R as projectSettingsContextAsync } from "./settings-B5tCoq9N.mjs";
|
|
4
|
+
import { f as projectRegistry, t as NO_PROJECT_REFUSAL } from "./project-BiC68mIp.mjs";
|
|
5
|
+
import { c as inspectStimVersions, s as compareStimVersions } from "./eas-session-ledger-BMCA1gdO.mjs";
|
|
6
|
+
import { a as inspectBudget, dr as inspectWatchmanMemory, hr as memorySweepIsScoped, n as budgetLine } from "./budget-HyShrIpL.mjs";
|
|
7
|
+
import { B as memoryCulpritFindings, V as readMemoryCulpritsAsync, f as listAllIosSimsAsync, h as listIosRuntimesAsync, l as iosRuntimeMatches, x as pickDefaultIosCreation } from "./ios-BQzvJlzw.mjs";
|
|
8
|
+
import { c as detectXcodeMajorAsync } from "./xcode-CiIIDnuD.mjs";
|
|
9
|
+
import { s as offloadCheck } from "./client-BQsmyp_-.mjs";
|
|
10
|
+
import { l as inspectBuildMachines, p as inspectDeviceHostMachines } from "./selection-D5cxEl3t.mjs";
|
|
11
11
|
import { r as maintenanceStatus, t as maintenanceLine } from "./status-Fect2w9R.mjs";
|
|
12
|
-
import { a as writeIgnoreDirs, c as recordDoctorRun, i as watchedCheckouts, n as inspectNestedWorktrees, r as nestedWorktreeFinding } from "./doctor-watchman-
|
|
13
|
-
import { c as checkWorktreeStorageLayout, l as readMachineSettings, o as runDoctor } from "./doctor-
|
|
14
|
-
import { h as resolveDeviceType, v as resolveRuntime } from "./support-
|
|
12
|
+
import { a as writeIgnoreDirs, c as recordDoctorRun, i as watchedCheckouts, n as inspectNestedWorktrees, r as nestedWorktreeFinding } from "./doctor-watchman-BovI1y3-.mjs";
|
|
13
|
+
import { c as checkWorktreeStorageLayout, l as readMachineSettings, o as runDoctor } from "./doctor-Bm8TVpGn.mjs";
|
|
14
|
+
import { h as resolveDeviceType, v as resolveRuntime } from "./support-qKcbgmI5.mjs";
|
|
15
15
|
import { isJsonObject, maintenanceNdjsonFile, readHostedAppMetadata, readHostedSessions } from "@stim-cli/core/state";
|
|
16
16
|
import { dirname, join, sep } from "path";
|
|
17
17
|
import chalk from "chalk";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { E as upsertProject, O as withConfigLockAsync$1, d as getConfigDir, p as getProject } from "./config-BZhXY15H.mjs";
|
|
2
2
|
import { l as gitQuietAsync } from "./operation-exec-CUZifp6Z.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { f as projectRegistry } from "./project-
|
|
5
|
-
import { d as parseWatchRoots, m as runWatchman, s as compareStimVersions } from "./eas-session-ledger-
|
|
3
|
+
import { Dt as listWorktreesAsync, Pt as repoRootAsync } from "./settings-B5tCoq9N.mjs";
|
|
4
|
+
import { f as projectRegistry } from "./project-BiC68mIp.mjs";
|
|
5
|
+
import { d as parseWatchRoots, m as runWatchman, s as compareStimVersions } from "./eas-session-ledger-BMCA1gdO.mjs";
|
|
6
6
|
import { mkdirSync, readFileSync, realpathSync, renameSync, rmSync, unlinkSync, writeFileSync } from "node:fs";
|
|
7
7
|
import { dirname, isAbsolute, join, relative, sep } from "node:path";
|
|
8
8
|
import { isJsonObject } from "@stim-cli/core/state";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { D as ownership_claim_exports, c as throwIfCancelled, t as getExecutor } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { a as killOnAbort, r as childEnvironment } from "./operation-exec-CUZifp6Z.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { M as acquireBuildLock, P as releaseBuildLock } from "./activity-
|
|
3
|
+
import { Xn as resolveEasCliBin, ar as easCliUpgradeRemedy, er as remoteCliInvocation, ir as easCliSupport } from "./budget-HyShrIpL.mjs";
|
|
4
|
+
import { M as acquireBuildLock, P as releaseBuildLock } from "./activity-BpjwrQXU.mjs";
|
|
5
5
|
import { createHash } from "node:crypto";
|
|
6
6
|
import { existsSync, realpathSync, statSync } from "node:fs";
|
|
7
7
|
//#region src/engine/eas-build.ts
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { c as throwIfCancelled, t as getExecutor } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { _ as loadConfig$1, p as getProject } from "./config-BZhXY15H.mjs";
|
|
3
3
|
import { r as childEnvironment } from "./operation-exec-CUZifp6Z.mjs";
|
|
4
|
-
import {
|
|
5
|
-
import { M as readMetroTunnel, P as readRemoteSession } from "./project-
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { f as hostingMachines, i as namedBuildMachine, s as resolveBuildMachine } from "./selection-
|
|
9
|
-
import { c as call, l as connectHost, p as requireHostedAppMode } from "./hosted-client-
|
|
10
|
-
import { c as writeHostedNativeAsync, r as readHostedNative } from "./ios-state-
|
|
11
|
-
import { i as prepareHostedNative } from "./hosted-native-
|
|
12
|
-
import { c as peekDeviceSlots } from "./device-capacity-
|
|
4
|
+
import { lt as detectProviders, ut as planMetroReach } from "./settings-B5tCoq9N.mjs";
|
|
5
|
+
import { M as readMetroTunnel, P as readRemoteSession } from "./project-BiC68mIp.mjs";
|
|
6
|
+
import { Gn as isEasAuthFailureText, Wt as readInstalledEasCliVersionAsync, Xn as resolveEasCliBin, ir as easCliSupport, nr as MIN_EAS_CLI_DEVICE_VERSION, rr as MIN_EAS_CLI_SIMULATOR_VERSION, s as peekBudget, tr as remoteCommand } from "./budget-HyShrIpL.mjs";
|
|
7
|
+
import { L as readHostMemoryPressureAsync } from "./ios-BQzvJlzw.mjs";
|
|
8
|
+
import { f as hostingMachines, i as namedBuildMachine, s as resolveBuildMachine } from "./selection-D5cxEl3t.mjs";
|
|
9
|
+
import { c as call, l as connectHost, p as requireHostedAppMode } from "./hosted-client-rsRqysJc.mjs";
|
|
10
|
+
import { c as writeHostedNativeAsync, r as readHostedNative } from "./ios-state-CT9nV5SP.mjs";
|
|
11
|
+
import { i as prepareHostedNative } from "./hosted-native-BxTizGU2.mjs";
|
|
12
|
+
import { c as peekDeviceSlots } from "./device-capacity-ZYaRALv5.mjs";
|
|
13
13
|
import { ambientEnv } from "@stim-cli/core";
|
|
14
14
|
import { automaticMachineEnabled, isJsonObject, machineCapacity, parseHostedChoice, parseHostedNativeOffer } from "@stim-cli/core/state";
|
|
15
15
|
//#region src/device-host/placement.ts
|
|
@@ -219,10 +219,11 @@ function viaEas(code, reason, skipped) {
|
|
|
219
219
|
skipped
|
|
220
220
|
};
|
|
221
221
|
}
|
|
222
|
-
async function automaticDevicePlacement({ root, slot, platform, selectors, appMode, buildMachine, noWait, eas, signal }, { machines = () => hostingMachines(void 0, signal), read = readHostedNative, write = writeHostedNativeAsync, resume = prepareHostedNative, peek = () => peekDeviceSlots({
|
|
222
|
+
async function automaticDevicePlacement({ root, slot, platform, selectors, appMode, buildMachine, noWait, eas, signal, localSims }, { machines = () => hostingMachines(void 0, signal), read = readHostedNative, write = writeHostedNativeAsync, resume = prepareHostedNative, peek = () => peekDeviceSlots({
|
|
223
223
|
platform,
|
|
224
224
|
project: getProject(root),
|
|
225
|
-
slot
|
|
225
|
+
slot,
|
|
226
|
+
...localSims ? { sources: { sims: localSims } } : {}
|
|
226
227
|
}), capacity = machineCapacity, memory = () => readHostMemoryPressureAsync(void 0, void 0, signal), probe = probeHost, budget = (projectRoot) => peekBudget(projectRoot, {}, ambientEnv(), signal) } = {}) {
|
|
227
228
|
const recorded = read(root, platform, slot)[slot];
|
|
228
229
|
if (recorded) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { C as reportSignal, t as getExecutor } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { l as workspaceAgentDeviceDir, v as withDirLock$1, y as withDirLockAsync$1 } from "./paths-DQtTgsBf.mjs";
|
|
3
3
|
import { G as projectDeviceSlots, V as deviceSlotKey } from "./config-BZhXY15H.mjs";
|
|
4
|
-
import { a as formatElapsed, o as formatLongDuration, r as clockTime, u as plural } from "./command-output-
|
|
5
|
-
import { n as isInsideProject } from "./metro-
|
|
6
|
-
import { r as cdpEndpoint } from "./state-
|
|
4
|
+
import { a as formatElapsed, o as formatLongDuration, r as clockTime, u as plural } from "./command-output-BBvS1H6v.mjs";
|
|
5
|
+
import { n as isInsideProject } from "./metro-1pJgCX4U.mjs";
|
|
6
|
+
import { r as cdpEndpoint } from "./state-DMRNP7-4.mjs";
|
|
7
7
|
import { accessSync, constants, existsSync, mkdirSync, realpathSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
8
8
|
import { delimiter, dirname, join, resolve } from "node:path";
|
|
9
9
|
import { workspaceId } from "@stim-cli/core";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { H as deviceSlotPlatforms, V as deviceSlotKey, p as getProject } from "./config-BZhXY15H.mjs";
|
|
3
|
-
import { v as launchErrorPreview } from "./command-output-
|
|
4
|
-
import { r as readWorkspaceState$1 } from "./workspace-state-
|
|
5
|
-
import { I as readWorkspaceLaunches } from "./project-
|
|
6
|
-
import { o as androidHome, u as androidToolCwd } from "./android-
|
|
7
|
-
import { d as resolveProjectMetro } from "./metro-
|
|
8
|
-
import { i as parseLogcatLine, n as androidLogGroups, r as isAndroidCrashText } from "./android-
|
|
9
|
-
import { S as parseLease, v as deviceLeasePath, y as fileLeaseIo } from "./activity-
|
|
3
|
+
import { v as launchErrorPreview } from "./command-output-BBvS1H6v.mjs";
|
|
4
|
+
import { r as readWorkspaceState$1 } from "./workspace-state-CPSp3mav.mjs";
|
|
5
|
+
import { I as readWorkspaceLaunches } from "./project-BiC68mIp.mjs";
|
|
6
|
+
import { o as androidHome, u as androidToolCwd } from "./android-Cjcj8MCw.mjs";
|
|
7
|
+
import { d as resolveProjectMetro } from "./metro-1pJgCX4U.mjs";
|
|
8
|
+
import { i as parseLogcatLine, n as androidLogGroups, r as isAndroidCrashText } from "./android-saBeB4lr.mjs";
|
|
9
|
+
import { S as parseLease, v as deviceLeasePath, y as fileLeaseIo } from "./activity-BpjwrQXU.mjs";
|
|
10
10
|
import { r as deviceConsoleLevel } from "./ios-device-B6HK951C.mjs";
|
|
11
11
|
import { createHash, randomUUID } from "node:crypto";
|
|
12
12
|
import { existsSync, readFileSync, renameSync } from "node:fs";
|
|
@@ -179,11 +179,12 @@ function metroStoreConfirmedRoot(line) {
|
|
|
179
179
|
const root = line.slice(51).trim();
|
|
180
180
|
return root === "" ? null : root;
|
|
181
181
|
}
|
|
182
|
-
function expoMetroStoreEnv({ root, storeRoot, adapterPath, existingOverride }) {
|
|
182
|
+
function expoMetroStoreEnv({ root, port, storeRoot, adapterPath, existingOverride }) {
|
|
183
183
|
return {
|
|
184
184
|
EXPO_OVERRIDE_METRO_CONFIG: adapterPath,
|
|
185
185
|
STIM_METRO_STORE: storeRoot,
|
|
186
186
|
STIM_PROJECT_ROOT: root,
|
|
187
|
+
STIM_METRO_PORT: String(port),
|
|
187
188
|
...existingOverride ? { STIM_EXPO_METRO_CONFIG: existingOverride } : {}
|
|
188
189
|
};
|
|
189
190
|
}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { D as ownership_claim_exports, S as process_identity_exports, c as throwIfCancelled, l as WorkspaceProcessCleanupError, m as declareSpawnsOn, t as getExecutor, v as stopDeclaringSpawnsOn, x as withDrainingCancellation } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { d as workspaceDir } from "./paths-DQtTgsBf.mjs";
|
|
3
3
|
import { F as isOnMountedVolume, G as projectDeviceSlots, I as listMountedVolumes, L as measuredDirectorySizeAsync, N as directorySizeAsync, O as withConfigLockAsync$1, P as formatBytes, R as volumeRootFor, S as removeProject, _ as loadConfig$1, d as getConfigDir, j as acquireAvdClaim } from "./config-BZhXY15H.mjs";
|
|
4
|
-
import { d as quotedPath$1, h as shortUdid, o as formatLongDuration, u as plural } from "./command-output-
|
|
4
|
+
import { d as quotedPath$1, h as shortUdid, o as formatLongDuration, u as plural } from "./command-output-BBvS1H6v.mjs";
|
|
5
5
|
import { t as runOperationFile } from "./operation-exec-CUZifp6Z.mjs";
|
|
6
|
-
import { u as workspaceLastUsed } from "./workspace-state-
|
|
7
|
-
import {
|
|
8
|
-
import { i as findProjectRoot$1, v as detectIsExpo } from "./project-
|
|
9
|
-
import { F as listAvdsAsync, L as listOrphanedAvdDirectories, V as ownedAvdDirectory, ft as POOL_SETTING_REMEDY, h as avdNameAbsent, vt as parkedMaxSetting } from "./android-
|
|
6
|
+
import { u as workspaceLastUsed } from "./workspace-state-CPSp3mav.mjs";
|
|
7
|
+
import { Dt as listWorktreesAsync, Lt as resolveSourceCheckoutAsync } from "./settings-B5tCoq9N.mjs";
|
|
8
|
+
import { i as findProjectRoot$1, v as detectIsExpo } from "./project-BiC68mIp.mjs";
|
|
9
|
+
import { F as listAvdsAsync, L as listOrphanedAvdDirectories, V as ownedAvdDirectory, ft as POOL_SETTING_REMEDY, h as avdNameAbsent, vt as parkedMaxSetting } from "./android-Cjcj8MCw.mjs";
|
|
10
10
|
import { n as forgetCreatedDeviceAsync, r as readCreatedDevices$1 } from "./created-devices-D2Aca-xu.mjs";
|
|
11
|
-
import { n as easMachineStateRoot$1, o as removeEasSessionClaimAsync, r as readEasSessionLedger$1 } from "./eas-session-ledger-
|
|
12
|
-
import { $ as includesArchives, At as findStaleDeviceRecords, C as collectIdleDevices, Ct as deleteParkedSims, D as idleDeviceLines, Dt as deviceSweepIsScoped, Et as describeUnverifiableDevices, Ft as deleteEasSessions, It as describeError, Jt as withEasProjectLock, Lt as withRemoteSessionGcLocks, Mt as unverifiedDeviceCommand, Nt as withAndroidAvdSizes, O as parseIdleDuration, Ot as eraseParkedDevices, Pt as collectEasSessionSweep, Q as emptyCaches,
|
|
11
|
+
import { n as easMachineStateRoot$1, o as removeEasSessionClaimAsync, r as readEasSessionLedger$1 } from "./eas-session-ledger-BMCA1gdO.mjs";
|
|
12
|
+
import { $ as includesArchives, At as findStaleDeviceRecords, C as collectIdleDevices, Cr as discoverCaches, Ct as deleteParkedSims, D as idleDeviceLines, Dt as deviceSweepIsScoped, Et as describeUnverifiableDevices, Ft as deleteEasSessions, It as describeError, Jt as withEasProjectLock, Lt as withRemoteSessionGcLocks, Mt as unverifiedDeviceCommand, Nt as withAndroidAvdSizes, O as parseIdleDuration, Ot as eraseParkedDevices, Pt as collectEasSessionSweep, Q as emptyCaches, St as deleteParkedAvds, Tr as sizeCaches, _r as reclaimMemory, _t as collectInventory, at as previewScopedEmptying, br as phase, bt as collectParkedAvds, ct as trimCaches, dt as deleteGradleVersions, et as includesParkedDevices, fr as memoryCacheKind, ft as gradleVersionLines, gr as memoryWorkPending, gt as getMachineCacheReport, hr as memorySweepIsScoped, it as planCacheEmptying, jt as findStaleProjectDevices, k as shutDownIdleDevices, kt as findOrphanedDevices, lt as collectGradleVersions, mr as memoryScope, mt as includesGradleVersions, nt as includesWorkspaceOutputs, ot as selectCaches, pr as memoryLines, pt as gradleVersionsPending, rt as isWorkspacesScope, sr as parseArchiveSelector, st as selectsBeyondCaches, tt as includesRecordings, ur as collectMemoryReport, vr as scopedMemoryReport, vt as DEVICE_LIST_TIMEOUT_MS, w as collectIdleDevicesAsync, wt as deleteProjectDevices, xt as collectParkedSims, yt as collectDeviceLeases, zn as runProcessOperation } from "./budget-HyShrIpL.mjs";
|
|
13
13
|
import { t as canonicalPath } from "./paths-BsJMoPP2.mjs";
|
|
14
|
-
import { B as GC_OUTPUT, R as listBuildSlots, V as createGcResults, a as collectWorkspaceOutputs, c as listWorkspaceDirs, h as workspaceInUseAsync, i as collectOrphanedWorkspaces, l as rootPresence, n as WORKSPACE_OUTPUT_DIRS, o as deleteOrphanedWorkspaces, p as withIdleWorkspace, r as clearWorkspaceOutputs, s as isInsideWorkspaces, t as REBUILD_COST, u as sizeText } from "./workspaces-
|
|
15
|
-
import { N as listBuildLocks, k as removeExpiredLease } from "./activity-
|
|
16
|
-
import { d as listAllIosSims, f as listAllIosSimsAsync } from "./ios-
|
|
17
|
-
import { r as readCollectors } from "./ownership-
|
|
18
|
-
import { C as reclaimProject, S as describeDereferenced, T as sweepArchiveStaging, a as matchWorktreeEntry, b as TRASH_MANIFEST, v as TRASH_CLAIMS, w as deleteSelectedArchives, x as deleteTrashEntry } from "./worktree-
|
|
19
|
-
import { s as writeCacheFile } from "./warm-progress-
|
|
20
|
-
import { _ as collectWorktreeSweep, a as previewMaintenance, b as worktreeRemovalReason, c as deleteTempLeftovers, d as ARTIFACT_DIRS, f as appRoots, g as candidateRootsAsync, h as ownedDeviceUsage, l as tempLeftoverLines, o as triggeringRoot, p as finishedWorkspaces, s as collectTempLeftovers, t as deleteIdleWorkspaceDevices, u as tempLeftoverSection, v as removeWorktrees, y as worktreePullRequestNote } from "./act-
|
|
21
|
-
import { i as getSwiftpmCacheUsage, n as swiftpmCacheLines, r as getAgentDeviceUsage, t as agentDeviceLines } from "./agent-device-usage-output-
|
|
14
|
+
import { B as GC_OUTPUT, R as listBuildSlots, V as createGcResults, a as collectWorkspaceOutputs, c as listWorkspaceDirs, h as workspaceInUseAsync, i as collectOrphanedWorkspaces, l as rootPresence, n as WORKSPACE_OUTPUT_DIRS, o as deleteOrphanedWorkspaces, p as withIdleWorkspace, r as clearWorkspaceOutputs, s as isInsideWorkspaces, t as REBUILD_COST, u as sizeText } from "./workspaces-C9w4aeXF.mjs";
|
|
15
|
+
import { N as listBuildLocks, k as removeExpiredLease } from "./activity-BpjwrQXU.mjs";
|
|
16
|
+
import { d as listAllIosSims, f as listAllIosSimsAsync } from "./ios-BQzvJlzw.mjs";
|
|
17
|
+
import { r as readCollectors } from "./ownership-jxxz-19m.mjs";
|
|
18
|
+
import { C as reclaimProject, S as describeDereferenced, T as sweepArchiveStaging, a as matchWorktreeEntry, b as TRASH_MANIFEST, v as TRASH_CLAIMS, w as deleteSelectedArchives, x as deleteTrashEntry } from "./worktree-CclFIe1Z.mjs";
|
|
19
|
+
import { s as writeCacheFile } from "./warm-progress-BV3ZPmcY.mjs";
|
|
20
|
+
import { _ as collectWorktreeSweep, a as previewMaintenance, b as worktreeRemovalReason, c as deleteTempLeftovers, d as ARTIFACT_DIRS, f as appRoots, g as candidateRootsAsync, h as ownedDeviceUsage, l as tempLeftoverLines, o as triggeringRoot, p as finishedWorkspaces, s as collectTempLeftovers, t as deleteIdleWorkspaceDevices, u as tempLeftoverSection, v as removeWorktrees, y as worktreePullRequestNote } from "./act-BbHS3oV8.mjs";
|
|
21
|
+
import { i as getSwiftpmCacheUsage, n as swiftpmCacheLines, r as getAgentDeviceUsage, t as agentDeviceLines } from "./agent-device-usage-output-Bnkerfod.mjs";
|
|
22
22
|
import { claimRemoveCommand, isClaimRefusal, isClaimUnavailable, readClaimSet, releaseClaim, tryAcquireClaim } from "@stim-cli/core/ownership-claim";
|
|
23
23
|
import { existsSync, lstatSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
24
24
|
import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { At as findStaleDeviceRecords, Ct as deleteParkedSims, Et as describeUnverifiableDevices, Tt as describeParkedSims, jt as findStaleProjectDevices, kt as findOrphanedDevices, ot as selectCaches } from "./budget-
|
|
2
|
-
import { a as runGc, i as readGcReport, n as executeGc, o as withGcMaintenanceClaim, r as gcCommand, s as formatGcReport, t as collectGcReport } from "./gc-
|
|
1
|
+
import { At as findStaleDeviceRecords, Ct as deleteParkedSims, Et as describeUnverifiableDevices, Tt as describeParkedSims, jt as findStaleProjectDevices, kt as findOrphanedDevices, ot as selectCaches } from "./budget-HyShrIpL.mjs";
|
|
2
|
+
import { a as runGc, i as readGcReport, n as executeGc, o as withGcMaintenanceClaim, r as gcCommand, s as formatGcReport, t as collectGcReport } from "./gc-B9jcnmIk.mjs";
|
|
3
3
|
export { collectGcReport, gcCommand as default, deleteParkedSims, describeParkedSims, describeUnverifiableDevices, executeGc, findOrphanedDevices, findStaleDeviceRecords, findStaleProjectDevices, formatGcReport, readGcReport, runGc, selectCaches, withGcMaintenanceClaim };
|
|
@@ -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-B5tCoq9N.mjs";
|
|
2
|
+
import { i as findProjectRoot$1 } from "./project-BiC68mIp.mjs";
|
|
3
|
+
import { h as RECENT_LAUNCH_MS } from "./eas-session-ledger-BMCA1gdO.mjs";
|
|
4
|
+
import { o as guideStatus, t as WATCHMAN_NESTED_WORKTREES } from "./doctor-watchman-BovI1y3-.mjs";
|
|
5
|
+
import "./status-watch-Bc2J4TZn.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
|
|
@@ -990,8 +990,10 @@ leased until <time>" for each one.`,
|
|
|
990
990
|
true Metro finished the bundle response, or an app
|
|
991
991
|
without Metro (a release build, or a native
|
|
992
992
|
Xcode or Gradle app) has a live process; then
|
|
993
|
-
the app stayed alive
|
|
994
|
-
|
|
993
|
+
the app stayed alive until its JavaScript
|
|
994
|
+
reported \`Running "<name>"\` (plus half a
|
|
995
|
+
second), or through a three-second stability
|
|
996
|
+
window when it did not.
|
|
995
997
|
The command checks process liveness when the
|
|
996
998
|
platform exposes it. Errors from that window
|
|
997
999
|
are printed even when the app stays alive,
|
|
@@ -1003,12 +1005,14 @@ leased until <time>" for each one.`,
|
|
|
1003
1005
|
bundle and the process, never a frame, and a
|
|
1004
1006
|
cold app can keep rendering for a minute or
|
|
1005
1007
|
more after this, which is why the stderr line
|
|
1006
|
-
reads \`bundle loaded, process alive,
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1008
|
+
reads \`bundle loaded, process alive, app
|
|
1009
|
+
JavaScript running -- the first screen may
|
|
1010
|
+
still be rendering\` (\`stable for 3s\` when
|
|
1011
|
+
no \`Running\` log arrived). Poll the UI
|
|
1012
|
+
before you trust a screenshot. Optional
|
|
1013
|
+
app-declared readiness adds a separate
|
|
1014
|
+
stderr readiness phase; it does not change
|
|
1015
|
+
this field. See
|
|
1012
1016
|
\`guide lifecycle readiness\`
|
|
1013
1017
|
"bundling" the request DID arrive and Metro was still
|
|
1014
1018
|
building or delivering when the bundle timeout closed.
|
|
@@ -1020,6 +1024,15 @@ leased until <time>" for each one.`,
|
|
|
1020
1024
|
finishing
|
|
1021
1025
|
"unverified" nothing was observed at all: usually a
|
|
1022
1026
|
dev-client server picker awaiting a tap
|
|
1027
|
+
The wait for the app's bundle request is 20 seconds. On
|
|
1028
|
+
Expo, the dev client's manifest request (recorded in the
|
|
1029
|
+
metro log as manifest_request_started, _finished or _failed)
|
|
1030
|
+
counts as progress: the wait stays open while one is in
|
|
1031
|
+
flight and for 15 seconds after one was served, up to 60
|
|
1032
|
+
seconds after the launch, on any target (a new or adopted
|
|
1033
|
+
emulator already waits 60). A manifest is never launch
|
|
1034
|
+
evidence, so a launch that makes no bundle request is still
|
|
1035
|
+
"unverified". Bare React Native makes no manifest request.
|
|
1023
1036
|
Neither "bundling" nor "unverified" is reported for an app
|
|
1024
1037
|
whose process is gone when the bundle timeout closes: the
|
|
1025
1038
|
run fails as FATAL, "the app process exited", with the
|
|
@@ -2753,9 +2766,16 @@ TAILNET-ONLY METRO
|
|
|
2753
2766
|
|
|
2754
2767
|
BUNDLE WARMUP
|
|
2755
2768
|
After verifying Metro, \`stim ios\` and \`stim android\` prefetch the
|
|
2756
|
-
platform's development bundle while native work continues.
|
|
2757
|
-
|
|
2758
|
-
|
|
2769
|
+
platform's development bundle while native work continues. The prefetch
|
|
2770
|
+
requests the URL of the app's most recent bundle request on that platform,
|
|
2771
|
+
read from this workspace's metro log, so it matches the app's entry point
|
|
2772
|
+
and options and does not ask Expo for its manifest. A recorded URL whose
|
|
2773
|
+
entry file no longer exists under the project root or its ancestors is
|
|
2774
|
+
skipped. Expo computes the
|
|
2775
|
+
runtime version fingerprint for every manifest request. Without a recorded
|
|
2776
|
+
request, Expo supplies the entry point and bundle options through its
|
|
2777
|
+
manifest, and bare React Native uses the standard index entry and
|
|
2778
|
+
development bundle options, including lazy loading.
|
|
2759
2779
|
Warmup is enabled by default. Set optimizations.metroWarmup=false to disable
|
|
2760
2780
|
it on the next ios/android command, using the machine or project settings.
|
|
2761
2781
|
For custom entry points or bundle options, set metro.warmupUrl.ios and/or
|
|
@@ -3383,7 +3403,15 @@ they stay in the local logs. These records carry no tokens.
|
|
|
3383
3403
|
|
|
3384
3404
|
WHAT WRITES WHAT
|
|
3385
3405
|
maintenance.ndjson workspace maintenance actions, failures and explaining skips
|
|
3386
|
-
metro.ndjson the bundler, in every supervisor mode
|
|
3406
|
+
metro.ndjson the bundler, in every supervisor mode. Stim's
|
|
3407
|
+
middleware adds one record per bundle request
|
|
3408
|
+
(bundle_response_started, _progress, _finished,
|
|
3409
|
+
_failed; _started carries the request's path and
|
|
3410
|
+
query as url, which the next warmup prefetches)
|
|
3411
|
+
and, on Expo, one per dev-client manifest
|
|
3412
|
+
request (manifest_request_started, _finished,
|
|
3413
|
+
_failed: debug level, with platform and requestId;
|
|
3414
|
+
launch verification reads them as progress)
|
|
3387
3415
|
client.ndjson in-app console logs and redboxes -- BARE PROJECTS ONLY.
|
|
3388
3416
|
In expo-child and command-child mode everything the
|
|
3389
3417
|
dev server prints lands in metro.ndjson with raw: true,
|
|
@@ -5410,10 +5438,12 @@ hosting Mac keeps Metro local through a private bridge; see hosted-ios. Step 2 r
|
|
|
5410
5438
|
Metro while other work happens.
|
|
5411
5439
|
|
|
5412
5440
|
Each time Stim boots an owned local simulator or emulator, it mutes it: iOS
|
|
5413
|
-
simulators to volume zero through Xcode's devicectl
|
|
5414
|
-
|
|
5415
|
-
|
|
5416
|
-
|
|
5441
|
+
simulators to volume zero through Xcode's devicectl, and Android 15 and later
|
|
5442
|
+
emulators to media volume zero. The iOS mute runs after SimSlim has applied its
|
|
5443
|
+
profile and once SpringBoard has finished starting, because both a SimSlim
|
|
5444
|
+
reboot and SpringBoard's startup reset the volume. A device that is already
|
|
5445
|
+
running keeps its volume, except that SimSlim reboots a running simulator whose
|
|
5446
|
+
profile changed. Turn sound on for one device with Sound (iOS) or
|
|
5417
5447
|
Media sound (Android) in its Stim Desktop options; the choice lasts until that
|
|
5418
5448
|
device next boots. Android 14 and older images have no shell command that can
|
|
5419
5449
|
set media volume, so startup warns, as it does whenever a mute is not
|
|
@@ -5503,8 +5533,9 @@ does not restart initialization. Confirm the bundle request and expected UI.
|
|
|
5503
5533
|
|
|
5504
5534
|
Debug Android launches on an owned emulator that the run creates, or whose
|
|
5505
5535
|
adoption from the pool it finishes, get up to 60 seconds for bundle loading;
|
|
5506
|
-
the verify phase names that budget. Existing emulators, remote targets, and physical devices
|
|
5507
|
-
|
|
5536
|
+
the verify phase names that budget. Existing emulators, remote targets, and physical devices get 20 seconds,
|
|
5537
|
+
extended up to 60 while an Expo dev client's manifest request is pending or was
|
|
5538
|
+
just served.
|
|
5508
5539
|
Bundle delivery still requires the usual stability or app readiness check;
|
|
5509
5540
|
an observed fatal error ends verification without waiting for the deadline.
|
|
5510
5541
|
|
|
@@ -6330,12 +6361,18 @@ Metro verification enabled, not release builds or --no-metro-check.
|
|
|
6330
6361
|
a missing ready message, and a startup error. Retain the relevant output.
|
|
6331
6362
|
|
|
6332
6363
|
Without an observed pending, Stim keeps its default 3-second stability window
|
|
6333
|
-
after bundle delivery.
|
|
6364
|
+
after bundle delivery. The window ends early, half a second after the app's
|
|
6365
|
+
React Native runtime logs \`Running "<name>"\` for this launch on either
|
|
6366
|
+
platform. A fatal record or an exited process before the window ends still
|
|
6367
|
+
fails the launch. An error after it, such as a first render that takes longer
|
|
6368
|
+
than that half second to throw, appears in \`stim logs --errors\`.
|
|
6369
|
+
Managed Metro servers report the native bundle response
|
|
6334
6370
|
finishing; build-complete output alone does not close an observed request.
|
|
6335
6371
|
Without response capture, Stim falls back to the build-complete marker.
|
|
6336
6372
|
When Android reports queued JavaScript loading, Stim waits for a device
|
|
6337
6373
|
JavaScript log before starting stability, bounded by the bundle timeout.
|
|
6338
|
-
Pending must be observed before the stability window closes
|
|
6374
|
+
Pending must be observed before the stability window closes, early end
|
|
6375
|
+
included, so log it before the root component renders. It opts into
|
|
6339
6376
|
waiting for ready until 30 seconds after the same completion signal.
|
|
6340
6377
|
Repeated pending messages never extend the deadline. Ready can end the wait
|
|
6341
6378
|
early; an app error or process exit interrupts it. No ready means readiness
|
|
@@ -6838,9 +6875,10 @@ AN ARTIFACT THE DEVICE ALREADY HOLDS IS NOT INSTALLED AGAIN
|
|
|
6838
6875
|
A RUNNING APP IS RESTARTED, LIKE XCODE'S RUN
|
|
6839
6876
|
Before it launches, \`ios\` and \`android\` read the device's process list.
|
|
6840
6877
|
When the app is already running, from an earlier run or after an install
|
|
6841
|
-
that was skipped, Stim stops it and launches it fresh: \`simctl
|
|
6842
|
-
|
|
6843
|
-
|
|
6878
|
+
that was skipped, Stim stops it and launches it fresh: \`simctl launch
|
|
6879
|
+
--terminate-running-process\` on a simulator (a separate \`simctl
|
|
6880
|
+
terminate\` when the app opens through a URL), \`am force-stop\` on an
|
|
6881
|
+
emulator or an \`android --device\` phone. The new process requests its bundle, so launch verification has real
|
|
6844
6882
|
evidence instead of an old process that fetched nothing. In-app state from
|
|
6845
6883
|
the previous session does not survive. The launch line says so:
|
|
6846
6884
|
|
|
@@ -7575,11 +7613,18 @@ OPT-IN CONCURRENCY LIMITS (UNLIMITED BY DEFAULT)
|
|
|
7575
7613
|
paths eligible under the source checkout's Git ignore rules, including .env
|
|
7576
7614
|
and local configuration. The source's nonempty
|
|
7577
7615
|
.worktreeexclude replaces its resolved worktree.exclude setting. Nested
|
|
7578
|
-
registered worktrees
|
|
7579
|
-
.pnpm-store, and
|
|
7580
|
-
|
|
7581
|
-
|
|
7582
|
-
|
|
7616
|
+
registered worktrees and ignored entries named .DS_Store, .DerivedData,
|
|
7617
|
+
.idea, .jj or .pnpm-store are not copied, and neither is
|
|
7618
|
+
android/build/generated/autolinking. Warm never walks a copied directory, so
|
|
7619
|
+
a .DS_Store or .idea inside a copied directory stays. Warm deletes only
|
|
7620
|
+
these paths from the copy: .pnpm-store in a copied node_modules (pnpm
|
|
7621
|
+
refills it from the network or its global store), the autolinking directory
|
|
7622
|
+
under a copied android, android/build or android/build/generated (Gradle
|
|
7623
|
+
regenerates it for the destination checkout on its next build), and the
|
|
7624
|
+
expo-modules-jsi/apple/.DerivedData Xcode build state, directly under
|
|
7625
|
+
node_modules or in the pnpm virtual store. An ignored directory that Git
|
|
7626
|
+
reports above those names (for example an app directory with no tracked
|
|
7627
|
+
files) is copied as is. Warm also skips paths
|
|
7583
7628
|
overlapping a nested destination worktree or below a symlink ancestor.
|
|
7584
7629
|
Tracked .idea settings come from Git and stay untouched by warm.
|
|
7585
7630
|
|
|
@@ -8104,6 +8149,24 @@ THE POOL: WHICH DEVICE AN ID-LESS \`--device\` PICKS
|
|
|
8104
8149
|
|
|
8105
8150
|
{ "ios": { "simslimProfile": ".simslim/dev.json" } }
|
|
8106
8151
|
|
|
8152
|
+
To slim every Stim-owned iOS simulator on a Mac without a profile per app,
|
|
8153
|
+
set it on the machine layer:
|
|
8154
|
+
|
|
8155
|
+
stim settings set ios.simslim on --scope machine
|
|
8156
|
+
|
|
8157
|
+
With \`ios.simslim\` on and no \`ios.simslimProfile\`, Stim runs
|
|
8158
|
+
\`simslim on <udid>\` with SimSlim's default categories. A project profile
|
|
8159
|
+
always applies in place of the defaults. A workspace, repo or committed
|
|
8160
|
+
\`ios.simslim off\` opts that app out and restores stock services on its
|
|
8161
|
+
simulator. The defaults disable push, StoreKit, iCloud, Safari sync, Mail,
|
|
8162
|
+
Calendar and Contacts services, among others; move an app that needs them
|
|
8163
|
+
to a profile that keeps those categories, or to \`off\`. A running or
|
|
8164
|
+
parked simulator is slimmed the next time Stim boots or adopts it, and an
|
|
8165
|
+
already slim simulator is left alone, so only the first slim reboots it.
|
|
8166
|
+
Without the \`simslim\` command, doctor reports it and \`stim ios\` boots
|
|
8167
|
+
the simulator unslimmed with a one-line note. Hosted simulators on a named
|
|
8168
|
+
Mac are never slimmed, whatever either Mac's setting says.
|
|
8169
|
+
|
|
8107
8170
|
SimSlim 0.8 requires iOS 18.5 or newer. On each local \`stim ios\`,
|
|
8108
8171
|
Stim reconciles that profile on the owned simulator before the app build.
|
|
8109
8172
|
The first change can update services and reboot the simulator. A matching
|
|
@@ -9417,6 +9480,13 @@ KEYS STIM READS
|
|
|
9417
9480
|
with STIM_BAD_ARG a path that escapes the app or
|
|
9418
9481
|
holds no .xcworkspace or .xcodeproj, and any value
|
|
9419
9482
|
on an Expo app, whose prebuild writes ios/.
|
|
9483
|
+
ios.simslim "on" or "off"; default "off", machine or project
|
|
9484
|
+
layers. "on" slims every Stim-owned iOS simulator
|
|
9485
|
+
with SimSlim's default categories when no
|
|
9486
|
+
ios.simslimProfile is set; a profile always wins. A
|
|
9487
|
+
workspace, repo or committed "off" opts that app out
|
|
9488
|
+
of a machine "on" and restores stock services. See
|
|
9489
|
+
\`stim guide lifecycle simslim\`.
|
|
9420
9490
|
ios.simslimProfile a SimSlim JSON profile under the app directory,
|
|
9421
9491
|
at most 64 KiB. Install the
|
|
9422
9492
|
external tool once with
|
|
@@ -9707,7 +9777,9 @@ ${ANDROID_AVD_CONFIG_HELP.map((line) => ` ${line}`).joi
|
|
|
9707
9777
|
metro.warmupUrl.android
|
|
9708
9778
|
an HTTP(S) URL or a /path ending in .bundle, with the
|
|
9709
9779
|
full query the app uses, including a matching platform.
|
|
9710
|
-
Unset uses
|
|
9780
|
+
Unset uses the app's most recent bundle request from
|
|
9781
|
+
the workspace's metro log, then Expo's manifest or the
|
|
9782
|
+
bare React Native defaults.
|
|
9711
9783
|
Stim preserves the path and query but always requests
|
|
9712
9784
|
this workspace's verified local Metro port; a supplied
|
|
9713
9785
|
host and port are ignored. No defaults are added to an
|
|
@@ -10161,10 +10233,14 @@ Stim connects to a named machine only while its name still belongs to the pinned
|
|
|
10161
10233
|
node and never sends the token to another node. \`doctor\` reports each
|
|
10162
10234
|
remote machine's build pairing state and, for an approved one, asks it for one build
|
|
10163
10235
|
offer and lists every reason it would not take this app's iOS build: no
|
|
10164
|
-
answer,
|
|
10236
|
+
answer, an incompatible Stim build, CPU, Xcode, simulator SDK or CocoaPods, no
|
|
10165
10237
|
Bundler for an app whose Gemfile.lock pins CocoaPods, no iPhone simulator on
|
|
10166
10238
|
the runtime \`stim ios\` builds for here, low disk, or busy. With Package.swift
|
|
10167
10239
|
and no platform selection on a Mac, it also checks the macOS Xcode and SDK.
|
|
10240
|
+
Two machines build for each other when their Stim releases share a build
|
|
10241
|
+
compatibility version, which changes only when what a worker builds, how it
|
|
10242
|
+
builds, or the build messages change; their Stim builds can differ. A
|
|
10243
|
+
stim-server too old to report one needs the same Stim build as this machine.
|
|
10168
10244
|
|
|
10169
10245
|
\`remote.build\` (machine scope, default auto) selects placement for
|
|
10170
10246
|
\`ios\`, \`android\` and \`macos\`. \`--remote-build <auto|local|name>\`
|
|
@@ -11053,8 +11129,8 @@ to the repository root; the worker resolves them inside its checkout.
|
|
|
11053
11129
|
|
|
11054
11130
|
With --remote <machine> and --remote-build naming the same machine (the same
|
|
11055
11131
|
paired node), the app is built and run there, so this Mac's Xcode, macOS SDK and
|
|
11056
|
-
CPU architecture do not have to match: the worker needs the same Stim build
|
|
11057
|
-
its own Xcode and macOS SDK. This Mac's cache is skipped and the worker's cache
|
|
11132
|
+
CPU architecture do not have to match: the worker needs the same Stim build
|
|
11133
|
+
compatibility version and its own Xcode and macOS SDK. This Mac's cache is skipped and the worker's cache
|
|
11058
11134
|
identity comes from the worker's toolchain. Any other combination keeps the match.
|
|
11059
11135
|
|
|
11060
11136
|
The client validates the development plist and resource entries before asking a machine. It verifies
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { c as throwIfCancelled } from "./exec-VFRpu1iA.mjs";
|
|
2
|
-
import { c as call, l as connectHost } from "./hosted-client-
|
|
3
|
-
import { i as requestHostedMetro } from "./metro-gateway-
|
|
4
|
-
import { a as stopHostedNative, i as prepareHostedNative, r as placeHostedNative } from "./hosted-native-
|
|
2
|
+
import { c as call, l as connectHost } from "./hosted-client-rsRqysJc.mjs";
|
|
3
|
+
import { i as requestHostedMetro } from "./metro-gateway-Bp9gJQAN.mjs";
|
|
4
|
+
import { a as stopHostedNative, i as prepareHostedNative, r as placeHostedNative } from "./hosted-native-BxTizGU2.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
1
|
import { c as throwIfCancelled, o as cancellableSleep } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { rt as resolveEndpoint } from "./config-BZhXY15H.mjs";
|
|
3
|
-
import { t as BuildConnection } from "./client-
|
|
4
|
-
import { d as configuredMachines } from "./selection-
|
|
3
|
+
import { t as BuildConnection } from "./client-BQsmyp_-.mjs";
|
|
4
|
+
import { d as configuredMachines } from "./selection-D5cxEl3t.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";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as stopHostedNative, i as prepareHostedNative, r as placeHostedNative } from "./hosted-native-
|
|
1
|
+
import { a as stopHostedNative, i as prepareHostedNative, r as placeHostedNative } from "./hosted-native-BxTizGU2.mjs";
|
|
2
2
|
//#region src/device-host/hosted-ios.ts
|
|
3
3
|
async function prepareHostedIos(machine, selectors, recorded, mode) {
|
|
4
4
|
return await prepareHostedNative(machine, selectors, recorded, "ios", false, mode);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { d as workspaceDir, m as workspaceLogsDir$1 } from "./paths-DQtTgsBf.mjs";
|
|
3
3
|
import { B as deviceSlotFileKey, et as parseMachine$1, q as validateDeviceSlot } from "./config-BZhXY15H.mjs";
|
|
4
|
-
import { l as phaseLine } from "./command-output-
|
|
5
|
-
import { n as macosDir } from "./state-
|
|
6
|
-
import { n as androidLogGroups, r as isAndroidCrashText } from "./android-
|
|
4
|
+
import { l as phaseLine } from "./command-output-BBvS1H6v.mjs";
|
|
5
|
+
import { n as macosDir } from "./state-DPaM3u5K.mjs";
|
|
6
|
+
import { n as androidLogGroups, r as isAndroidCrashText } from "./android-saBeB4lr.mjs";
|
|
7
7
|
import { r as createNdjsonWriter } from "./ndjson-CgE_o3Dl.mjs";
|
|
8
|
-
import { c as call } from "./hosted-client-
|
|
8
|
+
import { c as call } from "./hosted-client-rsRqysJc.mjs";
|
|
9
9
|
import { mkdirSync, readFileSync, realpathSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
10
10
|
import { dirname, join } from "node:path";
|
|
11
11
|
import { LOG_ROTATE_BYTES, ambientWrite, withDirLockAsync } from "@stim-cli/core";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { o as cancellableSleep } from "./exec-VFRpu1iA.mjs";
|
|
2
|
-
import { a as removeAgentAccess, i as agentAccess, r as closeAgentConnection, t as pullHostedMacosLogs } from "./hosted-logs-
|
|
3
|
-
import { l as phaseLine } from "./command-output-
|
|
4
|
-
import { n as macosDir } from "./state-
|
|
5
|
-
import { d as runCancellationSignal } from "./native-run-
|
|
6
|
-
import { _ as unknownSession, a as SESSION_TIMEOUT_MS, c as call, d as hostedSession, g as stoppedSession, h as sha256, i as RESERVE_TIMEOUT_MS, l as connectHost, m as settle, o as attach, r as PREPARE_TIMEOUT_MS, s as bundleManifest, t as INSTALL_TIMEOUT_MS, u as heldNoLonger, v as upload } from "./hosted-client-
|
|
2
|
+
import { a as removeAgentAccess, i as agentAccess, r as closeAgentConnection, t as pullHostedMacosLogs } from "./hosted-logs-CWKGYWNX.mjs";
|
|
3
|
+
import { l as phaseLine } from "./command-output-BBvS1H6v.mjs";
|
|
4
|
+
import { n as macosDir } from "./state-DPaM3u5K.mjs";
|
|
5
|
+
import { d as runCancellationSignal } from "./native-run-D5OJsGwA.mjs";
|
|
6
|
+
import { _ as unknownSession, a as SESSION_TIMEOUT_MS, c as call, d as hostedSession, g as stoppedSession, h as sha256, i as RESERVE_TIMEOUT_MS, l as connectHost, m as settle, o as attach, r as PREPARE_TIMEOUT_MS, s as bundleManifest, t as INSTALL_TIMEOUT_MS, u as heldNoLonger, v as upload } from "./hosted-client-rsRqysJc.mjs";
|
|
7
7
|
import { randomUUID } from "node:crypto";
|
|
8
8
|
import { join } from "node:path";
|
|
9
9
|
import { ambientContext, ambientWrite } from "@stim-cli/core";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { o as cancellableSleep } from "./exec-VFRpu1iA.mjs";
|
|
2
2
|
import { d as workspaceDir } from "./paths-DQtTgsBf.mjs";
|
|
3
|
-
import { a as removeAgentAccess, i as agentAccess, n as pullHostedNativeLogs, r as closeAgentConnection } from "./hosted-logs-
|
|
4
|
-
import { l as withWorkspaceStateLockAsync, r as readWorkspaceState$1 } from "./workspace-state-
|
|
5
|
-
import { d as runCancellationSignal } from "./native-run-
|
|
6
|
-
import { _ as unknownSession, a as SESSION_TIMEOUT_MS, c as call, d as hostedSession, g as stoppedSession, h as sha256, i as RESERVE_TIMEOUT_MS, l as connectHost, m as settle, n as OFFER_TIMEOUT_MS, o as attach, p as requireHostedAppMode, r as PREPARE_TIMEOUT_MS, s as bundleManifest, t as INSTALL_TIMEOUT_MS, u as heldNoLonger, v as upload } from "./hosted-client-
|
|
7
|
-
import { a as requireHostedMetro, i as requestHostedMetro, n as closeHostedMetro } from "./metro-gateway-
|
|
8
|
-
import { s as writeHostedNative } from "./ios-state-
|
|
3
|
+
import { a as removeAgentAccess, i as agentAccess, n as pullHostedNativeLogs, r as closeAgentConnection } from "./hosted-logs-CWKGYWNX.mjs";
|
|
4
|
+
import { l as withWorkspaceStateLockAsync, r as readWorkspaceState$1 } from "./workspace-state-CPSp3mav.mjs";
|
|
5
|
+
import { d as runCancellationSignal } from "./native-run-D5OJsGwA.mjs";
|
|
6
|
+
import { _ as unknownSession, a as SESSION_TIMEOUT_MS, c as call, d as hostedSession, g as stoppedSession, h as sha256, i as RESERVE_TIMEOUT_MS, l as connectHost, m as settle, n as OFFER_TIMEOUT_MS, o as attach, p as requireHostedAppMode, r as PREPARE_TIMEOUT_MS, s as bundleManifest, t as INSTALL_TIMEOUT_MS, u as heldNoLonger, v as upload } from "./hosted-client-rsRqysJc.mjs";
|
|
7
|
+
import { a as requireHostedMetro, i as requestHostedMetro, n as closeHostedMetro } from "./metro-gateway-Bp9gJQAN.mjs";
|
|
8
|
+
import { s as writeHostedNative } from "./ios-state-CT9nV5SP.mjs";
|
|
9
9
|
import { randomUUID } from "node:crypto";
|
|
10
10
|
import { readFileSync } from "node:fs";
|
|
11
11
|
import { join } from "node:path";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { V as deviceSlotKey, _ as loadConfig$1 } from "./config-BZhXY15H.mjs";
|
|
2
|
-
import { o as formatLongDuration } from "./command-output-
|
|
3
|
-
import { r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-
|
|
4
|
-
import { A as workspaceBuildInProgress, T as collectOwnedDeviceActivity } from "./budget-
|
|
2
|
+
import { o as formatLongDuration } from "./command-output-BBvS1H6v.mjs";
|
|
3
|
+
import { r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-CPSp3mav.mjs";
|
|
4
|
+
import { A as workspaceBuildInProgress, T as collectOwnedDeviceActivity } from "./budget-HyShrIpL.mjs";
|
|
5
5
|
import { t as canonicalPath } from "./paths-BsJMoPP2.mjs";
|
|
6
|
-
import { A as teardownOwnedIosSim, O as teardownOwnedAvd } from "./workspaces-
|
|
7
|
-
import { _ as workspaceDeviceLastUseAt } from "./activity-
|
|
8
|
-
import { d as listAllIosSims } from "./ios-
|
|
6
|
+
import { A as teardownOwnedIosSim, O as teardownOwnedAvd } from "./workspaces-C9w4aeXF.mjs";
|
|
7
|
+
import { _ as workspaceDeviceLastUseAt } from "./activity-BpjwrQXU.mjs";
|
|
8
|
+
import { d as listAllIosSims } from "./ios-BQzvJlzw.mjs";
|
|
9
9
|
import { DEVICE_IDLE_SHUTDOWN_KEY, DEVICE_RECLAIM_REASON, readDeviceIdleShutdowns } from "@stim-cli/core/state";
|
|
10
10
|
//#region src/devices/idle-shutdown.ts
|
|
11
11
|
const SIM_LIST_TIMEOUT_MS = 1e4;
|