pj ddec95a2c5 feat(runner): re-fetch on transitional hierarchy capture
Some actions trigger async work (DB write, ViewModel coroutine) whose
navigation transition begins after the sidecar settle poll has already
exited. Without intervention, the next iteration's hierarchy fetch
lands mid cross-fade and the verifier observes a partial extractor
state which then surfaces as a false-positive violation at the step
where the transition completes.

fetchSyncedState pairs hierarchy + screenshot in one goroutine and
retries the pair (up to 4 times, 200ms apart) while the captured tree
contains more than one route-level *Screen tag. Steps that observe
no transition get no added cost; steps that catch a transition pay
up to ~600ms extra wall time but record a tree that matches the
post-transition state the property language expects to compare.
2026-05-31 12:11:29 +05:30
2026-04-25 20:04:29 +07:00
2026-04-25 20:04:29 +07:00
2026-04-25 20:04:29 +07:00

sanderling

Autonomous property-based testing for mobile and web apps. Specs in TypeScript. Core in Go.

Alpha. Android, iOS, and web (Chrome). Full scope in the v0.1.0 roadmap.

Docs

After a sanderling test run, browse traces locally with sanderling inspect. It opens a web UI for stepping through actions, screenshots, snapshots, residual formulas, and exceptions.


sanderling

sanderling, a wading bird that probes the shoreline for bugs that lie beneath.

S
Description
No description provided
Readme Apache-2.0
51 MiB
0 Stars 1 Watchers 0 Forks
Languages
Go 74.6%
TypeScript 15.2%
Kotlin 5.5%
Shell 2.7%
Swift 1%
Other 0.9%