Repository navigation
·
69 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Highlights
One index per checkout and per branch
- Worktrees: each checkout directory has its own index. A linked git worktree is a separate project. Inside a worktree or nested repository that has no index, queries no longer use the parent checkout's graph. The SessionStart hook names the directory to index. Indexing a checkout skips the linked worktrees inside it. Before this change,
git worktree add ./wtadded duplicate files to the parent graph. - Branches: when an index run finds the checkout on a different branch, it parks the old branch's index (zstd-compressed) and restores the new branch's index. A switch back re-indexes only the changed files. Settings:
branch_index,branch_index_keepandbranch_index_budget.index_statusshowsindexed_branchand the parked indexes. - Cache expiry: once a day, the server moves stale indexes into a trash. These are indexes whose checkout is gone, unused indexes and old parked branches. Use
code-cortex-mcp cache expire --dry-runto see what would go, andcache restore <project>to restore an index. Settings:cache_expiry*.
Design: docs/BRANCH_INDEX.md, docs/CACHE_EXPIRY.md.
Upstream sync to ec6427c3 (2026-10-16, curated)
About 110 upstream commits, ported in eleven themed groups. Some of the changes:
- C/C++: C typedefs are nodes. Macros and enumerators get qualified names. Definitions wrapped in a macro take the name of the macro argument. C member access binds by object type.
Class::memberresolves across files. A file parsed both raw and preprocessed gives one definition per site. - Doc comments are complete across languages.
search_graphlistings cap docstrings at 500 bytes. - Performance: big files are resolved first, the C field-owner rows cost less, and the projection rescue computes only the definitions it uses.
- Fixes: a Python package named in
pyproject.tomlkeeps its self-imports internal. A tie in the registry never picks a constructor over its own type.search_codereads at most 64 MiB per file and never throws. Cross-repo calls that name another host are never served locally.core.excludesFileis rooted at the enclosing repository.
Full log: UPSTREAM_SYNC.md.
Upgrade note
The index format is now 5. Existing indexes are rebuilt on the next index run.
Full Changelog: v0.22.0...v0.23.0