Skip to content

Commit 835cfc1

Browse files
authored
Release 0.1.2 (#20)
* Enforce `main <- dev` governance, migrate to GPL-2.0-only, add CLI/UI license gates, and split stable/nightly PyPI release lanes (#16) * adds docs site and ci docs build * Stop tracking ancient-docs (reference-only, in .gitignore) * Ignore site/ (MkDocs build output), stop tracking * resolves url , site/ ignore and uv install security * adds dashboard * removes stray md * adds memory system * adds memory system (#6) * adds memory system * fix failing tests in ci * fix failing tests in ci * adds trusted publisher * adds multiband and relay support * adds multiband and relay support (#7) * adds multiband and relay support * Update radioshaq/radioshaq/listener/relay_delivery.py * update tests * adds dbstate __getattr__ * docs ci update pinned mkdocs version * adds radio frequency * adds radio outbound reply default * adds ci test on pr * solves frequency and send tx race conditions * fixes pending entries & mode clobbering (fm) * fixes configuration hardcoded path and fixed reject path misleading error , cleans up pending list api semantics * resolves code review issues * Add frequency-aware radio replies (#8) * adds radio frequency * adds radio outbound reply default * adds ci test on pr * solves frequency and send tx race conditions * fixes pending entries & mode clobbering (fm) * fixes configuration hardcoded path and fixed reject path misleading error , cleans up pending list api semantics * resolves code review issues * adds ci fixes * Update radioshaq/radioshaq/api/routes/messages.py * solves code review suggestions * fixes failing tests * Fixes PyPI UI bundling flow (#12) * adds radio frequency * adds radio outbound reply default * adds ci test on pr * solves frequency and send tx race conditions * fixes pending entries & mode clobbering (fm) * fixes configuration hardcoded path and fixed reject path misleading error , cleans up pending list api semantics * resolves code review issues * adds ci fixes * Update radioshaq/radioshaq/api/routes/messages.py * solves code review suggestions * fixes failing tests * fixes build patch * fixes minor issues * fixes build env bug (#13) * adds radio frequency * adds radio outbound reply default * adds ci test on pr * solves frequency and send tx race conditions * fixes pending entries & mode clobbering (fm) * fixes configuration hardcoded path and fixed reject path misleading error , cleans up pending list api semantics * resolves code review issues * adds ci fixes * Update radioshaq/radioshaq/api/routes/messages.py * solves code review suggestions * fixes failing tests * fixes build patch * fixes minor issues * fixes ci issue * Update radioshaq/tests/integration/test_live_e2e_workflows.py * fixes ci issue (#14) * adds radio frequency * adds radio outbound reply default * adds ci test on pr * solves frequency and send tx race conditions * fixes pending entries & mode clobbering (fm) * fixes configuration hardcoded path and fixed reject path misleading error , cleans up pending list api semantics * resolves code review issues * adds ci fixes * Update radioshaq/radioshaq/api/routes/messages.py * solves code review suggestions * fixes failing tests * fixes build patch * fixes minor issues * fixes ci issue * Update radioshaq/tests/integration/test_live_e2e_workflows.py * Fix settings TS build and include web UI in wheel * adds release , versioning and workflows * adds ci , build , enfore branch protection and more * adds contributing * chore: bump version to 0.1.1 * fix(ci): allow non-interactive GPL acceptance in CLI setup tests * fix(ci): harden publish/governance workflows and refresh action versions * Fix CI branch guards, release push race handling, and license/version checks * adds contributing * adds validation fixes * fixes license acceptance bugs * adds radio frequency * adds radio outbound reply default * adds ci test on pr * solves frequency and send tx race conditions * fixes pending entries & mode clobbering (fm) * fixes configuration hardcoded path and fixed reject path misleading error , cleans up pending list api semantics * resolves code review issues * adds ci fixes * Update radioshaq/radioshaq/api/routes/messages.py * solves code review suggestions * fixes failing tests * fixes build patch * fixes minor issues * fixes ci issue * Update radioshaq/tests/integration/test_live_e2e_workflows.py * Fix settings TS build and include web UI in wheel * adds release , versioning and workflows * adds ci , build , enfore branch protection and more * adds contributing * chore: bump version to 0.1.1 * fix(ci): allow non-interactive GPL acceptance in CLI setup tests * fix(ci): harden publish/governance workflows and refresh action versions * Fix CI branch guards, release push race handling, and license/version checks * adds contributing * adds validation fixes * adds contributing , license gate , ci build and release , pre push testing * adds docs site and ci docs build * Stop tracking ancient-docs (reference-only, in .gitignore) * Ignore site/ (MkDocs build output), stop tracking * resolves url , site/ ignore and uv install security * adds dashboard * removes stray md * adds memory system * adds memory system (#6) * adds memory system * fix failing tests in ci * fix failing tests in ci * adds trusted publisher * adds multiband and relay support * adds multiband and relay support (#7) * adds multiband and relay support * Update radioshaq/radioshaq/listener/relay_delivery.py * update tests * adds dbstate __getattr__ * docs ci update pinned mkdocs version * adds radio frequency * adds radio outbound reply default * adds ci test on pr * solves frequency and send tx race conditions * fixes pending entries & mode clobbering (fm) * fixes configuration hardcoded path and fixed reject path misleading error , cleans up pending list api semantics * resolves code review issues * Add frequency-aware radio replies (#8) * adds radio frequency * adds radio outbound reply default * adds ci test on pr * solves frequency and send tx race conditions * fixes pending entries & mode clobbering (fm) * fixes configuration hardcoded path and fixed reject path misleading error , cleans up pending list api semantics * resolves code review issues * adds ci fixes * Update radioshaq/radioshaq/api/routes/messages.py * solves code review suggestions * fixes failing tests * Fixes PyPI UI bundling flow (#12) * adds radio frequency * adds radio outbound reply default * adds ci test on pr * solves frequency and send tx race conditions * fixes pending entries & mode clobbering (fm) * fixes configuration hardcoded path and fixed reject path misleading error , cleans up pending list api semantics * resolves code review issues * adds ci fixes * Update radioshaq/radioshaq/api/routes/messages.py * solves code review suggestions * fixes failing tests * fixes build patch * fixes minor issues * fixes build env bug (#13) * adds radio frequency * adds radio outbound reply default * adds ci test on pr * solves frequency and send tx race conditions * fixes pending entries & mode clobbering (fm) * fixes configuration hardcoded path and fixed reject path misleading error , cleans up pending list api semantics * resolves code review issues * adds ci fixes * Update radioshaq/radioshaq/api/routes/messages.py * solves code review suggestions * fixes failing tests * fixes build patch * fixes minor issues * fixes ci issue * Update radioshaq/tests/integration/test_live_e2e_workflows.py * fixes ci issue (#14) * adds radio frequency * adds radio outbound reply default * adds ci test on pr * solves frequency and send tx race conditions * fixes pending entries & mode clobbering (fm) * fixes configuration hardcoded path and fixed reject path misleading error , cleans up pending list api semantics * resolves code review issues * adds ci fixes * Update radioshaq/radioshaq/api/routes/messages.py * solves code review suggestions * fixes failing tests * fixes build patch * fixes minor issues * fixes ci issue * Update radioshaq/tests/integration/test_live_e2e_workflows.py * Fix settings TS build and include web UI in wheel * adds release , versioning and workflows * adds ci , build , enfore branch protection and more * adds contributing * chore: bump version to 0.1.1 * fix(ci): allow non-interactive GPL acceptance in CLI setup tests * fix(ci): harden publish/governance workflows and refresh action versions * Fix CI branch guards, release push race handling, and license/version checks * adds contributing * adds validation fixes * Update GitHub Sponsors username in FUNDING.yml * Update .githooks/pre-push * adds license fallbacks for installed package * readme improvements and readthedocs ci (#22) * readme improvements and readthedocs ci * remove broken link * chore(release): bump patch to 0.1.2
1 parent b0bb1ab commit 835cfc1

13 files changed

Lines changed: 247 additions & 50 deletions

File tree

.githooks/pre-push

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ repo_root="$(git rev-parse --show-toplevel)"
55
cd "$repo_root"
66

77
echo "[pre-push] Validating version synchronization..."
8-
python radioshaq/scripts/check_version_sync.py
8+
uv run python radioshaq/scripts/check_version_sync.py
99

1010
echo "[pre-push] Installing/syncing test dependencies..."
1111
cd radioshaq

.github/.readthedocs.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Read the Docs configuration (v2)
2+
# https://docs.readthedocs.io/en/stable/config-file/v2.html
3+
# Connect this repo at https://readthedocs.org/dashboard/ and trigger builds on push.
4+
5+
version: 2
6+
7+
build:
8+
os: ubuntu-24.04
9+
tools:
10+
python: "3.12"
11+
12+
# MkDocs config path relative to repo root (paths inside it are relative to that file)
13+
mkdocs:
14+
configuration: .github/mkdocs.yml
15+
fail_on_warning: false
16+
17+
# Install MkDocs, Material theme, and plugins so RtD can build the site
18+
python:
19+
install:
20+
- requirements: docs/requirements.txt
File renamed without changes.

.github/FUNDING.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# These are supported funding model platforms
2+
3+
github: Josephrp # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4+
patreon: # Replace with a single Patreon username
5+
open_collective: # Replace with a single Open Collective username
6+
ko_fi: # Replace with a single Ko-fi username
7+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9+
liberapay: # Replace with a single Liberapay username
10+
issuehunt: # Replace with a single IssueHunt username
11+
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
12+
polar: # Replace with a single Polar username
13+
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
14+
thanks_dev: # Replace with a single thanks.dev username
15+
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
File renamed without changes.

.github/PYPI_README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,17 +133,17 @@ HQ accepts uploads at `POST /receiver/upload` (Bearer JWT). Default receiver por
133133
If you prefer to configure by hand:
134134

135135
1. **Database:** Set `DATABASE_URL` or `POSTGRES_*` (and run migrations with your Alembic config).
136-
2. **Config:** Copy `config.example.yaml` to `config.yaml` and set `mode`, `database`, `auth`, etc. See [Configuration](https://Josephrp.github.io/RadioShaq/configuration/).
136+
2. **Config:** Copy `config.example.yaml` to `config.yaml` and set `mode`, `database`, `auth`, etc. See [Configuration](https://radioshaq.readthedocs.io/configuration/).
137137
3. **Start:** `radioshaq run-api`.
138138

139139
---
140140

141141
## Documentation
142142

143-
- [Quick Start](https://Josephrp.github.io/RadioShaq/quick-start/)
144-
- [Configuration](https://Josephrp.github.io/RadioShaq/configuration/)
145-
- [API Reference](https://Josephrp.github.io/RadioShaq/api-reference/)
146-
- [Radio / hardware](https://Josephrp.github.io/RadioShaq/radio-usage/)
143+
- [Quick Start](https://radioshaq.readthedocs.io/quick-start/)
144+
- [Configuration](https://radioshaq.readthedocs.io/configuration/)
145+
- [API Reference](https://radioshaq.readthedocs.io/api-reference/)
146+
- [Radio / hardware](https://radioshaq.readthedocs.io/radio-usage/)
147147

148148
---
149149

.github/README.md

Lines changed: 173 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,211 @@
11
# RadioShaq
22

3-
RadioShaq for RadioShaq: ham radio AI orchestration and remote SDR reception.
3+
Monorepo for **RadioShaq**: ham radio AI orchestration and remote SDR reception. One main app (single PyPI package); Python is managed with [uv](https://github.com/astral-sh/uv).
44

5-
**PyPI long description:** [.github/PYPI_README.md](PYPI_README.md) is a user-facing README for the package (interactive setup, CLI, quick start). To use it as the PyPI project description, set `readme = "../.github/PYPI_README.md"` in `radioshaq/pyproject.toml` when building from the repo root, or copy its contents into `radioshaq/README.md` before publishing.
5+
**What this repo does**
66

7-
**Published code in this repo:**
7+
- **RadioShaq** — AI-powered orchestrator for ham radio, emergency comms, and field–HQ coordination. FastAPI backend, React (Vite) web UI, Postgres + Alembic, optional real radios and SDR. The **remote receiver** (SDR listen-only station) is bundled; run with `radioshaq run-receiver`.
88

9-
- **[radioshaq/](radioshaq/)** — RadioShaq (formerly SHAKODS): AI-powered orchestrator for ham radio, emergency comms, and field–HQ coordination. Includes the **remote receiver** (SDR listen-only station) as `radioshaq.remote_receiver`; run with `radioshaq run-receiver`.
9+
---
10+
11+
## Prerequisites
1012

11-
The directories `codex/`, `mistral-vibe-main/`, and `nanobot-main/` are **reference-only** and are not part of the published codebase; they are listed in `.gitignore`.
13+
- **Python 3.11+** and **[uv](https://github.com/astral-sh/uv)**
14+
- **PostgreSQL** — Easiest is Docker on port 5434 (avoids conflict with local 5432). Or use an existing server and set `RADIOSHAQ_DATABASE__POSTGRES_URL`.
15+
- **Optional:** Node.js + PM2 for running the API under PM2; Docker for Postgres.
1216

1317
---
1418

15-
## Quick start (main app)
19+
## Launch (choose one path)
20+
21+
All steps below assume you are in **radioshaq/** unless noted.
1622

17-
From the `radioshaq/` directory:
23+
### Option A: Interactive setup (recommended first time)
24+
25+
Guided prompts for mode, database (Docker or URL), JWT, LLM, and optional radio/memory. Writes `.env` and `config.yaml`, can start Docker and run migrations.
1826

1927
```bash
20-
# 1. Install
21-
uv sync --extra dev --extra test
28+
cd radioshaq
29+
uv sync --all-extras
30+
radioshaq setup
31+
# Minimal: radioshaq setup --quick
32+
# CI: radioshaq setup --no-input --mode field
33+
```
34+
35+
Then start the API (see Option D or manual steps below).
36+
37+
### Option B: Full automated setup (Windows / Linux)
2238

23-
# 2. Start Postgres (Docker, port 5434)
39+
One script: install deps, create config, start Docker Postgres (port 5434), run migrations, install PM2 if Node is present.
40+
41+
```powershell
42+
# Windows (from radioshaq/)
43+
.\infrastructure\local\setup.ps1
44+
```
45+
46+
```bash
47+
# Linux/macOS (from radioshaq/)
48+
./infrastructure/local/setup.sh
49+
```
50+
51+
Then start the API with `radioshaq launch pm2` or `radioshaq run-api`.
52+
53+
### Option C: Manual step-by-step
54+
55+
```bash
56+
cd radioshaq
57+
uv sync --all-extras
58+
59+
# Start Postgres (port 5434)
2460
cd infrastructure/local && docker compose up -d postgres && cd ../..
2561

26-
# 3. Migrations
62+
# Migrations (from radioshaq/)
2763
uv run alembic -c infrastructure/local/alembic.ini upgrade head
2864

29-
# 4. Start API
65+
# Start API
3066
uv run python -m radioshaq.api.server
31-
# API: http://localhost:8000/docs
3267
```
3368

34-
Full install and usage: see the main app [README.md](radioshaq/README.md) in that directory.
69+
From **repo root**, Postgres and migrations can be run as:
70+
71+
```bash
72+
cd radioshaq/infrastructure/local && docker compose up -d postgres && cd ../../..
73+
python radioshaq/infrastructure/local/run_alembic.py upgrade head
74+
```
75+
76+
### Option D: Launch CLI (after install)
77+
78+
Start dependencies and API in one go:
79+
80+
```bash
81+
# Postgres only (port 5434)
82+
radioshaq launch docker
83+
# With Hindsight (semantic memory): radioshaq launch docker --hindsight
84+
85+
# Postgres + API under PM2
86+
radioshaq launch pm2
87+
# With Hindsight: radioshaq launch pm2 --hindsight
88+
```
89+
90+
Then run migrations if needed: `uv run alembic -c infrastructure/local/alembic.ini upgrade head` from `radioshaq/`.
91+
92+
**Endpoints:** API docs **http://localhost:8000/docs**, web UI **http://localhost:8000/**, health **http://localhost:8000/health**.
3593

3694
---
3795

38-
## Project structure
96+
## Usage
3997

98+
### Get a JWT
99+
100+
Most endpoints require a Bearer JWT. Request a token (no prior auth in dev), then send it on protected routes.
101+
102+
**PowerShell:**
103+
104+
```powershell
105+
$r = Invoke-RestMethod -Method Post -Uri "http://localhost:8000/auth/token?subject=op1&role=field&station_id=STATION-01"
106+
$env:TOKEN = $r.access_token
107+
Invoke-RestMethod -Uri "http://localhost:8000/auth/me" -Headers @{ Authorization = "Bearer $env:TOKEN" }
40108
```
41-
radioshaq/ # Main RadioShaq application (single PyPI package)
42-
├── radioshaq/ # Python package (API, radio, audio, orchestrator)
43-
│ └── remote_receiver/ # Bundled SDR receiver (run-receiver)
44-
├── web-interface/ # React frontend (Vite + TypeScript)
45-
├── tests/ # pytest suite (unit + integration + remote_receiver)
46-
├── infrastructure/ # Docker, PM2, AWS Lambda, Alembic
47-
└── scripts/ # Demo and utility scripts
48109

49-
docs/ # Implementation plans and hardware notes
50-
codex/ # Reference-only (gitignored)
51-
mistral-vibe-main/ # Reference-only (gitignored)
52-
nanobot-main/ # Reference-only (gitignored)
110+
**Bash:**
111+
112+
```bash
113+
TOKEN=$(curl -s -X POST "http://localhost:8000/auth/token?subject=op1&role=field&station_id=STATION-01" | jq -r .access_token)
114+
curl -H "Authorization: Bearer $TOKEN" http://localhost:8000/auth/me
53115
```
54116

117+
Roles: `field`, `hq`, `receiver`. Set `RADIOSHAQ_TOKEN` to use the CLI below.
118+
119+
### CLI (with API running)
120+
121+
| Command | Description |
122+
|--------|-------------|
123+
| `radioshaq token --subject op1 --role field --station-id STATION-01` | Get JWT (then set `RADIOSHAQ_TOKEN`) |
124+
| `radioshaq health` | Liveness; `radioshaq health --ready` for readiness |
125+
| `radioshaq message process "your request"` | Send message through REACT orchestrator |
126+
| `radioshaq message inject "text"` | Inject into RX path (demo). Options: `--band`, `--source-callsign` |
127+
| `radioshaq message relay "msg" --source-band 40m --target-band 2m` | Relay between bands |
128+
| `radioshaq transcripts list` | List transcripts. Options: `--callsign`, `--band`, `--destination-only` |
129+
| `radioshaq callsigns list` | List registered callsigns |
130+
| `radioshaq callsigns add <callsign>` | Register a callsign |
131+
132+
API base URL: `RADIOSHAQ_API` (default `http://localhost:8000`). Use `radioshaq --help` and `radioshaq <command> --help` for options.
133+
134+
### Demo script
135+
136+
With the API running, in a second terminal from **radioshaq/**:
137+
138+
```bash
139+
uv run python scripts/demo/run_demo.py
140+
```
141+
142+
Gets a token, injects on 40m, relays to 2m, and polls `/transcripts`. See [radioshaq/scripts/demo/README.md](radioshaq/scripts/demo/README.md).
143+
144+
### API calls
145+
146+
- **Process a message:** `POST /messages/process` with JSON `{"message": "your request"}` and header `Authorization: Bearer <token>`.
147+
- **Transcripts:** `GET /transcripts?callsign=<callsign>&destination_only=true&band=<band>` for messages for you on a band.
148+
- See **http://localhost:8000/docs** for the full OpenAPI spec.
149+
55150
---
56151

57-
## Development
152+
## Run the remote receiver
153+
154+
From **radioshaq/** (SDR listen-only station streaming to HQ):
58155

59156
```bash
60-
# Run tests
61-
cd radioshaq
62-
uv run pytest tests/unit tests/integration -v
157+
uv sync --extra dev --extra test
158+
# With hardware: uv sync --extra sdr # or --extra hackrf
63159

64-
# Type check
65-
uv run mypy radioshaq
160+
# Set env then run
161+
# JWT_SECRET=... STATION_ID=RECEIVER-01 HQ_URL=http://your-hq:8000
162+
uv run radioshaq run-receiver
163+
```
164+
165+
Default port **8765**. HQ accepts uploads at `POST /receiver/upload`. See [docs/](docs/) and [radioshaq/README.md](radioshaq/README.md).
166+
167+
---
168+
169+
## Development (uv)
170+
171+
All from **radioshaq/**:
66172

67-
# Lint / format
173+
```bash
174+
uv run pytest tests/unit tests/integration -v
175+
uv run mypy radioshaq
68176
uv run ruff check . && uv run ruff format .
177+
uv run alembic -c infrastructure/local/alembic.ini upgrade head
178+
```
179+
180+
Frontend: `cd web-interface && npm install && npm run dev`.
181+
182+
---
183+
184+
## Documentation
185+
186+
| Doc | Description |
187+
|-----|-------------|
188+
| [docs/quick-start.md](docs/quick-start.md) | Step-by-step first run |
189+
| [docs/configuration.md](docs/configuration.md) | Config file, env vars, interactive setup |
190+
| [docs/radio-usage.md](docs/radio-usage.md) | Rig models, CAT, hardware |
191+
| [docs/api-reference.md](docs/api-reference.md) | API overview |
192+
| [radioshaq/README.md](radioshaq/README.md) | App install, auth, demo, monitoring |
193+
194+
---
195+
196+
## Project structure
197+
198+
```
199+
radioshaq/ # Main application (single PyPI package)
200+
├── radioshaq/ # Python package (API, radio, audio, orchestrator)
201+
│ └── remote_receiver/ # Bundled SDR receiver (radioshaq run-receiver)
202+
├── web-interface/ # React frontend (Vite + TypeScript)
203+
├── tests/ # pytest (unit + integration)
204+
├── infrastructure/ # Docker, PM2, AWS Lambda, Alembic
205+
└── scripts/ # Demo and utilities
206+
207+
docs/ # Quick-start, configuration, snippets
208+
.github/ # Workflows, PYPI_README.md
69209
```
70210

71211
---

.github/mkdocs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Build: mkdocs build -f .github/mkdocs.yml (from repo root). Deploy: GitHub Actions.
44
site_name: RadioShaq
55
site_description: Ham Radio AI Orchestration and Field-to-HQ Coordination
6-
site_url: https://josephrp.github.io/radioshaq/
6+
site_url: https://radioshaq.readthedocs.io/
77

88
docs_dir: ../docs
99
site_dir: ../site

radioshaq/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
A specialized AI-powered orchestrator for ham radio operations, emergency communications, and field-to-HQ coordination.
66

7-
**Documentation:** [Quick Start](https://josephrp.github.io/radioshaq/quick-start/), [Configuration](https://Josephrp.github.io/RadioShaq/configuration/), [API Reference](https://Josephrp.github.io/RadioShaq/api-reference/) (published site). In-repo source: [../docs/](../docs/) (MkDocs Material).
7+
**Documentation:** [Quick Start](https://radioshaq.readthedocs.io/quick-start/), [Configuration](https://radioshaq.readthedocs.io/configuration/), [API Reference](https://radioshaq.readthedocs.io/api-reference/) (Read the Docs). In-repo source: [../docs/](../docs/) (MkDocs Material).
88

99
[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
1010
[![License: GPL--2.0--only](https://img.shields.io/badge/License-GPL--2.0--only-blue.svg)](LICENSE.md)
@@ -32,7 +32,7 @@ radioshaq setup
3232

3333
**Full automated setup:** Run one script from the `radioshaq/` directory: Windows — `.\infrastructure\local\setup.ps1`; Linux/macOS — `./infrastructure/local/setup.sh` (or `bash infrastructure/local/setup.sh`). Each installs deps, creates config, starts Docker Postgres on port 5434 (optional Hindsight), runs migrations, and installs PM2 if Node is present.
3434

35-
See the [documentation site](https://Josephrp.github.io/RadioShaq/) (Quick Start, Configuration) or **[docs/install.md](docs/install.md)** for the full install guide (prerequisites, DB, PM2, troubleshooting).
35+
See the [documentation site](https://radioshaq.readthedocs.io/) (Quick Start, Configuration) or **[docs/install.md](docs/install.md)** for the full install guide (prerequisites, DB, PM2, troubleshooting).
3636

3737
## Quick Start
3838

@@ -53,7 +53,7 @@ uv run python -m radioshaq.api.server
5353
# API: http://localhost:8000/docs — open http://localhost:8000/ for the web UI (when using the PyPI package with bundled frontend)
5454
```
5555

56-
See [Configuration](https://Josephrp.github.io/RadioShaq/configuration/) or [docs/database.md](docs/database.md) for DATABASE_URL and migration commands (including the `run_alembic.py` script).
56+
See [Configuration](https://radioshaq.readthedocs.io/configuration/) or [docs/database.md](docs/database.md) for DATABASE_URL and migration commands (including the `run_alembic.py` script).
5757

5858
**Launch (dev):** From the project root, `radioshaq launch docker` starts Postgres; `radioshaq launch docker --hindsight` adds Hindsight. Use `radioshaq launch pm2` to start Docker Postgres (if available) and the API via PM2; add `--hindsight` to also run Hindsight under PM2 (requires `pip install hindsight-all`). Configurations that need upstreams (e.g. API → Postgres, API → Hindsight) are satisfied by starting Postgres and optionally Hindsight before the API.
5959

@@ -78,7 +78,7 @@ TOKEN=$(curl -s -X POST "http://localhost:8000/auth/token?subject=op1&role=field
7878
curl -H "Authorization: Bearer $TOKEN" http://localhost:8000/auth/me
7979
```
8080

81-
Roles: `field` (default), `hq`, `receiver`. Full details: [docs/auth.md](docs/auth.md). **Connecting real radios (IC-7300, FT-450D, FT-817, RTL-SDR):** see [Radio Usage](https://Josephrp.github.io/RadioShaq/radio-usage/) or [../docs/HARDWARE_CONNECTION.md](../docs/HARDWARE_CONNECTION.md) for CAT/Hamlib config and remote receiver deployment.
81+
Roles: `field` (default), `hq`, `receiver`. Full details: [docs/auth.md](docs/auth.md). **Connecting real radios (IC-7300, FT-450D, FT-817, RTL-SDR):** see [Radio Usage](https://radioshaq.readthedocs.io/radio-usage/) or [../docs/HARDWARE_CONNECTION.md](../docs/HARDWARE_CONNECTION.md) for CAT/Hamlib config and remote receiver deployment.
8282

8383
## Demo (inject, relay, poll)
8484

@@ -92,7 +92,7 @@ The script gets its own token from `POST /auth/token` (subject `demo-op1`, role
9292

9393
## Monitoring
9494

95-
**Prometheus:** `GET /metrics` (no auth) exposes uptime, callsign count, and optional GPU gauges (when `nvidia-smi` is available). Optional: `uv sync --extra metrics` for full prometheus-client support. See [Monitoring](https://Josephrp.github.io/RadioShaq/monitoring/) in the docs.
95+
**Prometheus:** `GET /metrics` (no auth) exposes uptime, callsign count, and optional GPU gauges (when `nvidia-smi` is available). Optional: `uv sync --extra metrics` for full prometheus-client support. See [Monitoring](https://radioshaq.readthedocs.io/monitoring/) in the docs.
9696

9797
## Installing from PyPI
9898

radioshaq/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "radioshaq"
3-
version = "0.1.1"
3+
version = "0.1.2"
44
description = "RadioShaq: Ham Radio AI Orchestration and Remote SDR Reception System"
55
readme = "../.github/PYPI_README.md"
66
requires-python = ">=3.11"

0 commit comments

Comments
 (0)