Repository navigation
Fix client controls and unify host presentations #26
Description
Follow-up to #2, #8 and #6. Source checkpoint: PR #27, commit908f829 (including9c0a9fe). Checkmarks below mean implementation and stated local tests, not deployed acceptance.
- Diagnostic-source/correction-output numbering fixed without migrating existing saved rules.
- Reactive extended-effects controls and confirmed readback while open.
- Default-enabled transient correction preview with explicit durable Save; Flutter USB/WS/HTTP and native Wi-Fi.
- Shared Flutter sixteen-name palette, HSV controls, optional hex and recent colors.
- Unified host presentation API: cells/groups, colors/effects, bulk, overlays, temporary/persistent and frame fallback; contract and explicit-run examples.
- Flutter pinch/hold, bounded snapped pan and compact mobile footer.
- Remove redundant physical-verification narration, with regression guard.
- Fix Keycontroller Web appendChild startup regression; canonical UI only.
- Assess compatible egui family: keep0.36.2 because dock/icon/theme require it; do not force mixed0.37 types.
- Reduce avoidable melody/beep/shift command delay with fast WS commands, prioritized dispatch and actual AVR handler ACK.
- Targeted tests and ESP32-S3/AVR/Windows/Android build candidates; published checkpoint.
Still open
- CI/review and safe merge of PR Fix live controls, correction previews and host presentations #27 (no bypass).
- Authorized deployment and actual board/Android/Windows acceptance.
- Measured acoustic and end-to-end command latency on connected hardware.
- Native correction management over USB (currently intentionally Wi-Fi-only).
- Complete interactive mini-game UI; current Snake example demonstrates an autonomous host trail, not a full interactive game.
Evidence: Flutter analyzer clean,84 widget/model +5 WS/HTTP +2 USB tests; native18 correction +10 realtime tests; canonical LED/audio/USB/host tests; nine affected Web suites; local browser effects edits without reopening. Exact artifact hashes, profiles and remaining limits are in docs/CLIENT-CONTROL-CANDIDATE.md; API/examples in docs/HOST-PRESENTATION.md.
No board contacted, rebooted, flashed or actuated and no app replaced in this checkpoint. Source versions0.2.8 agree. AVR candidate is table-selection/buffered/noRF, not universal for keycontroller. Existing per-board settings/rules/scene remain untouched. ESP32-S3+AVR remain release targets; ESP8266 retained under #25.
Copilot review request was attempted through GitHub CLI but the reviewer was not resolvable; no completed Copilot review is claimed.
Activity
atomicdeploy commentedon Oct 27, 2026
Per-group pixel-count follow-up: inspected existing PixelGroupLayout/PixelGroupStore, Flutter PixelGroupsPage, native pixel_groups and canonical Web editor. This feature already exists; no duplicate subsystem or default changes were needed. Re-ran tools/test-pixel-groups.ps1 successfully: inherit/custom prefix spans, capacity validation, durable store/no-op and failure behavior, renderers for both game roles, diagnostics/frame topology, and shared REST/USB guards. Counts are 1-255; zero/omitted overrides inherit global default, within compiled total capacity. Explicit Save only. No board connection, deployment, configuration write or current-instance value changes; working tree remains clean. Installed-device acceptance is not claimed by these host tests.
atomicdeploy commentedon Oct 28, 2026
Fire checkpoint: 24e3147 (PR #27, pushed).
Candidate: build/esp32s3-buffered/esp32s3.ino.bin, SHA256 4a1b345d687b805c3b2c515a56176eb96513233baae6c91eaaf7d12bc8e3906c.
Donor provenance and retained MIT license, precise test/build scope and remaining acceptance are in REUSE-PREFLIGHT-RECEIPT.md and the existing hash-bound comparison ledger. Unrelated local window-icon/signal-indicator work was preserved, not included. Corrected a pre-existing pixel-group test assertion to match the already-implemented managed public-file write API, retaining private-file denial. Repository CI is not claimed green: the separate existing PcControllerRuntime.h SOURCE-MAPPING.json certificate mismatch was reproduced and remains open. Parent production acceptance #2 remains open.
atomicdeploy commentedon Oct 28, 2026
Handoff review found and fixed a data-loss risk: HostPresentationStore and StateAppearanceSettings both used /presentation.json and /presentation.pending. Host layers now use /host-presentation.json and their own staging path, with no guessed migration. A regression using both real store implementations failed before the fix and passes after it: bidirectional independent saves/reboot, failed rename, unchanged palette staging, scene and correction bytes. Published on PR #27; targeted presentation/host/Snake regressions pass. No production filesystem or board was contacted; final-head CI and existing installed/native-USB/physical gates remain open.