Skip to content

v1.3.0 — AI session journals, YouTube source, Callsigns Detected improvements

Choose a tag to compare

@Xpiatio Xpiatio released this 20 May 00:42
· 127 commits to main since this release

What's new in v1.3.0

AI session journals

  • Tools → Generate Session Journal (Ctrl+J / 📓 toolbar) — sends the current transcript and detected callsigns to Google Gemini 3.5 Flash; saves a titled AI-generated summary to journals/YYYYMMDD_HHMMSS.json. Requires a free Gemini API key in Settings → Configuration → Gemini API Key.
  • Tools → View Session Journals (Ctrl+Shift+J / 📓 toolbar) — non-modal split-pane browser for reviewing past journal entries while listening. Includes per-entry delete with confirmation.

Callsigns Detected improvements

  • Persist across Listen cycles — the Callsigns Detected grid no longer resets when Listen is toggled off/on; callsigns accumulate for the whole operating session. Only the Clear button or switching to FRS mode resets the list.
  • Remove individual entries — right-click any row or select it and click Remove selected to drop a single callsign from the session without touching Contacts.

YouTube Stream audio source

  • Select YouTube Stream (no speakers) in the Input Device dropdown and paste any YouTube URL to stream audio directly into the STT/VAD pipeline — useful for testing without a radio. Requires yt-dlp ≥ 2026.03.17 and ffmpeg on PATH.

Renamed: Attendance → Callsigns Detected

  • The panel, menu toggles, config key label, and all UI copy now use the clearer name Callsigns Detected.

Internal code quality

  • Extracted TXController from MainWindow (SRP)
  • Introduced AppConfig wrapper to centralize config access (DRY)
  • Replaced PTT if/elif dispatch with a registry dict
  • Added normalize_callsign utility to consolidate callsign normalization
  • Introduced WorkerBase shared base class for background workers
  • Added pyserial and reportlab to NOTICES.md

Upgrade notes

  • No database or config migration needed — config.json is backward-compatible.
  • To use session journals, add a gemini_api_key entry to config.json or set it via Settings → Configuration. Leave it empty to keep the app fully offline.
  • For YouTube Stream testing: pip install --upgrade yt-dlp and ensure ffmpeg is on PATH.