What changed
v0.2.1 is a quality and precision improvement across Ananke's 14-language extractor pipeline. No new CLI commands, no API changes, no breaking changes.
Comment-aware pattern matching
Extractors now skip patterns inside comments, strings, and doc comments. Previously, a // function foo() comment could produce a false constraint. All 14 languages filter correctly.
Type system coverage: 4 new languages
C, Ruby, PHP, and Swift now have type parsers, primitives, and inhabitation edges in the type system. This means constrained generation respects type relationships for all 14 supported languages, not just the original 10.
Per-language precision improvements
- Go: grouped multi-line imports parsed correctly
- Rust: Box/Arc/Rc/HashMap/dyn Trait recognized as wrapper types
- Java: wildcard generics (? extends/super) handled
- TypeScript: N-ary unions and utility types (Partial, Required, Pick, Omit)
- C++: smart pointers (unique_ptr, shared_ptr, weak_ptr)
Tier 2 language promotion
Five Tier 2 languages gained deeper extraction:
- Swift: extension methods
- Kotlin: value classes, typealias
- C#: delegates, IAsyncEnumerable
- Ruby: visibility tracking, attr_accessor/reader/writer
- PHP: union return types
Dynamic scope inhabitation
When Homer scope graph data is available, user-defined types now automatically generate inhabitation edges. This means the type system learns from your codebase rather than relying solely on builtin type relationships.
Multi-line extractor state machines
Go grouped imports, Rust where clauses, Java annotation blocks, and Python multi-line signatures are now parsed correctly via small state machines rather than single-line regex.
Property-based tests
8 new property-based tests: parser crash safety, primitive round-trips, optional wrapping idempotency, BFS reflexivity, edge monotonicity, builtin edge validity, comment filtering, and pattern determinism.
Numbers
- 512 Zig tests (+39 from v0.2.0's 473), 144 Rust tests, 0 failures
- CI green across all 7 jobs (security, lint, coverage, ubuntu, macos, integration, gate)
- +3,246 lines across 29 files
Full Changelog: v0.2.0...v0.2.1