Repository navigation
Five fixes, one of which the station found by photographing itself.
The window can take its own picture
--screenshot <path> on run and replay asks egui for the frame it was going to paint
anyway, writes a PNG and closes; --screenshot-after is how long the station gets to fill
first, because every plot is empty until packets arrive. The README has a picture of the
interface now, and the command that makes it again sitting under it.
This was not a feature looking for a reason. A screen grabber cannot supply a reproducible
picture: macOS refuses screen recording outright to a process that is not an application
bundle, and does not error — it returns the desktop with every window missing.
The first picture it took showed two bugs no test had.
What was wrong
The event log read "22 of 12 saved parameters are in this definition; the other
18446744073709551606 are kept". Layout::restore counted mentions while its caller's
denominator counted the watch list, and every plotted parameter is in both — so the count
exceeded its own denominator and the subtraction wrapped. In a debug build that is a panic.
The packet counters drew underneath the Pause button. The source label carries a whole
file URL with its query string, longer than everything else on the strip together.
The "… and N more, narrow the search" notice was drawn below the clip rect, every time. An
operator searching a nine-thousand-parameter definition saw 512 rows and nothing to say the
other 8 981 existed, which reads as a search that found everything.
--history did nothing whenever a layout file existed — which, since the bundled layout
started shipping, is always for the demo. The command line wins now, the way it does over a
config file everywhere else.
A headless pass whose source never opened exited 0. xtce-gs run --headless --record under
a supervisor exited clean after a second having recorded nothing, and Restart=on-failure
never fired. A missing definition already exited 1, because it is opened on the caller's
thread; a missing recording exited 0, because it is opened one spawn later. Two spellings of
one mistake, split on something no operator can see. Session::outcome now says which ending
it was, and the two that are failures are reported as such.
Also
Pinned to xtce-rs v0.1.1. The comments were thinned by about 450 lines, which changed no
behaviour and is in the history if you want to see what went.
542 tests.
Binaries
Built by this workflow from the tag, stripped, measured on the runner.
| Target | Bytes | Stripped |
|---|---|---|
aarch64-apple-darwin |
9220592 | 7944920 |
x86_64-apple-darwin |
10051400 | 8700360 |
x86_64-unknown-linux-gnu |
13765144 | 11492264 |