simdrive v0.2.0a2 — Palace dogfood + maintainer feedback round
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 masking —
replay(mask_regions=[(x,y,w,h),...])orssim_masks: [...]inrecording.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_textreturns focus signal. New response fieldskeyboard_visible(heuristic) andfocused_field(stable_id oftap_firsttarget).
Quality of life
stable_id_loosecompanion. 60px bucket (3× the tight 20px) tolerates the >3px shifts that re-bucket the tightstable_id.step_idin 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_devicesreportshid_supportedper device + top-levelhid_note. No more guessing whether tap will work.- Recording metadata.
recording.yamlnow capturessimdrive_version,created_by_session,screenshot_size_pixels, and atags: []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