# Changelog

## Score

- CAI 63 → 63 (+0.0)

## Lenses

- Code Health 65 → 65 (+0.0)
- Architecture 95 → 95 (+0.0)
- Maturity 54 → 54 (+0.0)
- Readiness 70 → 70 (+0.2)
- Security 78 → 78 (+0.0)

## Resolved (7)

- Ambiguous method overloading/overriding. Having two methods with the same name `run` but different arities (one with an argument, one without) in the same class is confusing in Ruby (which doesn't support true overloading) and suggests either a design flaw or that one is a deprecated wrapper. It creates uncertainty about which entry point to use.
- Inconsistent delegation and naming for lookup operations. `Config` exposes a simple `search` method, but the underlying `Searcher` class exposes multiple variants (`search`, `search_with_context`, `search_with_cache`). This leaks implementation details of the Searcher into the Config API or forces the user to understand the Searcher's internal caching/context strategy. The naming `search_with_*` is verbose and inconsistent with standard Ruby conventions (which prefer keyword arguments or a single flexible method).
- Inconsistent naming for event ingestion. `Buffer` subclasses use `buffer(event)` to add an event to the buffer, while `Runner` and `Filter` use `filter(event)` to process/pass an event. While the verbs are different, the semantic action of 'taking an event and doing something with it' is similar. More critically, `Buffer.buffer` is a noun-verb collision that is hard to read, whereas `Filter.filter` is also a noun-verb collision. However, the inconsistency lies in `Runner` having `filter` and `buffer` as separate steps, while the plugins encapsulate these differently. Specifically, `Runner.buffer` and `Runner.filter` suggest a pipeline, but `Buffer.buffer` suggests the object itself is the container. This is a minor naming style issue rather than a functional duplicate, but `Buffer.buffer` is particularly poor API design.
- Outdated: rbs-inline
- Outdated: steep
- PR-triggered workflow without a permissions block
- Redundant definition of the same attribute. `proctitle` is listed as both a Property and a Method. In Ruby, this usually means a getter method exists, but listing it as both a property and a method in the API surface is redundant and potentially confusing regarding whether it is a simple accessor or a computed value.

## New (1)

- PR-triggered workflow without a permissions block (.github/workflows/main.yml)
