Repository navigation
fix: Stream rebuild source pages with publication fences - #802
Draft
buildingjoshbetter wants to merge 4 commits into
Draft
buildingjoshbetter wants to merge 4 commits into
buildingjoshbetter wants to merge 4 commits into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
First checkpoint for #756, stacked on the source-revision/maintenance foundation #790. Covers standalone completion/separation builders and their foreground publication boundaries. Tier-switch manager/worker corpus lists and active-tier configuration publication remain separate work under #756 and #795. Includes the MCP dependency correction from #801 for current installation gates.
Reproduced problems and changes
Memory bound
Serialized staged payload is bounded by
max(1, txn_batch) * native_batch_size * dimension * 4bytes per resident index. Existing defaults at 256 dimensions yield100 * 16 * 256 * 4 = 1,638,400bytes on the MPS path and100 * 100 * 256 * 4 = 10,240,000bytes on the CPU path. Python objects, one source page, model/native allocations and caller-provided lists remain additional. One large record is not truncated. This is not a whole-process memory cap or measured Mac saving.Validation
519fb87f7946c222da572bbfb004c2861337a9b7f3dc025f93e6ac83f25df8f8.4fdcb50fa056f17eac3ce6c792a5e798b8be890dpassed 2,597 tests and 1,169 subtests with actual sqlite-vec rebuild cases enabled, 22 skips and 3 deselections. Ruff passed.Primary behavior references: CPython 3.10 statement cache, SQLite authorizer contract. The full native-suite count above belongs to the preceding source head; the new correction changes only the test fault injector.
Limits
A caller-owned transaction retains its own locks and final durability responsibility. Explicit input lists must not mutate concurrently. The bridge certifies only rebuild input; canonical maintenance and FTS behavior on custom collations are not fixed by this patch. Other derived-state invalidation and tier activation remain open.
No model, reranker, precision, dimension or retrieval-depth change. No personal memory database, transcript or credential in test inputs. No live Mac change, main merge, release or issue closure. Issue #756 remains open.