BillTracker/db
null 7ce5fb66f5 refactor(types): type-check server.cts + document the 8 intentional @ts-nocheck files
- server.cts (the app entry): dropped @ts-nocheck, added the leading
  import type + handler/callback annotations (30 mechanical errors).
  types/http.d.ts gained the 2-arg res.redirect(status, url) overload
  (same gap class as the download overload). Verified by a real boot
  smoke: node server.cts → /api/health + /api/version both 200.
- The 8 remaining files (4 db migration/seed factories + 4 dynamic
  parsers/matchers: spreadsheet/userDbImport/subscription/oidc) now carry
  an INTENTIONAL rationale instead of a bare 'TODO: type incrementally' —
  they parse inherently-unknown input or mutate arbitrary historical
  schemas, where full typing yields 'any' anyway or adds risk to
  data-critical boot code. This is the defensible steady state, not debt.

@ts-nocheck server count: 9 -> 8, and QA-B0-04 is now CLOSED: all 29
routes + server.cts checked, 8 documented exceptions. ci green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 07:17:55 -05:00
..
data chore: dead-code sweep — knip now clean and blocking in CI (Phase 5) 2026-07-10 18:15:04 -05:00
migrations refactor(types): type-check server.cts + document the 8 intentional @ts-nocheck files 2026-07-11 07:17:55 -05:00
database.cts refactor(types): type-check server.cts + document the 8 intentional @ts-nocheck files 2026-07-11 07:17:55 -05:00
kysely.cts refactor(categories): adopt Kysely for the /groups query (real production use) 2026-07-06 16:25:30 -05:00
schema.sql feat(money): cents migration stage 2 — schema flip to integer cents (batch 0.38.4) 2026-06-11 20:12:31 -05:00
subscriptionCatalogSeed.cts refactor(types): type-check server.cts + document the 8 intentional @ts-nocheck files 2026-07-11 07:17:55 -05:00