# STATS — l115q Generated 2026-09-22 · prod l115q cc278e18 > Offline source counts from the exact serving tree; production DB values are from the coordinator snapshot dated 2026-09-22 21:35Z. > Candidate for the next line: l115r 1a5822a8; generator source tree HEAD in `wt-l115s`: 25b6d5be (Stripe patch on top). | Metric | Value | |---|---| | **snapshot** | 2026-09-22 | | **serving / prod** | `l115q cc278e18` | | **rollback** | `unknown unknown` | | **LOC** | **1,662,156** (tracked TS/TSX/JS/JSX/MJS/CJS/CSS/SCSS under `src/`, excluding `src/lib/i18n/**`) | | **i18n/generated LOC** | **717,127** (293,602 code + 423,525 messages) | | **API routes total** | **572** (App + Pages Router discovery) | | — session | 386 | | — public/unauthed | 105 | | — admin | 58 | | — webhook-sig | 12 | | — key | 4 | | — cron-secret | 4 | | — token | 3 | | **Prisma models** | **210** (`prisma/schema.prisma`) | | **React component files** | **826** (`src/components/**/*.tsx`) | | **release artifact migrations** | **206** (directories in `prisma/migrations`) | | **tracked src files** | **7,223** | | **UI locale catalogs** | **103** (`messages/*.json`; PDF catalog is projected from the same messages) | | **Runtime deps / dev deps** | 134 / 29 | ## Trend: 07.09 (l113p) → 2026-09-22 (l115q) Both trees were recalculated by the same offline generator; deltas do not mix counting methods. | Metric | 07.09 · l113p | 2026-09-22 · l115q | Δ | |---|---:|---:|---:| | LOC, source code (excluding `src/lib/i18n/**`) | 1,595,952 | 1,662,156 | +66,204 | | i18n/generated LOC | 717,013 | 717,127 | +114 | | API routes | 560 | 572 | +12 | | Prisma models | 202 | 210 | +8 | | React component files (`src/components/**/*.tsx`) | 820 | 826 | +6 | | migration dirs in release artifact | 193 | 206 | +13 | | tracked `src/` files | 6,933 | 7,223 | +290 | | UI locale catalogs | 103 | 103 | 0 | ## Production database | Metric | Value | |---|---:| | **DB size** | 2,999 MB | | **public tables** | 220 | | **live rows** | 373,807 (`pg_stat_user_tables.n_live_tup`) | | **public indexes** | 924 | | **Postgres** | PostgreSQL 16.15 (Ubuntu 16.15-0ubuntu0.24.04.1) | | **extensions** | vector 0.6.0, pg_trgm 1.6 | | **`_prisma_migrations` rows** | 211 | | **DB roles** | not supplied | | **release artifact migration dirs** | 206 | Key-table rows from the same supplied snapshot: | Table / measure | Rows | |---|---:| | `Document` | 10 | | `DocumentChunk` | 104,374 | | `DocumentEntity` | 13,692 | | `LedgerEntry` | 1,554 | | `Notebook` | 122 | | `Source` | 1,993 | | `SourceTextChunk` | 0 | | `Subscription` | 0 | | `User` | 0* | | `UserBalance` | 28 | | `users_active_30d` | 9 | \* `rows_User=0` is a `pg_stat_user_tables` estimate with statistics not collected; it is not asserted as the actual user count. The total `373,807` is the supplied aggregate live-row estimate. ### DB delta: 13.09 → 22.09 Compared with the previous passport point (l115j, 13.09): size **2,849 → 2,999 MB (+150)**; public tables **216 → 220 (+4)**; live rows **~66,695 → 373,807 (~+307,112)**; indexes **915 → 924 (+9)**; migration records **206 → 211 (+5)**. The supplied input has no migration names/statuses or roles, so the +5 record difference against **206 release migration directories** remains an input gap, not a diagnosis. Trend from the l113p coordinator snapshot to this snapshot: **2,494 → 2,999 MB (+505)**; tables **211 → 220 (+9)**; live rows **~304,267 → 373,807 (~+69,540)**; indexes **896 → 924 (+28)**; Postgres **16.15 → PostgreSQL 16.15 (Ubuntu 16.15-0ubuntu0.24.04.1)**. The DB has 211 migration records while the l115q artifact contains 206 migration directories (difference +5). Aggregated input does not include migration names/statuses, so the exact cause cannot be proven here; historical or retried records are possibilities, not a finding. ## Operational trend / posture - Serving transition: **l115j → l115k → l115l → l115m → l115o → l115q**; candidate **l115r**. Rollback input was not supplied. - Capacity: one lane measured **30 VU uploads / 50 VU interactive**; four-lane stand passed **6/10/20/30 VU**, with 50 running. Instrument is **r27 v10**; v10 uses `process.env`/`__ENV` because v9 failed in k6. - Mirrors: Pi reports line `l115q`, base 22.09, status OK; GitHub has 98 branches from A2, `line/current-prod=cc278e18`, scheduled mirror 03:40; Hetzner release/base/WAL/env/manifests were live in the supplied coordinator facts. - Stripe remains test-mode beta authorization; top-up implementation is staged in candidate work and requires sandbox verification before any Live readiness claim. Secret values are intentionally absent. - Astra audit: **22 blocks, 214 briefs; registry 46 SEC tickets, 44 in prod code**. Audit remains open; WEB-520 is parked design debt, WEB-522 R8 awaits acceptance. - Role battery: **r45 38/50** on l113p vs **r44 47/50** on l113n (**Δ -9**), caused by pending-index r4. ## Framework versions next 16.2.11 · react 19.2.0 · @prisma/client 5.22.0 · next-auth ^5.0.0-beta.32 · ai ^5.0.101 · stripe ^20.0.0. ## Honest scope - iOS and video-engine trees were not present in this worktree. Their HOME cards remain explicitly marked **as of 2026-08-28**; no values were invented. - Route auth classes are a single-file heuristic pre-pass, not a security verdict. Use the Astra registry and live post-QA receipts for security status. - The 33 newly discovered entries added to `ROUTE-PASSPORT.json` are marked REVIEW; current human/Astra adjudication was not supplied.