test(gq): add the GQ logic test harness, corpus, and fix-regression gate - #596
Merged
Merged
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
azimafroozeh
force-pushed
the
gq-logic-tests
branch
from
September 1, 2026 16:28
7670bb7 to
a7d7557
Compare
azimafroozeh
force-pushed
the
gq-logic-tests
branch
from
September 2, 2026 11:47
a7d7557 to
c0857c1
Compare
…aise recursion_limit
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
aaltshuler
reviewed
Sep 2, 2026
aaltshuler
left a comment
Contributor
There was a problem hiding this comment.
Technical review with five inline findings. The focused harness passes 93/93 tests, including all six corpus cases. The canonical workspace suite remains unverified on this SHA because the PR job was skipped and the PR notes that it was not run locally.
This was referenced Sep 3, 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
Implements RFC 0045 (GQ logic tests, #584): a query-level regression becomes one small text file instead of a Rust test, and issue-closing PRs are held to carrying one.
crates/omnigraph/tests/gq_logic_tests.rswalkstests/gq_logic_tests/*.gqt: one self-contained case per file (issue anchor andred_on:provenance, then schema, seed, and query / mutate / restart steps with per-step params and expect).unordered(multiset),ordered,error: <substring>,affected: nodes=<N> edges=<M>; number normalization never routes integers through f64.OMNIGRAPH_GQ_BLESS=1rewrites a failing case's expect rows in place;OMNIGRAPH_GQ_LOGIC_TESTS=<substring>filters cases by file name.gq-logic-tests.yml:GQ Logic Testsruns the target pre-merge (the workspace job keeps covering it post-merge), andFix Regression Gate(scripts/check-fix-regression.py) holds every issue the body closes by keyword to a matchingissue_Ntest or.gqtcase in the diff, waivable per PR with theno-reprolabel.#[ignore]messages open with their species.The nightly heavy-repro job stays deferred until its first
tests/repro_issue_*.rsmember lands (the job fails on an empty glob by design).Backing issue / RFC
docs/rfcs/0045-gq-logic-tests.md(docs(rfc): add RFC 0043, GQ logic tests #584). docs(rfc): add RFC 0043, GQ logic tests #584 merges first; itsimplementation:flip rides that branch.Checklist
src/changes)testing.md,ci.md,branch-protection.md, AGENTS.md)Local verification
cargo test -p omnigraph-engine --test gq_logic_tests— 84/84cargo clippy -p omnigraph-engine --all-targets -- -D warnings -W clippy::dbg_macro,cargo fmt --all— cleanscripts/check-fix-regression.py --self-test— ok; plus three scenario runs against this branch's own diff: closing performance: bm25/rrf ranked read + a join materializes the joined column corpus-wide → Arrow 2 GB offset overflow at ~700k+ rows #563 passes (the corpus matches), closing an issue with no test exits 1, theno-reprolabel waivesscripts/check-docs.py,scripts/check-agents-md.sh,scripts/check-workflow-action-pins.py— all OKcargo test --workspace— not run locally (nosrc/changes); CI covers itNotes for reviewers
with_traversal_modepin.no-reprolabel, then runscripts/apply-branch-protection.sh(running it earlier leaves open PRs pending on contexts they cannot receive; both new checks already report on this PR).fixes #N,fixes: #N, andfixes:#N(leading zeros normalized); URL, cross-repo,GH-N, and no-spacefixes#Nclosings pass unexamined and stay review's job.edited/labeled/unlabeledPR types re-run the gate when a body edit or the label changes its answer; the test job re-runs on them too (accepted cost).save-if: push), so per-PR caches cannot evict main's.Greptile Summary
The PR adds a GQ logic-test harness and corpus together with required CI and branch-protection checks. It also introduces a fix-regression gate, but the gate’s attempted executable-shape validation still accepts ordinary Rust functions.
.gqtparser, runner, expectations, filtering, blessing, and initial regression corpus.Confidence Score: 4/5
The PR is not yet safe to merge because the required fix-regression check can pass when an issue-closing change adds no executable regression test.
The gate accepts any suitably named function definition in Rust source files, including ordinary production or helper functions, while the pre-merge workflow only executes the GQ corpus and therefore does not close that enforcement gap.
Files Needing Attention: scripts/check-fix-regression.py
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart LR PR[Pull request] --> Body[Parse closing keywords] Body --> Gate[Fix Regression Gate] Gate --> Corpus[Match added .gqt case] Gate --> Rust[Match added Rust function name] Corpus --> Pass[Required check passes] Rust --> Pass Corpus --> GQ[Run GQ logic corpus]Reviews (3): Last reviewed commit: "test(gq): bound the walker, refuse unsaf..." | Re-trigger Greptile