feat(wavelog): push station frequency/mode to Wavelog per operator #1

Merged
dxd merged 1 commits from feat/wavelog-cat-frequency into main 2026-10-22 20:53:24 +02:00

Reports the station's current frequency and mode to each operator's personal Wavelog logbook via Wavelog's CAT radio API (POST <baseUrl>/index.php/api/radio).

What

  • New plugin rms.wavelog.cat (capability logging.cat.publish): posts {key, radio, frequency, mode}. Base URL / radio name from plugin settings or env (WAVELOG_BASE_URL, WAVELOG_RADIO_NAME); no secrets/hostnames in the repo.
  • Core hook in the OpenWebRX band-select flow pushes centerFreqHz + startMod for the active operator, best-effort (never breaks the band change).
  • Per-user Wavelog API key on the user record: PUT /v1/me/wavelog-key, returned by GET /v1/me and the OpenWebRX session-issue response.
  • UI: Wavelog API key field in the OpenWebRX panel (visible when generating the session link), i18n de/en.
  • Docs, .env.example, unit test for the mode mapping.

Validation

  • node --test for the new plugin test: 4/4 pass.
  • node --check on all changed JS files OK (Node 20.19.2).

Deploy notes (after merge)

  1. Set WAVELOG_BASE_URL as runtime env/secret on the station.
  2. Each operator enters their Wavelog read-write API key in the OpenWebRX panel.

🤖 Generated with Claude Code

Reports the station's current frequency and mode to each operator's **personal** Wavelog logbook via Wavelog's CAT radio API (`POST <baseUrl>/index.php/api/radio`). ## What - **New plugin `rms.wavelog.cat`** (capability `logging.cat.publish`): posts `{key, radio, frequency, mode}`. Base URL / radio name from plugin settings or env (`WAVELOG_BASE_URL`, `WAVELOG_RADIO_NAME`); no secrets/hostnames in the repo. - **Core hook** in the OpenWebRX band-select flow pushes `centerFreqHz` + `startMod` for the **active operator**, best-effort (never breaks the band change). - **Per-user Wavelog API key** on the user record: `PUT /v1/me/wavelog-key`, returned by `GET /v1/me` and the OpenWebRX session-issue response. - **UI**: Wavelog API key field in the OpenWebRX panel (visible when generating the session link), i18n de/en. - Docs, `.env.example`, unit test for the mode mapping. ## Validation - `node --test` for the new plugin test: 4/4 pass. - `node --check` on all changed JS files OK (Node 20.19.2). ## Deploy notes (after merge) 1. Set `WAVELOG_BASE_URL` as runtime env/secret on the station. 2. Each operator enters their Wavelog read-write API key in the OpenWebRX panel. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
oe6dxd-automation added 1 commit 2026-10-22 20:49:56 +02:00
Add a CAT integration so the station's current frequency and mode are
reported to each operator's personal Wavelog logbook via Wavelog's radio
API (POST <baseUrl>/index.php/api/radio).

- New plugin rms.wavelog.cat (capability logging.cat.publish): posts
  {key, radio, frequency, mode}. Base URL / radio name come from plugin
  settings or env (WAVELOG_BASE_URL, WAVELOG_RADIO_NAME); no secrets in repo.
- Core hook in the OpenWebRX band-select flow pushes centerFreqHz + startMod
  for the active operator, best-effort (never breaks the band change).
- Per-user Wavelog API key stored on the user record; PUT /v1/me/wavelog-key
  to set it, returned by GET /v1/me and the OpenWebRX session issue response.
- UI: Wavelog API key field in the OpenWebRX panel (visible when generating
  the session link), with i18n (de/en).
- Docs, .env.example entries, and a unit test for the mode mapping.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
dxd approved these changes 2026-10-22 20:52:56 +02:00
dxd merged commit 4ced7418cd into main 2026-10-22 20:53:24 +02:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ARCG/ARCG-Remote-Station-Software#1