# Power sheet on the board (tasks 3.3, 3.4), 2026-10-14 Landscape image, real power key and glass, operator at the board. Native `grim` captures of the shell (camera waived by the operator). ## Hold, sheet, Cancel, named confirmation (3.3) - `sheet-open-grim.png`, 16:38:22: holding the key opened the Power sheet (Restart…, Power off…, Cancel). Operator: "yes" (they held it), then Cancel closed it. - `restart-confirmation-grim.png`, 16:38:48: Restart… opened the named confirmation "Restart device?" with Cancel and Confirm. Boot ID unchanged (`ccd3f704-…`): nothing ran before confirmation. - `after-cancel-grim.png`: a later tap at x=52 on that bar cancelled it and the sheet showed "cancelled". Problems the trial found, fixed in this branch (host tests; the revised sheet still needs a look on the board): - The confirmation was one bar split invisibly at its middle: the operator's tap on its left half cancelled when they meant to confirm, and the sheet looked frozen. - Two real Confirm taps landed at y=505.4 and 507.5, just under the bar's 432–500 band, and did nothing; the third, at 486.5, worked. - "Restart device?" was painted twice (the question and the reply message). - A swipe up the sheet (from 524,328 to 458,6) did not close it. The confirmation is now two separate buttons, Cancel and the named action (Restart or Power off), whose taps reach to the sheet's bottom edge; the question is painted once; an upward swipe closes the sheet. Test: `service_ui::tests::the_power_sheet_confirmation_is_two_buttons_with_room_below_and_swipes_away`, replaying the board's own tap and swipe coordinates. ## The revised sheet on the board (3.3) Boot `7c8f203e-a001-448b-8818-4cbd7bf9ea3c`, landscape-HDMI image built at master `339fb0f6` (which contains the two-button sheet, `46d6c4fe`), real power key and glass, operator at the board. From the board's journal (`journalctl -b 7c8f203e… -o short-precise`, filtered to the key, the shell's surface and touches): ``` 18:04:33.459404 kernel: k230-pmu-pwrkey 91000000.pmu-pwrkey: INT0 press 18:04:34.168388 k230-shell-rust: rust-shell 1196685ms map-request 18:04:34.605633 kernel: k230-pmu-pwrkey 91000000.pmu-pwrkey: INT0 release 18:04:35.994203 k230-shell-rust: rust-shell 1198511ms touch-down 0 122.2 176.7 18:04:36.171911 k230-shell-rust: rust-shell 1198689ms touch-up 0 18:05:00.316756 k230-shell-rust: rust-shell 1222834ms touch-down 0 88.3 498.6 18:05:00.519405 k230-shell-rust: rust-shell 1223036ms touch-up 0 18:05:02.011869 k230-shell-rust: rust-shell 1224529ms touch-down 0 33.4 164.6 18:05:02.173659 k230-shell-rust: rust-shell 1224691ms touch-up 0 18:05:05.900710 k230-shell-rust: rust-shell 1228418ms touch-down 0 64.7 169.9 18:05:06.102904 k230-shell-rust: rust-shell 1228620ms touch-up 0 18:05:08.444893 k230-shell-rust: rust-shell 1230956ms unmap ``` - A 1.15 s hold opened the sheet (map-request while the key was down); the tap on Restart… (122, 177) opened the named confirmation. - `revised-restart-confirmation-grim.png`, 18:04:59: the confirmation is now "Restart device?" painted once, with two separate buttons, Cancel on the left and Restart on the right. - The tap at (88.3, 498.6) -- on Cancel, at the bottom edge of the button where the old bar ignored taps -- cancelled it. Two more taps on the Restart… row followed and the sheet closed at 18:05:08. Operator: "it works go". - No restart ran: the same boot continued until the deliberate reboot at 18:15:15 that installed the next image. Integrated closure: `nix build .#nixosConfigurations.k230-coherent-shell.config.system.build.toplevel` at master `339fb0f6` built `/nix/store/0m0wgs1pai03b31b9xzmnafc6nzb20ia-…`, and again at master `c1a4ed6d` (after the power-key `output *` change) built `/nix/store/4n1simq4dqpb34zlmjchsz6rrwv9sv4a-nixos-system-nixos-26.11.20260919.20b1ddd`. Limits: native captures and the board's journal, not a camera. The journal does not record which tap closed the sheet at 18:05:08; the hold → sheet → Cancel path on the sheet itself is the 16:38 trial above, before the confirmation row changed. ## Confirmed Restart and Power off (3.4) Restart, from the shell's journal (boot `ccd3f704…`): ``` 16:45:59.450939 kernel: k230-pmu-pwrkey 91000000.pmu-pwrkey: INT0 press 16:46:00.157049 k230-shell-rust: map-request 16:46:00.533893 kernel: k230-pmu-pwrkey 91000000.pmu-pwrkey: INT0 release 16:46:11.944438 sudo: shell : ... COMMAND=.../bin/systemctl reboot 16:46:11.995263 systemd-logind: reboot requested from client PID 4728 ('systemctl') (unit shell-ui.service)... 16:46:17.654292 systemd: Reached target System Reboot. ``` The next boot, `c988db76…`, started at 16:46:32 on its own and the shell came up (`shell-ui` active). Operator: "i tapped confirm that time and it's restarting now". Power off (boot `c988db76…`): ``` 16:52:19.509049 kernel: k230-pmu-pwrkey 91000000.pmu-pwrkey: INT0 press 16:52:20.214622 k230-shell-rust: map-request 16:52:21.088953 kernel: k230-pmu-pwrkey 91000000.pmu-pwrkey: INT0 release 16:52:26.364396 sudo: shell : ... COMMAND=.../bin/systemctl poweroff 16:52:26.412739 systemd-logind: poweroff requested from client PID 1213 ('systemctl') (unit shell-ui.service)... 16:52:32.029459 systemd: Reached target System Power Off. ``` Operator: the screen went dark and stayed off until they held the power key for about 3 s ("it did"). The next boot, `dadc6e5c…`, started at 16:53:05. The power-off handler is the one recorded in `../power-off/`. Limits: no serial or camera capture. `/dev/ttyACM0` on this bench is another device, not the K230, and the camera is waived. The power-off result (board dark until the key hold) is the operator's observation; the journal shows the request and shutdown, and the new boot ID shows the start again.