Files
meshcore-analyzer/docs/user-guide/nodes.md
T
efiten 317b59ab10 feat: area-based visual node filter — attribute packets by transmitter GPS (#804) (#839)
## Summary

- Adds configurable GPS polygon areas to `config.json`; nodes are
attributed to an area if their last-known position falls inside the
polygon
- New `Area: …` dropdown filter (matching the existing region filter
style) appears on all analytics, nodes, packets, map, and live screens
when areas are configured
- Backend resolves area membership with a 30s TTL cache; area filter
bypasses the 500-node cap on `/api/bulk-health` so all area nodes are
always returned
- Includes a polygon builder tool (`/area-map.html`) for drawing and
exporting area boundaries

## Changes

**Backend**
- `AreaEntry` type + `Areas` config field
- `GetNodePubkeysInArea` DB query + `resolveAreaNodes` (30s TTL,
`areaNodeMu` RWMutex)
- `PacketQuery.Area` + `filterPackets` polygon check
- `?area=` param propagated through all analytics, topology,
clock-health, and bulk-health routes
- `/api/config/areas` endpoint

**Frontend**
- `area-filter.js`: single-select dropdown, persists to localStorage,
cleans up stale keys on load
- Wired into analytics, nodes, packets, channels, map, and live pages
- Live map clears node markers on area change

**Docs & tools**
- `docs/user-guide/area-filter.md` — configuration and usage guide
- `docs/api-spec.md` — updated with new endpoint and `?area=` param
table
- `tools/area-map.html` — polygon builder for defining area boundaries
- Demo areas added to `config.example.json`

## Test plan

- [x] No areas configured → filter dropdown does not appear on any page
- [x] Areas configured → dropdown appears, "All" selected by default
- [x] Selecting an area filters nodes/packets/topology/map correctly
- [x] Selecting "All" restores unfiltered view
- [x] Selection persists across page reloads (localStorage)
- [x] Stale localStorage key (area removed from config) is cleared on
load
- [x] `/api/bulk-health?area=X` returns all nodes in area (no 500-node
cap)
- [x] `/api/config/areas` returns correct list

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Kpa-clawbot <kpaclawbot@outlook.com>
Co-authored-by: openclaw-bot <bot@openclaw.local>
2026-05-21 14:00:15 -07:00

2.3 KiB

Nodes

The Nodes page lists every node your mesh has seen — repeaters, companions, rooms, and sensors.

[Screenshot: nodes list with status indicators]

What you see

Each row shows:

  • Name — the node's advertised name (or public key if unnamed)
  • Role — Repeater, Companion, Room, or Sensor
  • Status — color-coded health indicator
  • Last seen — when the node was last heard
  • Advert count — how many advertisements this node has sent

Status indicators

Indicator Meaning
🟢 Active Heard recently (within threshold for its role)
🟡 Degraded Not heard for a while but not yet silent
🔴 Silent Not heard for an extended period

Thresholds differ by role. Infrastructure nodes (repeaters, rooms) have longer grace periods than companions. See Configuration for healthThresholds.

Filtering

Role tabs

Click All, Repeaters, Rooms, Companions, or Sensors to filter by role.

Type in the search box to filter by name or public key. The filter applies instantly.

Status filter

Filter to show only active, degraded, or silent nodes.

Area filter

If areas are configured, an area pill bar appears above the list. Selecting an area shows only nodes whose GPS position falls within that area.

Last heard filter

Filter nodes by how recently they were heard (e.g., last hour, last 24h).

Sorting

Click any column header to sort. Click again to reverse the order. Your sort preference is saved across sessions.

Node detail

Click a node row to open the detail pane on the right. It shows:

  • Full public key
  • Role and status explanation
  • Location (if known)
  • Recent packets involving this node
  • Neighbor nodes
  • Signal statistics

Click the node name in the detail pane to open the full node page with complete history, analytics, and health data.

Favorites

Nodes you've claimed on the Home page appear as favorites. You can also star nodes directly from the Nodes page.

Tips

  • Use the search box for quick lookups — it matches partial names and keys
  • Sort by "Last seen" descending to find the most active nodes
  • The status explanation tells you exactly why a node is marked degraded or silent