evidence · 2.6 KiB

README.md

Committed at docs/evidence/coherent-shell/reveal-integrated-qemu/README.md. This is what grounds the requirements that cite it.

Open raw source

Integrated Rust reveal under headless QEMU

Evidence class: headless QEMU compositor and Rust Wayland client, with synthetic wlroots touch input and synthetic live app pixels. Run on 2026-09-23. The compositor sender source is d9b24140273a2d7ca24f137e9097b88f307448e5 (sender code ea920846ae44d602c21953b0cbb97f2289662590). Its exact cross-built card package is /nix/store/13mxaxxmldpmcx418d6cq9bjvcc72ifb-k230-card-shell; QEMU ran the package’s unwrapped RISC-V ELF /nix/store/6a0jd8i6sg8ix6j9mkhz72wnb4h5diyg-sway-unwrapped-riscv64-unknown-linux-gnu-1.12/bin/sway. The Rust receiver source is a8fa5d3283e679724a554d9db52203b98f90ce0e and exact RISC-V ELF is /nix/store/kn3x90rplwfrf83z1nk0jjpa0whigrk1-k230-shell-rust-riscv64-unknown-linux-gnu-0.1.0/bin/k230-shell-rust. The live source was the host package /nix/store/6nskh3ldk3ya7mwxbb258qszrxhw2i61-card-composition-probe-client-0.1/bin/card-composition-probe-client.

From this branch, the reproducible command is:

python3 tests/card_shell_runtime.py \
  --sway /nix/store/6a0jd8i6sg8ix6j9mkhz72wnb4h5diyg-sway-unwrapped-riscv64-unknown-linux-gnu-1.12/bin/sway \
  --client /nix/store/6nskh3ldk3ya7mwxbb258qszrxhw2i61-card-composition-probe-client-0.1/bin/card-composition-probe-client \
  --rust-reveal-client /nix/store/kn3x90rplwfrf83z1nk0jjpa0whigrk1-k230-shell-rust-riscv64-unknown-linux-gnu-0.1.0/bin/k230-shell-rust \
  --output /tmp/k230-reveal-integrated-qemu-a8fa --touch-first --native-touch

Result: PASS Rust reveal receiver: actual QEMU pixels, reversal, settle and input routing; no physical touch. The five attached 568×1232 captures were visually inspected; they contain only synthetic probe card pixels and ordinary installed desktop-entry names. They show the live deck, an intermediate Rust drawer over the same live card, a reversed drawer, settled open drawer, and intermediate shade. At background sample (10,1000), deck was RGB (17,24,39), drawer mid (21,33,46), reversed (17,24,39), and open (26,41,54); at (10,100), shade mid was (25,39,52) versus deck (17,24,39). The receiver’s log had no touch-down 80 during the compositor-owned finger stream, then logged touch-down 82 284.0 1000.0 after the drawer settled open. All five images and their hashes are in docs/blob-inventory.md.

This proves actual headless compositor/receiver pixels and input-region routing for this synthetic path. A grim capture is not a panel presentation or real-finger observation. It does not establish board CPU/frame budgets, theme appearance, private-card handling, or failure recovery. Those gates remain open in the coherent-shell and card changes.