Official review: REQUEST_CHANGES ⛔\n\nBlocking gate on current head SHA dd3b48067a8d44481afa92ddff3cb9bdfba6f629:\n- Required CI checks are still pending (CI / test-and-quality for push + pull_request).\n\nCode review notes: implementation direction looks good (locale picker, centralized Angular i18n helper, shared catalog usage, and no-audio capability wiring), but merge cannot proceed until required checks complete successfully.\n\nWhen CI is green on this SHA (or a newer SHA), re-request review and I will re-evaluate official state.
Official review: REQUEST_CHANGES ⛔\n\nBlocking gate on current head SHA `dd3b48067a8d44481afa92ddff3cb9bdfba6f629`:\n- Required CI checks are still `pending` (`CI / test-and-quality` for push + pull_request).\n\nCode review notes: implementation direction looks good (locale picker, centralized Angular i18n helper, shared catalog usage, and no-audio capability wiring), but merge cannot proceed until required checks complete successfully.\n\nWhen CI is green on this SHA (or a newer SHA), re-request review and I will re-evaluate official state.
Finding (Medium): locale switch does not propagate to active host/player views
AppComponent updates its own locale via setLocale, but HostShellComponent and PlayerShellComponent each initialize a separate locale = resolvePreferredLocale() once and never react to subsequent picker changes.
Result: changing language in the header does not update already-mounted host/player text until a reload/re-navigation remounts the component.
Suggested fix:
Share locale as reactive state (signal/service/store) and bind host/player copy() to that shared source, or pass locale down and react to changes.
No other blocking findings in the touched i18n wiring.
Requesting changes on head SHA dd3b48067a8d44481afa92ddff3cb9bdfba6f629.
**Finding (Medium): locale switch does not propagate to active host/player views**
- `AppComponent` updates its own `locale` via `setLocale`, but `HostShellComponent` and `PlayerShellComponent` each initialize a separate `locale = resolvePreferredLocale()` once and never react to subsequent picker changes.
- Result: changing language in the header does not update already-mounted host/player text until a reload/re-navigation remounts the component.
Suggested fix:
- Share locale as reactive state (signal/service/store) and bind host/player copy() to that shared source, or pass locale down and react to changes.
No other blocking findings in the touched i18n wiring.
Implemented reactive locale propagation for mounted host/player shells. Locale updates from header selector now flow through a shared lobby-i18n subscription so active UI copy updates immediately without remount. Added unit test coverage in lobby-i18n.spec.ts.
Implemented reactive locale propagation for mounted host/player shells. Locale updates from header selector now flow through a shared lobby-i18n subscription so active UI copy updates immediately without remount. Added unit test coverage in lobby-i18n.spec.ts.
Re-review for head f3bd071322801a79d2926c765e44a9179a84ed6d: locale propagation issue is resolved.
Validation:
HostShellComponent now subscribes to subscribeToLocaleChanges(...) on init and unsubscribes on destroy.
PlayerShellComponent now subscribes similarly and cleans up on destroy.
lobby-i18n now maintains active locale state + subscriber notifications in setPreferredLocale.
Added regression test lobby-i18n.spec.ts covering immediate + reactive subscriber updates and unsubscribe behavior.
Frontend test suite passes (vitest run: 23/23 tests).
Re-review for head `f3bd071322801a79d2926c765e44a9179a84ed6d`: locale propagation issue is resolved.
Validation:
- `HostShellComponent` now subscribes to `subscribeToLocaleChanges(...)` on init and unsubscribes on destroy.
- `PlayerShellComponent` now subscribes similarly and cleans up on destroy.
- `lobby-i18n` now maintains active locale state + subscriber notifications in `setPreferredLocale`.
- Added regression test `lobby-i18n.spec.ts` covering immediate + reactive subscriber updates and unsubscribe behavior.
- Frontend test suite passes (`vitest run`: 23/23 tests).
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.
Implements #206.
Scope
client_has_no_audio_output=truein shared capabilitiesChecks
cd frontend/angular && npm test✅cd frontend/angular && npm run build❌ (pre-existing API type mismatch infrontend/src/api/client.ts:mapNextRoundResponse/NextRoundResponse)Closes #206
Official review: REQUEST_CHANGES ⛔\n\nBlocking gate on current head SHA
dd3b48067a8d44481afa92ddff3cb9bdfba6f629:\n- Required CI checks are stillpending(CI / test-and-qualityfor push + pull_request).\n\nCode review notes: implementation direction looks good (locale picker, centralized Angular i18n helper, shared catalog usage, and no-audio capability wiring), but merge cannot proceed until required checks complete successfully.\n\nWhen CI is green on this SHA (or a newer SHA), re-request review and I will re-evaluate official state.Requesting changes on head SHA
dd3b48067a.Finding (Medium): locale switch does not propagate to active host/player views
AppComponentupdates its ownlocaleviasetLocale, butHostShellComponentandPlayerShellComponenteach initialize a separatelocale = resolvePreferredLocale()once and never react to subsequent picker changes.Suggested fix:
No other blocking findings in the touched i18n wiring.
Implemented reactive locale propagation for mounted host/player shells. Locale updates from header selector now flow through a shared lobby-i18n subscription so active UI copy updates immediately without remount. Added unit test coverage in lobby-i18n.spec.ts.
Re-review for head
f3bd071322801a79d2926c765e44a9179a84ed6d: locale propagation issue is resolved.Validation:
HostShellComponentnow subscribes tosubscribeToLocaleChanges(...)on init and unsubscribes on destroy.PlayerShellComponentnow subscribes similarly and cleans up on destroy.lobby-i18nnow maintains active locale state + subscriber notifications insetPreferredLocale.lobby-i18n.spec.tscovering immediate + reactive subscriber updates and unsubscribe behavior.vitest run: 23/23 tests).Submitting final review state for this head SHA.