+ Username
+
+ What you sign in with, here and in the game — and what other players see you by.
+
+
+
+ )
+}
+
function EmailForm({
account,
onChange,
diff --git a/apps/www/src/context.ts b/apps/www/src/context.ts
index 3bb45b0..a43d885 100644
--- a/apps/www/src/context.ts
+++ b/apps/www/src/context.ts
@@ -6,6 +6,16 @@ export type Env = SharedHonoEnv & {
DOMAIN: string
/** Static-asset fetcher for the built React SPA (see wrangler.jsonc `assets`). */
ASSETS: Fetcher
+ /**
+ * Service binding to the `auth` worker — how the BFF reaches it, so the browser's real
+ * IP survives the hop (see wrangler.jsonc and src/upstream.ts `postAuthForm`).
+ *
+ * OPTIONAL because a deployed www always has it (it's declared in wrangler.jsonc) but
+ * standalone local dev doesn't: `vite dev` runs www on its own against a deployed
+ * DOMAIN, with no `auth` session to bind to. Absent, `postAuthForm` falls back to
+ * fetching auth.