# Changelog

## Score

- CAI 66 → 62 (-4.0)
- Rubric changed (rubric-2026.10.1 → rubric-2026.10.5) — scores are not directly comparable.

## Lenses

- Code Health 96 → 74 (-22.5)
- Architecture 100 → 100 (+0.0)
- Maturity 56 → 51 (-4.5)
- Readiness 61 → 62 (+1.5)
- Security 82 → 82 (+0.0)

## Resolved (1)

- Workflow token permissions not restricted

## New (7)

- Ambiguous Naming: `gitBranch` and `gitCurrentBranch` are distinct keys, but the naming is confusing. `gitBranch` likely refers to the current branch, while `gitCurrentBranch` might be redundant or refer to a different concept (e.g., the branch being checked out vs the HEAD branch). In most Git contexts, 'branch' implies the current branch. Having both suggests a lack of clarity on what `gitBranch` represents if `gitCurrentBranch` also exists.
- Duplicate Functionality with Different Types: `GitRunner` and `JGitRunner` have identical signatures for `apply`. This suggests that `JGitRunner` is a specific implementation of a runner, but exposing both as top-level public types with identical signatures creates confusion about which one to use. It implies that `GitRunner` might be an interface or a generic wrapper, but the signature suggests it's a concrete class.
- Naming Inconsistency and Duplication: The methods for configuring backends are split into 'Reads' and 'Operations' with parallel naming conventions (`useXxxForReads` vs `useXxxForOperations`). This creates a high cognitive load and potential for user error (e.g., setting one but not the other). Furthermore, `useSystemGitFirstForReads` and `useSystemGitFirstForOperations` imply a fallback strategy, but the naming doesn't clearly distinguish between 'exclusive' and 'fallback' strategies across the two domains.
- Orphaned file (src/main/scala/com/github/sbt/git/JGit.scala)
- Redundant Interface/Type Hierarchy: `ConsoleGitReadableOnly` and `JGit` are concrete implementations that both implement the same interface `GitReadonlyInterface`. However, `ConsoleGitReadableOnly` exposes a public API that is identical to `GitReadonlyInterface`, making the interface redundant for these specific types. More critically, `ConsoleGitReadableOnly` is a public type that duplicates the contract of `GitReadonlyInterface` without adding distinct behavior visible in the signature, suggesting a leaky abstraction or unnecessary public exposure of an implementation detail that should be hidden behind the interface.
- Workflow token permissions not restricted (.github/workflows/ci.yml)
- Workflow token permissions not restricted (.github/workflows/publish.yml)
