# Changelog

## Score

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

## Lenses

- Code Health 99 → 75 (-23.9)
- Architecture 87 → 88 (+1.4)
- Maturity 56 → 50 (-5.1)
- Readiness 61 → 61 (+0.0)
- Security 73 → 76 (+2.8)

## Resolved (16)

- Duplicate error types with overlapping intent. `RestError` and `RestErrorV10` both represent REST API errors with similar properties (code, message, status_code). `TwilioError` is also present but has no exposed members, suggesting it is a base class or alias, creating confusion about which error type to catch or use.
- Duplicate methods `auth_token_promotion` exist on both `Twilio.REST.Accounts` and `Twilio.REST.Accounts.V1`. This suggests `Accounts` is a facade that delegates to `V1`, but exposing the method on both creates redundancy and potential confusion about which entry point to use.
- Fork-triggerable workflow runs with an unscoped write token
- Inconsistent HTTP request method signatures across the stack. `ClientBase`, `Domain`, and `Version` all expose a `request` method with a similar long signature (host, port, method, uri, params, data, headers, auth, timeout), but `HTTP.Client` also has a `request` method. While layered, the duplication of the full signature in multiple public-facing classes (`Domain`, `Version`) suggests that `Version` and `Domain` might be exposing internal transport details that should be encapsulated, or they are redundant wrappers around `HTTP.Client`.
- Low cohesion: FlexApi (LCOM4 8) (lib/twilio-ruby/rest/flex_api/v1.rb)
- Low cohesion: V1 (LCOM4 4) (lib/twilio-ruby/rest/events/v1/sink.rb)
- Low cohesion: V1 (LCOM4 4) (lib/twilio-ruby/rest/video/v1/room.rb)
- Low cohesion: V2 (LCOM4 4) (lib/twilio-ruby/rest/verify/v2/service.rb)
- Low cohesion: V2 (LCOM4 5) (lib/twilio-ruby/rest/knowledge/v2/knowledge.rb)
- Low cohesion: V2 (LCOM4 5) (lib/twilio-ruby/rest/numbers/v2/application.rb)
- Low cohesion: V2 (LCOM4 5) (lib/twilio-ruby/rest/voice/v2/recording.rb)
- Low cohesion: V2 (LCOM4 6) (lib/twilio-ruby/rest/conversations/v2/conversation.rb)
- Low cohesion: V3 (LCOM4 5) (lib/twilio-ruby/rest/intelligence/v3/configuration.rb)
- Off-boarding risk: anonymized user #1
- Redundant types `Page` and `PageMetadata` expose identical navigation methods (`previous_page`, `next_page`, `previous_page_url`, `next_page_url`). This suggests `PageMetadata` is a duplicate or a thin wrapper around `Page` without adding distinct public behavior, confusing users on which to instantiate.
- Workflow holding a long-lived secret is unscoped

## New (27)

- Duplicate HTTP request capabilities across multiple layers. `ClientBase`, `Domain`, `Version`, and `HTTP.Client` all expose a `request` method with similar signatures. This creates ambiguity about which layer should be used for raw HTTP calls and leads to code duplication.
- Duplicate error types with overlapping intent. Both represent REST API errors with similar properties (code, message, status_code/response). RestErrorV10 appears to be a legacy or specific version variant, creating confusion for consumers who must choose between them or handle both.
- Fork-triggerable workflow runs with an unscoped write token (.github/workflows/pr-lint.yml)
- Inconsistent pagination API surface. `Page`, `PageMetadata`, and `TokenPage` all expose `previous_page` and `next_page` methods, but `TokenPage` also exposes `previous_token` and `next_token`. Furthermore, `Page` and `PageMetadata` duplicate the URL retrieval methods (`previous_page_url`, `next_page_url`) which could be abstracted or handled uniformly. The presence of `TokenPage` with token-based navigation alongside standard page-based navigation suggests a fragmented pagination strategy.
- Low cohesion: V1 (LCOM4 4) (lib/twilio-ruby/rest/events/v1.rb)
- Low cohesion: V1 (LCOM4 4) (lib/twilio-ruby/rest/video/v1.rb)
- Low cohesion: V2 (LCOM4 4) (lib/twilio-ruby/rest/verify/v2.rb)
- Low cohesion: V2 (LCOM4 5) (lib/twilio-ruby/rest/knowledge/v2.rb)
- Low cohesion: V2 (LCOM4 5) (lib/twilio-ruby/rest/numbers/v2.rb)
- Low cohesion: V2 (LCOM4 5) (lib/twilio-ruby/rest/voice/v2.rb)
- Low cohesion: V2 (LCOM4 6) (lib/twilio-ruby/rest/conversations/v2.rb)
- Low cohesion: V3 (LCOM4 5) (lib/twilio-ruby/rest/intelligence/v3.rb)
- Off-boarding risk: anonymized user #1
- Orphaned file (lib/twilio-ruby/framework/rest/page.rb)
- Orphaned file (lib/twilio-ruby/jwt/access_token.rb)
- Orphaned file (lib/twilio-ruby/jwt/client_capability.rb)
- Orphaned file (lib/twilio-ruby/jwt/task_router.rb)
- Orphaned file (lib/twilio-ruby/rest/api.rb)
- Orphaned file (lib/twilio-ruby/rest/conversations.rb)
- Orphaned file (lib/twilio-ruby/rest/messaging.rb)
- …and 7 more

## Changes since last survey

- 1 commits — 1 feature/other, 0 fixes

## By area

- lib/twilio-ruby — 1 commit

## Notable commits

- change: [Librarian] Release librarian/release-20261012-105840 (#815)
