Merged
aaronrene aaronrene · 26 days ago

fix(gateway): mount OAuth routers before API fallback

The persistent gateway registered native/device OAuth and MCP routers from unawaited dynamic imports. Express registered the terminal /api/v1 fallback first, so public native and device discovery returned 401.

This change mounts the existing routers deterministically before the fallback and listener, makes required-router startup failures fatal, preserves existing auth/provider behavior, and adds real bootstrap regression coverage. It also records the already-completed production deployment outside sealed W4 evidence.

Validation:

  • focused bootstrap: 14 passed
  • narrow OAuth/CORS/MCP: 192 passed
  • broader gateway/auth: 1,433 passed
  • full tracked suite: 4,641 passed, 0 failed, 0 skipped
  • production-baseline relevant suite: 193 passed, 0 failed
  • no dependency or lockfile change

Production currently returns 200 for health and root/native/device discovery, and 401 for unauthenticated /mcp. This source integration performs no deployment or configuration change and makes no W4 qualification claim.

Proposal merged as sha256:5fd903b11bf9

Symbol Delta

20 symbols
18 added 2 modified

Files Changed

6 of 1,392
A docs/release-production/2026-09-26-oauth-routing-repair.md
A test/gateway-oauth-bootstrap.test.mjs
A test/helpers/gateway-bootstrap-child.mjs
A test/helpers/gateway-bootstrap-loader.mjs
M hub/gateway/README.md
M hub/gateway/server.mjs

Commits

1
fix
fix(gateway): mount OAuth routers before API fallback
aaronrene · 26 days ago

Divergence Analysis

fix/oauth-routing-startup-order → main
0%
0% divergence
Very compatible — minimal differences

Review comments

0

No review comments yet

Be the first to leave a review comment on this merge proposal.

Muse CLI

Comment muse hub proposal comment create sha256:4800a2b1e67200fecef5f454bb500706601de7e27973ca3f009802f5a8d3f2ad --body "…"
Approve muse hub proposal review submit sha256:4800a2b1e67200fecef5f454bb500706601de7e27973ca3f009802f5a8d3f2ad --verdict approve
Request changes muse hub proposal review submit sha256:4800a2b1e67200fecef5f454bb500706601de7e27973ca3f009802f5a8d3f2ad --verdict request_changes --body "…"
Close muse hub proposal close sha256:4800a2b1e67200fecef5f454bb500706601de7e27973ca3f009802f5a8d3f2ad