@@ -11,6 +11,41 @@ behaviours between releases.
1111
1212## [ Unreleased]
1313
14+ ## [ 1.1.2] — 2026-05-18
15+
16+ Two fixes / one enhancement driven by real-environment use of v1.1.1.
17+
18+ ### Fixed
19+ - ** Bonjour list no longer empties after ~ 1 minute of stable
20+ services.** zeroconf's ` update_service ` callback is change-driven
21+ — a HomePod re-asserting an unchanged AirPlay record fires no
22+ callback, so ` last_seen ` stayed frozen at the first
23+ ` add_service ` time and the 60 s TTL evicted live services even
24+ though zeroconf's own DNS cache still held the records. The
25+ poller now refreshes liveness from zeroconf's cache each
26+ snapshot tick: any entry whose service-instance name still has
27+ a non-expired record in ` Zeroconf.cache.entries_with_name ` gets
28+ its ` last_seen ` bumped. The TTL backstop default also moves
29+ from 60 s → 300 s; with the cache-refresh path keeping stable
30+ services alive, the TTL is now a last-resort sweep, not the
31+ primary eviction mechanism.
32+
33+ ### Added
34+ - ** Wi-Fi event lines (roam, RF stir) surface the affected
35+ SSID.** Roam lines render ` SSID: <name> ` when both sides share
36+ a network (band switch / same-ESS roam) and `SSID: <prev > →
37+ <new >` when they differ; RF stir lines append ` · SSID <name >`
38+ after the disturbance body. The segment is omitted entirely
39+ when both sides are ` None ` or ` "" ` (hidden). The AP-name half
40+ is unchanged — it still comes from ` aps.yaml ` via
41+ ` NetworkInventory ` , so a fully-populated inventory keeps
42+ showing friendly AP names. SSID context is additive and works
43+ even when the inventory is empty.
44+ - JSONL log lines for ` RoamEvent ` and ` RFStirEvent ` carry the
45+ new ` previous_ssid ` / ` new_ssid ` / ` ssid ` keys when populated;
46+ keys are skipped when ` None ` so old log entries stay
47+ diff-stable.
48+
1449## [ 1.1.1] — 2026-05-17
1550
1651Polish pass driven by a real-environment ` /tui-audit ` against the
0 commit comments