# Stage 11: HTTP Route, Access, and Error Governance Date: 2026-07-29 ## Result - Promoted `config/api.config.json` from a transitional inventory to the runtime route and access registry. - Added deterministic exact and regex route resolution with duplicate and regex validation. - Replaced hand-maintained member/admin path sets with the registered access contract. - Rejected unregistered API routes before business dispatch. - Added safe request correlation IDs to JSON responses and `X-Request-ID` headers. - Extended every legacy JSON error with stable `code`, `message`, and `request_id` fields while preserving the existing `error` field used by the browser. - Kept the current request handler and all route response bodies compatible while feature route modules are migrated incrementally. ## Runtime Authority Changing or adding an API now requires one coherent change to the handler and API registry. The generated source inventory test prevents either side from drifting. Backend access remains authoritative; frontend visibility cannot grant a route. ## Residual Migration Individual dispatch branches still live in the compatibility request handler. Feature-owned controllers will move behind the same registry in later stages without changing route identity, authorization, or error serialization.