feat(ui): implement responsive player browser experience
This commit is contained in:
@@ -657,7 +657,7 @@ Complete the authoritative gameplay mechanics and terminal match outcomes.
|
||||
|
||||
## Milestone 008 — Player browser experience
|
||||
|
||||
**Status:** `NOT_STARTED`
|
||||
**Status:** `IN_PROGRESS`
|
||||
|
||||
### Objective
|
||||
|
||||
@@ -705,9 +705,57 @@ into the browser.
|
||||
|
||||
### Evidence
|
||||
|
||||
Completion evidence is not yet available because this milestone has not
|
||||
started. Required evidence includes browser-test output, desktop/mobile visual
|
||||
checks, refresh recovery results, and filesystem image size.
|
||||
Implementation is complete, but the milestone remains `IN_PROGRESS` until the
|
||||
required physical-device and current-stable-browser checks can be run.
|
||||
|
||||
- `bash scripts/run_host_tests.sh` completed successfully. The five focused
|
||||
browser tests reported keyboard/swipe direction equivalence, intention-only
|
||||
command envelopes, full replacement of chunked projections without
|
||||
explored-map memory, token-only refresh restoration, and local Russian,
|
||||
accessible, responsive assets. All Milestone 001-007 host regressions passed
|
||||
in the same run. The complete default observer projection remained bounded
|
||||
at 688 chunks with a worst-case maximum of 495 bytes against the 512-byte
|
||||
message limit. A separate AddressSanitizer and UndefinedBehaviorSanitizer run
|
||||
of the changed projection suite passed without findings; leak detection was
|
||||
disabled because the sandbox executes under `ptrace`.
|
||||
- `python3 scripts/verify_web_assets.py` reported `web asset reproducibility:
|
||||
PASS` with digest
|
||||
`f321d5bb1b4ad8cfcdf306c5a5e696f3b2b00b54792c727fd639671e585b573d`
|
||||
and a complete compressed payload of 17,100 of 1,572,864 allowed bytes.
|
||||
Source inspection and tests found no remote runtime URL, import, font,
|
||||
framework, analytics, or icon dependency. `node --check web/player.js` and
|
||||
`xmllint --noout web/icons.svg` also completed successfully.
|
||||
- `pio run -e esp32-c6-devkitm-1` completed with `[SUCCESS]`, reporting 47,508
|
||||
of 327,680 RAM bytes and 1,005,660 of 2,097,152 application bytes. The
|
||||
independent partition check reported `firmware.bin uses 1006288/2097152
|
||||
bytes in partition factory`. `pio run -e esp32-c6-devkitm-1 --target buildfs`
|
||||
completed with `[SUCCESS]`; the independent partition check reported
|
||||
`littlefs.bin uses 2031616/2031616 bytes in partition littlefs`, with all five
|
||||
gzip assets present in the image.
|
||||
- Physical delivery passed after the board re-enumerated as `/dev/ttyACM0`.
|
||||
`pio run -e esp32-c6-devkitm-1 --target upload --upload-port /dev/ttyACM0`
|
||||
and the corresponding `uploadfs` command both completed with `[SUCCESS]` and
|
||||
hash-verified every write. The ESP32-C6FH4 revision 0.2 boot log reported
|
||||
application version `0.8.0`, the unchanged 4 MB partition table,
|
||||
`LittleFS mounted: total=2031616 bytes, used=36864 bytes`, and successful HTTP,
|
||||
WebSocket, and provisioning service startup. The saved station SSID remained
|
||||
`k49`, so the device correctly entered its `maze32-F7B9` fallback AP while the
|
||||
host remained on `Mazda7`; the host network was not changed.
|
||||
- A USB readback of the complete LittleFS partition used
|
||||
`/home/sasa/.platformio/penv/bin/python
|
||||
/home/sasa/.platformio/packages/tool-esptoolpy/esptool.py --chip esp32c6
|
||||
--port /dev/ttyACM0 read_flash 0x210000 0x1f0000
|
||||
/tmp/maze32-m008-littlefs-readback.bin`. Both the built image and physical
|
||||
readback had SHA-256
|
||||
`606b98e11cbc479bf11bffa9a38d62ddfebce0689f0e3ebf148521190a032fd5`;
|
||||
`cmp` returned zero, proving byte-for-byte delivery without interrupting the
|
||||
host's internet connection.
|
||||
- Live browser validation is blocked. The browser-control runtime returned `No
|
||||
browser is available`, and its browser inventory was empty. Therefore the
|
||||
required visual and interaction passes at `412 x 916`, representative tablet
|
||||
and desktop viewports, and current stable Chrome, Safari, Firefox, and Edge
|
||||
cannot yet be recorded. Milestone 008 must not be marked `COMPLETE` until
|
||||
those browser checks pass. Milestone 009 remains `NOT_STARTED`.
|
||||
|
||||
## Milestone 009 — Observer mode and disconnect recovery
|
||||
|
||||
|
||||
Reference in New Issue
Block a user