Fixes#1138 — the gateway could not boot outside the federation profile: CaService hard-requires STEP_CA_URL at construction, and FederationModule was unconditionally imported, so every standalone/local boot died with CaServiceError: STEP_CA_URL is not set.
Change:app.module.ts now spreads FederationModule into imports only when loadConfig().tier === 'federated', matching docker-compose.federated.yml's contract that the federation profile must not start in non-federated dev.
Safety: only app.module.ts imports FederationModule, and nothing outside it injects the module's exports, so conditional registration is DI-safe.
Verified in the mosaic-dev distrobox (Debian 13, from source on next):
tier standalone (postgres :5433): gateway boots, Gateway listening on port 14242
first-run bootstrap, better-auth sign-in, mosaic gateway login → ~/.mosaic/session.json, authenticated /api/auth/get-session, and a Socket.IO /chat CONNECT round-trip all pass
Found while executing the HANDOFF-SHAGGY incremental ladder (rung 3) with Jason.
Fixes #1138 — the gateway could not boot outside the federation profile: `CaService` hard-requires `STEP_CA_URL` at construction, and `FederationModule` was unconditionally imported, so every standalone/local boot died with `CaServiceError: STEP_CA_URL is not set`.
**Change:** `app.module.ts` now spreads `FederationModule` into `imports` only when `loadConfig().tier === 'federated'`, matching docker-compose.federated.yml's contract that the federation profile must not start in non-federated dev.
**Safety:** only `app.module.ts` imports `FederationModule`, and nothing outside it injects the module's exports, so conditional registration is DI-safe.
**Verified in the mosaic-dev distrobox (Debian 13, from source on `next`):**
- tier `standalone` (postgres :5433): gateway boots, `Gateway listening on port 14242`
- first-run bootstrap, better-auth sign-in, `mosaic gateway login` → `~/.mosaic/session.json`, authenticated `/api/auth/get-session`, and a Socket.IO `/chat` CONNECT round-trip all pass
- `pnpm build` 25/25 green; pre-push gates (preflight/typecheck/lint/format) pass
Found while executing the HANDOFF-SHAGGY incremental ladder (rung 3) with Jason.
CaService hard-requires STEP_CA_URL/provisioner config at construction, so an
unconditional FederationModule import makes every standalone/local boot die at
DI time. Gate the module on loadConfig().tier === federated, matching the
documented intent of the federation compose profile (must not start in
non-federated dev).
Verified in mosaic-dev box: standalone tier boots to "Gateway listening on
port 14242" with bootstrap/socket.io/auth surfaces responding; federated tier
path unchanged.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Fixes #1138 — the gateway could not boot outside the federation profile:
CaServicehard-requiresSTEP_CA_URLat construction, andFederationModulewas unconditionally imported, so every standalone/local boot died withCaServiceError: STEP_CA_URL is not set.Change:
app.module.tsnow spreadsFederationModuleintoimportsonly whenloadConfig().tier === 'federated', matching docker-compose.federated.yml's contract that the federation profile must not start in non-federated dev.Safety: only
app.module.tsimportsFederationModule, and nothing outside it injects the module's exports, so conditional registration is DI-safe.Verified in the mosaic-dev distrobox (Debian 13, from source on
next):standalone(postgres :5433): gateway boots,Gateway listening on port 14242mosaic gateway login→~/.mosaic/session.json, authenticated/api/auth/get-session, and a Socket.IO/chatCONNECT round-trip all passpnpm build25/25 green; pre-push gates (preflight/typecheck/lint/format) passFound while executing the HANDOFF-SHAGGY incremental ladder (rung 3) with Jason.