Skip to content

v0.19.0

Choose a tag to compare

@lvlrSajjad lvlrSajjad released this 25 Sep 13:06
· 114 commits to main since this release

simframe 0.19.0 — on npm as simframe@0.19.0, in the official MCP Registry as io.github.lvlrSajjad/simframe, and on Smithery as lvlr-xaus/simframe.

claude mcp add --scope user simframe -- npx -y simframe mcp

The screen you are told about is the screen that is there

  • A settled read could describe the screen just left: after an action, the content region briefly held only chrome, so an empty list and a zero-result list were indistinguishable and an agent reported "this filter returns zero results" and meant it (DEFERRED 191). The read now waits for the content to arrive, not only for the pixels to stop.
  • A wrong-turn verdict (unexpected-screen) halted a batch on a single read taken of a screen still arriving, and passed on retry. It is now confirmed by a second settle-and-read, the way confirmNoChange already was; a second read that disagrees replaces the verdict and keeps both answers (174).
  • Memory may confirm, never deny: a remembered "not on this screen" answered in 25 ms was being taken as a failure for the step after a tap, reproducibly 6 of 6 on the bench. A denial from memory now falls through to a live read (173).

Fixes

  • scrollTo threw points is not defined after it had already found the target, and the symptom looked like three different bugs (190). By Pedro Morais: SimulatorKit.framework is found after Xcode moved it into SharedFrameworks (#1).
  • diagnose no longer calls a device healthy while its accessibility tree is dead, and revive now ends by asking diagnose rather than by checking that frames flow (183).

Around the code

  • The README installs in ten seconds: config blocks for Claude Code, Claude Desktop and Cursor (one-click), a GIF of one simframe do call driving Settings with every step verified, and the essay moved whole to docs/GUIDE.md.
  • scripts/smithery-bundle.mjs builds the Smithery bundle per release; glama.json names the maintainer.
  • Phase 19 (the web as a third target) is deferred by its own first measurement: batching is the larger term, and three runs converged on actuation recovery rather than a transition graph. The decision and the numbers are in docs/DECISIONS.md.

Full history: v0.18.0...v0.19.0