Muppy 18.85.0¶
Released 2026-09-08.
A unit's journal says how old it is¶
The journal captured from a Systemd Unit carried no date of its own. The only timestamp on the form dates the systemctl state — active state, sub-state, main PID — and never the journal, so reading one as the other makes an hours-old snapshot look current. That is the wrong belief to hold while diagnosing an incident.
A Last Capture block now records Journal Captured At, the Journal Window and the Journal Format that actually produced the stored text. An empty capture date means undated, not fresh, and the form says so rather than leaving you to assume.
What you gain. You can tell a fresh journal from an old one before you read it. Press journalctl tail to capture again; the three values follow what that capture really ran, not what the form asked for.
What you have to do. Nothing. A journal captured before this release carries no capture date and reads as undated until you capture it again.
Reading logs from an agent is bounded and predictable¶
An agent connected to Muppy can read a unit's journal and re-capture it with the window it needs, instead of settling for whatever was captured last. Three things changed in how that reading behaves, and they apply both to the infrastructure side and to a Manganese tenant reading its own servers:
- A format is accepted or refused, never reinterpreted. Four journalctl formats are
accepted —
short,short-full,short-preciseandjson— and anything else is refused. A stray value used to fall back to JSON in silence, so a typo changed the output format under whoever was parsing text;short-precise, the one format whose timestamps feed back into a later request, was among the casualties. - An answer has a ceiling. A request can carry a pattern to filter on and a maximum size. Truncation cuts on a line boundary and reports the true number of matches, so a returned line never contradicts the pattern that selected it. Only the answer is bounded — the stored capture stays whole.
- Arguments are checked before the host is contacted, so a bad request fails at once instead of after a round trip.
A line count and a time window given together now both apply, and the field help says so. It used to describe the rule of the infrastructure side, where the line count wins.
A format that used to be accepted may now be refused
If you drive Muppy from a script or an agent that passes a journalctl output format, pass one of the four above. An unrecognised value is an error now, where it used to return JSON without saying so.
What an agent may and may not do: Muppy MCP.