Skip to content

fix(offline): honest peer state + counts when off-grid#105

Merged
epicexcelsior merged 2 commits into
anonmesh:stagingfrom
epicexcelsior:night3/offline-honesty
Jun 13, 2026
Merged

fix(offline): honest peer state + counts when off-grid#105
epicexcelsior merged 2 commits into
anonmesh:stagingfrom
epicexcelsior:night3/offline-honesty

Conversation

@epicexcelsior

Copy link
Copy Markdown
Collaborator

What

Off-grid screens stop overstating reachability — the core promise of the app.

  • Stale hub peers are shown honestly when off-grid ("last seen {ago}", dimmed) instead of "active".
  • isPeerReachable under-claims reticulum peers when offline, so peer counts and the topology badge read "LAST KNOWN" rather than implying live reach.
  • Honest reachable stat on the mesh map.

Scope

NodesScreen, MeshMap, LxmfContext (isPeerReachable), peer cards.

Test

tsc clean · tier0 config/services clean · fake-money + lint clean. Verified the change only ever under-claims reachability (the safe/honest direction), never fabricates live peers.

peer.online means "announced inside the 10-min fresh window", not
"reachable now" — with no internet route every hub peer kept its green
dot and 'reticulum · active' label. Add isPeerReachable(peer, mode):
reachable = online && (mode online || via is ble/rnode).

- All Peers rows: unreachable hub peers drop to gray dot +
  'reticulum · last seen 3m' instead of claiming active
- header count: 'N online' -> 'off-grid · N reachable' when offline,
  counting only radio-local peers
- BLE/RNode peers stay live off-grid; online mode unchanged
- MeshMap header: '● LIVE' -> muted '◌ LAST KNOWN' when no internet
  route (both inline + fullscreen headers); hub topology is a snapshot
- map nodes/rows: unreachable hub peers dim (online=false, signal 2)
  while BLE/RNode peers stay bright
- beacon registry: 'reachable' stat now uses isPeerReachable so the
  'Reachable-peer count is real' disclaimer is actually true
@epicexcelsior epicexcelsior merged commit 6d3a291 into anonmesh:staging Jun 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant