Skip to content

fix(plugin-catalog): re-pin provenance-gate to 0.1.3 - #144339

Merged
teknium1 merged 1 commit into
NousResearch:mainfrom
simin-yuan:catalog/provenance-gate-0.1.3
Oct 25, 2026
Merged

teknium1 merged 1 commit into
NousResearch:mainfrom
simin-yuan:catalog/provenance-gate-0.1.3

Conversation

@simin-yuan

Copy link
Copy Markdown

What does this PR do?

Bumps provenance-gate to 0.1.3 (d8ded75deef198694639d8653c1834a26f3b0372).

Three patterns in claims.py backtracked quadratically. All three are fixed, and each one has a
timing test that runs in a subprocess with a hard timeout.

  • _KEY_VALUE and _TRAILING_PAREN — a long run of whitespace with no separator made them retry
    from 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, so
    input 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 reaches
the 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_BRACKETED and changes no pattern.

Related Issue

No issue. The defects and their fixes live in the plugin repository
(simin-yuan/hermes-provenance-gate, tag v0.1.3); the catalog only needs the pin moved.

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)

Changes Made

  • plugin-catalog/provenance-gate.yaml: sha 8813469d… → d8ded75d…, version 0.1.0 → 0.1.3.
    Nothing else in the file changes.

How to Test

  1. python scripts/validate_plugin_catalog.py plugin-catalog/provenance-gate.yaml → OK: 1 file(s) valid
  2. python scripts/check
  3. In the plugin repository at v0.1.3: python -m pytest tests/test_performance.py -q →
    23 passed in 12.7 s. The same test file run against v0.1.1 fails all three bracket cases
    (160,000 characters took about 12 s).

Checklist

Code

  • I've read the Contributing Guide
  • My commit messages follow Conventional Commits
  • I searched for existing PRs to make sure this isn't a duplicate
  • My PR contains only changes related to this fix (one file, two lines)
  • I've run pytest tests/ -q and all tests pass — N/A: catalog data only, no Python in this repository is touched
  • python scripts/check passes (the blocking lint and code-health checks CI runs)
  • I've added tests for my changes — N/A for a pin; the regression tests ship in the plugin repository
  • I've tested on my platform: Windows 11

Documentation & Housekeeping

  • I've updated relevant documentation — N/A
  • I've updated cli-config.yaml.example if I added/changed config keys — N/A
  • I've updated CONTRIBUTING.md or AGENTS.md if I changed architecture or workflows — N/A
  • I've considered cross-platform impact — N/A (YAML pin)
  • I've updated tool descriptions/schemas if I changed tool behavior — N/A

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.
@simin-yuan
simin-yuan requested a review from a team as a code owner October 25, 2026 07:40
@alt-glitch alt-glitch added cause/upstream A cause outside Hermes that Hermes cannot fully fix: a model provider's outage, policy change, rate comp/plugins Plugin system and bundled plugins P2 Medium — degraded but workaround exists type/bug Something isn't working labels Oct 25, 2026
@teknium1 teknium1 added the ci-reviewed applied to manually approve dangerous changes label Oct 25, 2026
@teknium1
teknium1 merged commit 8bef764 into NousResearch:main Oct 25, 2026
44 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cause/upstream A cause outside Hermes that Hermes cannot fully fix: a model provider's outage, policy change, rate ci-reviewed applied to manually approve dangerous changes comp/plugins Plugin system and bundled plugins P2 Medium — degraded but workaround exists type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants