Skip to content

fix: nodes list UX, chat auto-poll, topnodes channel scoping, and timestamp fixes#424

Merged
SimmerV merged 7 commits intoMeshAddicts:developfrom
SimmerV:bug-fix
Apr 8, 2026
Merged

fix: nodes list UX, chat auto-poll, topnodes channel scoping, and timestamp fixes#424
SimmerV merged 7 commits intoMeshAddicts:developfrom
SimmerV:bug-fix

Conversation

@SimmerV
Copy link
Copy Markdown
Collaborator

@SimmerV SimmerV commented Apr 6, 2026

Summary

Changes

Frontend

  • NodesList.tsx — Frozen snapshot when paused/selected, displayItems via useMemo, new-item counter, "Back to top (N new)" button clears selection, native DOM scrollIntoView fallback for deep link scroll
  • Nodes.tsx — Click-outside handler with refs, deep link scroll initialization, liveUiMode shows "paused" when node selected, scrollToId cleared on deselect
  • useNodesSearchParams.tsurlCh channel param support
  • Chat.tsx — Added pollingInterval: 5000 with skipPollingIfUnfocused when live enabled
  • map/detailsHtml.ts — Format last_seen to local time via toLocaleString() instead of raw ISO string
  • TracerouteDetailsPanel.tsx — Removed raw .toISOString() UTC displays

Backend

  • mqtt.py — Clamp rx_time to current time when node clock is >5 min ahead, log warning with node ID and drift
  • bot/cogs/main_commands.py/topnodes reverse-looks up Discord channel → mesh channel hash via bridge config, filters Chatterbox/Loudest Signal/Gateway MVP/Iron Man queries by channel; defer() moved to first line
  • storage/db/postgres.pyquery_top_nodes accepts optional channel_id filter for chat-based and node-based stats

@SimmerV SimmerV self-assigned this Apr 6, 2026
@SimmerV SimmerV added this to meshinfo Apr 6, 2026
@SimmerV SimmerV added the bug Something isn't working label Apr 6, 2026
@github-project-automation github-project-automation Bot moved this to Backlog in meshinfo Apr 6, 2026
@daviesgeek daviesgeek requested a review from Copilot April 6, 2026 18:08
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves several live-update UX and data-scoping behaviors across the frontend, Discord bot, and ingestion pipeline, addressing multiple reported issues around list stability, chat polling, channel-specific leaderboards, and timestamp formatting.

Changes:

  • Stabilizes the Nodes list during live polling (freeze-on-scroll/selection, deep-link scroll/highlight, click-outside deselect).
  • Enables auto-polling on Chat when live mode is active.
  • Scopes /topnodes results to a mapped mesh channel and fixes several timestamp display/ingestion issues (local formatting + clamp future rx_time).

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
storage/db/postgres.py Adds optional channel_id filter support to leaderboard queries (and scopes Iron Man by last_channel).
mqtt.py Clamps future rx_time timestamps during MQTT ingestion with a warning log.
frontend/src/pages/traceroutes/TracerouteDetailsPanel.tsx Removes raw UTC ISO timestamp rendering in favor of formatted timestamps.
frontend/src/pages/nodes/NodesList.tsx Implements list-freezing, new-item counting, and improved deep-link scrolling via Virtuoso + DOM fallback.
frontend/src/pages/Nodes.tsx Adds click-outside deselect + deep-link-only auto-scroll, and updates live-pill paused logic for selection.
frontend/src/pages/map/detailsHtml.ts Formats “Last Seen” in node map details to local time instead of raw ISO/UTC.
frontend/src/pages/Chat.tsx Adds RTK Query polling options tied to liveEnabled (interval + focus/reconnect behavior).
bot/cogs/main_commands.py Scopes /topnodes to the mesh channel mapped from the Discord channel and adjusts embed title/footer accordingly.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread frontend/src/pages/nodes/NodesList.tsx Outdated
Comment thread frontend/src/pages/nodes/NodesList.tsx Outdated
Comment thread frontend/src/pages/Nodes.tsx
Comment thread storage/db/postgres.py Outdated
Comment thread storage/db/postgres.py Outdated
@SimmerV SimmerV merged commit 550a065 into MeshAddicts:develop Apr 8, 2026
4 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in meshinfo Apr 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

Status: Done

2 participants