feat(compass): resolution echo, cross-language calls, type-hint edges (v1.19.0)
Compass accuracy release — resolution transparency, cross-language call/reference extraction, and type-hint dependency edges (validated live against a Laravel + Vue + C# workspace).
Added
- Resolution echo. Every
compass_queryresponse now leads with what the target resolved to (name, kind,path:line), lists alternate matches on ambiguity (Also matched:), and appends a verify-with-Grep hint on empty relationship results — an empty result is now diagnosable instead of silently wrong. - Constructor, static/scoped, and member call extraction across all 15 languages.
new Foo(),Foo::bar(),Foo.bar(), struct literals, andFoo.newnow produce CALLS/REFERENCES edges; Go/Ruby/Kotlin/C# — which previously emitted zero calls — now work. Scoped targets are emitted asScope::methodfor::-syntax languages and resolved parent-aware. - Type-position REFERENCES. Parameter/property/return type hints (including constructor promotion and generic args) are now indexed across typed languages, so DI/type-hint-injected services are no longer false-positive dead code — e.g. a Laravel
__construct(private OrganizationService $service)dependency now registers as a referencer of the service. - Broader test classification. PHPUnit camelCase methods (in test files) and
@Test/[Fact]-family annotations (JUnit5, xUnit, MSTest, NUnit) are recognized as tests, feeding correct TESTED_BY edges; a class/file-stem name fallback covers DI/mock-heavy tests that never directly call their subject.
Fixed
- Bare-name resolution footgun.
importers_of "ErrorPopup"resolved to a same-named function and returned a false "none"; file-preferring patterns now resolve extensionless names to the File deterministically before any ranking. - Direction ambiguity. Output labels and docs now disambiguate
references_of(outgoing —References from) vsreferencers_of(incoming —Referencers of). - Annotation modifiers. Java/Kotlin/C#/PHP annotations are stored in native syntax instead of Rust-style
#[...].
Changed
- Compass guidance (system prompts, tool descriptions, ready hook) now teaches verify-empty-results-with-Grep and the
importers_offile-name rule, while keeping Compass-first for relationship/structure queries. - Extraction format v4 → v6 forces a one-time graph rebuild on next launch so existing graphs pick up the new edges.
- Version bump:
1.18.1→1.19.0.