Skip to content

code-kb v1.0.2

Choose a tag to compare

@github-actions github-actions released this 16 Sep 00:07
· 138 commits to main since this release

Release Notes: code-kb v1.0.2

code-kb v1.0.2 is a patch release that fixes the extractor version guard, shrinks the index by asking julie-extract for the facts extraction level, and ties extractor scans to the code-kb process that started them. It requires julie-extract 3.0.0, which ships inside every release archive.


What's Changed

1. Extractor Version Guard (Defect Fix)

  • Rebuild loop fixed: The index guard now compares the recorded extractor version with the julie-extract binary in use, not with the pin. A non-pinned extractor caused a full index rebuild on every tool call and every server start. Reproduced on a two-file repo: three reads, three rebuilds.
  • Pinned-first discovery: Among JULIE_EXTRACT_BIN, the executable's sibling, .tools/julie-extract up the directory tree, and PATH, the first candidate whose version matches the pin wins. A repository that vendors its own older julie-extract no longer overrides the installed one.
  • Level guard: An index recorded at another extraction level is rebuilt once.

2. Smaller Index (facts Extraction Level)

  • New artifacts are built with julie-extract scan --level facts: the symbol core, structural facts, literals, and the type-usage and member-access identifiers, without the call and variable-reference identifiers and the source_regions table that code-kb never reads. On a 12,788-file repository this cuts the index from 3.9 GB to 1.7 GB, the scan from 85 s to 52 s, and peak extractor memory from 5.3 GB to 2.6 GB, with identical structural-fact and literal counts.
  • Existing full-level indexes are rebuilt once on the first call.

3. References Beyond Calls

  • find_references(direction="callers") now also returns type usages (annotations, casts) and member accesses of the name, read from the extractor's identifier rows. Before, a class, type, or field only showed its call sites.

4. Call Resolution Ranking

  • Unresolved call edges are matched to definitions by name and now ranked by the call site. A bare call prefers a same-named definition in the same file, then in the same directory, before merging with all others. A method call through a variable prefers the method on the variable's recorded type (parameters, annotated bindings, self).
  • The five copies of the matching predicate in find_references, get_symbol_context, and blast_radius now share one function, so all three tools rank the same way.
  • On a 12,788-file repository, 11,879 of 39,405 ambiguous bare-call edges narrow to exactly one definition.
  • The receiver rule narrows fewer edges (2,529 of 175,256 ambiguous method calls on the same repository) because the extractor records variable types only for parameters, annotated bindings, and self.

5. Syntax Validation Moves to the Extractor

  • replace_symbol_body now validates the proposed file text with julie-extract check (new in julie-extract 3.0.0) instead of five bundled tree-sitter grammars. Every language the extractor parses is now checked, not only Rust, JavaScript, TypeScript, Python, and Go.
  • The six tree-sitter crates are gone from the dependency tree. This release pins julie-extract 3.0.0.

6. Plugin Installs Without a Manual Binary Step

  • Every harness plugin now starts code-kb through bin/code-kb-launcher.cjs, a dependency-free Node script. On first run it downloads the release archive for the plugin's version, verifies the SHA-256 sidecar, and unpacks code-kb and julie-extract into ~/.code-kb/dist/<version>/. Later runs start instantly.
  • New Antigravity plugin manifests (plugin.json, mcp.json, mcp_config.json, hooks.json) so agy plugin install works like Claude Code and Codex.
  • Node.js 18 or newer is now required for plugin installs. Manual installs of the release archive work as before.
  • CODE_KB_HOME, CODE_KB_VERSION, and CODE_KB_BIN steer the launcher. A binary or symlink at ~/.code-kb/bin/code-kb overrides the download in every harness, and a plugin installed from a source checkout runs that checkout's target/release/code-kb when it exists.

7. Extractor Process Hygiene

  • Parent watchdog: Scans pass --parent-pid (Unix), so an extractor scan aborts when the code-kb process that started it dies.
  • Empty artifact recovery: A zero-byte or unreadable artifact.db left by an interrupted scan is removed and rebuilt instead of failing every later scan.

8. Index Self-Healing in the CLI and at Session Start

  • CLI commands now build a missing index and reconcile a stale one before answering, the same as the MCP server. A fresh clone or a new git worktree no longer needs code-kb scan first, and a worktree copies its parent repository's index instead of scanning.
  • The MCP server reconciles the index in the background at startup; the first tool call now waits for that reconciliation, so a lookup right after a branch switch no longer answers from the stale index.

9. Install Guidance

  • The README states that cargo install code-kb-cli installs code-kb only and where to get the pinned julie-extract.
  • The missing-extractor error names the download page.
  • The README now explains how the server finds the workspace and shows --root in every GUI-app config (Cursor, OpenCode, Claude Desktop, the Antigravity IDE). Terminal harnesses keep code-kb serve with no flag.

Crates.io

code-kb-core 1.0.2 and code-kb-cli 1.0.2 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.0.0 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.0.0) binaries:

Archive Platform SHA256 Checksum
code-kb-v1.0.2-x86_64-unknown-linux-gnu.tar.gz Linux x86_64 9e86596baf3c84ec2874e7b4a4fe0f0590d5e6ab4e6af851bb4b0579f8bf7957
code-kb-v1.0.2-aarch64-apple-darwin.tar.gz macOS Apple Silicon 03ff5fef1e18b3b25166eee9f6af2d607a3a1b34e55f7eafb2c4b7b4c32ac534
code-kb-v1.0.2-x86_64-apple-darwin.tar.gz macOS Intel 7a462f0f072c5e071c2098ac1d952a9ce2f77b1a53a6ca924694c9bda5fdd730
code-kb-v1.0.2-x86_64-pc-windows-msvc.zip Windows x86_64 b2ab4635e381ec70133e0fe1e0e57513827fcc3980fdbfb8c808b02bbc8b28de