Skip to content

v1.0.0

Latest

Choose a tag to compare

@janicduplessis janicduplessis released this 10 Sep 12:44
· 1 commit to main since this release

New

  • The CLI is now published as stim. All five packages move together to the first stable release, 1.0.0. 256516b0ff
  • Select a shared Xcode app scheme with ios --scheme <name>. Explicit schemes use separate build directories and cache keys, and resolve the actual product even when its name differs. 33ecb66ff9
  • Reset one app's Metro transforms and file-map state with start --reset-cache, preserving other apps and native build caches. 7cc5276586
  • Each monorepo app reads its own committed .stim.json beside its package manifest. App-relative profiles and cache-provider paths resolve from that directory. c9fb9568a4

Fixes

  • Android's unverified-launch remedy uses the resolved launcher activity or dev-client URL to restart the app. Printed URLs preserve query parameters through both host and device shells. f2dd053af5

  • Android launch previews compact nested Metro error JSON into a readable module diagnosis, code frame and import stack. Previously unseen context is retained; logs and JSON preserve full captured evidence. 912b8fd863

  • Doctor warns about effective multi-architecture Debug simulator settings, including generated Pods and imported configuration. It reports but does not rewrite project policy. 7afb23c8da

  • Doctor identifies linked native libraries whose Git metadata enters the fingerprint and prints narrow ignore entries for projects that do not build from that metadata. 89e9280f0c

  • Android workspaces with the same app-directory name receive distinct owned emulators instead of failing on a name collision. Existing device assignments are preserved. 529f7c68f2

  • Bare iOS reload failures include an exact-app relaunch fallback when no Reload control is visible, preserving the automation session, simulator and Metro port. The remedy warns about losing in-memory state. 71484ba0ae

  • iOS resolves a listed app scheme from the static app.json name when a differently named workspace and multiple schemes make the existing selection ambiguous. The error distinguishes a naming mismatch from an unshared scheme. 5aa719fcfd

  • iOS simulator launches allow up to 60 seconds for CoreSimulator to respond, preventing the previous 10-second deadline from aborting a slow successful launch. App readiness and crash checks remain unchanged. 8221162342

  • A workspace waiting for a shared native build no longer reports failure just because native preparation changed the cache key. It retains the wait result after validating the artifact under its own final key. fd65de16ec

  • stim worktree warm copies ignored state directly into the destination, avoiding the extra staging and publication passes. Same-volume APFS copies request copy-on-write; missing paths are copied and existing entries are kept. 49ae2fce16

  • Doctor checks the actual source and destination volumes when reporting worktree-copy performance. 49ae2fce16

Docs

  • Refresh startup-crash benchmark results and keep timeline endpoint circles visible. 2d192f66e7, 591df79435
  • Document that warming must finish before editing, installing dependencies, starting Metro, building, or running another warm in the destination. Concurrent destination writes are unsupported. 49ae2fce16

Migration notes

  • Replace npx stim-cli with npx stim. For global installations, uninstall stim-cli before running npm install --global stim so the old and new packages do not compete for the same executable. The command remains stim; the four @stim-cli/* companion package names are unchanged.
  • Keep worktrees on the source checkout's filesystem for copy-on-write warming. STIM_TMPDIR does not relocate this direct copy. Wait for warm to complete before writing to its destination.
  • In monorepos, move repository-root runtime settings into each relevant app's .stim.json; apps no longer inherit that root file. Keep repository-wide worktree.exclude rules at the main checkout root. Machine-level project and repository overrides retain their precedence.