v0.2.0 — Kotlin parser, one-call analyze, faster cold analysis
Highlights
- Kotlin parser (#17) — tree-sitter-based structural parsing for
.kt/.kts: classes, objects, companion objects, nested types, top-level functions, import aliases, and inheritance edges, with crash-safe iterative traversal and exact-FQN regression fixtures. Requires the[languages]extra. analyze— one-call async pipeline (#16) — runs ingest → parse → recover → smells → metrics in a single MCP call, off the event loop via a background thread. Returns per-stage session IDs, preserved even on partial failure (PartialAnalysisError), so agents never redo completed stages. This brings the MCP server to 18 tools.- Cold-analysis performance — Python reference extraction rewritten around a static annotation-field table (#14, ~2.2× faster cold parse) and component-dependency lookups now use an on-demand membership index (#15, hot path 413ms → 1.9ms median).
Also in this release
- Atomic parse-cache writes (temp file +
os.replace) — safe under concurrent analyses (#16). ToolDef.is_asyncso adapters can dispatch coroutine tools correctly (#16).max_tokensbudgeting now applies to the compositeanalyzesummary (#16).- README: badge row, tool-count reconciliation, and docs link (#23, #24).
Docs
Full documentation now lives at https://arcade-agent.dev — getting started, all 18 MCP tools with parameters/returns/examples from real captured runs, and CI drift-baseline setup.
Install: pip install "arcade-agent[languages,mcp]"
Full changelog: v0.1.1...v0.2.0