QR "scan to connect" pairing has no wallet number, so nothing registered
the request with the relay and the scanning device's response was rejected
("unknown or expired request"). The backend now pre-registers the pairing
request over the relay's new hub:expect event on POST /pair, and
re-registers still-pending requests on hub (re)connect so routing survives
a relay restart. /pair now requires the clinic to have joined the network
(clear 409, surfaced in the import dialog, localized in all five langs).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
temetro frontend
The clinician-facing AI chat UI for temetro — a Next.js 16 app where
clinicians retrieve and organize patient data in natural language, rendered as
rich record cards. It's wired to the ../backend for real auth,
multi-tenant clinics, and live patient data.
Stack
Next.js 16 (App Router) · React 19 · TypeScript · Tailwind CSS v4 · COSS UI components (Base UI) · i18next · Socket.io client.
This app runs a customized Next.js 16 whose conventions differ from the public docs (e.g. route protection lives in
proxy.ts, notmiddleware.ts). SeeCLAUDE.mdandnode_modules/next/dist/docs/before writing Next.js code.
Develop
npm install
npm run dev # Next dev server (Turbopack) on http://localhost:3000
Other scripts: npm run build (production build), npm run start (serve the
build), npm run lint. There is no test runner — verify changes by running the
dev server.
Talking to the backend
The frontend needs the API running (see ../backend). It resolves
the backend URL from the host you open the app on — so it works on
localhost and across the clinic LAN (http://<server-IP>:3000) without a
rebuild. Set NEXT_PUBLIC_API_URL only to pin a fixed or reverse-proxied URL;
see lib/backend-url.ts.
Architecture
app/— App Router.app/(app)/is the authenticated product shell;app/(auth)/holds the login / signup / onboarding pages.components/chat/— the chat UI (input, message state, patient cards).components/settings/— settings panels, including About & updates (version + LAN access).components/ui/— COSS primitives (Base UI, added via the shadcn CLI).lib/— API + auth clients, i18n, and data helpers.
See CLAUDE.md for the full architecture, theming, and gotchas.
License
MIT.
