# Changelog ## [0.1.8] - 2026-06-01 ### Changed - **`ria-agent register --hub` now defaults to `https://riahub.ai`** — most users can run `ria-agent register --api-key ria_reg_...` without the `--hub` flag. Dev and self-hosted users keep the existing override (`--hub http://my-hub:3005`). The default lives in `ria_toolkit_oss.agent.cli.DEFAULT_HUB_URL`. ### Fixed - **`websockets` is now a runtime dependency** — previously declared only in the optional `agent` poetry group, so a vanilla `pip install ria-toolkit-oss` left `ria-agent stream` failing with `ModuleNotFoundError: No module named 'websockets'`. Added to `[project].dependencies` with the same constraint (`>=12.0,<14.0`). --- ## [0.1.7] - 2026-05-26 ### Added - **Human-readable agent names** — `ria-agent register` now generates a default `adjective-colour-animal` name (e.g. `swift-teal-falcon`) via the new `namegen` module when `--name` is omitted, instead of registering with an empty string. - **Structured registration error messages** — `ria-agent register` translates hub responses into actionable English for the known failure reasons (`invalid_key`, `expired`, `revoked`, `already_consumed`) and rate-limit (`HTTP 429`) responses, instead of surfacing raw `HTTP 4xx` text. ### Changed - **`ria-agent register` `--api-key` help** — now describes the personal `ria_reg_*` registration key flow (minted from **Settings → RIA Agents** on the hub, shown once at mint time). The legacy shared `[wac] API_KEY` is still accepted by the hub for back-compat, but the CLI documents the per-user flow as preferred. - **`ria-agent register` success output** — now prints both the hub-assigned agent ID and the chosen name: `Registered agent: ()`. ### Fixed - **`ria-agent register` blocked by Cloudflare on hubs behind it** — set an explicit `User-Agent` (`ria-agent/ (+https://riahub.ai/qoherent/ria-toolkit-oss)`) so the request isn't rejected as `Python-urllib/` (Cloudflare Browser Integrity Check returns HTTP 403, edge error code 1010). Version is read from package metadata so it tracks releases automatically. - **`ria-agent register` could hang indefinitely** — added a 15-second timeout to the hub request; previously `urllib`'s default of no timeout meant a stuck hub would block the CLI forever. --- ## [0.1.0] - 2026-02-20 ### Added - **Dual-Threshold Detection:** Logic to capture the start and end of signals, not just the peak. - **Signal Smoothing & Noise Filters:** Prevents detections from breaking into fragments and ignores short interference spikes. - **Auto-Frequency Calculation:** Automatically adjusts bounding boxes to fit signal frequency ranges tightly. ### Changed - **Signal Power Detection:** Switched from raw signal strength to power for improved accuracy. - **CLI Workflow:** `Clear` and `Remove` commands now modify files directly (in-place) to avoid redundant copies. - **Metadata Logic:** Updated labels to show detection percentages and overhauled internal metadata cleaning. - **Viewer UI:** Moved legend outside the plot, added a black background, and adjusted transparency for better spectrogram visibility. ### Fixed - Prevented redundant `_annotated` suffixes in file naming patterns. - Simplified internal math to increase processing speed and precision. All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and [Semantic Versioning](https://semver.org/spec/v2.0.0.html). --- ## [0.1.1] - 2026-03-20 ### Added - **Campaign orchestration** — new `orchestration` module that manages the full lifecycle of an RF data collection campaign: SDR capture, automatic labeling, QA checks, and dataset packaging. - **HTTP inference server** — `ria-server` command starts a REST API server for deploying campaigns and controlling live inference from external systems such as the RIA Hub platform. - **Campaign CLI** — `ria campaign` commands for starting, monitoring, and managing campaigns from the terminal. ### Changed - **Visualization layout** — recording and dataset views have been reformatted with improved sizing, repositioned titles, and updated Qoherent branding. ---