v1.1.8
Hardened icon guard
No user-facing change — the icons themselves were fixed in
v1.1.7 and are unchanged
here. This release hardens the --smoke-icons guard that ships with the exe.
The guard failed once on the very first run of the freshly built exe — "theme-07: fastfetch
drew 0 keyed rows" — and then passed on every run afterwards, from both the exe and the
source. A cold fastfetch on a busy machine can render nothing at all. Since that guard runs in
both CI jobs, a flake there can fail a release build for no reason, so a render is now retried
once when it comes back empty. A genuinely broken config renders nothing twice, so a real
regression still fails.
That retry exposed a second hole: the guard compared rendered rows against a count derived from
the config itself, so a config that had lost its modules checked zero rows against zero icons
and passed. It now compares the module types against an explicit list, so dropping a module —
or adding one without confirming it gets an icon — fails the guard.
Checked against six mutations: icons switched off, padding reverted, one module dropped, all
modules dropped, a glyph typed back into a key, and the title key losing its no-key sentinel.
All six fail; the fixed code passes.
Full Changelog: v1.1.7...v1.1.8