Select unbounded MemWAL retention and close fold boundary#379
Merged
Conversation
aaltshuler
force-pushed
the
codex/rfc026-b2a-retain-all-gate-r0
branch
from
July 21, 2026 02:06
9ba34d2 to
bffccdb
Compare
aaltshuler
force-pushed
the
codex/rfc026-b2a-retain-all-gate-r0
branch
from
July 21, 2026 02:23
272d57b to
bffccdb
Compare
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.
Summary
_mem_waldeletion and promises no retained byte, object, file, or history quota.__manifestexactly once.Why
Gate R0 exposed two separate facts. First, a legal near-32-MiB generation could be acknowledged and materialized but then fail folding because sparse
LsmScannerslices retained much larger backing buffers. Second, stock Lance RC.1 cannot prove a finite lifetime or complete provider-billed growth envelope for every materialization attempt.The first issue is a correctness/closure bug and is fixed here. The second prevents a bounded-storage promise, but it does not block a profile that explicitly retains everything. This lets OmniGraph move forward without waiting for upstream reclamation APIs or introducing an unsafe raw-path collector.
Impact
The row and logical-memory limits remain 8,192 rows / 32 MiB, with one resident writer and one exclusive fold. Provider exhaustion is loud and may stop progress; it never permits false acknowledgement, silent loss, or partial graph publication.
This does not activate public streaming. Explicit enrollment, compare-and-chain tokens, trusted attribution, revisioned lifecycle receipts, correction, authorization, SDK/CLI/HTTP/OpenAPI parity, and their evidence remain future work. Managed reclamation and any
GraphHistoryBudgetbelong to an optional later bounded profile.Validation
cargo test --workspace --lockedcargo test --locked -p omnigraph-engine --features failpoints --test memwal_stream— 25 passedcargo test --locked -p omnigraph-engine --features failpoints --test memwal_stream_cost— 19 passed, 1 subprocess helper ignoredgit diff --checkrustfmt --checkfor the modified Rust implementation and test filesGreptile Summary
This PR selects an unbounded retain-all MemWAL profile and closes the near-cap fold boundary. The main changes are:
Confidence Score: 5/5
The updated code looks safe to merge.
Important Files Changed
Reviews (4): Last reviewed commit: "Preserve Gate R0 failure diagnostics" | Re-trigger Greptile
Context used: