# Alpha 50.9.6 — Moderation State + Shared Locale Candidate

## Release status

- Candidate version: `v0.4.0-alpha.50.9.6`
- Base verified release: `v0.4.0-alpha.50.9.5` (`4dbe56b`)
- Status: prepared locally; not committed, tagged, deployed or manually QA-verified.

## Scope

### 1. Quarantined Mandala visual presentation

- Removes the original Mandala artwork from the public visual layer while a whole-Mandala visual moderation decision is active.
- Keeps the cell grid/structure in the same visual area.
- Places the moderation notice inside the Mandala visual as a centered card.
- Preserves the existing moderation state and participation/history data.

### 2. Moderation result propagation

- Advances `mandalas.revision` for public moderation changes affecting the Mandala.
- Covers hide-name, hide-message, hide-cell, quarantine, restore and ban-driven visibility changes.
- Uses the existing Mini App revision polling path; no SSE/WebSocket transport is added.

### 3. Shared Telegram bot ↔ Mini App locale

- Reuses the existing `bot_user_locales` persistence instead of adding a second locale store.
- Adds authenticated Mini App GET/POST `/api/v1/locale` endpoints.
- Mini App manual locale changes are saved to the shared preference immediately after applying locally.
- Mini App startup checks the shared preference and lets a previously selected bot locale override stale local Mini App state.
- A legacy Mini App-only saved locale is migrated to the shared preference when no shared preference exists.
- The existing bot locale resolver automatically uses the Mini App-selected shared preference on the next bot interaction.
- The Mini App polls the shared locale alongside existing server synchronization, so a bot-side locale change is reflected in an already-open Mini App without restart.
- Existing fallback behavior remains intact when no shared manual preference exists.

## Automated verification

- Structure: OK
- JavaScript syntax: OK
- Unit: 48/48
- Integration: 58/58
- API: 23/23
- Total: 129/129

## Manual QA required after deployment

- Whole-Mandala quarantine shows no original artwork and displays the moderation card inside the visual area.
- Moderator hide/restore actions propagate to another already-open Mini App without refresh.
- Change Mini App locale RU → EN and confirm the bot uses EN on the next interaction.
- Change bot locale EN → RU and confirm an already-open Mini App switches to RU automatically.
- Confirm first-use automatic Telegram-language fallback still works when no manual shared preference exists.
