# Changelog

## Score

- CAI 68 → 61 (-7.3)
- 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 59 → 47 (-11.6)
- Readiness 74 → 74 (+0.0)
- Security 96 → 96 (+0.0)

## Resolved (6)

- Ambiguous entry point for the main Gon object. It is unclear if `Gon.global()` and `Gon.ControllerHelpers.gon()` return the same singleton instance or different objects, leading to potential confusion about which API surface to use for configuration.
- Inconsistent naming and exposure for Jbuilder integration. Similar to Rabl, `Jbuilder.handler` is exposed publicly alongside the convenience methods `Gon.jbuilder` and `Global.jbuilder`, causing API duplication and confusion.
- Inconsistent naming and exposure for Rabl integration. `Gon.rabl` and `Global.rabl` are high-level wrappers, while `Rabl.handler` is a lower-level implementation detail exposed publicly. This creates confusion about whether to use the convenience method or the handler.
- Redundant `inspect()` method on both `Gon` and `Global`. Since `Global` appears to be the implementation backing `Gon` (or a subset thereof), exposing `inspect` on both is redundant.
- Redundant exposure of `all_variables()` across multiple types (`Gon`, `Global`, `Watch`). While `Global` and `Watch` might be internal implementations, exposing this method on the primary `Gon` type and its subtypes creates API duplication. Users may not know which one to call.
- Redundant exposure of `clear()` across multiple types. Similar to `all_variables()`, this operation is duplicated across `Gon`, `Global`, `Request`, and `Watch`. This suggests inconsistent state management or unnecessary API surface area.

## New (10)

- Ambiguous duplication with ViewHelpers. `Gon.Watch.render()` and `Gon.Watch.render_amd()` likely duplicate the functionality of `Gon.ViewHelpers.include_gon()` and `Gon.ViewHelpers.include_gon_amd()`. The naming convention (`render` vs `include`) is inconsistent across types.
- Duplicate inspection methods. `Gon.inspect()` and `Gon.global().inspect()` likely return the same string representation of the global state.
- Duplicate template rendering methods. Similar to `rabl`, `Gon.jbuilder()` and `Gon.Global.jbuilder()` are redundant.
- Duplicate template rendering methods. `Gon.rabl()` and `Gon.Global.rabl()` are redundant. Since `Gon.global()` returns a `Global` instance, `Gon.rabl()` is likely a proxy that duplicates `Gon.Global.rabl()`.
- Orphaned file (lib/gon.rb)
- Orphaned file (lib/gon/base.rb)
- Orphaned file (lib/gon/jbuilder/parser.rb)
- Orphaned files with no living knowledge
- Redundant accessors for the same state. `Gon.all_variables()`, `Gon.Global.all_variables()`, and `Gon.Watch.all_variables()` appear to expose the same underlying data collection. `Gon.global()` returns a `Global` instance, suggesting `Gon.Global` is the canonical implementation, making `Gon` and `Gon.Watch` direct duplicates.
- Redundant mutation operations. `Gon.clear()`, `Gon.Global.clear()`, and `Gon.Watch.clear()` all perform the same cleanup action on the global state. This creates multiple entry points for the same side-effect.

## Changes since last survey

- 1 commits — 1 feature/other, 0 fixes

## By area

- (repo) — 1 commit

## Notable commits

- change: Merge pull request #328 from gazay/dependabot/github_actions/ruby/setup-ruby-1.327.0

## Architecture

- 0 containers · 1 bounded contexts · 0 dependency edges (baseline)
