Validation & Evidence Boundary
Automation matrix
| Layer | v6 / v7 evidence |
|---|---|
| Web | TypeScript, clearance, Vitest and Vite build; v7: 18 files / 141 tests |
| Pure C++ | 11 economy golden snapshots plus gestures, saves, power, IMU and audio/OLED policy |
| Rendering | Eight scenes × 30 frames, incremental equals full; FX/reduced/particle contracts |
| Visual | v6 initial/endgame × three pages, 114,546 tested pixels/page, 100% palette parity |
| Build | Production ESP-IDF app, partition headroom and asset hash |
| Device boot | ESP32-S3, 16 MiB Flash, 8 MiB PSRAM, CO5300, CST9217, QMI8658, RTC and NVS |
| Stability | No WDT, Guru Meditation, assert, brownout, coredump or sustained memory loss |
Firmware artifacts
v6 production firmware is 1,342,416 bytes with about 84% app-partition headroom. Current v7 is 1,536,336 bytes with about 82% headroom, SHA-256 ec2229…00e6c. The v7 asset pack is 710,740 bytes, SHA-256 9fbefa…aa93.
Performance
- v6 final: 29.61–29.83 FPS.
- v7 ordinary QA: 29.20–29.33 FPS.
- v7 current complex save: 26.17–26.70 FPS.
- Reduced: 14.89–14.96 FPS.
- Ambient: 2.00 FPS.
Every number is bound to a scene; an empty-page peak is never presented as all-state performance.
Automated versus human evidence
Automation proves controller handshake, IRQ, coordinates, formulas, pixels, sequence timing, save read-back, IMU signs and the PCM software chain.
It cannot fully prove AMOLED glass/color/brightness, comfort of hold thresholds, edge friction, external-speaker pressure/distortion or subjective HIGH parallax. The project never treats a clean serial log as proof that eyes and hands are satisfied.
Reproducible commands
npm run check
bash pocket-star/firmware/tools/run_host_tests.sh
bash pocket-star/firmware/tools/render_host_snapshots.sh
idf.py -C pocket-star/firmware/pocket-star build
./pocket-star/firmware/tools/verify_device.sh /dev/cu.usbmodem1101 16The final command builds, flashes, verifies, resets and checks device markers. It requires the correct connected port and target.
