Added
state diffnow filters rate/counter/timestamp noise by default so a no-op diff returns zero changes and a real mutation surfaces cleanly.state diff --rawto disable the default filter and see every field.state diff --only <prefix>to scope the diff to a subtree (e.g.wifi).state diff --ignore <path>(repeatable) to add additional dotted paths to skip.
Changed
state diffoutput now includesignored_leaves,ignored_prefixes,only_prefix, andrawfor self-describing results.
Fixed
_path_matchesnow handles list bracket notation (devices[0]) so--only devicesand--ignore devicescorrectly cover list elements.- List-length changes no longer collapse to a single summary record; per-element added/removed diffs always surface.
- dict-add / dict-remove events for noise leaves (e.g.
signal_dbmappearing on a new device) are no longer silently dropped — they surface as structural changes.
Verified: 54 unit tests passing, live state diff on Archer BE3500 returns 0 changes for no-op snapshots (was 17 false positives before this release).