dekko 0.43.45
Fifty commits since 0.43.13 — a sustained correctness/reliability pass driven by six rounds of real-world evaluation (awesome-go, claude-buddy, claude-code, cline, spring-boot, tensorflow, zed) against dekko's own CLI/MCP surface. Every fix below traces to a reproduced finding on one of those repos.
Resolver & call-graph correctness
- Cross-language false-positive call matches eliminated via language-family-aware resolver fallback.
- Rust: crate-root resolution hardened against decoy/vendor/fixture crates sharing a real crate's name — was causing near-total under-resolution on large repos (1/383 trait implementors found on one).
- C++: "most vexing parse" constructor-argument calls (
Type name(Ctor(), deleter);, idiomatic RAII) recovered — previously dropped from the call graph entirely. - JS/TS:
EventEmitter/EventTargetmethod names no longer misattributed as user calls;tsconfig.json/jsconfig.jsonpath aliases now resolve (0 → 2,024 import edges on one repo). - New arity-gated resolution: single-candidate calls now check argument-count plausibility before accepting, instead of accepting on name alone.
- TypeScript
type X = ...aliases are now indexed — previously invisible toquery_symbol/find_type_usages/heritage/unused, despite being the dominant type-declaration idiom in real TS/TSX code. get_context_packno longer returns false hop-2 callers/callees — a direction-less BFS traversal bug is fixed.
New capabilities
dekko sanity --all— repo-wide sanity sweep with--jobs/--max-names/--fail-on-unexplainedfor CI gating.dekko sanity --unused NAME— cross-checks a flagged-dead symbol against a grep sweep.dekko unused --suspect/--dispatch/--kinds {callables,types,all}— surfaces ambiguous-collision false negatives, dispatch-shaped candidates, and now scans types (including aliases) via heritage + type-usage evidence.dekko query throws/catches --lang— cuts cross-language noise on mixed-language repos.- A standing high-ambiguous-call-rate flag across
summary/doctor/hooks output. - Output self-disclosure hints throughout (
query symbol,context,sanity --group-by-file). - Session-start hook gains a hard token ceiling for oversized repos.
Reliability
- Daemon-routed
diff/affected/worksettimeout scaling recalibrated against real large-repo measurements; cold-rev-cache misses now default to all-core parallelism. - Daemon/status/process reliability batch: honest stop exit codes, worker-pool timeout hardening, a transient post-bind socket race now retried instead of failing.
Minor breaking change
dekko export --scoperenamed to--granularity(the old flag was widely misread as scoping to a symbol).--scopestill works as a deprecated alias.