Repository navigation
feat(settings): configure write byte allowances - #933
Merged
azimafroozeh merged 3 commits intoOct 10, 2026
Merged
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
azimafroozeh
enabled auto-merge
October 10, 2026 14:39
This was referenced Oct 10, 2026
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.
What & why
The fixed 32 MiB write allowance makes Blob boundary tests carry large payloads. Add request-scoped
write_max_bytes(1..=33554432, default 32 MiB) through session, CLI and HTTP settings, withOMNIGRAPH_WRITE_MAX_BYTESas the process default.Row data and logical Blob payloads each get an independent allowance. Mutations, loads and materializing merges capture it for the operation, including retries and publication. The setting also governs existing parser-estimate and retained removed-ID allowances, preserving their per-type, per-operation and per-chunk scopes. A 4,093-byte Blob can now test the exact boundary beside ordinary row metadata.
Backing issue / RFC
No accepted issue or RFC has been supplied for this setting. This substantive change does not qualify for the trivial fast-lane.
Checklist
docs/dev/invariants.md.Local verification
From the task checkout:
cargo test --workspace --exclude omnigraph-gqt --exclude omnigraph-gqt-served --exclude omnigraph-dst --locked --features omnigraph-engine/failpoints,omnigraph-cluster/failpoints: passed.cargo test -p omnigraph-gqt --locked --lib --test runner_dispatch: passed.cargo test -p omnigraph-gqt -p omnigraph-gqt-core --locked: passed.cargo test -p omnigraph-gqt-served --locked --test gqt_served_conformance: passed.cargo test -p omnigraph-server --locked --test openapi openapi_spec_is_up_to_date: passed.cargo fmt --all --check: passed.cargo clippy --workspace --all-targets --locked -- -D warnings -W clippy::dbg_macro: passed.cargo clippy --workspace --all-targets --locked --features omnigraph-engine/failpoints,omnigraph-cluster/failpoints -- -D warnings -W clippy::dbg_macro: passed.cargo clippy -p omnigraph-gqt -p omnigraph-gqt-core --all-targets --locked -- -D warnings -W clippy::dbg_macro: passed./Users/azim/projects/_omnigraph/tools/comment-check/target/release/comment-check /Users/azim/projects/omnigraph-tasks/omnigraph_slot_bx: passed..venv-docs/bin/python scripts/check-docs.py: passed.bash scripts/check-agents-md.sh: passed.typos: passed.The complete GQT run passed all 292 corpus cases. The new mutation boundary case also passed the served HTTP comparison. Both new cases failed on engine/DST under a temporary restoration of mixed accounting, then passed after restoring the implementation.
Notes for reviewers
The base still has mixed Blob/row accounting, so this patch includes the minimum separation needed for the boundary contract. It overlaps PR 903; that PR's code was not used as a source. The generated large fixture in PR 927 is separate work.
A lower environment value is a default, not an administrative ceiling. HTTP loads inherit that default and accept no request override; remote CLI loads still reject
--set. Direct embedded and--storeCLI loads can override it. HTTP body caps, Blob reads, external URI metadata and maintenance limits keep their existing controls.The default now admits up to 32 MiB of row data plus 32 MiB of Blob payload per operation, where the previous single 32 MiB allowance covered both. Payload accounts count logical payload lengths; builder over-capacity (up to about one third) is outside them.