code-kb v1.1.1
Release Notes: code-kb v1.1.1
code-kb v1.1.1 fixes find_references, callees, and blast_radius for calls written as a qualified chain such as Outer.Inner.Method(...). A user report showed find_references returning 1 of 7 callers of a C# method reached through a nested static class; the cause was shared by 18 languages. It ships julie-extract 3.1.1 inside every release archive. The plan behind these changes is docs/plans/2026-09-18-qualified-call-chain-receivers.md.
What's Changed
1. Callers of Nested Symbols
- A call whose receiver is a nested class, object, or module (
Outer.Inner.Method()) is now matched to the nested symbol even when the outer container's name differs from its file name. The pending-call filter accepts a namespace segment that names any ancestor of the target, not only a segment of the target's file path. - The name-only identifier fallback no longer reports a member of a differently named container as a caller of the target. In the reported case, a
static readonly stringand a method that shared a simple name in sibling nested classes were merged into one caller list; each now gets exactly its own references. A receiver that names the target's own parent is always kept, so two containers with the same name and the same member name still list their shared caller.
2. Extractor: julie-extract 3.1.1
- Every language records a qualified call chain
Q1.Q2 ... Qn.t(...)withreceiver = Qnandnamespace_path = [Q1 .. Qn-1]. Before 3.1.1, C#, Java, Kotlin, Go, and PowerShell dropped the receiver; C++, Zig, JavaScript, and TypeScript emitted no call at all; Python, Swift, Dart, Lua, GDScript, C, PHP, Ruby, and R stored the whole chain as one receiver string. Rust, Elixir, F#, Erlang, Scala, and VB.NET were already correct. - Java records each call once instead of twice.
- The first tool call after upgrading rebuilds the index once, because the recorded extractor version changes.
Verification
- Three new tests in
crates/code-kb-core/tests/references_test.rscover the nested C# and Scala cases, the reported constant-and-method collision, and two same-named containers with a same-named member.
Crates.io
code-kb-core 1.1.1 and code-kb-cli 1.1.1 are published. cargo install code-kb-cli builds code-kb only; cargo binstall code-kb-cli fetches the release archive below. Both need julie-extract 3.1.1 from the julie-extractors releases on PATH or in JULIE_EXTRACT_BIN.
Assets & Checksums
Bundled release archives include matching precompiled code-kb and pinned julie-extract (v3.1.1) binaries:
| Archive | Platform | SHA256 Checksum |
|---|---|---|
code-kb-v1.1.1-x86_64-unknown-linux-gnu.tar.gz |
Linux x86_64 | 6443f7dc1b720bb8a4ac531e22bbed8a15a8d6c63cb95fdba7f8358b548e7afb |
code-kb-v1.1.1-aarch64-apple-darwin.tar.gz |
macOS Apple Silicon | c3e11bdcefa81069b0a9f1244648b31e5ea0d57a0653f4ab443dbef8a7a03b1c |
code-kb-v1.1.1-x86_64-apple-darwin.tar.gz |
macOS Intel | b5c49dc373dff8ffb588096428ae8204589a8799a7c9d328787314929bf52aca |
code-kb-v1.1.1-x86_64-pc-windows-msvc.zip |
Windows x86_64 | f3636e03923e7820f008936d35542ae8daa5e2686a6779613fcf51a53cf36e4f |