Files
ServerKit/docs/MIGRATION_INVENTORY.md
T
Juan DenisandClaude Opus 5 4dfb468f77 chore(connect): regenerate the surface, inventory and locale files
Generated files the connect work moved and nobody re-ran:

- docs/API_SURFACE.md gains GET /connect/status
- docs/MIGRATION_INVENTORY.md: the hand-shaped error bodies count is 1145
  (ceiling 1150) for the 409 the backups PUT now answers when Cloud owns
  the destination
- en.json gains app.backups.storageManagedByCloud, so the sentence the
  read-only backup form shows is translatable like every other string

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018q56AfqpgKjio4n9KYubvZ
2026-09-03 00:19:35 -04:00

2.6 KiB

Remaining-migration inventory

Plan 76 closure artifact (milestone H). Each row is a cross-cutting concern whose door exists and is guarded by an executable ratchet; the "remaining" column is the measured legacy population that has not yet walked through it. A row at 0 is a completed migration held as an invariant. Rows marked REGISTERED EXCEPTION are deliberate policy, not debt. Regenerate with python scripts/generate-migration-inventory.py.

Concern Door Remaining Ceiling Policy
Identity lookups outside rbac.get_current_user() rbac.get_current_user() 69 69 JWT-only routes; the API-key-capable population is held at 0 by a companion assertion
Routes on bare @jwt_required() auth_required() / role decorators 608 608 REGISTERED EXCEPTION: JWT-only is the deliberate default; conversion grants API-key access and happens per route, on decision
HTTP statuses chosen by sniffing error text typed errors from app.exceptions 0 0 INVARIANT at 0 - migration completed 2026-08-19
API crashes swallowed without recording app.error_reporting 0 0 INVARIANT at 0
Hand-shaped {'error': ...} bodies in app/api typed errors + the global handler 1145 1150 migrate when touched; new endpoints raise
Raw subprocess calls outside the runners app/utils/system.py runners 24 24 migrate when touched
Controller-boundary violations (routes doing service work) service layer extraction 511 511 migrate when touched (first-wave ratchet)
raw api.* calls in pages/ E1: useServerQuery/useServerMutation 405 405 migrate when touched
per-page toast.error extractions in pages/ E1: query-layer error presentation 218 218 migrate when touched
hand-rolled form-group blocks F2: FormField/useForm 326 343 migrate when touched
unencoded ?k=${v} query interpolations in services/api C4: buildQuery/encoding template 87 97 migrate when touched
raw setInterval pollers E2: usePolling/refetchInterval 9 9 DELIBERATE RESIDUE: clock ticks, socket-fallback hooks, and sibling-repo extension timers - each listed per file
direct navigator.clipboard call sites F3: copyToClipboard 0 0 INVARIANT at 0
hex colour literals outside token files G: var(--token) 150 150 migrate when touched
SCSS class names defined in multiple files single-owner partials 114 114 needs eyes on pages (no byte-identical proof available)