#0676
DisplayPipe
Every failing test arrives with its own footage
The end-to-end suite drives the desktop app through /display/input/batch: clicks, keystrokes, waits, composed as JSON. Before the suite starts, the runner points ffmpeg at the display and streams the capture through a pipe; a receiver in the CI container writes it into the artifacts directory.
When test 34 goes red, nobody reproduces anything. The failure is at minute six of the video, cursor on the wrong dialog, exactly as it happened. Green runs get their footage deleted; red runs get watched.
GUI test failures used to be a stack trace and an argument about whose machine it fails on. Now the argument is settled by scrubbing a timeline.
Every failing test arrives with its own footage.