Skip to content

code-kb v1.1.1

Choose a tag to compare

@github-actions github-actions released this 19 Sep 00:17
· 169 commits to main since this release

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 string and 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(...) with receiver = Qn and namespace_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.rs cover 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