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
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.
What
New
GET /api/device(+ MCP tooldevice_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 optionalsnr,hopsAway,viaMqttfields.Details
metadata(DeviceMetadata: firmwareVersion, hwModel, hasWifi/BLE/ethernet, role, positionFlags, hasPKC...),config(meshtastic.Config sections: device/position/power/network/display/lora/bluetooth/security/sessionkey/deviceUi) andmoduleConfig(mqtt/serial/telemetry/paxcounter/...) during sync; in-memory, reset on reconnectVerification
npm run build✓npm test— 33/33 passed (was 30, +3: metadata→firmwareVersion; config sections captured + key material absent; node extras)