Skip to content

Tags: maxgfr/codeindex

Tags

v2.31.4

Toggle v2.31.4's commit message
chore(release): 2.31.4 [skip ci]

## [2.31.4](v2.31.3...v2.31.4) (2026-10-05)

### Bug Fixes

* **grammars:** bump tree-sitter grammars and re-vendor wasm ([ae5a3a8](ae5a3a8))

v2.31.3

Toggle v2.31.3's commit message
chore(release): 2.31.3 [skip ci]

## [2.31.3](v2.31.2...v2.31.3) (2026-10-05)

### Bug Fixes

* **deps:** bump transitive undici to 6.29.0 and 7.30.0 ([#26](#26)) ([74f1ad4](74f1ad4)), closes [#16](#16) [#22](#22) [#23](#23) [#24](#24)

v2.31.2

Toggle v2.31.2's commit message
chore(release): 2.31.2 [skip ci]

## [2.31.2](v2.31.1...v2.31.2) (2026-10-01)

### Bug Fixes

* **grammars:** bump tree-sitter grammars and re-vendor wasm ([ac4c79e](ac4c79e))

v2.31.1

Toggle v2.31.1's commit message
chore(release): 2.31.1 [skip ci]

## [2.31.1](v2.31.0...v2.31.1) (2026-09-30)

### Bug Fixes

* **js-ts:** keep the `export default Foo;` pass linear on comment runs ([d8c9a47](d8c9a47))

v2.31.0

Toggle v2.31.0's commit message
chore(release): 2.31.0 [skip ci]

# [2.31.0](v2.30.1...v2.31.0) (2026-09-29)

### Bug Fixes

* **binders:** bind a call site by its receiver, imports and package ([1252319](1252319))
* **cache:** reject a persisted ref whose soft flag is not `true` ([52a858d](52a858d))
* **ci:** read pre-epoch --since windows on newer git, detect ripgrep directly ([f80c222](f80c222))
* **cli:** warn when a read command answers from an empty scan ([2188218](2188218))
* **complexity:** count code only, skip containers, score nested functions apart ([5a593f1](5a593f1))
* **deadcode:** per-symbol reference evidence, callables by default, manifest roots ([21042be](21042be))
* **delta,complexity:** review the first commit, and refuse unknown file targets ([5e5beac](5e5beac))
* **delta:** trace importers of deleted and renamed files ([6d0b296](6d0b296))
* **edit:** follow operator continuations in regex-tier spans ([50e605e](50e605e))
* **edit:** never insert above Rust inner docs and attributes ([2b15c03](2b15c03))
* **edit:** verify symbolic edits instead of splicing guessed spans ([ee6ad1c](ee6ad1c))
* **embed:** degrade a broken model.json to lexical instead of exiting 2 ([e06391f](e06391f))
* **extract:** choose capped call sites in source order, not name order ([e0393e8](e0393e8))
* **extract:** declare every name of a multi-name declaration ([9b794c0](9b794c0))
* **extract:** index bundles without their copies of the sources' symbols ([42eb965](42eb965))
* **extract:** index Elixir definitions with a `when` guard ([48e50b2](48e50b2))
* **extract:** index minified JavaScript without its symbols, and flag it ([8ffefb5](8ffefb5))
* **extract:** index Ruby singleton-class, inline-visibility and factory-class methods ([f3c31c2](f3c31c2))
* **extract:** keep comments and bodies out of signatures ([8e59545](8e59545)), closes [#define](https://github.com/maxgfr/codeindex/issues/define)
* **extract:** keep one-letter callees in the AST tier ([a251b76](a251b76))
* **extract:** make a Lua table function a member of its table ([58f5cb1](58f5cb1))
* **extract:** name CommonJS default exports and walk anonymous default classes ([6343f9c](6343f9c))
* **extract:** read declarations, docs and spans on the regex tier ([7c4a77f](7c4a77f))
* **extract:** read Python strings and non-leaf strings in the AST tier ([feb54a3](feb54a3))
* **extract:** read setext headings and skip indented code in markdown ([49b9125](49b9125))
* **extract:** record each config scalar once, as a number or a string ([8877c5c](8877c5c))
* **extract:** recover declarations the AST walk dropped or misread ([bedb420](bedb420)), closes [#define](https://github.com/maxgfr/codeindex/issues/define)
* **extract:** scan imports from code only, in linear time, on both tiers ([37ad6d6](37ad6d6))
* **extract:** scope `export { … }` lists to the bindings they name ([42cab94](42cab94))
* **extract:** stop indexing Dart call sites and keywords as functions ([0074519](0074519))
* **extract:** summarize a file from its description, not its license ([57ad935](57ad935)), closes [#pragma](https://github.com/maxgfr/codeindex/issues/pragma)
* **git:** read history and diffs relative to --repo, immune to user config ([48810e5](48810e5))
* **grep:** bound time and output, share one universe and dialect across backends ([abaebb9](abaebb9))
* **grep:** pass rg only exclusions it reads the way the engine does ([a99cb56](a99cb56))
* **impact:** no impossible Go dependents, and a package's files have importers ([e8646c5](e8646c5))
* **index:** make persisted-index reuse honour everything it depends on ([814af1f](814af1f))
* **integration:** a symbolic edit also revokes the --watch proven walk ([1230771](1230771))
* **integration:** align navigation's tests with resolve, extract-imports and mcp ([6379aa6](6379aa6))
* **integration:** delta's narrowing hint and churn's path filter ([8e6ca4b](8e6ca4b))
* **integration:** drop mcp.ts searchIndex import left over from the merge ([a08497f](a08497f))
* **integration:** edit-safety's regex-tier premise after extract-imports ([a74af0f](a74af0f))
* **integration:** keep two tests' premises true after extract-imports ([15ac352](15ac352))
* **integration:** one --scope reading and one universe for grep ([0eaa51b](0eaa51b))
* **integration:** retry a pooled LSP query whose server died unseen ([7ea4710](7ea4710))
* **literals:** read Go build variants as one holder, drop CI and manifest boilerplate ([088aa5e](088aa5e))
* **lsp:** anchor requests on the declared identifier ([b1516c8](b1516c8))
* **lsp:** report the server's own stderr when it fails to start ([789ce11](789ce11))
* **mcp:** answer ping during a tool call and honour cancellation ([c8ddfa4](c8ddfa4))
* **mcp:** keep deleted files out of watched sessions ([6f4f137](6f4f137))
* **mcp:** look symbols and profiles up by own key only ([91f5edc](91f5edc))
* **mcp:** make every result honour the official SDK's schema contract ([17f41cd](17f41cd))
* **mcp:** normalize file arguments and enforce enum-like options ([f169fa0](f169fa0))
* **mcp:** offer a persisted artifact only when it is the answer ([a608060](a608060))
* **mcp:** validate every tools/call before the repo is walked ([13fd914](13fd914))
* **neighbors:** report every relation to a neighbour, strongest first ([eeb9241](eeb9241))
* **onboard:** take the tagline from the top of the README, not a release banner ([87763ea](87763ea))
* **playground:** give the rules command the scan, so the literals gate is complete ([f8081e8](f8081e8))
* **repomap:** rank production code, and show each file's public surface first ([4052c52](4052c52))
* **resolution:** count the new language resolvers as supported ([268151e](268151e))
* **resolve:** fix Python roots and TS, Go and doc-link resolution gaps ([a79e1ef](a79e1ef))
* **resolve:** Rust lib names, renamed deps, uniform paths and #[path] mods ([c7b3611](c7b3611))
* **rewrite:** restate grep/rg/git grep faithfully, or refuse ([6e963bb](6e963bb))
* **rewrite:** smart case on fixed strings, refuse an empty path ([e825db7](e825db7))
* **rules:** gate literals on the full list and reject configs that check nothing ([9017eae](9017eae))
* **rules:** stop reporting live package files and unimportable languages as orphans ([e64d0af](e64d0af))
* **scan:** apply --scope/--include/--exclude inside the walk, as an intersection ([22894f7](22894f7))
* **scip:** nest symbols by their real parent and map every kind ([ffd4b61](ffd4b61))
* **search:** demote fixture and snapshot trees below tests ([e69e12f](e69e12f))
* **search:** index re-exports as prose, not as declarations ([6adce9d](6adce9d)), closes [#1](#1)
* **search:** let the stem bridge reach a word that is its own stem ([84385f4](84385f4))
* **search:** make --rank graph a real, scale-free prior, and say it is a wash ([7e299f6](7e299f6))
* **search:** make --semantic honour --exact/--rank/--explain and keep lexical fields ([3bef7ff](3bef7ff))
* **search:** search a stopword that is the whole query or a declared name ([d46a603](d46a603))
* **search:** whole-number result limits everywhere, and "appears" for one term ([43b875f](43b875f))
* **symbols:** keep symbols named __proto__ in symbols.json ([47807d9](47807d9))
* **tests-map:** Go tests cover their package, and a test its namesake ([907158a](907158a))
* **viz:** keep mermaid node ids clear of flowchart keywords, label nodes by path ([e495d11](e495d11))
* **walk:** keep build/out/target/tmp directories that git tracks ([3117448](3117448))
* **walk:** skip in-repo file symlinks as aliases of their target ([2c83d25](2c83d25))

### Features

* **analytics:** couple indexed files by confidence, rank only changed hotspots ([6f84f1e](6f84f1e))
* **callers:** opt-in caller id per site (--with-caller, MCP withCaller) ([6adfefc](6adfefc))
* **callgraph:** overrides edges and dispatch, and deadcode honours them ([ba8bc68](ba8bc68))
* **cli:** add `status`, a freshness report for the persisted index ([2de09cc](2de09cc))
* **cli:** find, refs and outline commands ([b44fe61](b44fe61))
* **delta:** serve the review over MCP and gate CI with --fail-on ([dfcced9](dfcced9))
* **embed:** embed each symbol's doc comment and skip re-exports ([29da123](29da123))
* **extract:** extract Vue, Svelte and Astro components from their script ([0f01302](0f01302))
* **extract:** honour a Python module's `__all__` ([4f1d3f6](4f1d3f6))
* **extract:** index reStructuredText docs like markdown ([40ccbde](40ccbde))
* **extract:** index TypeScript parameter properties and PHP promoted properties ([d22432e](d22432e))
* **graph:** resolve soft refs only when they land on an in-repo file ([e97f12b](e97f12b))
* **graph:** resolve soft refs only when they land on an in-repo file ([cbf64ac](cbf64ac))
* **grep:** export grepRepoEx and keep a timed-out answer consistent ([40a0f65](40a0f65))
* **hierarchy:** Go interface implementations by assertion and method set ([cd3499e](cd3499e))
* **mcp:** add a memory profile and place every tool in one ([414a39a](414a39a))
* **mcp:** impact and neighbors tools ([a30c442](a30c442))
* **mcp:** keep a member's parent in concise declarations ([868a900](868a900))
* **mcp:** send progress notifications during a call's scan phases ([5c47083](5c47083))
* **navigation:** callpath <A> <B> and MCP call_path ([370cc78](370cc78))
* **navigation:** one symbol syntax, explained misses, honest CLI flags ([5632500](5632500))
* **navigation:** symbol-at file:line, on the CLI and as MCP symbol_at ([f52cb83](f52cb83))
* **resolve:** import edges for Kotlin, Scala, Dart, Lua, shell and Elixir ([11c26f1](11c26f1))
* review every feature for correctness, performance and new capabilities ([#22](#22)) ([3ea8183](3ea8183))
* **scan:** explain skipped paths with `scan --why` and `scan --skipped` ([6ae0363](6ae0363))
* **scip:** emit implementation relationships and package identity ([420ddf7](420ddf7))
* **search:** split all-lowercase compound file names into corpus words ([c99098d](c99098d))
* **workspaces:** check declared deps, report resolution health, fix detection gaps ([aafde96](aafde96))

### Performance Improvements

* **binders:** group defs once and intersect with import targets ([8d758a9](8d758a9))
* **delta:** read the diff before the index, and leave the index out of it ([7cd5760](7cd5760))
* **edit:** skip the outline re-extraction for capped files ([113cfb3](113cfb3))
* **embed:** reuse stored vectors instead of re-embedding the corpus per search ([263d652](263d652))
* **ignore:** answer gitignore rules without a full-path regex ([0edc2d5](0edc2d5))
* **index:** prove freshness from freshness.json, not the 142MB cache.json ([0ec52df](0ec52df))
* **index:** restamp graph.json when only the commit moved ([a925f7b](a925f7b))
* **lsp:** pool language-server sessions for the MCP server's lifetime ([88424cc](88424cc))
* **mcp:** forget only the edited file after a symbolic edit ([5369d44](5369d44))
* **mcp:** key every call on one canonical spelling of its repo ([f1e66cf](f1e66cf))
* **mcp:** let --watch prove freshness instead of re-walking every call ([764e960](764e960))
* **pool:** hash before extracting a stat-changed file ([ad9ae3a](ad9ae3a))
* **preload:** read a fresh index one artifact at a time ([4f25b51](4f25b51))
* **resolve:** index Java types and C# namespace prefixes ([756f8b7](756f8b7))
* **resolve:** sort only the manifests, not the whole file set ([23465aa](23465aa))
* **scan:** let docs take the stat fastpath and read their text lazily ([b3170cf](b3170cf))
* **search:** score only candidate files and dress only the kept rows ([1e8c781](1e8c781))

v2.30.1

Toggle v2.30.1's commit message
chore(release): 2.30.1 [skip ci]

## [2.30.1](v2.30.0...v2.30.1) (2026-09-14)

### Bug Fixes

* **grammars:** bump tree-sitter grammars and re-vendor wasm ([#20](#20)) ([fa3abc6](fa3abc6))

v2.30.0

Toggle v2.30.0's commit message
chore(release): 2.30.0 [skip ci]

# [2.30.0](v2.29.1...v2.30.0) (2026-09-08)

### Features

* **inventory:** share configurable walks and byte-aware text reads ([bc63c5c](bc63c5c))

v2.29.1

Toggle v2.29.1's commit message
chore(release): 2.29.1 [skip ci]

## [2.29.1](v2.29.0...v2.29.1) (2026-09-07)

### Bug Fixes

* delete files ([97ad172](97ad172))

v2.29.0

Toggle v2.29.0's commit message
chore(release): 2.29.0 [skip ci]

# [2.29.0](v2.28.6...v2.29.0) (2026-09-07)

### Features

* **engine:** harden runtime and validate LSP, benchmarks and Docker ([b0f41c1](b0f41c1))

v2.28.6

Toggle v2.28.6's commit message
chore(release): 2.28.6 [skip ci]

## [2.28.6](v2.28.5...v2.28.6) (2026-09-07)

### Bug Fixes

* **cache:** validate persisted records and speed up reference queries ([2724908](2724908))