@@ -42,7 +42,7 @@ llm-gateway/
4242make install # npm ci
4343make dev # tsx watch src/index.ts
4444make build # tsc -> dist/
45- make test # vitest run -> 150 passing (backend); dashboard has 27 more
45+ make test # vitest run -> 149 passing (backend); dashboard has 27 more
4646make lint # tsc --noEmit + eslint
4747make typecheck # tsc --noEmit
4848make docker-up # redis + gateway
@@ -51,17 +51,17 @@ make demo # build + print a sample OpenAI-compatible request
5151
5252## Current State
5353
54- ** Functional, migrated, green, hardened.** ` tsc --noEmit ` clean; ** 150 backend vitest tests
55- pass** (19 files), plus ** 27 dashboard tests** (3 files); ` eslint . ` clean; ` next build ` green.
54+ ** Functional, migrated, green, hardened.** ` tsc --noEmit ` clean; ** 149 backend vitest tests
55+ pass** (20 files), plus ** 27 dashboard tests** (3 files); ` eslint . ` clean; ` next build ` green.
5656Storage degrades gracefully: when the native ` better-sqlite3 ` binding is unavailable (e.g. no
5757C++ build tools), the API-key/audit stores fall back to in-memory — the full test suite runs
5858without compilation.
5959
6060The root vitest suite is scoped to ` tests/ ` via ` vitest.config.ts ` ; the dashboard has its own
61- jsdom vitest project under ` dashboard/ ` . ` src/shared/pricing.ts ` now mirrors
62- ` shared_core.pricing ` per-1M rates (` MODEL_PRICING_PER_1M ` , single source of truth, sync
63- documented in its header) and derives the per-token catalog from it; parity is enforced by
64- ` tests/pricing.test.ts ` . The optional Next.js dashboard gained a demo-mode fallback, an
61+ jsdom vitest project under ` dashboard/ ` . ` src/shared/pricing.ts ` carries the per-1M
62+ rates (` MODEL_PRICING_PER_1M ` ) mirrored from ` shared_core.pricing ` — the lineage is
63+ ** frozen at the archived shared-core v1.3.0 ** (2026-08-13), the table is self-owned, and
64+ the frozen parity snapshot is pinned by ` tests/pricing.test.ts ` . The optional Next.js dashboard gained a demo-mode fallback, an
6565` ErrorBoundary ` , extracted testable helpers, component tests, and an optional Playwright smoke
6666spec.
6767
7070- ✅ Audit-log column schema and Prometheus label keys (` llm_gateway_* ` ) documented as a
7171 superset of the Python ` llm-cost-latency-monitor ` ` LLMCall ` cost-record and pinned by
7272 ` tests/monitorAlignment.test.ts ` so one dashboard reads both.
73- - ✅ Pricing table mirrors ` shared_core.pricing ` (data parity, ` MODEL_PRICING_PER_1M ` ); sync
74- procedure documented and parity-tested.
75- - ⏭️ ` claude-3-5-haiku ` rate diverges from shared_core (1.0/5.0 vs 0.8/4.0); deferred because
73+ - ✅ Pricing table mirrors ` shared_core.pricing ` (data parity, ` MODEL_PRICING_PER_1M ` ) —
74+ lineage frozen at the archived v1.3.0; the table is self-owned and parity-tested.
75+ - ⏭️ ` claude-3-5-haiku ` rate diverges from the frozen shared-core snapshot (1.0/5.0 vs 0.8/4.0); deferred because
7676 changing it would move existing cost outputs (golden-gated). Pinned + tracked in roadmap.md.
7777- ✅ Canonical-gateway question settled 2026-08-12: ` knowledgeops ` (incl. ` services/llm-gateway ` ) was consolidated into groundtruth and archived on GitHub — this standalone gateway is the canonical one.
7878
0 commit comments