# Lappy v0.7.0+hw1 — hardware-verified session export build

Installed and bench-checked on the owner's V2 / Rev1.1 on 6 November 2026, without Dragy, as requested. This build supersedes the original v0.7.0 candidate. Use `Lappy-v0.7.0+hw1-v2.lappy` for future installation; the original v0.7.0 candidate failed its first physical startup test and should not be installed.

## Included

Automatic circuit/P2P and reconnaissance session archives, VBO conversion, native timing JSON, a paginated session catalog, reversible archiving, and phone Wi-Fi downloads after recording ends. The normal screen flow remains **Settings → Diagnostics → SESSIONS → START WI-FI**, then join the displayed temporary network and open **http://192.168.4.1**.

The tested device retains all 11 pre-update tracks with their reported revisions, lengths, PB/reference availability, and its 614-point saved draft. Settings/NVS were restored from the verified pre-update backup before the final application write and verified byte for byte at the flash boundary. Runtime pairing and brightness match. Existing timing engines, decoder, course codecs, artwork, board/display driver and owner updater source are unchanged. The installed bootloader and partition table are unchanged.

## Hardware memory corrections

Physical testing found that the initial candidate consumed too much internal RAM. The corrected build places the SDK networking BSS and the unchanged 64 KiB LVGL widget arena in PSRAM, and makes allocations larger than 1 KiB prefer PSRAM. Task stacks and explicit DMA allocations remain internal. Existing task sizes, timing policies, drawing logic, and DMA staging behavior are retained.

Wi-Fi uses four static TX buffers, eight cached TX buffers, eight management buffers, four static RX buffers and eight dynamic RX buffers. HTTP is created before the radio starts; a remaining-internal-memory check aborts cleanly before radio startup if the reserve is inadequate. A 4 KiB download scratch buffer uses heap/PSRAM rather than the SD worker's stack. USB bench commands `sessions status`, `sessions wifi on/off`, and `sessions wifi credentials` allow service verification; they do not introduce phone USB file transfer.

## Confirmed on the physical device

- Normal startup, advancing display/touch processing, healthy SD recording, and unchanged saved catalog/draft.
- Circuit and custom P2P session creation/close with no GPS samples; zero recorded drops.
- Transfer refused during recording; timing remains disarmed when transfer is active.
- Two successful Wi-Fi starts, stop/restart, and clean shutdown with Wi-Fi active (241 ms total save; 4 ms storage close in the measured shutdown).
- A real macOS Wi-Fi client loaded the embedded page and catalog, downloaded session JSON and the original archive, checked circuit/P2P metadata, confirmed missing-UTC VBO refusal and invalid-path rejection, and reversibly archived only disposable bench sessions.
- The downloaded native archive passed the portable CRC/format inspector. The hardware-served HTML matched the embedded production page byte for byte.
- The Mac's original network was restored and the temporary test network profile was removed. Lappy was left rebooted normally, Wi-Fi off and recording disarmed.

The Wi-Fi control worker reported 3,308 bytes minimum free stack; the SD worker retained 4,960 bytes after downloads. The lowest sampled internal free heap during these Wi-Fi checks was 34,963 bytes; this is a sampled observation, not a lifetime minimum measurement.

## Scope

No live Dragy stream, positive GPS-to-VBO recording, road timing accuracy, iPhone/Android download, full video overlay, or long physical endurance test was performed. Portable VBO/archive tests and the existing regression/simulator suites pass. Valid receiver position and UTC are required for a real VBO; data is never fabricated when Dragy is absent. Existing pre-v0.7.0 `.lpr` files are retained and are not automatically migrated into the new catalog.

**Archive** is reversible and retains the `.archived` original on the SD card. It does not free that space. No automatic purge, DLAP, phone USB, cloud service, or OTA is introduced.

See [installation evidence](INSTALLATION_v0.7.0+hw1.md), [hardware bench scope](HARDWARE_BENCH_v0.7.0+hw1.md), and [architecture](SESSION_EXPORT.md).
