Repository navigation
feat(gqt): add a server target and run cases against omnigraph-server - #923
Merged
azimafroozeh merged 6 commits intoOct 9, 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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1defe12c43
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
azimafroozeh
enabled auto-merge
October 9, 2026 22:25
6 tasks done
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
This PR lets the GQT runner execute a case against a running
omnigraph-server(omnigraph-gqt <case> --server <URL> --graph <ID> [--token <T>]) and makes the corpus the server's conformance suite. It is the runner half of the server execution surface RFC 0039 lists beside the embedded one; timing, records and identity stay with the bench. No engine, server, API or CLI code changes; no new case syntax.omnigraph-gqt-core: each step travels to the route that already serves it (--- query,branch listandshowtoPOST /query;--- mutateand the branch statements toPOST /mutate; the seed and--- loadtoPOST /load) and is judged from the answer with the in-process row and error checks. Query and mutate bodies go verbatim, so the served path hits the parser doors a user hits.--- restart,--- concurrent, seams, settings,--- expect plan,--- expect same as v1, the# traversal:pin and index-needing queries are refused.--- expect shapeis observed, not judged: it holds the executor's Arrow schema against the compiler's, which no wire answer carries, and 269 of 275 cases carry one. Every request is bounded at the case budget.target: omnigraph-server; without--serverthat environment is planned but unselected (report scopepartial), so the corpus runs in-process as before. 80 of 276 cases opt in; the rest use a refused section. A declaredomnigraph-server-dstis still refused, nothing implements it.gqt_served_conformanceinomnigraph-serverboots an in-process server per opted-in case and requires a green in-process verdict and the same served verdict;gqt_served_countrefuses an empty served set; a fourthGQ Logic Testsmode,served, runs both. 80 agree, 196 skipped, 0 differ.showstatement needs its;on the wire, pinned by the newshow_statement_served_with_its_terminatorcase) and one server limit the in-process path has no twin for (Notes).Backing issue / RFC
docs/rfcs/0039-end-to-end-benchmark.md): its environment axis names the server execution surface; this PR implements the runner side of it through the existing routes, so no API and no RFC update is owed.Checklist
gqt_served_conformance(80 served, 196 skipped, 0 differing) andgqt_served_count;runner_dispatch::server_target_admission_refuses_before_workerspins every flag combination refused before a worker spawns (--serverwithout--graph, with--store, with bless, with--targetnaming another environment, a declaredomnigraph-server-dst) plus bless on an engine-and-server case; therunner_configunit test pins the five served admission arms. Rust because no.gqtcase can observe a flag, a spawned worker or a request.crates/omnigraph-gqt/README.md(served section) anddocs/dev/ci.md(GQT (served)); nodocs/user/surface changedchangelog.d/gqt-server-target.added.mdLocal verification
cargo test -p omnigraph-server --test gqt_served_conformance --test gqt_served_count -- --nocapture: 276 cases, 80 served and agreeing, 196 skipped, 0 differing, 2.0 s wall (local FS, engine v2, in-process server); the count test prints the same totalscargo test -p omnigraph-gqt-core -p omnigraph-gqt --locked: corpus 276, runner dispatch 26, gqt-core 193, gqt 47; clippy-D warningsonomnigraph-gqt,omnigraph-gqt-core,omnigraph-serverall targets; fmtomnigraph-gqt <case> --server <URL> --graph <ID>against a bootedomnigraph-serverbinary: not run; the conformance test calls the served executor directly, so the CLI flag path is pinned by its refusal rows only, and a green-verdict smoke step on the server binary is the follow-upNotes for reviewers
POST /queryandPOST /mutaterefuse bodies overDEFAULT_REQUEST_BODY_LIMIT_BYTES(1 MiB), a limit the in-process path has no counterpart for:issue_856_repeat_fast_forward_past_validation_budgetfails served on its large mutation and keeps its in-process environments only; no limit loosened.servedCI cell buildsomnigraph-serverplus the gqt dev-dependencies, a feature graph the other three modes do not share, under its own cache key and 60-minute budget; its cold wall time is unmeasured until the first hosted run.