feat: add keep-gates, graph E2E, watch bounds, and span joins - #32
Merged
Conversation
Run the differential automatically when ASGREP_DIFF_AST_GREP is set, require ast-grep 0.45.1, and preserve honest Not-run reporting when the external oracle is absent. Amp-Thread-ID: https://ampcode.com/threads/T-01a003f3-e62e-75ca-950f-0de88d7fe0fe Co-authored-by: Amp <amp@ampcode.com>
Compare literal:return file presence across the checked-in 13-language fixture with pinned ripgrep 15.1.0, while keeping full ripgrep identity explicitly out of contract. Amp-Thread-ID: https://ampcode.com/threads/T-01a003f3-e62e-75ca-950f-0de88d7fe0fe Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a003f3-e62e-75ca-950f-0de88d7fe0fe Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a003f3-e62e-75ca-950f-0de88d7fe0fe Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a003f3-e62e-75ca-950f-0de88d7fe0fe Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a003f3-e62e-75ca-950f-0de88d7fe0fe Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a003f3-e62e-75ca-950f-0de88d7fe0fe Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a003f3-e62e-75ca-950f-0de88d7fe0fe Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a003f3-e62e-75ca-950f-0de88d7fe0fe Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a003f3-e62e-75ca-950f-0de88d7fe0fe Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a003f3-e62e-75ca-950f-0de88d7fe0fe Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a003f3-e62e-75ca-950f-0de88d7fe0fe Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a003f3-e62e-75ca-950f-0de88d7fe0fe Co-authored-by: Amp <amp@ampcode.com> # Conflicts: # crates/ast-sgrep-cli/src/eval.rs # crates/ast-sgrep-core/src/search/mod.rs # crates/ast-sgrep-core/src/search/types.rs # crates/ast-sgrep-lang/src/pattern.rs
Amp-Thread-ID: https://ampcode.com/threads/T-01a003f3-e62e-75ca-950f-0de88d7fe0fe Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a006d4-a8ae-77c7-a203-288a069f14d5 Co-authored-by: Amp <amp@ampcode.com>
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
literal:returnfile presence across the checked-in 13-language fixture with ripgrep 15.1.0watchfreshness at three debounce windows during sustained same-path writes.asgrepand custom index artifacts before they enter the watch queuepattern:andcallers:conjunctions by overlapping span while preserving left-result identityAND NOTat the corresponding scopeThis PR is intentionally stacked on #31 because that PR owns the Pattern-1 harness and native nested-pattern implementation. Related gate, freshness, query-composition, and graph-scale work is consolidated here to avoid PR bloat.
Verification
ASGREP_DIFF_AST_GREP=/opt/homebrew/bin/ast-grep cargo test -p ast-sgrep-core --test pattern_diff --(5 passed, 0 ignored)ASGREP_DIFF_RG="$(command -v rg)" cargo test -p ast-sgrep-core --test literal_diff --(1 passed, 0 ignored)python3 -m unittest scripts.tests.test_generate_compliance_reportcargo fmt --all -- --checkcargo clippy -p ast-sgrep-cli --all-targets -- -D warningscargo clippy -p ast-sgrep-core --all-targets -- -D warningscargo test -p ast-sgrep-cli --lib watch::tests -- --nocapture(8 passed)cargo test -p ast-sgrep-cli --test watch_daemon_e2e -- --nocapture(2 passed)cargo test -p ast-sgrep-core --lib search::conjunction::tests -- --nocapture(13 passed)cargo test -p ast-sgrep-core --test conjunction_queries -- --nocapture(6 passed)archived_pi_fixture_graph_modes_match_indexed_keysin release mode (1 passed)node --test tests/pi/launcher/*.test.mjs(23 passed after the Pattern-1 commit)yq eval '.' .github/workflows/graph-scale.ymltests/fixtures/pattern_diff: indexed one file and returned two structuralprocess_requesthitstests/lang/fixtures/extract: indexed all 13 files;literal:returnand ripgrep returned the same file-presence settargetfunction with pattern, caller, and graph contributorsBeads:
ast-sgrep-o8ng,ast-sgrep-zxd9,ast-sgrep-o6i3,ast-sgrep-k1ns,ast-sgrep-mock-free-e2e-gaps-lbx1.5Adversarial review remediation
f525fd22. CI was not awaited.