Skip to content

Expand settings UI coverage and add TrunkRecorder channel sync - #3

Draft
Dadud wants to merge 13 commits into
mainfrom
cursor/settings-tr-sync-bfe4
Draft

Expand settings UI coverage and add TrunkRecorder channel sync#3
Dadud wants to merge 13 commits into
mainfrom
cursor/settings-tr-sync-bfe4

Conversation

@Dadud

@Dadud Dadud commented May 23, 2026

Copy link
Copy Markdown
Owner

Summary

Addresses settings UI gaps and TrunkRecorder integration — including remote config import without shared storage.

Settings UI

  • Full runtime settings coverage with source badges (env / sqlite / default)
  • New tabs: Dispatch, Radio / TR, Geocoding
  • Bot applies SQLite settings to process.env on startup

TrunkRecorder import

Remote upload (new — no shared PC/storage)

Settings → Radio / TRRemote upload:

  1. Paste or choose config.json
  2. Attach CSV files referenced by talkgroupsFile / channelFile
  3. Click Import Uploaded Config

API options:

  • POST /api/radio/import-trunk-recorder with JSON { config, files: { "ChanList.csv": "..." } }
  • Same endpoint accepts multipart/form-data (config field + CSV file parts)

Local path (unchanged)

Import from filesystem path when TR and Scanner Map share a mount.

Call ingestion (unchanged, already remote)

TR upload plugin → POST http://<scanner-map>:3306/api/call-upload

Testing

  • 38 tests passing
  • Includes bundle import test without filesystem access
Open in Web Open in Cursor 

Dadud and others added 13 commits May 17, 2026 17:23
…(resolve conflicts favoring architecture modules)

Co-authored-by: Kyle B <Dadud30@gmail.com>
…ttings UI

Merge upstream architecture/runtime-settings-integration and port fork
hardening overlays: API key fingerprint validation, geocode proxy, rate
limits, unified polling, transcription queue facade, and WaveSurfer cleanup.

Add Docker-first deployment with core/whisper/qwen/tone images, Compose
profiles, GHCR publish workflow, and Unraid CA templates. Introduce
pluggable local transcription backends (faster-whisper, Qwen3-ASR) with
profile-based Python requirements.

Expand /settings and /setup with terminal green console theme, extract
shared settings CSS, and add npm run setup/doctor for native dev installs.

Co-authored-by: Kyle B <Dadud30@gmail.com>
- Surface missing .env settings in /settings with source badges (env/sqlite/default)
- Add two-tone dispatch, ports, session, Python, and admin password fields
- Apply SQLite runtime settings to process.env on bot startup
- Import TrunkRecorder config.json: systems, control channels, conventional
  channels, and talkgroups (analog/digital mode from CSV)
- Geocoding tab for per-talkgroup location hints from DB
- Auto-learn talkgroups from upload metadata; optional startup TR sync

Co-authored-by: Kyle B <Dadud30@gmail.com>
Allow importing TR config without shared filesystem: paste or upload
config.json plus talkgroup/channel CSVs via Settings or POST
/api/radio/import-trunk-recorder with JSON or multipart form data.

Co-authored-by: Kyle B <Dadud30@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants