Conversation
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
chelojimenez
left a comment
There was a problem hiding this comment.
Blocking issues from the auth/security pass:
-
Shared-chat guests are no longer classified as guests.
guestModenow depends on!hostedWorkspaceId, but public shared-chat pages intentionally passhostedWorkspaceIdOverridefor anonymous visitors. That flipsdisableForAuthenticationto true and blocks submit, even though the backend guest-token path still supports this flow. -
The new hosted guest fallback is inconsistent across request builders.
getHostedAuthorizationHeader()can prefer a guest bearer when AuthKit state is stale (hasSession=true, no workspace yet), butbuildHostedServerRequest()still switches to the guest path only throughisGuestMode(), which stays false in that same state. That means chat auth can recover while tools/resources/prompts/widgets still try the Convex workspace path and fail. -
The guest JWKS defaults are now out of sync with the companion backend PR. This PR still defaults hosted guest verification to
https://api.mcpjam.com/guest/jwks, while the backend PR changes Convex's default guest JWKS URL tohttps://app.mcpjam.com/api/web/guest-jwks. If env overrides are missing, the two sides can validate against different key sources.
I did not find a direct auth bypass, but these auth/trust regressions are enough that I'd block merge until they're resolved.
Fix guest free chat across hosted and local runtimes
This PR makes that flow work correctly in both places we use it:
/api/web/chat-v2)/api/mcp/chat-v2)Main changes: