Track gateway source, persist My Node banner, and update roles#368
Merged
SimmerV merged 7 commits intoMeshAddicts:developfrom Mar 21, 2026
Merged
Track gateway source, persist My Node banner, and update roles#368SimmerV merged 7 commits intoMeshAddicts:developfrom
SimmerV merged 7 commits intoMeshAddicts:developfrom
Conversation
Closed
Closed
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds end-to-end “gateway/source” tracking for nodes (persisted server-side and displayed in the UI), updates role naming to match current Meshtastic protobufs, and improves map UI behavior (details panel height + persistent “My Node” indicator).
Changes:
- Persist and surface
gateway(MQTTsender) on node updates, including an auto-migration for existing Postgres DBs. - Update node roles (ATAK → TAK, add Router Late / Client Base) and adjust UI role display to show full titles.
- Improve map UX: cap details panel height and replace the transient “My Node set” toast with a persistent dismissible banner.
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| storage/db/postgres.py | Adds gateway migration and persists gateway in node upserts and read models |
| postgres/sql/schema.sql | Adds gateway column to the canonical schema |
| mqtt.py | Captures MQTT sender into node.gateway across message handlers |
| models/node.py | Adds gateway to default node shape (partial) |
| frontend/src/types/index.ts | Adds gateway to node types; updates roles/titles |
| frontend/src/pages/nodes/nodesUtils.ts | Updates role labels to TAK + new roles |
| frontend/src/pages/nodes/NodeDetailsPanel.tsx | Displays Gateway field and enables clicking to select gateway node |
| frontend/src/pages/map/types.ts | Adds gateway to map node types |
| frontend/src/pages/map/detailsHtml.ts | Displays Gateway in the map details HTML (with optional click-to-select) |
| frontend/src/pages/map/MapDetailsPanel.tsx | Adjusts max height to avoid UI overlap |
| frontend/src/pages/graph/graphUtils.ts | Updates role colors/labels for new roles and TAK rename |
| frontend/src/pages/Nodes.tsx | Wires onSelectNode into NodeDetailsPanel usage |
| frontend/src/pages/Node.tsx | Updates role label mapping to TAK + new roles |
| frontend/src/pages/Map.tsx | Plumbs gateway into map node-like objects; adds persistent “My Node” banner |
| frontend/src/components/Role.tsx | Switches role display from abbreviation to full title |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…ove accessibility
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
senderfield (Add node gateway source #96)gatewayon the node model (in-memory and Postgres) — updated on every inbound message (neighborinfo, nodeinfo, position, telemetry)ALTER TABLE nodes ADD COLUMN IF NOT EXISTS gatewaymigration toensure_schema()so existing databases auto-migrate on startup