Skip to content

release: 2.2.0 - #24

Merged
dennishavermans merged 2 commits into
mainfrom
release/2.2.0
Sep 3, 2026
Merged

release: 2.2.0#24
dennishavermans merged 2 commits into
mainfrom
release/2.2.0

Conversation

@dennishavermans

Copy link
Copy Markdown
Owner

What

A ranking release: finding volume now tracks measured consequence on the permissions surface.

The motivating case: the Linux Foundation's crowd.dev settings produced 22 identical AGF506 warnings, of which exactly one rule (Bash(gh api repos*)) grants remote writes. After this PR: 1 warning, 21 infos.

Change Grounded by
New: wildcarded gh api allow rule reported as a write grant Measured: -X DELETE, -f description=x, and a git/refs branch deletion all auto-approved under Bash(gh api repos*); gh's own help documents the GET-to-POST switch
New: mid-rule wildcard standing where the runner's subcommand goes Measured: pnpm --filter web exec rm -rf ./x build auto-approved by Bash(pnpm --filter * build); quiet once the subcommand is pinned
Fusion ranked by reach: one-word prefix stays warning, longer drops to info python* covers python3 -c ...; git logfoo is nobody's command
One fact per rule + sharpened wildcard-before-subcommand message Measured: Bash(git * main) auto-approves git push --force origin main

Deliberately not curl/wget: the same flags ride their wildcards, but the write they unlock carries no credentials the command did not spell out. Scoping to gh api (token on every call) is what keeps this out of the wall-of-noise failure the pattern set's own comment warns about.

Corpus regression (344 real settings files, 12,556 rules)

  • warnings: ~750 → 259; infos: 688; errors unchanged
  • api-method-ride-along: 34 hits, all wildcarded gh api rules
  • exec-admitting-wildcard: 0 corpus hits (the prisma shape is not in the sample; its fixtures carry the measurements)
  • wildcard-before-subcommand: 4, including the measured Bash(git * main) force-push case

Version

Minor by the project's own precedent: repositories that reported nothing can now report a finding. No new codes; severity defaults are documented as not stable.

Testing

  • 882 core + 152 CLI tests (8 new ranking regressions, each naming its source repo and measurement)
  • Full corpus re-run; crowd.dev, prisma, and rodekruis shapes validated against the built package

crowd.dev's settings produced 22 identical word-boundary warnings, and
exactly one of the 22 rules grants remote writes. The one that deletes
a branch read no louder than git logfoo.

Three measured mechanics now set the volume. A wildcarded gh api allow
rule is a write grant: flags ride any star, and gh switches GET to POST
the moment a parameter is added — Bash(gh api repos*) auto-approved
-X DELETE, -f description=x, and a git/refs branch deletion. A mid-rule
star spans words, so one standing before the runner's subcommand admits
an exec form: pnpm --filter web exec rm -rf ./x build was auto-approved
by Bash(pnpm --filter * build). And fusion is ranked by reach: a
one-word prefix swaps the program itself (python* covers python3),
anything longer must share the prefix and drops to info.

One fact per rule: the sharpest statement about a wildcard suppresses
the word-boundary nag on the same rule. Deliberately not curl: the same
flags ride its wildcards, but unlock writes nothing in the command is
authorised to make.
A minor by the project's own precedent: a repository that reported
nothing can now report a wildcarded gh api rule as a write grant, and
two thirds of the corpus's word-boundary warnings drop to info. Every
new sentence carries the measurement that grounds it. Internal ranges
move with the version, as they did the last two times.
@dennishavermans
dennishavermans merged commit 21ee839 into main Sep 3, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants