Signing in upgrades the chat workspace from anonymous to account-scoped. - Auth context exposes accountId (resolved on login and on reload for an existing token) so the chat can scope its Dexie owner and the dashboard can query. - Chat: when authed, owner switches to the account id (anon history was already re-owned via claimAnonymousData on login), the anon message cap is lifted (budget is enforced upstream by the account allocation), the full default model (VITE_DEFAULT_MODEL) is used, and the user's API key is sent as the bearer. - The bearer is the raw key the user stored locally via "use for chat on this device" in the key-creation modal (client-side only — consistent with no server-side secrets). Signed in without a stored key → a banner prompts creating/enabling one (sending is disabled until then). - Error mapping: insufficient_quota → top-up link (/account) when authed, sign-up (/register) when anon; rate_limit_exceeded → a wait-and-retry hint; both distinct from generic errors. - New chat (topUp/rateLimited/needsKey/manageKeysLink) and account (keys.useForChat/usedForChat) i18n keys across all languages. Validated: lint, typecheck, build, i18n:check all green. Explicit-path commit; no node_modules/dist. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F6o3ddqmYNh9kzdwq6eowh
helexa.ai
The public-beta frontend for the helexa mesh: a chat-first landing experience
(anonymous + authenticated, with all chat history kept client-side in
IndexedDB — no server-side history), a /mission page on European digital
sovereignty, and full account self-service (register, recover, manage API
keys, set per-key limits, redeem top-up codes) against helexa-upstream.
Vite + React (SWC) + TypeScript + react-bootstrap + react-router + react-i18next. Lives as a top-level folder in the cortex monorepo; it is not a Cargo crate.
Develop
cd helexa.ai
npm install
cp .env.example .env.local # adjust backend URLs
npm run dev # vite dev server, proxies /v1+/health → router, /api → upstream
Other scripts: npm run build (tsc -b && vite build → dist/), npm run preview, npm run lint, npm run typecheck.
In dev, vite.config.ts proxies the mesh data-plane (helexa-router) and the
account control-plane (helexa-upstream) same-origin. Run a local router
(cargo run -p helexa-router) for the chat path and a local helexa-upstream
for the account path.
Status
F0 scaffold. Theming + i18n (33 languages, usage-ordered selector), the
/mission page, the chat workspace (Dexie + streaming), and the account
dashboard land in subsequent phases — see
~/.claude/plans/we-need-to-plan-modular-graham.md.