Skip to content

v0.43.13

Choose a tag to compare

@aahlijia aahlijia released this 25 Aug 11:23
· 1 commit to main since this release

v0.43.13 — Resolver, sanity, and query correctness fixes

Ten patch releases' worth of correctness fixes to dekko's resolver, sanity, and query/context commands, plus one CI/pool-hang hardening pass and one packaging fix. No breaking changes; no schema changes to map.json.

Fixed

Resolver correctness

  • Cross-language false matches: same-named symbols in unrelated languages no longer win a confident wrong resolution — candidates are now filtered by language (and language-family, e.g. C/C++, JS/TS/TSX) before falling back to the unfiltered set.
  • dekko ambiguous misfiled noise-suppressed builtin-method calls (trim, .then(), get, resolve, create, ...) as genuine ambiguity, inflating reported ambiguity rates 2-3x on JS/TS repos.
  • affected/workset false-flagged tests via a Node builtin module-name collision (e.g. a repo's own server/path.ts matching Node's path).
  • Heritage resolution (query subtypes/supertypes) lost same-named C/C++ base classes and Rust trait implementors to ambiguous — whole-file #include hints and crate-aware import matching are now threaded into heritage resolution the same way call resolution already had them.
  • Rust resolver now follows crate::X into custom-named crate roots ([lib] path = "src/foo.rs") and resolves bare cross-crate use other_crate::X; imports against sibling workspace crates instead of assuming external.

dekko sanity

  • Truncated grep sweeps (>5,000 lines) no longer silently report a false zero count; snippets are now length-capped; added CAUSE_IMPORT_STATEMENT classification for both single-line and multi-line destructured imports; own-definition-line exclusion now covers every same-named symbol, not just the query target.

dekko query/dekko context

  • Importer listings now show the real bare import source instead of the resolver-internal module/name encoding.
  • Module-level pseudo-caller rows always show per-site line numbers when recorded, not just under --sites.
  • The JS/TS caveat note is now conditional on the repo actually containing JS/TS.

Reliability

  • dekko map --jobs 0 no longer hangs indefinitely past its documented 600s timeout under concurrent load — every ProcessPoolExecutor call site now tears its pool down without waiting on wedged workers on timeout.
  • dekko daemon stop no longer falsely reports success (exit 0) when the daemon is confirmed alive and busy.
  • README logo now renders correctly on PyPI (absolute asset URLs, not relative).

Added

  • dekko map --force to explicitly opt into overwriting an existing full-repo map with a narrower subpath-scoped one (previously silent; now refused by default).
  • scripts/sync_plugin_version.py + pre-commit hook + release-workflow check, so the Claude plugin manifests can't drift out of sync with pyproject.toml again.