[Feature] Mesh: push live peer events to contacts UI for instant updates (drop 5s poll) #48
Closed
opened 2026-06-17 09:26:25 +00:00 by lfg2025
·
1 comment
No Branch/Tag Specified
main
ux-at-last
fix/mesh-send-content-inline-federation-fallback
cashu-error-messages
gsd/phase-13-aiui-functional-conversational-node-control-and-content-surf
feat/podsteadr-app-package
rotate-release-root
chore/aiui-monorepo-migration
wip/phase-13-p13-02
wip/phase-13-p13-01
companion/0.5.27-clipboard-qr-restart
fix/bitcoin-conf-conflict-crash-loop
demo-build
archy-hwconfig
openwrt-enhancements
a3-10-endpoint-fallback
public-prelaunch
release/1.7.115-prep
fix/web-listener-ipv6
fips-companion-5g-hardening
fix/connection-accept-deadlock
fix/demo-images-path-filter
fix/companion-autologin-replay-intro
networking-profits-dashboard
identities-mobile-polish
companion-qr-scan-fix
companion-qr-pairing
intro-reliability-video-perf
login-bg-continuity
audio-bottom-bar
demo-intro-every-visit
intro-entrance-fixes
cloud-feedback-demo-content
cloud-tabs-search
ark-wallet-ui-demo
demo-nginx-app-assets
demo-ui-fixes
ark-wallet-barkd
v1.7.129-alpha
v1.7.128-alpha
v1.7.127-alpha
v1.7.126-alpha
v1.7.125-alpha
v1.7.124-alpha
v1.7.123-alpha
v1.7.122-alpha
v1.7.121-alpha
v1.7.120-alpha
v1.7.119-alpha
v1.7.118-alpha
v1.7.117-alpha
v1.7.116-alpha
v1.7.115-alpha
v1.7.114-alpha
v1.7.113-alpha
v1.7.112-alpha
companion-v0.5.10
companion-v0.5.9
companion-v0.5.6
v1.7.111-alpha
v1.7.110-alpha
v1.7.109-alpha
v1.7.108-alpha
v1.7.106-alpha
v1.7.105-alpha
v1.7.104-alpha
v1.7.103-alpha
v1.7.102-alpha
v1.7.101-alpha
v1.7.100-alpha
v1.7.99-alpha
v1.7.98-alpha
v1.7.97-alpha
v1.7.96-alpha
v1.7.95-alpha
v1.7.94-alpha
v1.7.93-alpha
v1.7.92-alpha
v1.7.91-alpha
v1.7.90-alpha
v1.7.89-alpha
v1.7.88-alpha
v1.7.87-alpha
v1.7.86-alpha
v1.7.85-alpha
v1.7.84-alpha
v1.7.83-alpha
v1.7.82-alpha
v1.7.81-alpha
v1.7.80-alpha
v1.7.79-alpha
v1.7.78-alpha
v1.7.77-alpha
v1.7.76-alpha
v1.7.75-alpha
v1.7.74-alpha
v1.7.73-alpha
v1.7.72-alpha
v1.7.71-alpha
v1.7.70-alpha
v1.7.69-alpha
v1.7.68-alpha
v1.7.67-alpha
v1.7.66-alpha
v1.7.65-alpha
v1.7.64-alpha
v1.7.63-alpha
v1.7.62-alpha
v1.7.61-alpha
v1.7.60-alpha
v1.7.59-alpha
v1.7.58-alpha
v1.7.57-alpha
v1.7.56-alpha
v1.7.55-alpha
v1.7.54-alpha
v1.7.53-alpha
v1.7.52-alpha
v1.7.51-alpha
v1.7.50-alpha
v1.7.49-alpha
v1.7.48-alpha
v1.7.47-alpha
v1.7.46-alpha
v1.7.45-alpha
v1.7.44-alpha
v1.7.43-alpha
v1.7.42-alpha
v1.7.41-alpha
v1.7.40-alpha
v1.7.39-alpha
v1.7.38-alpha
v1.7.37-alpha
v1.7.36-alpha
v1.7.35-alpha
v1.7.34-alpha
v1.7.33-alpha
v1.7.32-alpha
v1.7.31-alpha
v1.7.30-alpha
v1.7.29-alpha
v1.7.28-alpha
v1.7.27-alpha
v1.7.26-alpha
v1.7.25-alpha
v1.7.24-alpha
v1.7.23-alpha
v1.7.22-alpha
v1.7.21-alpha
v1.7.20-alpha
v1.7.19-alpha
v1.7.18-alpha
v1.7.17-alpha
v1.7.16-alpha
v1.7.15-alpha
v1.7.14-alpha
v1.7.13-alpha
v1.7.12-alpha
v1.7.11-alpha
v1.7.10-alpha
v1.7.9-alpha
v1.7.8-alpha
v1.7.7-alpha
v1.7.6-alpha
v1.7.5-alpha
v1.7.4-alpha
v1.7.3-alpha
v1.7.2-alpha
v1.7.1-alpha
v1.7.0-alpha
v1.3.4
v1.3.3
v1.3.2
v1.2.0-alpha.8
v1.2.0-alpha.7
v1.2.0-alpha.6
v1.2.0-alpha.5
v1.2.0-alpha.4
v1.2.0-alpha.3
v1.2.0-alpha.2
v1.2.0-alpha.1
Labels
No items
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: lfg2025/archy#48
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
The mesh contacts/peer list in the UI updates on a 5-second poll (
mesh.fetchPeers), even though the backend already emits real-time peer events. Wire the UI to those events so newly-discovered contacts appear instantly on push instead of waiting for the next poll tick.Current behavior
MeshEvent::PeerDiscovered(new) /MeshEvent::PeerUpdated(existing) the moment an advert frame is decoded —core/archipelago/src/mesh/listener/decode.rs:454-459.refresh_contacts()also merges the firmware contact table on connect, onshould_actionframes, and every 60s —core/archipelago/src/mesh/listener/session.rs:428,466-468,494.neode-ui/src/views/Mesh.vue:328-334ignores the event stream for the peer list and just pollsmesh.peersevery 5s via the store'sfetchPeers()(neode-ui/src/stores/mesh.ts:168).Net effect: data is fresh on the node within seconds, but the UI lags up to 5s and generates constant poll traffic.
Proposed change
Mesh.vueto the existing mesh event stream and applyPeerDiscovered/PeerUpdated(andIdentityReceived) topeers.valueincrementally.MeshEvent; if not, add one (events are already broadcast onstate.event_tx).Acceptance
Found while debugging a meshcore "stuck connecting" report (root cause there was unrelated: no radio attached / cable). Related: #42.
Implemented: mesh peers now appear on push instead of the 5s poll. Backend (
server.rs) subscribes to meshevent_txand, onPeerDiscovered/PeerUpdated(debounced ~2Hz), nudges the data-model revision so/ws/dbclients refresh. Frontend (Mesh.vue) subscribes to the WS and refetches peers on push; the 5s poll stays only as a backstop for offline detection (no PeerLost event). Bothcargo checkandvue-tscgreen. Verify on a node with a radio (e.g. .116).