Files
ccs/ui
Kenneth Wong 3583b544d0 feat(models): add Claude Fable 5.1 and correct Sonnet 5 pricing
Register `claude-fable-5-1` in the CLIProxy model catalog, the dashboard
catalog, and the usage pricing registry.

Pricing is taken from Anthropic's official pricing page:

- Fable 5.1 base rates are $10/$50 per MTok with a $12.50 5m cache write,
  matching Fable 5.
- Cache hits bill at 0.025x base input ($0.25/MTok) rather than the
  standard 0.1x multiplier. Anthropic applies that reduced rate only to
  Fable 5.1 and Mythos 5.1, so this entry cannot derive its cache rates
  from CACHE_READ_MULTIPLIER.

This also corrects Claude Sonnet 5 from $3/$15 to $2/$10 (cache write
$2.50, cache read $0.20). The launch introductory rate became the
standard price and the increase scheduled for 2026-09-01 was cancelled,
so the previous entry over-reported Sonnet 5 usage cost by 50%.

Thinking on Fable 5.1 is always on and can only be steered through
effort levels, so the catalog entry exposes the same `low`..`max` level
surface as Fable 5 and Opus 5 instead of a manual token budget.

The GitHub Copilot catalog is deliberately left unchanged, since Copilot
availability for Fable 5.1 is not verified; surfacing it there would
offer a model the backend may reject.

Regenerates docs/reports/hardening-inventory.{json,md} so the ci-parity
gate matches the source tree.
2026-09-03 16:26:41 +08:00
..

CCS Dashboard UI

React, TypeScript, and Vite frontend for the local dashboard served by the CCS web server through:

ccs config

Development

From the repository root, build the server and open the integrated dashboard:

bun run dev

Pass a host explicitly when testing network access:

bun run dev -- --host 0.0.0.0
bun run dev -- --host 127.0.0.1

For the frontend-only Vite server:

cd ui
bun run dev

Root and UI scripts are defined in ../package.json and package.json.

Source Ownership

Area Path
Route-level pages src/pages/
Domain and shared components src/components/
Server-state hooks src/hooks/
Cross-page context/providers src/contexts/ and src/providers/
API, localization, catalogs, helpers src/lib/
UI tests tests/ and colocated tests

Follow the owning domain's existing import pattern. Barrel exports are optional, not required at every directory level.

Quality Commands

cd ui
bun run format
bun run typecheck
bun run lint
bun run validate
bun run test:run

bun run validate currently runs typecheck, lint with fixes, and the format check. UI tests run with Vitest; use test, test:run, test:coverage, or test:ui as defined in package.json.

Localization

Dashboard localization uses react-i18next.

Concern Source
Supported locales, normalization, fallback, persistence src/lib/locales.ts
i18next setup and translation resources src/lib/i18n.ts
Language switcher src/components/layout/language-switcher.tsx

English is the fallback. The selected locale is stored in browser local storage under ccs-ui-locale. Treat src/lib/locales.ts as the complete source of truth for supported locale codes. When adding or removing a locale, update the translation resources, switcher, tests, and dashboard i18n guide in the same change.