* fix(gateway): route j-prefixed pairing shortcodes
The context-path parser used the last /j substring, so a random shortcode beginning with j displaced the actual route delimiter and fell through to the plain 404 handler.
Reproduced through the real HTTP server with a deterministic 22-character j-prefixed shortcode; the parser now matches the complete /j/ segment.
* fix(gateway): keep bare /j join route stable under j-containing context paths
Check the terminal /j before the /j/ marker so an advertised context path
containing a /j/ segment (e.g. /proxy/j/app) still parses its code-less
route as the bare join route. Pins the route-claim contract: /j answers
with the handler's JSON not_found, never the server default 404.