cctally 1.96.1 → 1.96.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,13 @@ based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [1.96.2] - 2026-08-13
9
+
10
+ ### Fixed
11
+ - CI no longer mistakes loaded-runner latency for a transcript-rebuild phase failure, a hung dashboard budget reconcile, a fake app-server that failed to start, or a writer-storm regression when readers remain healthy relative to both the uncontended baseline and concurrent writers.
12
+ - Settings section links now scroll only the content pane, keep the modal chrome visible, and select the requested section consistently in Safari.
13
+ - Claude Sonnet 5 usage now uses its permanent $2/$10 per-million-token rate, and Claude Mythos 5 plus retained Mythos Preview usage are no longer left unpriced.
14
+
8
15
  ## [1.96.1] - 2026-08-13
9
16
 
10
17
  ### Fixed
@@ -53,7 +53,7 @@ def _chip_for_model(name: str) -> str:
53
53
  # Date the embedded pricing snapshots below were last verified against
54
54
  # vendor sources. Bump whenever CLAUDE_MODEL_PRICING / CODEX_MODEL_PRICING
55
55
  # is synced. Read by `pricing-check` + the release pre-flight staleness nudge.
56
- PRICING_SNAPSHOT_DATE = "2026-07-31"
56
+ PRICING_SNAPSHOT_DATE = "2026-08-13"
57
57
  PRICING_STALENESS_DAYS = 60 # release pre-flight WARNs past this age
58
58
 
59
59
  # Canonical machine-readable pricing source (Claude values + Codex values).
