evidence · 4.0 KiB

README.md

Committed at docs/evidence/coherent-shell/rust-probe-board/README.md. This is what grounds the requirements that cite it.

Open raw source

Rust software client on the physical board

Observed 2026-09-24 UTC. This is a real-board process and native-compositor capture checkpoint, without injected or real-finger input. It is not the finished shell UI and does not close coherent-shell task 0.3.

The exact probe source is 6d56d140 (landed as 1acc250f); package and installed-system paths are recorded in result.json. The coordinator exclusively held /tmp/k230-board.lock and /dev/ttyACM0. The package closure was exported from the host store and imported using a temporary read-only HTTP transfer on the existing network. Private transport addresses and raw console files remain outside the repository. Nix imported the exact store output; no NixOS switch, flash, or compositor restart occurred.

Commands run on the board (the package path is abbreviated with a shell variable):

rust_probe=/nix/store/ii2dvxw952j33xprfxycphxyqsxj6v6p-k230-shell-rust-probe-riscv64-unknown-linux-gnu-0.1.0
systemd-run --unit=k230-rust-probe --collect \
  --property=User=shell --property=RuntimeMaxSec=180 \
  --setenv=XDG_RUNTIME_DIR=/run/shell --setenv=WAYLAND_DISPLAY=wayland-1 \
  "$rust_probe/bin/k230-shell-rust-probe" --serve
runuser -u shell -- env XDG_RUNTIME_DIR=/run/shell WAYLAND_DISPLAY=wayland-1 \
  "$rust_probe/bin/k230-shell-rust-probe" --surface drawer
runuser -u shell -- env XDG_RUNTIME_DIR=/run/shell WAYLAND_DISPLAY=wayland-1 \
  grim /run/shell/rust-probe-drawer.png
systemctl show k230-rust-probe --property=MainPID \
  --property=MemoryCurrent --property=CPUUsageNSec
runuser -u shell -- env XDG_RUNTIME_DIR=/run/shell WAYLAND_DISPLAY=wayland-1 \
  "$rust_probe/bin/k230-shell-rust-probe" --surface hide
systemctl stop k230-rust-probe
systemctl is-active shell
systemctl is-active k230-rust-probe
readlink /run/current-system
runuser -u shell -- env XDG_RUNTIME_DIR=/run/shell WAYLAND_DISPLAY=wayland-1 \
  grim /run/shell/rust-probe-restored.png

The service was independently bounded to 180 seconds. The route commands returned successfully, and the journal recorded:

rust-probe 0ms ready-idle
rust-probe 3ms touch-capability
rust-probe 14217ms map-request
rust-probe 14225ms configure 568x1176
rust-probe 14270ms commit
rust-probe 14291ms configure 568x1176
rust-probe 14291ms frame-done
rust-probe 14314ms commit
rust-probe 14351ms frame-done
rust-probe 49502ms unmap

The first map request reached a software-buffer commit after 53 ms and the first callback after 74 ms in this single trial. These are process-relative log differences, not cold-start, touch latency, output-presented timing, or a repeated performance measurement. touch-capability reports the seat’s capability; no touch/move/cancel events were exercised.

mapped.png is an unedited 568×1232 native capture, visually reviewed before publication. It shows the probe’s diagnostic rows and teal edge below its transparent strip. The original bar and empty terminal remain visible above it. The client itself configured to 568×1176 because the existing rollback bar reserves 56 pixels. This does not prove the intended full-height no-bar session or the final themed drawer.

One mapped-service snapshot reported MemoryCurrent=5611520 bytes and CPUUsageNSec=93487000 cumulative. These are cgroup accounting values, not RSS/PSS or an application CPU percentage. No C/Qt comparison was performed.

After unmap and stop, the probe was inactive, the original shell was active, and /run/current-system matched the baseline exactly. restored.png shows the unobscured empty terminal and original bar. The temporary host transfer server stopped and the board lock was released. Capture hashes and sizes are in the fixed-schema result file.

Remaining proof: real touch/move/cancel, camera/panel presentation, full-height integrated geometry, repeated cold-start/RSS/CPU/frame measurements and fair C/Qt comparison. The actual Rust drawer, icons, themed Settings, notifications and theme chooser remain implementation work. No physical acceptance task is checked by this diagnostic capture.