marginal v0.2.0
marginal review's exit code for missing reviewer credentials changes from 1 to 3 — a breaking change for any caller relying on the old code, but it's also what lets marginal-action finally skip cleanly on forked PRs instead of failing their CI.
Breaking Changes
marginal review's exit code for a configuredmodels.reviewermissing its required credentials changes from1to3, distinct from the1still returned for every other provider/GitHub error (ISSUE-60, PR-61 by @exactml)
New Features
- Folds the content of any
config.policiesfiles into the finding-generation prompt (ISSUE-29, PR-40 by @exactml) - Redacts likely secrets (PEM keys, JWTs, GitHub/AWS tokens,
api_key=/token=/secret=assignments) from a diff before it reaches a model provider (ISSUE-47, PR-58 by @exactml)
Improvements
- Review output is now severity+confidence-badged instead of flat indented text (ISSUE-36, PR-38 by @exactml)
- Deduped
test_cli.py's review test fixtures (PR-41 by @exactml) - Added
SECURITY.mdwith a vulnerability disclosure process (ISSUE-62, PR-67 by @exactml) - Added
CODE_OF_CONDUCT.mdbased on the Contributor Covenant (ISSUE-63, PR-68 by @exactml) - Added
dev-setupandcut-releaseClaude Code skills (ISSUE-66, PR-69 by @exactml)
📖 Full details: CHANGELOG.md