feat: build the Russian responsive web interface

This commit is contained in:
2026-08-29 21:11:36 +03:00
parent 03b283f892
commit e77d9d62c7
8 changed files with 409 additions and 74 deletions
+13 -2
View File
@@ -693,7 +693,7 @@ If all criteria pass, set this milestone to `DONE`, append its execution record,
## Milestone 013 — Build the Russian responsive web interface
**Status:** `READY`
**Status:** `DONE`
**Depends on:** Milestone 012
### Objective
@@ -723,11 +723,22 @@ Implement the complete phone-first interface as small, dependency-free static as
If all criteria pass, set this milestone to `DONE`, append its execution record, and change Milestone 014 from `BLOCKED` to `READY`.
### Execution record
- Date: 2026-08-28
- Board model and revision: ESP32-C6FH4 QFN32, revision v0.2.
- Toolchain and library versions: PlatformIO Core 6.1.19; `espressif32` 7.0.1; ESP-IDF 6.0.1; `esp_littlefs` 1.20.4.
- Result: PASS, pending physical-device UI confirmation.
- Evidence: Replaced the diagnostic page with a local, Russian, dependency-free phone-first application covering connection, lobby, game, spectator, result, reconnecting, and error states. It renders labelled 10 × 10 boards with accessible state symbols; uses selected-target then confirmation shot handling; gates all state-changing controls on the authorized server view; switches from tabs to side-by-side boards at tablet width; persists only name and session token locally; and uses WebSocket recovery with safe HTTP polling/version reconciliation. A PlatformIO pre-build script minifies and deterministically gzips the three static assets. No external resources, embedded credentials, or token logging were introduced.
- Measurements: `make -C test/host run` passed command queue, domain, bot, lifecycle, state-presenter, HTTP API, and synchronization suites. `node --check data/app.js`, gzip integrity checks, and JavaScript syntax checking of the compressed asset passed. `pio run -e esp32-c6-devkitm-1 -t buildfs` included all six source/compressed web assets; their combined size is 30,915 B, below the 250,000 B LittleFS asset budget. `pio run -e esp32-c6-devkitm-1` passed with 39,348 / 327,680 B RAM (12.0%) and 1,014,500 / 2,097,152 B flash (48.4%).
- Issues or deviations: No firmware upload was performed. Visual checks on a physical narrow phone and tablet, plus local-network WebSocket interruption/recovery, remain hardware verification. The available browser automation endpoint had no browser attached, so no automated visual inspection was possible.
- Next action: Milestone 014 is ready. Do not start it unless explicitly requested.
---
## Milestone 014 — Complete human-vs-human gameplay end to end
**Status:** `BLOCKED`
**Status:** `READY`
**Depends on:** Milestone 013
### Objective