# Changelog

## Score

- CAI 64 → 61 (-3.7)
- Rubric changed (rubric-2026.10.1 → rubric-2026.10.5) — scores are not directly comparable.

## Lenses

- Code Health 91 → 71 (-20.0)
- Architecture 87 → 87 (+0.0)
- Maturity 51 → 48 (-2.6)
- Readiness 67 → 67 (+0.0)
- Security 86 → 86 (+0.0)

## Resolved (4)

- Inconsistent naming for the 'replace only' operation. `Listener.only` is concise, while `Silencer.Controller.replace_with_only` is verbose. This suggests a lack of abstraction layering where the Controller exposes implementation details (the 'replace' action) rather than the intent ('set only').
- Inconsistent naming for the same logical operation across public interfaces. `Listener.ignore!` and `Silencer.Controller.replace_with_bang_ignores` both appear to perform a 'replace ignores' operation, but one uses a bang suffix and the other uses a verbose descriptive name. This forces users to learn two different naming conventions for the same concept.
- Off-boarding risk: anonymized user #1
- Redundant naming convention for mutation. The bang (!) suffix in Ruby typically implies a destructive or side-effect-heavy operation, but here it appears to be a simple alias or variant of `ignore` with potentially identical or very similar semantics (likely just replacing vs appending ignores). Without distinct behavioral documentation, this creates API confusion.

## New (12)

- Inconsistent naming and semantics for silencing/ignoring paths. The public API exposes both `ignore` and `ignore!` on the Listener, while the internal Silencer.Controller uses `append_ignores` and `replace_with_bang_ignores`. The distinction between 'append' vs 'replace' and the use of `!` for mutation is not unified across the silencing interface.
- Inconsistent naming for the 'only' filtering operation. The public Listener API uses `only`, while the internal Silencer.Controller uses `replace_with_only`. This creates confusion about whether `only` replaces existing filters or appends to them.
- Off-boarding risk: anonymized user #1
- Orphaned file (lib/listen/adapter/bsd.rb)
- Orphaned file (lib/listen/adapter/linux.rb)
- Orphaned file (lib/listen/adapter/windows.rb)
- Orphaned file (lib/listen/event/processor.rb)
- Orphaned file (lib/listen/file.rb)
- Orphaned file (lib/listen/fsm.rb)
- Orphaned file (lib/listen/listener.rb)
- Orphaned file (lib/listen/queue_optimizer.rb)
- Orphaned file (lib/listen/record.rb)
