Hygiene: catalog loading is centralized (lobby/i18n.py) and reused in UI context + API responses.
Tests: frontend vitest suite passes (24/24) and frontend typecheck passes (tsc --noEmit).
No blockers found for this patch scope. Approving.
Independent REVIEW pass on this SHA.
Checked:
- Shared i18n wiring: frontend now maps backend `error_code` to shared catalog strings; backend emits structured `{error,error_code}` via helper.
- Regression risk: fallback behavior remains safe (generic message if unknown code).
- Hygiene: catalog loading is centralized (`lobby/i18n.py`) and reused in UI context + API responses.
- Tests: `frontend` vitest suite passes (24/24) and `frontend` typecheck passes (`tsc --noEmit`).
No blockers found for this patch scope. Approving.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
shared/i18n/lobby.jsonfor FE+BE scoped usageerror_coderesponses for lobby join/session/start-round flow using shared code namespaceerrortext in API payloadsValidation
. .venv/bin/activate && python manage.py test lobby.testscd frontend && npm testcd frontend && npm run buildCloses #175
Independent REVIEW pass on this SHA.
Checked:
error_codeto shared catalog strings; backend emits structured{error,error_code}via helper.lobby/i18n.py) and reused in UI context + API responses.frontendvitest suite passes (24/24) andfrontendtypecheck passes (tsc --noEmit).No blockers found for this patch scope. Approving.
LGTM