Skip to content

Regressionledger

v0.9.0 Breaking

This release includes 1 breaking change for platform teams planning a safe upgrade.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

agent-memory ai-coding-agent anthropic claude-code claude-code-hook claude-code-hooks
+9 more
claude-code-marketplace claude-code-plugin claude-code-plugins claude-plugins cursor developer-tools nodejs regression vibe-coding

Affected surfaces

auth breaking_upgrade

Summary

AI summary

Hard blocks now require a raw-channel match, allowing constant changes without denial.

Full changelog

## v0.9.0 — the right to retry

A community member cloned this repo, read all ~2,400 lines, reproduced the benchmark, and then broke the design with two lines of experiment:

Fix changing timeout 5000 -> 30000: same fingerprint? true
Fix changing "admin" -> "superuser": same fingerprint? true

Because literals collapsed to STR/NUM, a legitimate parameter retry shared a fingerprint with the failed attempt — so the tool hard-blocked the correct fix with "change strategy" (when changing the constant WAS the strategy). Worse: the benchmark's own disguise list defined literal changes as matches, making its "0 false blocks" structurally circular. The biggest false-positive class lived outside the measurement.

They proposed the fix. It's shipped, exactly as designed:

Changed

  • Hard blocks now require a raw-channel match — same code, constants included (only whitespace/comments stripped). Changing a constant or string is never denied.
  • Collapsed-only matches (same shape, different values) get an advisory note and one hearing. A variant that fails earns its own record — its verbatim repeat then blocks.
  • Retire-on-pass is raw-keyed: timeout: 30000 passing does not acquit timeout: 5000's failure.
  • Batch attribution disclosed: when one run fails N edits, block messages admit "attribution is approximate" with an rl unblock pointer.
  • Benchmark rewritten in three honest categories: 60/60 cosmetic re-applies hard-matched - 40/40 literal variants routed to note-not-block (0 wrongly blocked) - 0/190 distinct fixes matched.

86 tests - zero dependencies - this changelog keeps its own ledger honest.

Breaking Changes

  • Hard blocks now require a raw-channel match (same code with constants included, only whitespace/comments stripped). Changing a constant or string is never denied.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Regressionledger

Get notified when new releases ship.

Sign up free

About Regressionledger

All releases →

Related context

Beta — feedback welcome: [email protected]