From f3885eeccbd87f1d0e7b578c6d5aa9e4e28f649a Mon Sep 17 00:00:00 2001 From: Gergo Magyar Date: Tue, 21 Jul 2026 15:08:06 +0000 Subject: [PATCH] fix(storage): bump INCREMENTAL_SCHEMA_VERSION for Rust dyn-dispatch fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RUST_SCOPE_QUERY gained a function_signature_item capture (previous commit) so abstract trait methods can now dispatch a CALLS edge through a &dyn Trait receiver. The incremental write set only covers changed files, so a top-up against a pre-v11 index would keep silently missing these edges for every unchanged Rust trait file — same contract as v7/v10; force a full re-analyze instead. --- gitnexus/src/storage/repo-manager.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gitnexus/src/storage/repo-manager.ts b/gitnexus/src/storage/repo-manager.ts index e34432a7a..9852e8ba4 100644 --- a/gitnexus/src/storage/repo-manager.ts +++ b/gitnexus/src/storage/repo-manager.ts @@ -437,8 +437,15 @@ export interface RepoMeta { * `Record` node and its `HAS_METHOD` edges for every unchanged record file * (same v7 contract: new nodes/edges the incremental path would otherwise * never backfill); force a full re-analyze instead. + * v11: Rust abstract trait methods (`fn foo(&self) -> T;`, no body) now get a + * scope + declaration capture (#2604): RUST_SCOPE_QUERY had no + * `function_signature_item` pattern, so a `&dyn Trait` receiver could never + * dispatch a CALLS edge to the trait's own method. Same v7/v10 contract: the + * incremental write set only covers changed files, so a top-up against a + * pre-v11 index would keep silently missing these CALLS edges for every + * unchanged Rust trait file; force a full re-analyze instead. */ -export const INCREMENTAL_SCHEMA_VERSION = 10; +export const INCREMENTAL_SCHEMA_VERSION = 11; export interface IndexedRepo { repoPath: string;