From 575f4782b5e20afcaf1675e45821f1c6071be4d2 Mon Sep 17 00:00:00 2001 From: Asger Geel Weirsoee Date: Fri, 13 Mar 2026 09:52:46 +0000 Subject: [PATCH 1/6] docs(issue-279): add i18n mvp close-out note --- CHANGELOG.md | 10 ++ docs/ISSUE-279-I18N-MVP-CLOSEOUT.md | 170 ++++++++++++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 docs/ISSUE-279-I18N-MVP-CLOSEOUT.md diff --git a/CHANGELOG.md b/CHANGELOG.md index dd5f0d3..ac73326 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## [Unreleased] +### Docs +- Added `docs/ISSUE-279-I18N-MVP-CLOSEOUT.md` with i18n MVP close-out guidance covering migration impact, releasable changelog text, and a release-readiness checklist anchored to current `main` state. + +### i18n +- Shared da/en lobby i18n contract is wired across Django and Angular MVP flows via `shared/i18n/lobby.json`. +- Backend error payloads expose stable locale-aware fields (`error_code`, `error`, `locale`) with fallback to English for unsupported locales. +- Angular host/player shells consume shared i18n copy, persist preferred locale, and keep audio-policy messaging aligned with the shared catalog. +- i18n MVP release migration impact is none beyond standard Django migration consistency checks. + ## [0.1.0] - 2026-02-27 ### Added - Projekt scaffold for Weirsøe Party Protocol (Django 6.0.2) diff --git a/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md b/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md new file mode 100644 index 0000000..a2f0a1f --- /dev/null +++ b/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md @@ -0,0 +1,170 @@ +# ISSUE-279 — i18n MVP close-out note + +Issue: **#279** (`[READY][#175][P5] MVP close-out note: migration/changelog + release-readiness checklist for i18n`) + +## Scope + +Dette dokument lukker MVP-sporet for issue #175 med tre konkrete ting: + +1. en migrationsnote for release/deploy, +2. changelog-indhold der kan genbruges i næste release-note, +3. en release-readiness checkliste for i18n, forankret i repoets aktuelle `main`-tilstand. + +Repo-state ved skrivning: +- `main` peger på merge commit `903c63c` (`feat: simplify Angular host/player MVP flow for issue #276`, PR #281). +- Åbne i18n-relaterede PR'er uden for `main`: + - PR #282 `docs(#277): add shared i18n parity artifact` + - PR #283 `feat(#275): harden django i18n locale negotiation and fallback` + +## Current i18n MVP state on `main` + +Følgende er allerede til stede på `main`: + +- **Shared contract** i `shared/i18n/lobby.json` + - default locale: `en` + - supported locales: `en`, `da` + - fælles frontend/backend keyspace + fallback-regler +- **Django bootstrap** via `partyhub/i18n_bootstrap.py` og `partyhub/settings.py` + - `LocaleMiddleware` aktiv + - `LANGUAGE_CODE` + `LANGUAGES` bootstrappes fra shared catalog +- **Backend locale/error flow** via `lobby/i18n.py` + - normalisering af locale-tags + - locale-aware fejlpayload med `error_code`, `error`, `locale` + - fallback til `en` når locale eller oversættelse mangler +- **Angular MVP wiring** via + - `frontend/shared/i18n/lobby-loader.ts` + - `frontend/angular/src/app/lobby-i18n.ts` + - host/player shells med locale switch og shared copy-opslag +- **Drift/parity guardrails** + - `shared/i18n/key-manifest.json` + - `scripts/check_i18n_drift.py` + - frontend parity/contract tests +- **Existing documentation/artifacts** + - `docs/I18N_ARCHITECTURE.md` + - `docs/ISSUE-175-I18N-SHARED-CONTRACT-ARTIFACT.md` + - `docs/ISSUE-225-BACKEND-I18N-BASELINE-ARTIFACT.md` + - `docs/ISSUE-257-SHARED-I18N-KEYSPACE-FRONTEND-LOADER-ARTIFACT.md` + - `docs/ISSUE-207-I18N-AUDIO-SMOKE-ARTIFACT.md` + - `docs/i18n-drift-check.md` + +## Migration note for release + +### Schema impact + +**Der er ingen nye Django-migrations i selve i18n-MVP-sporet på `main`.** + +Den i18n-relaterede leverance ligger i shared catalog, locale-bootstrap, error-payload-kontrakt, Angular wiring og test/documentation. Den kræver derfor ikke en særskilt i18n-database-migration for at gå i release. + +### Release/deploy expectation + +Selv om issue #279 ikke introducerer schemaændringer, skal release-flow stadig følge repoets generelle migreringsgate: + +```bash +python manage.py makemigrations --check --dry-run +python manage.py migrate --check --noinput +``` + +Hvorfor: release-policyen kræver, at vi undgår code/schema drift, og staging-smoke-suiten forventer eksplicit migration consistency check. + +### Praktisk migrationskonklusion + +Til release-notes/deploy-runbook kan i18n-sporet beskrives sådan her: + +- **Migration impact:** none for i18n MVP itself +- **Deploy requirement:** run standard Django migration consistency checks anyway +- **Rollback note:** rollback er primært kode-/asset-baseret (shared catalog, frontend bundles, backend locale resolver), ikke schema-baseret + +## Suggested changelog content + +Følgende tekst kan bruges direkte i næste unreleased/release-sektion: + +```markdown +### i18n +- Shared da/en lobby i18n contract is now wired across Django and Angular MVP flows via `shared/i18n/lobby.json`. +- Backend error payloads expose stable locale-aware fields (`error_code`, `error`, `locale`) with fallback to English for unsupported locales. +- Angular host/player shells now consume shared i18n copy, persist preferred locale, and keep audio-policy messaging aligned with the shared catalog. +- Added repo guardrails for i18n drift/parity through the shared key manifest, drift checker, and focused frontend/backend contract tests. +- Release migration impact for the i18n MVP is **none** beyond the standard Django migration consistency checks. +``` + +Kort version til annoterede release-notes: + +```markdown +## i18n MVP close-out +- Shared da/en contract is active across backend + Angular MVP shell. +- Locale fallback remains `en` for unsupported requests and missing translations. +- No i18n-specific schema migration is required; keep standard `migrate --check --noinput` in release verification. +``` + +## Release-readiness checklist for i18n + +Status er vurderet mod repoets aktuelle tilstand ved `main@903c63c`. + +### 1) Shared contract and locale behavior + +- [x] Shared catalog findes i `shared/i18n/lobby.json`. +- [x] Default/supported locales er dokumenteret og implementeret som `en` + `da`. +- [x] Backend bruger shared contract til locale-aware fejlbeskeder. +- [x] Frontend/Angular bruger shared loader + shared keyspace. +- [x] Fallback-regel til `en` er dokumenteret og testet. + +### 2) Verification artifacts and local checks + +- [x] Arkitektur-note findes: `docs/I18N_ARCHITECTURE.md`. +- [x] Baseline artifact for issue #175 findes. +- [x] Backend artifact for issue #225 findes. +- [x] Frontend/shared loader artifact for issue #257 findes. +- [x] Drift-check dokumentation findes i `docs/i18n-drift-check.md`. +- [ ] Parity artifact fra issue #277 er ikke på `main` endnu (åben som PR #282). + +### 3) Code readiness on current branch topology + +- [x] Angular MVP host/player i18n flow er på `main` (PR #281). +- [x] Shared locale/bootstrap wiring er på `main`. +- [ ] Django i18n hardening fra issue #275 er ikke på `main` endnu (åben som PR #283). +- [ ] PR #283 er ikke merge-ready i den aktuelle Gitea-state (`mergeable: false` ved denne close-out note). + +### 4) Release gate before shipping i18n as “done” + +- [ ] Merge eller afvis eksplicit PR #282, så parity-artifact-status er afklaret. +- [ ] Merge eller afvis eksplicit PR #283, så backend hardening-status er afklaret. +- [ ] Kør drift-check fra repo root: + ```bash + python3 scripts/check_i18n_drift.py + ``` +- [ ] Kør backend i18n regressions: + ```bash + . .venv/bin/activate && python manage.py test \ + partyhub.tests_i18n_bootstrap \ + lobby.tests.I18nResolverTests + ``` +- [ ] Kør frontend shared-contract/parity checks: + ```bash + cd frontend && npm test -- --run \ + tests/lobby-loader.parity.test.ts \ + tests/lobby-i18n.contract.test.ts + ``` +- [ ] Kør Angular MVP locale smoke: + ```bash + cd frontend/angular && npm test -- --run \ + src/app/lobby-i18n.spec.ts \ + src/app/i18n-mvp-flow-smoke.spec.ts \ + src/app/features/host/host-shell.component.spec.ts \ + src/app/features/player/player-shell.component.spec.ts + ``` +- [ ] Bekræft standard migration consistency gate: + ```bash + . .venv/bin/activate && python manage.py makemigrations --check --dry-run + . .venv/bin/activate && python manage.py migrate --check --noinput + ``` +- [ ] Følg `docs/RELEASE_POLICY.md`: staging deploy, `/healthz`, smoke-resultat og changelog-reference før tag. + +## Close-out conclusion + +**Konklusion:** i18n-MVP'en er i praksis implementeret på `main`, og issue #279 kan levere den manglende release-/migration-closeout dokumentation uden nye kodeændringer i app-logikken. + +Men hvis i18n-sporet skal kaldes fuldt release-ready, mangler der stadig en eksplicit beslutning om de to åbne opfølgnings-PR'er: +- **PR #282** (parity artifact) +- **PR #283** (Django i18n hardening, aktuelt ikke merge-ready) + +Det betyder, at close-out-noten er komplet, men selve release-gaten bør betragte #282/#283 som åbne afklaringer, ikke som allerede landede leverancer. -- 2.39.5 From b2e66389c3befe66f94d7a178aaf1151b4b26d35 Mon Sep 17 00:00:00 2001 From: DEV-bot Date: Fri, 13 Mar 2026 10:17:19 +0000 Subject: [PATCH 2/6] docs(issue-279): refresh i18n close-out snapshot --- CHANGELOG.md | 2 +- docs/ISSUE-279-I18N-MVP-CLOSEOUT.md | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ac73326..06e1216 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## [Unreleased] ### Docs -- Added `docs/ISSUE-279-I18N-MVP-CLOSEOUT.md` with i18n MVP close-out guidance covering migration impact, releasable changelog text, and a release-readiness checklist anchored to current `main` state. +- Added `docs/ISSUE-279-I18N-MVP-CLOSEOUT.md` with i18n MVP close-out guidance covering migration impact, releasable changelog text, and a release-readiness checklist anchored to `main` snapshot reviewed on 2026-03-13. ### i18n - Shared da/en lobby i18n contract is wired across Django and Angular MVP flows via `shared/i18n/lobby.json`. diff --git a/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md b/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md index a2f0a1f..327afc0 100644 --- a/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md +++ b/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md @@ -8,10 +8,11 @@ Dette dokument lukker MVP-sporet for issue #175 med tre konkrete ting: 1. en migrationsnote for release/deploy, 2. changelog-indhold der kan genbruges i næste release-note, -3. en release-readiness checkliste for i18n, forankret i repoets aktuelle `main`-tilstand. +3. en release-readiness checkliste for i18n, forankret i et verificeret snapshot af `main` ved reviewtidspunktet. -Repo-state ved skrivning: -- `main` peger på merge commit `903c63c` (`feat: simplify Angular host/player MVP flow for issue #276`, PR #281). +Repo-state ved review-opdatering: +- `main` peger på merge commit `e6ca18f` (`test: issue #278 da+en smoke gate and primary-only audio verification`, PR #285). +- Denne note er et snapshot af repo-tilstanden verificeret 2026-03-13, ikke en løbende garanti for senere `main`-ændringer. - Åbne i18n-relaterede PR'er uden for `main`: - PR #282 `docs(#277): add shared i18n parity artifact` - PR #283 `feat(#275): harden django i18n locale negotiation and fallback` @@ -98,7 +99,7 @@ Kort version til annoterede release-notes: ## Release-readiness checklist for i18n -Status er vurderet mod repoets aktuelle tilstand ved `main@903c63c`. +Status er vurderet mod verificeret snapshot `main@e6ca18f` (reviewet 2026-03-13 UTC). ### 1) Shared contract and locale behavior -- 2.39.5 From ceb71aff6e8edbe18f435f7c7f35521fd7c2041f Mon Sep 17 00:00:00 2001 From: Asger Geel Weirsoee Date: Fri, 13 Mar 2026 10:37:22 +0000 Subject: [PATCH 3/6] docs(issue-279): restate close-out note as reviewed snapshot --- CHANGELOG.md | 2 +- docs/ISSUE-279-I18N-MVP-CLOSEOUT.md | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06e1216..d9a6956 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## [Unreleased] ### Docs -- Added `docs/ISSUE-279-I18N-MVP-CLOSEOUT.md` with i18n MVP close-out guidance covering migration impact, releasable changelog text, and a release-readiness checklist anchored to `main` snapshot reviewed on 2026-03-13. +- Added `docs/ISSUE-279-I18N-MVP-CLOSEOUT.md` with i18n MVP close-out guidance covering migration impact, releasable changelog text, and a release-readiness checklist anchored to `main` snapshot reviewed on 2026-03-13 UTC. ### i18n - Shared da/en lobby i18n contract is wired across Django and Angular MVP flows via `shared/i18n/lobby.json`. diff --git a/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md b/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md index 327afc0..8cb79d8 100644 --- a/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md +++ b/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md @@ -12,10 +12,10 @@ Dette dokument lukker MVP-sporet for issue #175 med tre konkrete ting: Repo-state ved review-opdatering: - `main` peger på merge commit `e6ca18f` (`test: issue #278 da+en smoke gate and primary-only audio verification`, PR #285). -- Denne note er et snapshot af repo-tilstanden verificeret 2026-03-13, ikke en løbende garanti for senere `main`-ændringer. +- Denne note er et snapshot af repo-tilstanden verificeret 2026-03-13 UTC, ikke en løbende garanti for senere `main`-ændringer. - Åbne i18n-relaterede PR'er uden for `main`: - - PR #282 `docs(#277): add shared i18n parity artifact` - - PR #283 `feat(#275): harden django i18n locale negotiation and fallback` + - PR #282 `docs(#277): add shared i18n parity artifact` (`mergeable: true` ved verifikation) + - PR #283 `feat(#275): harden django i18n locale negotiation and fallback` (`mergeable: true` ved verifikation) ## Current i18n MVP state on `main` @@ -116,14 +116,14 @@ Status er vurderet mod verificeret snapshot `main@e6ca18f` (reviewet 2026-03-13 - [x] Backend artifact for issue #225 findes. - [x] Frontend/shared loader artifact for issue #257 findes. - [x] Drift-check dokumentation findes i `docs/i18n-drift-check.md`. -- [ ] Parity artifact fra issue #277 er ikke på `main` endnu (åben som PR #282). +- [ ] Parity artifact fra issue #277 er ikke på `main` endnu (åben som PR #282, `mergeable: true` ved verifikation). ### 3) Code readiness on current branch topology - [x] Angular MVP host/player i18n flow er på `main` (PR #281). - [x] Shared locale/bootstrap wiring er på `main`. -- [ ] Django i18n hardening fra issue #275 er ikke på `main` endnu (åben som PR #283). -- [ ] PR #283 er ikke merge-ready i den aktuelle Gitea-state (`mergeable: false` ved denne close-out note). +- [ ] Django i18n hardening fra issue #275 er ikke på `main` endnu (åben som PR #283, `mergeable: true` ved verifikation). +- [ ] PR #283 er stadig en separat release-afklaring, selv om den aktuelt er mergebar i Gitea. ### 4) Release gate before shipping i18n as “done” -- 2.39.5 From d6f4b5c0fb7050803275175cd8834a7029106904 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 13 Mar 2026 10:56:04 +0000 Subject: [PATCH 4/6] docs: align PR 283 close-out status wording --- docs/ISSUE-279-I18N-MVP-CLOSEOUT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md b/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md index 8cb79d8..9ce8d97 100644 --- a/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md +++ b/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md @@ -166,6 +166,6 @@ Status er vurderet mod verificeret snapshot `main@e6ca18f` (reviewet 2026-03-13 Men hvis i18n-sporet skal kaldes fuldt release-ready, mangler der stadig en eksplicit beslutning om de to åbne opfølgnings-PR'er: - **PR #282** (parity artifact) -- **PR #283** (Django i18n hardening, aktuelt ikke merge-ready) +- **PR #283** (Django i18n hardening, stadig en åben release-afklaring selv om den var `mergeable: true` ved verifikation) Det betyder, at close-out-noten er komplet, men selve release-gaten bør betragte #282/#283 som åbne afklaringer, ikke som allerede landede leverancer. -- 2.39.5 From 4a12cee6ee8c877d5cba008699751f379deb2564 Mon Sep 17 00:00:00 2001 From: Asger Geel Weirsoee Date: Fri, 13 Mar 2026 11:11:12 +0000 Subject: [PATCH 5/6] docs(i18n): refresh issue 279 close-out status --- CHANGELOG.md | 2 +- docs/ISSUE-279-I18N-MVP-CLOSEOUT.md | 28 ++++++++++++---------------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9a6956..9cc3221 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## [Unreleased] ### Docs -- Added `docs/ISSUE-279-I18N-MVP-CLOSEOUT.md` with i18n MVP close-out guidance covering migration impact, releasable changelog text, and a release-readiness checklist anchored to `main` snapshot reviewed on 2026-03-13 UTC. +- Added `docs/ISSUE-279-I18N-MVP-CLOSEOUT.md` with i18n MVP close-out guidance covering migration impact, releasable changelog text, and a release-readiness checklist refreshed against `main@1bc4c27` after PR #282/#283 landed on 2026-03-13 UTC. ### i18n - Shared da/en lobby i18n contract is wired across Django and Angular MVP flows via `shared/i18n/lobby.json`. diff --git a/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md b/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md index 9ce8d97..c28acf0 100644 --- a/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md +++ b/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md @@ -11,11 +11,9 @@ Dette dokument lukker MVP-sporet for issue #175 med tre konkrete ting: 3. en release-readiness checkliste for i18n, forankret i et verificeret snapshot af `main` ved reviewtidspunktet. Repo-state ved review-opdatering: -- `main` peger på merge commit `e6ca18f` (`test: issue #278 da+en smoke gate and primary-only audio verification`, PR #285). -- Denne note er et snapshot af repo-tilstanden verificeret 2026-03-13 UTC, ikke en løbende garanti for senere `main`-ændringer. -- Åbne i18n-relaterede PR'er uden for `main`: - - PR #282 `docs(#277): add shared i18n parity artifact` (`mergeable: true` ved verifikation) - - PR #283 `feat(#275): harden django i18n locale negotiation and fallback` (`mergeable: true` ved verifikation) +- `main` peger nu på merge commit `1bc4c27` (PR #283), og inkluderer også PR #282 via merge commit `6ad5430`. +- Denne note er opdateret mod repo-tilstanden verificeret 2026-03-13 UTC, ikke en løbende garanti for senere `main`-ændringer. +- Der er ingen åbne release-afklaringer tilbage for PR #282/#283; begge er allerede landet på `main`. ## Current i18n MVP state on `main` @@ -99,7 +97,7 @@ Kort version til annoterede release-notes: ## Release-readiness checklist for i18n -Status er vurderet mod verificeret snapshot `main@e6ca18f` (reviewet 2026-03-13 UTC). +Status er vurderet mod verificeret snapshot `main@1bc4c27` (reviewet 2026-03-13 UTC, inkl. PR #282/#283). ### 1) Shared contract and locale behavior @@ -116,19 +114,19 @@ Status er vurderet mod verificeret snapshot `main@e6ca18f` (reviewet 2026-03-13 - [x] Backend artifact for issue #225 findes. - [x] Frontend/shared loader artifact for issue #257 findes. - [x] Drift-check dokumentation findes i `docs/i18n-drift-check.md`. -- [ ] Parity artifact fra issue #277 er ikke på `main` endnu (åben som PR #282, `mergeable: true` ved verifikation). +- [x] Parity artifact fra issue #277 er på `main` via PR #282 (merge commit `6ad5430`). ### 3) Code readiness on current branch topology - [x] Angular MVP host/player i18n flow er på `main` (PR #281). - [x] Shared locale/bootstrap wiring er på `main`. -- [ ] Django i18n hardening fra issue #275 er ikke på `main` endnu (åben som PR #283, `mergeable: true` ved verifikation). -- [ ] PR #283 er stadig en separat release-afklaring, selv om den aktuelt er mergebar i Gitea. +- [x] Django i18n hardening fra issue #275 er på `main` via PR #283 (merge commit `1bc4c27`). +- [x] PR #283 er ikke længere en separat release-afklaring; hardeningen er allerede indarbejdet på `main`. ### 4) Release gate before shipping i18n as “done” -- [ ] Merge eller afvis eksplicit PR #282, så parity-artifact-status er afklaret. -- [ ] Merge eller afvis eksplicit PR #283, så backend hardening-status er afklaret. +- [x] PR #282 er allerede merged, så parity-artifact-status er afklaret på `main`. +- [x] PR #283 er allerede merged, så backend hardening-status er afklaret på `main`. - [ ] Kør drift-check fra repo root: ```bash python3 scripts/check_i18n_drift.py @@ -162,10 +160,8 @@ Status er vurderet mod verificeret snapshot `main@e6ca18f` (reviewet 2026-03-13 ## Close-out conclusion -**Konklusion:** i18n-MVP'en er i praksis implementeret på `main`, og issue #279 kan levere den manglende release-/migration-closeout dokumentation uden nye kodeændringer i app-logikken. +**Konklusion:** i18n-MVP'en er implementeret på `main`, og issue #279 leverer den manglende release-/migration-closeout dokumentation uden nye kodeændringer i app-logikken. -Men hvis i18n-sporet skal kaldes fuldt release-ready, mangler der stadig en eksplicit beslutning om de to åbne opfølgnings-PR'er: -- **PR #282** (parity artifact) -- **PR #283** (Django i18n hardening, stadig en åben release-afklaring selv om den var `mergeable: true` ved verifikation) +PR #282 (parity artifact) og PR #283 (Django i18n hardening) er nu begge merged på `main`, så close-out-noten, changelog-teksten og release-readiness-checklisten kan behandles som indbyrdes konsistente for det verificerede snapshot. -Det betyder, at close-out-noten er komplet, men selve release-gaten bør betragte #282/#283 som åbne afklaringer, ikke som allerede landede leverancer. +Det betyder, at de resterende release-gates for i18n nu er de almindelige verificeringstrin (drift-check, backend/frontend-smoke, migrations-konsistens, staging deploy og changelog-reference) — ikke længere afklaring af om #282/#283 skal lande. -- 2.39.5 From 3747081eb48535a65b411143acb106a808d45635 Mon Sep 17 00:00:00 2001 From: DEV-bot Date: Fri, 13 Mar 2026 11:27:14 +0000 Subject: [PATCH 6/6] docs(#279): clarify merged snapshot in close-out note --- CHANGELOG.md | 9 ++------- docs/ISSUE-279-I18N-MVP-CLOSEOUT.md | 1 + 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9cc3221..7fe8610 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,13 +2,8 @@ ## [Unreleased] ### Docs -- Added `docs/ISSUE-279-I18N-MVP-CLOSEOUT.md` with i18n MVP close-out guidance covering migration impact, releasable changelog text, and a release-readiness checklist refreshed against `main@1bc4c27` after PR #282/#283 landed on 2026-03-13 UTC. - -### i18n -- Shared da/en lobby i18n contract is wired across Django and Angular MVP flows via `shared/i18n/lobby.json`. -- Backend error payloads expose stable locale-aware fields (`error_code`, `error`, `locale`) with fallback to English for unsupported locales. -- Angular host/player shells consume shared i18n copy, persist preferred locale, and keep audio-policy messaging aligned with the shared catalog. -- i18n MVP release migration impact is none beyond standard Django migration consistency checks. +- Added `docs/ISSUE-279-I18N-MVP-CLOSEOUT.md` with the issue #279 i18n MVP close-out note, including migration impact, reusable release-note text, and a release-readiness checklist refreshed against `main@1bc4c27` after PR #282/#283 landed on 2026-03-13 UTC. +- Clarified that the close-out note supersedes earlier PR snapshot assumptions and now treats PR #282 (`6ad5430`) and PR #283 (`1bc4c27`) as already merged on `main`. ## [0.1.0] - 2026-02-27 ### Added diff --git a/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md b/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md index c28acf0..4855b43 100644 --- a/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md +++ b/docs/ISSUE-279-I18N-MVP-CLOSEOUT.md @@ -13,6 +13,7 @@ Dette dokument lukker MVP-sporet for issue #175 med tre konkrete ting: Repo-state ved review-opdatering: - `main` peger nu på merge commit `1bc4c27` (PR #283), og inkluderer også PR #282 via merge commit `6ad5430`. - Denne note er opdateret mod repo-tilstanden verificeret 2026-03-13 UTC, ikke en løbende garanti for senere `main`-ændringer. +- Denne revision afløser de tidligere snapshot-antagelser fra PR-historikken, hvor #282/#283 endnu ikke var landet. - Der er ingen åbne release-afklaringer tilbage for PR #282/#283; begge er allerede landet på `main`. ## Current i18n MVP state on `main` -- 2.39.5