Add GET /api/channels, move endpoints under /api prefix, serve Scalar docs at / (issue #1)

- New GET /api/channels: device Meshtastic channels from FromRadio.channel
  frames during initial sync; psk/keys redacted; map reset on reconnect.
- app.setGlobalPrefix('api'): /status -> /api/status, /send -> /api/send.
- Scalar API docs at / (OpenAPI JSON at /docs-json) via @nestjs/swagger +
  @scalar/nestjs-api-reference; light swagger decorators on endpoints/body.
- MESH_RECONNECT_MS env knob (default 5000 ms).
- v0.1.0: CHANGELOG entry, README/AGENTS/ORCHESTRATOR docs sync.
This commit is contained in:
2026-09-23 19:03:00 +00:00
parent 5a33e4590a
commit a0e1c37291
11 changed files with 489 additions and 19 deletions
+8
View File
@@ -0,0 +1,8 @@
# Changelog
## v0.1.0 — 2026-09-23 18:54
- New `GET /api/channels` endpoint listing the device's Meshtastic channels as `{ index, name, uplinkEnabled, downlinkEnabled }`; psk/keys are redacted and never exposed over HTTP. Channels are collected from `FromRadio.channel` frames streamed during initial sync (before `config_complete_id`) and reset on every bridge reconnect so stale data is dropped after a disconnect.
- All endpoints moved under the `/api` namespace via `app.setGlobalPrefix("api")`: `GET /status` → `GET /api/status`, `POST /send` → `POST /api/send`.
- Scalar API docs served at `/` (OpenAPI JSON at `/docs-json`) using `@nestjs/swagger` + `@scalar/nestjs-api-reference`; added light swagger decorators (`ApiProperty` on the send body, `ApiOperation` summaries) so the docs are useful.
- Reconnect interval is now configurable via `MESH_RECONNECT_MS` (default 5000 ms).