evidence · 4.5 KiB

README.md

Committed at docs/evidence/files-app/board-2026-09-30/README.md. This is what grounds the requirements that cite it.

Open raw source

Files: physical board closeout, 30 September 2026

The operator launched both installed Files entries, confirmed their icons render, and reported “files both worked fine for scrolling and such” after testing Portfolio and Nautilus on the physical panel. This is real-glass feedback, distinct from the coordinator’s measurements and native screenshots below. Both candidates remain installed by the already-recorded operator decision.

The coordinator held /tmp/k230-board.lock for each serial operation and remained the sole board operator throughout measurement and collection. The board script launches the exact Exec executable from each installed desktop override used by the Rust catalog. It closes candidate windows and terminates a resident Nautilus process so activation cannot silently reuse an older environment. It measures monotonic time until the real Sway tree reports each application surface, then reads application RSS and five narrowly selected environment predicates from /proc. It does not write GTK settings or add icon paths outside the installed Nix launcher. Actual results include exact process and system identities.

ApplicationLaunch to mapped Wayland surfaceApplication RSSWrapper predicates
Portfolio5.916 s74,388 KiB (72.6 MiB)all five pass
Nautilus3.461 s64,536 KiB (63.0 MiB)all five pass

Each application’s actual process has GDK_BACKEND=wayland, GSK_RENDERER=cairo, and application/adwaita/hicolor shares on XDG_DATA_DIRS. Both apps render actual icons in these original board-native captures:

Portfolio icons on the board

Nautilus icons on the board

Optical observation of the lit panel showing Nautilus

The optical photograph is blurred, oblique and partly outside the frame. It corroborates that the panel displays the matching empty-folder screen; it does not establish detailed icon quality or scrolling. Native captures establish rendered appearance; the operator’s report establishes physical scrolling. Capture provenance and hashes retain those distinctions.

Repeatable command and console proof

Stage the committed board-metrics.py at /root/tmp/k230-deployment/files-board-metrics.py using tools/push-file.py, with the board reservation held, then run:

flock -n /tmp/k230-board.lock python3 tools/console.py /dev/ttyACM0 --wait=12 'timeout -k 2s 65s /nix/store/v189xydz6qkcd4cbkixcmv91w8hbc560-python3-riscv64-unknown-linux-gnu-3.14.7/bin/python3 /root/tmp/k230-deployment/files-board-metrics.py >/root/tmp/k230-deployment/files-metrics-log.txt 2>&1'
flock -n /tmp/k230-board.lock python3 tools/console.py /dev/ttyACM0 --wait=3 'cat /root/tmp/k230-deployment/files-metrics-result.json'

The measurement can outlast the console wait; its protected on-board result and log persist independently. The framed collection script collects that result and original JPEGs after completion, rejecting incomplete frames and invalid base64. Its host output path is an operator-specific artifact location and can be changed locally. The console record contains only relevant public identities, service health and the successful result.

Limits and corrected attempts

One sample per app, with already warm OS/library caches. Surface mapping is not first-frame presentation; RSS covers the app process, not shared D-Bus services or the entire closure. No scrolling FPS is inferred from the qualitative pass. The metrics launch the exact installed desktop Exec through its wrapper rather than timing Rust catalog IPC; the operator separately tested drawer launches.

Earlier harness attempts used an unavailable gio executable, then the lower priority upstream desktop entry instead of the catalog’s override. A subsequent run found Nautilus reused an old resident process lacking the wrapper variables; that result was rejected and the script now requires a fresh process and asserts all five predicates. Only the successful rerun is accepted here.

Installed userspace is nlgjhifgwcgg0hlbqhnng7xw7cjgxg9a, from source 27110ccb2391100848461a59bccf4bbcd5a59430. The board’s existing boot selection still names the earlier x1xbs5qdb5gn91j6s7gsi8mg18qra5ah system. This closeout proves the installed Files apps and real-panel behavior, not a new persistent boot selection. Already-open GTK apps following a subsequent theme change remain explicitly UNVERIFIED in the spec; no such behavior is claimed here.