mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-02 11:07:10 +00:00
* fix(sdk-android): add @JvmOverloads to Uatu.start Java callers can now invoke start(application) without supplying a Configuration, matching the Kotlin default-arg ergonomics. * feat(agent): add protocol_version to HELLO handshake ProtocolVersion=1 lives on Message and is set by Hello(). Server.Accept rejects mismatches with a clear error. SDK upgrades that don't change the wire format keep the same protocol_version; bump on breaking changes. * test(agent): assert protocol_version in Hello round-trip * feat(sdk-android): send protocol_version=1 in HELLO Mirrors agent.ProtocolVersion on the Go side. Bump in lockstep with the Go constant when the wire format breaks. * chore(sample-app): pull @uatu/spec from npm next tag Replaces the file: dep. Copy-paste users can now npm install against the registry. The release workflow publishes pre-release tags to npm dist-tag 'next', so the sample tracks the latest rc without manual version bumps. Lockfile currently resolves to 0.0.1-rc3.
uatu sample app
Tiny Android app wired to the uatu SDK, plus a TypeScript spec that drives it. Use it as a reference for integrating uatu into your own app.
Prerequisites
uatuCLI onPATH(see getting started)- Android SDK installed (uatu auto-discovers
adbandemulatorunder$ANDROID_HOME,~/Library/Android/sdk, or the Homebrew cask; nothing to export if you use a standard install) justtask runner
Install the app
just install
Run a test
just test
If no device is connected, uatu boots the single AVD it finds. With multiple AVDs, pick one:
just AVD=Pixel_7 test
Persistent settings can live in .env alongside the justfile:
AVD=Pixel_7
DURATION=5m
Traces land in ./runs/<timestamp>/.
How the pieces connect
android/build.gradle.ktsdepends onio.github.priyanshujain:sdk-androidfrom Maven Centralandroid/src/main/kotlin/.../SampleApplication.ktcallsUatu.start(this)and registers snapshot extractors (app_state,click_count)spec.tsimports@uatu/spec(seepackage.json), reads those snapshots, asserts properties on them, and weights the actions the fuzzer picks fromjust testinvokesuatu testagainst the installed APK on the connected device (or the AVD named viaAVD=)