Board and serial reservation held by coordinator via /tmp/k230-board.lock. Nix builds held the /tmp/k230-nix-build.lock slot. No overlapping operator. Userspace system switch only; no reboot, flash, kernel or DT change. Matching system: /nix/store/r0knnb72k3p3mpmbsnfgrk66yg8gl144-nixos-system-nixos-26.11.20260919.20b1ddd Activation script: nix-env -p /nix/var/nix/profiles/system --set SYSTEM; SYSTEM/bin/switch-to-configuration switch Rollback script targets the previously verified /nix/store/zrzvf9m3gqr1w6a9yk28yldx0h8dg7lq-nixos-system-nixos-26.11.20260919.20b1ddd. Independent activation recovery: systemd-run --unit=hdmi-uniform-rollback-two --on-active=8min /root/tmp/k230-deployment/uniform-rollback.sh systemd-run --unit=hdmi-uniform-activate-two --no-block /root/tmp/k230-deployment/uniform-activate.sh systemctl start shell shell-ui k230-touch-trackpad readlink -f /run/current-system; systemctl is-active shell shell-ui k230-touch-trackpad For each unit: systemctl show UNIT -p MainPID --value; readlink -f /proc/PID/exe systemctl stop hdmi-uniform-rollback-two.timer Bounded strict injected trial, staged committed tools/hdmi-trackpad-gesture-trial.py: systemd-run --unit=hdmi-uniform-relay-restore-two --on-active=90s /run/current-system/sw/bin/systemctl start k230-touch-trackpad timeout -k 2s 50s /nix/store/v189xydz6qkcd4cbkixcmv91w8hbc560-python3-riscv64-unknown-linux-gnu-3.14.7/bin/python3 /root/tmp/k230-deployment/hdmi-trackpad-gesture-trial.py --relay /nix/store/gy6r7r8pf8694pras6njlvgbpmjgg3n8-k230-touch-trackpad-riscv64-unknown-linux-gnu-0.1.0/bin/k230-touch-trackpad --keyboard-height 400 --output /root/tmp/k230-deployment/hdmi-uniform-trial Serial invocation: python3 tools/console.py /dev/ttyACM0 --wait=30 'staged command above' Native captures use runuser -u shell -- env XDG_RUNTIME_DIR=/run/shell WAYLAND_DISPLAY=observed-display grim -t png staged-output. Transfers used private temporary local GET/POST endpoints, omitted here. Export: 23 missing closure paths, gzip 6572093 bytes. Checked gzip sha256: 9f6041f3292df195747cff7db5c36681348b0b6e3c1d98ca5fca42fb468c2aac.