fix(clients): filter the row the table shows, not the rows behind it (v0.23.14-beta)

Closes #100.

The clients list deduplicates by MAC: a client seen by several devices collapses
to one row, and DISTINCT ON resolves the collision in favour of the wireless
sighting. The filters, however, ran against the raw rows before that happened,
so a filter and the column beside it could disagree.

The wired/wireless filter showed it plainly. A wireless client's MAC is also
learned by the switch its AP uplinks to, so it holds both a wireless row and a
wired one — on the test fleet every wireless client does. Filtering by "wired"
therefore returned all 176 clients rather than 163, including the 13 the table
was labelling wireless. Filtering by signal had the same flaw in a subtler form:
a client seen by two APs at different strengths could appear in a band its
displayed row was not in.

Filters now sit on the correct side of deduplication according to what they
mean. Device and active-state choose which sightings to consider, so they still
run before. Type, VLAN and signal describe what the table displays, so they run
after. The count query deduplicates identically, so totals and rows agree.

Verified against the live fleet by running the same predicates as SQL and
through the API in the same moment: 176 total, 162 wired, 14 wireless, 29 on
VLAN 1, 13 at -67 dBm or stronger — matching on every one, with the wired and
wireless halves now summing to the total.

Also closes four issues that were implemented in v0.23.9 and v0.23.10 but stayed
open: their commit messages listed several numbers behind a single "Closes"
keyword, which GitHub applies only to the first.

  #97  — location selector on the Channel Usage panel
  #102 — snoozeable "Things to handle" items
  #107 — rack and location filters on the device table
  #108 — topic, device and severity filters on the events table

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2GT-Rich
2026-08-23 13:58:58 -07:00
co-authored by Claude Opus 5
parent ec873ab8bd
commit 7a548abfd8
5 changed files with 43 additions and 13 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "mikrotik-manager-frontend",
"version": "0.23.13-beta",
"version": "0.23.14-beta",
"private": true,
"type": "module",
"scripts": {