Skip to content

Flowlight 0.5.13

Latest

Choose a tag to compare

@blessdyb blessdyb released this 01 Oct 08:37
780a620

0.5.12 did not fix the bug it claimed to. This does, and this time the check can fail.

What rows in the window do now

Every row carries something that came off the network — a host, a path, a process name. libadwaita reads a row's title as Pango markup unless told otherwise, so until now a request with two query parameters rendered as an empty row:

GET merino.services.mozilla.com/api/v1/suggest?q=&providers=…     ← showed nothing at all

and a path containing <span> would have been rendered rather than shown.

Why 0.5.12 missed

It set use_markup(false) on the builder. A builder applies a row's title as the object is constructed and the property afterwards, whatever order the chain lists them in — so the title was still parsed as markup, and the property still read false at the end. The check shipped with it counted those declarations: thirty-two rows, thirty-two declarations, none of them working.

Measured instead of reasoned about:

built with the builder:   uses markup: false   — and GTK logged "Failed to set text … from markup"
set after construction:   uses markup: false   — and said nothing at all

What changed

  • One helper constructs the row, sets the property, and only then sets the text. All thirty-two call sites go through it.
  • The helper moved into a small library beside the binary, so the test exercises what the window uses rather than a copy that can drift.
  • A structural check refuses any ActionRow::builder() in the window, because a builder cannot set the property first.
  • A behavioural check runs under xvfb, catches what GTK logs through g_log_structured — a plain log handler sees nothing, which is its own small lesson — and fails if a row's text could not be set. It was run against the old construction and failed there before being trusted here.

Nothing else changed. If you are on 0.5.12, this is worth taking: it is the difference between seeing your agents' requests and seeing blank rows where the interesting ones were.