@@ -68,25 +68,20 @@ LITELLM_PRICES_URL = (
68
68
  # Guarded by `stale_allowlist_entries` (tests/test_pricing_check.py): an entry
69
69
  # that no longer corresponds to a real divergence fails the suite.
70
70
  #
71
- # claude-sonnet-5 (#274): LiteLLM tracks the $2/$10-per-MTok *introductory* rate
72
- # (in effect through 2026-08-31); we deliberately embed the durable *standard*
73
- # $3/$15 rate because the table is date-blind and the promo expires soon (see
74
- # the CLAUDE_MODEL_PRICING note below). The non-vacuity guard forces these four
75
- # entries out once LiteLLM reverts to the standard rate post-cutover.
71
+ # claude-mythos-preview (#560): Anthropic's Project Glasswing launch priced the
72
+ # historical Preview at $25/$125 per MTok after its credit period. LiteLLM
73
+ # currently mirrors successor Mythos 5's lower $10/$50 rate onto the Preview
74
+ # identifier. Retained Preview rows therefore keep the explicit historical
75
+ # rate rather than being rewritten to the successor's rate.
76
76
  PRICING_DRIFT_ALLOWLIST: list[dict] = [
77
77
  {
78
- "model": "claude-sonnet-5",
78
+ "model": "claude-mythos-preview",
79
79
  "field": field,
80
- # Structured cutover date (#279 S7 W7): the intro rate is in effect
81
- # THROUGH 2026-08-31, so this suppression is valid through then and
82
- # `expired_allowlist_entries` flags it the day after. Keep the prose in
83
- # `reason`; the date here is what the offline expiry check + the cron read.
84
- "expires": "2026-08-31",
85
80
  "reason": (
86
- "LiteLLM tracks the claude-sonnet-5 introductory rate "
87
- "($2/$10 per MTok, through 2026-08-31); we deliberately embed the "
88
- "durable standard $3/$15 rate (the table is date-blind). Remove "
89
- "once LiteLLM reverts post-cutover (#274)."
81
+ "Anthropic priced historical Claude Mythos Preview at $25/$125 "
82
+ "per MTok after its Project Glasswing credit period; LiteLLM "
83
+ "currently mirrors successor Mythos 5's $10/$50 rate onto the "
84
+ "Preview identifier (#560)."
90
85
  ),
91
86
  }
92
87
  for field in (
@@ -99,23 +94,19 @@ PRICING_DRIFT_ALLOWLIST: list[dict] = [
99
94
 
100
95
  # Anthropic API pricing snapshot:
101
96
  # - Source: https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json
102
- # - Captured/verified: 2026-07-28. PRICING_SNAPSHOT_DATE has since moved to
103
- # 2026-07-31 for the Codex-side gpt-5.6-terra/-luna correction (#441); these
104
- # Claude values were NOT re-verified that day.
105
- # - Verified by maintainer against docs.claude.com/en/docs/about-claude/pricing;
106
- # update in PRs touching this table.
97
+ # - Captured/verified: 2026-08-13 against LiteLLM plus Anthropic's current
98
+ # pricing page and model launch pages.
99
+ # - Vendor sources: https://platform.claude.com/docs/en/about-claude/pricing,
100
+ # https://www.anthropic.com/news/claude-sonnet-5,
101
+ # https://www.anthropic.com/news/claude-fable-5-mythos-5, and
102
+ # https://www.anthropic.com/glasswing. Update in changes touching this table.
107
103
  # 2026-06-10: added claude-fable-5 ($10/$50 per MTok; 1M context, no
108
104
  # long-context premium) — issue #172.
109
- # 2026-07-01: added claude-sonnet-5 ($3/$15 per MTok; 1M context, flat-rate
110
- # across the full window no long-context premium, same shape as
111
- # claude-sonnet-4-6). Embedded the STANDARD rate, not the $2/$10 introductory
112
- # rate in effect through 2026-08-31, because the table is date-blind and
113
- # $3/$15 is the durable post-cutover price.
114
- # 2026-07-06 (#274): LiteLLM published a sonnet-5 entry at the $2/$10
115
- # introductory rate, so the deliberate standard-rate choice now surfaces as
116
- # value_drift on all four cost fields. Suppressed via PRICING_DRIFT_ALLOWLIST
117
- # above (the non-vacuity guard forces removal once LiteLLM reverts to the
118
- # standard rate after 2026-08-31).
105
+ # 2026-07-01 (#274, superseded by #560): initially added claude-sonnet-5 at
106
+ # the then-announced future $3/$15 standard rate, preferring it over the
107
+ # launch promotion because this table is date-blind. LiteLLM's $2/$10 row was
108
+ # temporarily suppressed on all four fields. Anthropic later cancelled that
109
+ # transition; the 2026-08-13 entry below records the replacement decision.
119
110
  # 2026-07-24: added claude-opus-5 ($5/$25 per MTok — identical to Opus
120
111
  # 4.5/4.6/4.7/4.8; $6.25 5-minute cache write and $0.50 cache read at the
121
112
  # standard 1.25x/0.1x multipliers). 1M context at standard pricing, so NO
@@ -139,6 +130,12 @@ PRICING_DRIFT_ALLOWLIST: list[dict] = [
139
130
  # cache multipliers stack on the fast base rate. This snapshot bump is the
140
131
  # pricing-fingerprint bust for safe conversation-rollup rederivation; durable
141
132
  # journaled milestones and weekly snapshots are not rewritten.
133
+ # 2026-08-13 (#560): Sonnet 5's $2/$10 launch pricing is now permanent, so
134
+ # replaced the cancelled $3/$15 rate and removed its four temporary drift
135
+ # suppressions. Added Mythos 5 at $10/$50 from Anthropic's launch/current
136
+ # pricing pages and historical Mythos Preview at the explicit $25/$125
137
+ # Project Glasswing rate. The snapshot bump re-arms the existing conversation
138
+ # rollup pricing fingerprint; immutable journaled/stored facts stay unchanged.
142
139
  # Anthropic prices a cache WRITE by TTL: 1.25x base input for a 5-minute write,
143
140
  # 2x for a 1-hour write; reads are 0.1x under both. Documented as applying
144
141
  # consistently across all supported models, so the 1h rate is DERIVED from
@@ -241,6 +238,18 @@ CLAUDE_MODEL_PRICING: dict[str, dict[str, Any]] = {
241
238
  "cache_creation_input_token_cost": 1.25e-06,
242
239
  "cache_read_input_token_cost": 1e-07,
243
240
  },
241
+ "claude-mythos-5": {
242
+ "input_cost_per_token": 1e-05,
243
+ "output_cost_per_token": 5e-05,
244
+ "cache_creation_input_token_cost": 1.25e-05,
245
+ "cache_read_input_token_cost": 1e-06,
246
+ },
247
+ "claude-mythos-preview": {
248
+ "input_cost_per_token": 2.5e-05,
249
+ "output_cost_per_token": 1.25e-04,
250
+ "cache_creation_input_token_cost": 3.125e-05,
251
+ "cache_read_input_token_cost": 2.5e-06,
252
+ },
244
253
  "claude-opus-4-1": {
245
254
  "input_cost_per_token": 1.5e-05,
246
255
  "output_cost_per_token": 7.5e-05,
@@ -344,10 +353,10 @@ CLAUDE_MODEL_PRICING: dict[str, dict[str, Any]] = {
344
353
  "cache_read_input_token_cost": 3e-07,
345
354
  },
346
355
  "claude-sonnet-5": {
347
- "input_cost_per_token": 3e-06,
348
- "output_cost_per_token": 1.5e-05,
349
- "cache_creation_input_token_cost": 3.75e-06,
350
- "cache_read_input_token_cost": 3e-07,
356
+ "input_cost_per_token": 2e-06,
357
+ "output_cost_per_token": 1e-05,
358
+ "cache_creation_input_token_cost": 2.5e-06,
359
+ "cache_read_input_token_cost": 2e-07,
351
360
  },
352
361
  }
353
362
 
@@ -389,9 +398,10 @@ _unknown_model_warnings: set[str] = set()
389
398
  # Codex (OpenAI) API pricing snapshot:
390
399
  # - Source: https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json
391
400
  # - Captured: 2026-07-19 — the last FULL Codex sync. PRICING_SNAPSHOT_DATE has
392
- # since moved for two targeted syncs (2026-07-24, the Claude-side opus-5 sync;
393
- # 2026-07-31, the gpt-5.6-terra/-luna correction logged below). Codex values
394
- # outside those two corrections were NOT re-verified on those days.
401
+ # since moved for three targeted syncs (2026-07-24, the Claude-side opus-5
402
+ # sync; 2026-07-31, the gpt-5.6-terra/-luna correction logged below; and
403
+ # 2026-08-13, the Claude-side Sonnet/Mythos sync above). Codex values outside
404
+ # the one Codex correction were NOT re-verified on those days.
395
405
  # - As of the 2026-07-19 sync this carries every openai-provider
396
406
  # gpt-5* model the LiteLLM snapshot lists, so `pricing-check`'s scope finds
397
407
  # nothing missing. Models absent from this table still fall back to `gpt-5`