evidence · 5.8 KiB

README.md

Committed at docs/evidence/wifi-settings/README.md. This is what grounds the requirements that cite it.

Open raw source

Wi-Fi Settings evidence

The protected broker and touch client host checkpoints were tested from source commits through 49e204da on 2026-09-24 UTC:

Paired headless QEMU touch proof, 2026-09-24 UTC

The source and client proof above is supplemented by tests/rust_wifi_settings_qemu.py, run against integrated source revision ea57e47d4472caaf17c4d6f6034a53e46e8815e0. Its exact Rust build passed with derivation /nix/store/w7600117342c3qx9vdwcb6mdq93phx3g-k230-shell-rust-riscv64-unknown-linux-gnu-0.1.0.drv and output /nix/store/cspc2gr8ysp5msxz010qx98v2mkahdfp-k230-shell-rust-riscv64-unknown-linux-gnu-0.1.0. The independent installed-source Sway executable was /nix/store/lmgq4hj6fxc37vp98hy1x93wnz589iyn-sway-unwrapped-riscv64-unknown-linux-gnu-1.12/bin/sway. These are separate immutable inputs; this is not a full-system image build.

unshare -Ur python3 tests/rust_wifi_settings_qemu.py \
  --sway /nix/store/lmgq4hj6fxc37vp98hy1x93wnz589iyn-sway-unwrapped-riscv64-unknown-linux-gnu-1.12/bin/sway \
  --rust /nix/store/cspc2gr8ysp5msxz010qx98v2mkahdfp-k230-shell-rust-riscv64-unknown-linux-gnu-0.1.0/bin/k230-shell-rust \
  --theme-source nix/handheld-theme-default \
  --output /tmp/k230-wifi-qemu-ea57-v7

The command exited zero and reported headless-qemu-injected-touch. It launches real target Sway and Rust processes through qemu-riscv64-static, captures a 568×1232 headless surface through grim, and injects touch through Sway’s test command. A synthetic root-owned broker inside the test user namespace supplies only invented Example network names. Its request checks distinguish saved selection with no password, new WPA2 password submission, synthetic authentication failure, and Forget. It checks the eight-character password only by length, never prints it, and verifies that touch coordinates are absent from the Rust log while the Wi-Fi view is active. The script uses OCR plus image checks to wait for specific visual states, preventing a stale/loading frame from being misreported as a successful capture. A separate synthetic light palette tests readability; neither palette capture is a physical panel result.

Selected captures: dark network list, light network list, saved-network entry, masked password entry, authentication error, Forget confirmation, dark Settings with enabled gesture hint, light Settings with enabled gesture hint, and Settings with the hint disabled. The ea57 captures retain icon-only Backspace labels; later source revision e2fa0366 uses explicit Del/Delete text, and its integrated target package still needs a final build. The screenshots are kept with the exact package identity rather than silently retouched.

The installed board scan confirms the previously installed broker’s real socket/radio path with allowlisted counts only. That result does not prove this corrected source. Real association, protected persistence, recovery timer, reboot reconnect, Forget, and Settings touch/keyboard behavior on physical glass remain UNVERIFIED. The 49e204da broker reselect correction and the e2fa0366 key-label correction were not in the exact packages above.