Repository navigation
fix(plugin-catalog): re-pin provenance-gate to 0.1.3 - #144339
Merged
teknium1 merged 1 commit intoOct 25, 2026
Merged
Conversation
0.1.1 fixed two patterns in claims.py that backtracked quadratically on long runs of whitespace. A later pass over every pattern in the plugin found a third one, _ZH_BRACKETED, which is unchanged since 0.1.0: input made only of opening brackets made every start position scan to the end of the string. 0.1.2 bounded those runs; 0.1.3 adds the timing test for it. The only call site passes a slice of at most 120 characters, so the input that reaches the gate is unaffected: 200,000 random strings of up to 120 characters give identical results before and after the change. Two lines: sha and version.
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 does this PR do?
Bumps provenance-gate to 0.1.3 (
d8ded75deef198694639d8653c1834a26f3b0372).Three patterns in
claims.pybacktracked quadratically. All three are fixed, and each one has atiming test that runs in a subprocess with a hard timeout.
_KEY_VALUEand_TRAILING_PAREN— a long run of whitespace with no separator made them retryfrom every offset; 1 MiB of spaces took 0.67 s and "a" + 1 MiB + "b" did not finish in 30 s.
Fixed in 0.1.1 with possessive quantifiers (Hermes requires Python >= 3.11); both finish in
under 5 ms now.
_ZH_BRACKETED— six<opener>[^<closer>]*<closer>alternatives with an unbounded middle run, soinput made only of opening brackets made every start position scan to the end of the string. 40k
characters took 0.79 s and 160,000 characters took about 12 s. Bounded in 0.1.2; 40k now
takes 0.008 s.
The only call site passes a slice of at most 120 characters (
_WINDOW), so the input that reachesthe gate is unaffected by the third fix: 200,000 random strings of up to 120 characters give
identical results before and after.
0.1.3 adds the timing test for
_ZH_BRACKETEDand changes no pattern.Related Issue
No issue. The defects and their fixes live in the plugin repository
(
simin-yuan/hermes-provenance-gate, tagv0.1.3); the catalog only needs the pin moved.Type of Change
Changes Made
plugin-catalog/provenance-gate.yaml:sha8813469d…→d8ded75d…,version0.1.0→0.1.3.Nothing else in the file changes.
How to Test
python scripts/validate_plugin_catalog.py plugin-catalog/provenance-gate.yaml→OK: 1 file(s) validpython scripts/checkv0.1.3:python -m pytest tests/test_performance.py -q→23 passed in 12.7 s. The same test file run againstv0.1.1fails all three bracket cases(160,000 characters took about 12 s).
Checklist
Code
pytest tests/ -qand all tests pass — N/A: catalog data only, no Python in this repository is touchedpython scripts/checkpasses (the blocking lint and code-health checks CI runs)Documentation & Housekeeping
cli-config.yaml.exampleif I added/changed config keys — N/ACONTRIBUTING.mdorAGENTS.mdif I changed architecture or workflows — N/A