v0.51.4
Fixed
- TRMNL battery samples weren't accumulating in history. The battery-history hook in the TRMNL
/api/displaypath and the MQTT subscriber both readparsed.get("battery_pct"), but TRMNL kit firmware only sends thebattery-voltageheader.parse_statuslandsbattery_pct = Nonefor that shape; the LiPo-curve derivation runs insidemerge_status_parsed, so the populated value lives onmerged, notparsed. Result: the hook always skipped the record. Fixed by readingmergedfor both the gate and the values.
Changed
/historyno longer fills with empty renders from quiet hours. Rows with statusquiet(every bound device in its quiet window) orheld(schedule conditions kept the default page suppressed and no fallback was configured) are hidden from the History page by default. A "Show skipped" chip in the filter row brings them back. The underlying events are still written to the EventLog and visible at/events, so nothing's lost.- Footer: GitHub icon next to the version number; small Sponsor link pointing at github.com/sponsors/dmellok; link to dmello.io with the external-link icon and a
?utm_source=tesserae_<version>&utm_medium=footertag so visitor analytics surface which Tesserae version drove the click.