Skip to content

v0.2.0

Choose a tag to compare

@MikhailHal MikhailHal released this 20 Jul 07:18

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, changing PopulatedNewsResource.asExternalModel went 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, init blocks) 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 -- ariadne

Or 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