v0.78.1 — System 8 routes 404 in production
- Fixes
GET /api/modules/system8/powersand/powers/tokensreturning 404 in production, which broke Build Mode for System 8 characters. Nothing in this repo was wrong: the cause is a route in the system8 module, and v0.78.0's pin bump from 0.12.1 to 0.14.2 is what shipped it.router.get('/docs/*', …)(system8 0.13.0) is a wildcard under Express 4 and a PathError under Express 5, which this platform has run since v0.44.0. The throw happens while the route is being registered, so it does not fail one route — module evaluation fails,loadServerEntrycatches theimport(), logsfailed to load server entry, and returns null. No router is mounted and every path under/api/modules/system8falls through to Express's default 404. The module's own tests were green because itsexpressdevDependency was^4.21.0— a major production does not run — and no test had ever handed the router to an app. - Pins system8 0.14.3, which registers that route as a RegExp (identical in both Express majors,
same
req.params[0]), moves its express devDependency to^5.1.0to match the host, and addsrouterMounts.test.ts— it mounts the real router on a real app and asserts all nine route families answer rather than falling through. Reverting the one-line fix fails it with the production error. - Verified against the built 0.14.3 package loaded the way the image loads it (Express 5, the
module's own
node_modulesstripped soexpressresolves to the platform's): both reported requests return 200. - Known gap, not fixed here: a module whose server entry throws is skipped with a single
console.errorand is otherwise indistinguishable from one that never declared a router. This is the second production 404 with that shape —install-hosted-modules.shdocuments the first, genai and its missingzod— and it stays invisible until someone reads container startup logs.