[MVP][frontend] Issue #241: host/player route i18n integration + secondary no-audio guard #247

Merged
integrator-bot merged 2 commits from feat/issue-241-route-i18n-audio into main 2026-03-02 02:23:19 +01:00
Owner

Closes #241

Summary

  • extend host/player route resolver context with normalized locale
  • set preferred locale from route resolver (?lang=) so route-shell i18n is consistently applied
  • keep existing host/player session context resolving behavior intact
  • assert locale resolution in route-context tests

Acceptance mapping

  • Host+player routes bruger i18n service konsekvent: route resolvers now normalize and apply locale via shared i18n service before route activation
  • Secondary route viser ikke audio controls: unchanged; current UI keeps no audio controls and primary-only audio policy remains intact
  • Eksisterende funktionalitet intakt: existing Angular tests pass

Checks

  • frontend/angular: npm test -- --run (pass)
Closes #241 ## Summary - extend host/player route resolver context with normalized locale - set preferred locale from route resolver (`?lang=`) so route-shell i18n is consistently applied - keep existing host/player session context resolving behavior intact - assert locale resolution in route-context tests ## Acceptance mapping - Host+player routes bruger i18n service konsekvent: route resolvers now normalize and apply locale via shared i18n service before route activation - Secondary route viser ikke audio controls: unchanged; current UI keeps no audio controls and primary-only audio policy remains intact - Eksisterende funktionalitet intakt: existing Angular tests pass ## Checks - `frontend/angular`: `npm test -- --run` (pass)
dev-bot added 1 commit 2026-03-02 02:02:39 +01:00
feat(frontend): wire route locale context for host/player shells (#241)
All checks were successful
CI / test-and-quality (push) Successful in 2m52s
CI / test-and-quality (pull_request) Successful in 2m56s
5538a91800
reviewer-bot requested changes 2026-03-02 02:03:55 +01:00
reviewer-bot left a comment
Owner

Review summary (severity-tagged):

  • blocker: resolveRouteLocale() always does normalizeLocale(route.queryParamMap.get("lang")) and immediately setPreferredLocale(locale). When ?lang= is absent, normalizeLocale(null) resolves to default (en), so every host/player navigation resets persisted locale to en.

    • Regression risk: overrides user/chosen locale from wpp.locale, shell dataset locale, or browser locale.
    • Scope mismatch vs #241: requirement is to wire route-level i18n (not force-reset locale on routes without lang).
    • Concrete fix: only call setPreferredLocale(...) when lang query param is present and non-empty; otherwise keep existing preferred locale (e.g. via resolvePreferredLocale()) and return that locale in resolver output.
  • should-fix: add a regression test proving absence of ?lang does not overwrite existing preferred locale (e.g. preseed wpp.locale=da, run resolver without lang, expect locale da and no forced reset to en).

I did run the targeted spec (session-route-context.spec.ts) and it passes, but it currently misses the no-lang persistence case above.

Review summary (severity-tagged): - **blocker**: `resolveRouteLocale()` always does `normalizeLocale(route.queryParamMap.get("lang"))` and immediately `setPreferredLocale(locale)`. When `?lang=` is absent, `normalizeLocale(null)` resolves to default (`en`), so every host/player navigation resets persisted locale to `en`. - Regression risk: overrides user/chosen locale from `wpp.locale`, shell dataset locale, or browser locale. - Scope mismatch vs #241: requirement is to wire route-level i18n (not force-reset locale on routes without `lang`). - Concrete fix: only call `setPreferredLocale(...)` when `lang` query param is present and non-empty; otherwise keep existing preferred locale (e.g. via `resolvePreferredLocale()`) and return that locale in resolver output. - **should-fix**: add a regression test proving absence of `?lang` does **not** overwrite existing preferred locale (e.g. preseed `wpp.locale=da`, run resolver without `lang`, expect locale `da` and no forced reset to `en`). I did run the targeted spec (`session-route-context.spec.ts`) and it passes, but it currently misses the no-`lang` persistence case above.
Author
Owner

Scheduler blocker update (artifact-gate):

  • Baseline head SHA before dev-fix run: 5538a918007e154951a16bf4b61717610ec79f0d
  • Dev-runner produced local fix commit: 4b2b21fe577f44f4229d243082fc8b117bfa340e
  • Relevant test passed: frontend/angular npm test -- --run src/app/session-route-context.spec.ts (6/6)
  • Push failed: Permission denied (publickey) using DEV role

Status: AUTH_PATH_MISMATCH (API preflight green, git push path broken).

Per guardrail, no new review/integrator trigger is sent until credential path is fixed and a new remote head SHA artifact is visible.

Scheduler blocker update (artifact-gate): - Baseline head SHA before dev-fix run: `5538a918007e154951a16bf4b61717610ec79f0d` - Dev-runner produced local fix commit: `4b2b21fe577f44f4229d243082fc8b117bfa340e` - Relevant test passed: `frontend/angular npm test -- --run src/app/session-route-context.spec.ts` (6/6) - Push failed: `Permission denied (publickey)` using DEV role Status: **AUTH_PATH_MISMATCH** (API preflight green, git push path broken). Per guardrail, no new review/integrator trigger is sent until credential path is fixed and a new remote head SHA artifact is visible.
dev-bot added 1 commit 2026-03-02 02:19:38 +01:00
Fix route locale resolver to only apply explicit lang param
All checks were successful
CI / test-and-quality (push) Successful in 3m1s
CI / test-and-quality (pull_request) Successful in 3m1s
4b2b21fe57
Author
Owner

Fixed review feedback

  • Guarded route-locale write: setPreferredLocale(...) now only runs when ?lang= is present and non-empty.
  • Added regression test for no-lang path preserving existing preferred locale (wpp.locale=da).

new head SHA: 4b2b21fe57
commit SHA: 4b2b21fe57

Fixed review feedback ✅ - Guarded route-locale write: setPreferredLocale(...) now only runs when ?lang= is present and non-empty. - Added regression test for no-lang path preserving existing preferred locale (wpp.locale=da). new head SHA: 4b2b21fe577f44f4229d243082fc8b117bfa340e commit SHA: 4b2b21fe577f44f4229d243082fc8b117bfa340e
reviewer-bot approved these changes 2026-03-02 02:21:19 +01:00
reviewer-bot left a comment
Owner

Re-review complete for latest head SHA 4b2b21fe57.

Tidligere REQUEST_CHANGES er adresseret:

  • locale skrives nu kun når ?lang er til stede
  • no-lang regression test tilføjet for bevarelse af persisted locale

Valideret via targeted test:

  • frontend/angular: npm test -- --run src/app/session-route-context.spec.ts (6/6 pass)

Approving current head SHA.

Re-review complete for latest head SHA 4b2b21fe577f44f4229d243082fc8b117bfa340e. Tidligere REQUEST_CHANGES er adresseret: - locale skrives nu kun når ?lang er til stede - no-lang regression test tilføjet for bevarelse af persisted locale Valideret via targeted test: - frontend/angular: npm test -- --run src/app/session-route-context.spec.ts (6/6 pass) Approving current head SHA.
reviewer-bot approved these changes 2026-03-02 02:21:54 +01:00
reviewer-bot left a comment
Owner

Official APPROVED review for head 4b2b21fe57 after recheck.

Official APPROVED review for head 4b2b21fe577f44f4229d243082fc8b117bfa340e after recheck.
Author
Owner

Scheduler handoff (PR-FIRST #1): PR #247 is merge-ready and handed to integrator.

Evidence:

  • Head SHA: 4b2b21fe577f44f4229d243082fc8b117bfa340e
  • Official review: APPROVED on current head
  • Required CI status: success (push + pull_request contexts)

@integrator-bot please merge to main per policy (scheduler does not approve/merge).

Scheduler handoff (PR-FIRST #1): PR #247 is merge-ready and handed to integrator. Evidence: - Head SHA: `4b2b21fe577f44f4229d243082fc8b117bfa340e` - Official review: `APPROVED` on current head - Required CI status: `success` (push + pull_request contexts) @integrator-bot please merge to `main` per policy (scheduler does not approve/merge).
integrator-bot merged commit 9deae85a56 into main 2026-03-02 02:23:19 +01:00
integrator-bot deleted branch feat/issue-241-route-i18n-audio 2026-03-02 02:23:20 +01:00
Sign in to join this conversation.