Skip to content

simdrive v0.2.0a2 — Palace dogfood + maintainer feedback round

Choose a tag to compare

@SyncTekLLC SyncTekLLC released this 30 Apr 04:37

Palace dogfood (v0.2.0a1) + maintainer feedback round.

Headline: simdrive is now Palace iOS's canonical sim driver, retiring SpecterQA. This release ships the full top-priority trio Palace identified as needed before simdrive can serve as a real PR gate.

Top priority — all three landed

  • SSIM region maskingreplay(mask_regions=[(x,y,w,h),...]) or ssim_masks: [...] in recording.yaml. Stops the iOS status-bar clock from dragging same-screen SSIM into the 0.6s. Unblocks PR-gating use case.
  • Recordings serialize stable_id. Replay prefers it against the live observe; falls back to recorded pixel coords. Survives 1px layout shifts.
  • type_text returns focus signal. New response fields keyboard_visible (heuristic) and focused_field (stable_id of tap_first target).

Quality of life

  • stable_id_loose companion. 60px bucket (3× the tight 20px) tolerates the >3px shifts that re-bucket the tight stable_id.
  • step_id in act-tool responses while recording. Correlates live actions with recording's step list.
  • observe(annotate=false) preserves mark cache. No more "no marks available" foot-gun after a fast un-annotated observe.
  • list_devices reports hid_supported per device + top-level hid_note. No more guessing whether tap will work.
  • Recording metadata. recording.yaml now captures simdrive_version, created_by_session, screenshot_size_pixels, and a tags: [] list. record_start({tags: [...]}) accepts free-form tags.
  • simdrive --version / --help. CLI no longer launches MCP server when invoked with a flag.
  • Replay halt context. Response now includes halt_reason, threshold, steps_planned.

Install

```bash
pip install --pre --upgrade simdrive
```

Numbers

  • 13 MCP tools
  • 52 / 52 unit tests passing (12 new this release)
  • Live recording + replay E2E: green

Full changelog

See `simdrive/CHANGELOG.md`.