# Changelog

## Score

- CAI 63 → 59 (-4.4)
- Rubric changed (rubric-2026.10.1 → rubric-2026.10.5) — scores are not directly comparable.

## Lenses

- Code Health 100 → 76 (-24.3)
- Architecture 69 → 69 (+0.0)
- Maturity 49 → 43 (-5.9)
- Readiness 75 → 75 (-0.1)
- Security 90 → 90 (+0.0)

## Resolved (3)

- Duplicate intent: Two distinct types expose a `breakpoints()` method with identical names and likely identical return types (listing breakpoints). It is unclear if these are different namespaces for the same concept or if one is deprecated/internal. The naming collision between `PryByebug.Helpers.Breakpoints` and `Pry.Byebug.Breakpoints` is confusing.
- Inconsistent command execution pattern: `PryProcessor` uses a generic `perform(action, options)` method to dispatch logic, while individual command classes (e.g., `BreakCommand`, `NextCommand`) use a specific `process()` method. This suggests two different patterns for executing debugger commands within the same library.
- Workflow token permissions not restricted

## New (7)

- Duplicate intent: Two distinct types (`PryByebug.Helpers.Breakpoints` and `Pry.Byebug.Breakpoints`) expose a method with the exact same name and likely same signature (`breakpoints()`). This suggests a split between helper utilities and core API logic that is confusing to users.
- Inconsistent command execution pattern: `PryProcessor` uses a generic `perform(action, options)` method to dispatch logic, while individual command types (e.g., `BreakCommand`, `NextCommand`) expose a specific `process()` method. This creates two different ways to execute debugger commands depending on whether you are using the processor abstraction or the command object directly.
- Orphaned file (lib/byebug/processors/pry_processor.rb)
- Orphaned file (lib/pry-byebug/commands/breakpoint.rb)
- Orphaned file (lib/pry/byebug/breakpoints.rb)
- Outdated: pry
- Workflow token permissions not restricted (.github/workflows/ubuntu.yml)
