feat(store): index-format rebuild boundary for the File-QN change#1104
feat(store): index-format rebuild boundary for the File-QN change#1104LA-10 wants to merge 1 commit into
Conversation
4cb3014 to
b79f397
Compare
|
Thanks for the focused diagnosis and for linking the public #769 repro. I have triaged this as a high-priority 0.9.1-rc parsing/search correctness fix. The current diff has no dependency, workflow, network, credential, prompt-injection, or supply-chain concern. The present unit coverage is not sufficient for this change:
CI is still running. The identity compatibility decision remains a blocker even if it turns green. |
|
Maintainer decision: the File-QN direction is accepted, and we will use an automatic one-time full-reindex compatibility boundary rather than an in-place migration. Please update this PR with the following scope:
This resolves the maintainer-owned compatibility decision. Merge review will resume against the new exact head after these correctness and upgrade-path tests are present and CI is green. |
9408889 to
074edcc
Compare
|
Rebased onto main. #1108 landed the same file guard while this was in review, so I’ve dropped my fqn.c change — this PR no longer touches that file. |
|
Thanks for rebasing this on top of #1108 and narrowing the PR to the compatibility boundary. That remaining boundary is useful, but this head is not ready to merge yet:
Once those are in place, we can re-review the exact updated head. |
55c7e2f to
09f7936
Compare
…ary Refs DeusData#769 Signed-off-by: LA-10 <leenshuhail1@gmail.com>
09f7936 to
9925970
Compare
What this does
#1108 made File-node QNs keep the extension, but shipped without a compatibility boundary. So on
main, an index built before #1108 keeps its old collided QNs, and the next incremental run only updates changed files, mixing old and new identities (duplicate nodes, stale edges).This adds a persisted format marker (
PRAGMA user_version). A stale-format index goes through the existing full-reindex path once (keeping ADR/metadata, per #516) and is stamped so the next unchanged run stays incremental. No in-place migration an old collided DB can't reconstruct the missing siblings safely.Notes
cbm_writer_openrebuilds the DB file on every dump, so the stamp is written on both dump paths; otherwise every incremental run resets the marker and forces a rebuild.test_incremental.ccatches that.fqn.cis unchanged fix(fqn): preserve full filename in File-node QNs so sibling files don't collide #1108 owns that fix. This is only the boundary.Tests (
tests/test_index_format.c, in the gatingtestsuite)search_codecoverage