v0.2.0
Android-ready release: ariadne now handles real Android app source layouts and the call-graph gaps that made it miss tests in idiomatic Kotlin.
What's new
Android variant source sets — source sets are discovered by enumerating src/<sourceSet>/{kotlin,java} instead of assuming main/test, so debug, demo, testDebug, and other variant/flavor sets are analyzed without configuration. androidTest* is excluded (instrumented tests are out of scope for unit-test selection). Verified on Now in Android: the app module now scans debug/prod/benchmark/testDemo alongside main.
Engine updates (sazanami 0.2.3):
- Callable references (
::fn) now produce call-graph edges. The idiomatic.map(Type::mapper)chain no longer hides dependencies — on Now in Android, changingPopulatedNewsResource.asExternalModelwent from 1 detected test to 14, including 11 repository tests reachable only through.map(::). - Editing a test now selects that test. Previously a changed test function returned "no affected tests" because the reverse traversal only inspected callers, and tests have none.
- Property- and constructor-aware call graph (initializers, delegates, accessors, stored lambdas,
initblocks) from 0.2.x.
⚠️ Speed over Completeness
ariadne prioritizes fast feedback for the agent inner loop. No affected-test-selection tool can trace every path (reflection, DI, data-flow indirection) — always keep the full test suite in CI as the final line of defense.
Install
brew install mikhailhal/tap/ariadne # or: brew upgrade ariadne
claude mcp add ariadne -- ariadneOr download ariadne-0.2.0-all.jar below (JDK 21+): java -jar ariadne-0.2.0-all.jar
Full Changelog: v0.1.0...v0.2.0
🤖 Generated with Claude Code