Device info endpoint + richer node summaries (GET /api/device, MCP device_info) #13

Merged
kamilkrzywda merged 1 commits from feat/device-info into main 2026-09-24 22:46:40 +02:00
Owner

What

New GET /api/device (+ MCP tool device_info) — our own device's metadata and full local/module config captured during the initial sync. Node summaries (/api/nodes, /api/nodes/:id, list_nodes, get_node) gain optional snr, hopsAway, viaMqtt fields.

Details

  • Captures FromRadio metadata (DeviceMetadata: firmwareVersion, hwModel, hasWifi/BLE/ethernet, role, positionFlags, hasPKC...), config (meshtastic.Config sections: device/position/power/network/display/lora/bluetooth/security/sessionkey/deviceUi) and moduleConfig (mqtt/serial/telemetry/paxcounter/...) during sync; in-memory, reset on reconnect
  • Secret redaction: security publicKey/privateKey/adminKey + network wifiPsk → "REDACTED" (verified by test asserting no key material survives JSON.stringify)
  • NodeInfo extras: snr/hopsAway/viaMqtt captured per node; default-valued scalars treated as not-reported
  • Note: NodeInfo has no firmwareVersion in @meshtastic/protobufs 2.8 — device-level version comes from DeviceMetadata via /api/device

Verification

  • npm run build ✓
  • npm test — 33/33 passed (was 30, +3: metadata→firmwareVersion; config sections captured + key material absent; node extras)
  • v0.7.0, CHANGELOG entry added
## What New `GET /api/device` (+ MCP tool `device_info`) — our own device's metadata and full local/module config captured during the initial sync. Node summaries (`/api/nodes`, `/api/nodes/:id`, `list_nodes`, `get_node`) gain optional `snr`, `hopsAway`, `viaMqtt` fields. ## Details - Captures FromRadio `metadata` (DeviceMetadata: firmwareVersion, hwModel, hasWifi/BLE/ethernet, role, positionFlags, hasPKC...), `config` (meshtastic.Config sections: device/position/power/network/display/lora/bluetooth/security/sessionkey/deviceUi) and `moduleConfig` (mqtt/serial/telemetry/paxcounter/...) during sync; in-memory, reset on reconnect - **Secret redaction**: security publicKey/privateKey/adminKey + network wifiPsk → "REDACTED" (verified by test asserting no key material survives JSON.stringify) - NodeInfo extras: snr/hopsAway/viaMqtt captured per node; default-valued scalars treated as not-reported - Note: NodeInfo has no firmwareVersion in @meshtastic/protobufs 2.8 — device-level version comes from DeviceMetadata via /api/device ## Verification - `npm run build` ✓ - `npm test` — 33/33 passed (was 30, +3: metadata→firmwareVersion; config sections captured + key material absent; node extras) - v0.7.0, CHANGELOG entry added
kamilkrzywda added 1 commit 2026-09-24 22:45:09 +02:00
kamilkrzywda merged commit 4beaa377c4 into main 2026-09-24 22:46:40 +02:00
kamilkrzywda deleted branch feat/device-info 2026-09-24 22:46:40 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OpenCode/MeshBot#13