https://github.com/robertegardner/radio
· scanned 2026-06-15 23:53 UTC (2 months, 3 weeks ago)
87 raw signals (0 security + 87 graph)
Last scanned 2 months, 3 weeks ago · v1 · 86 actionable findings from 1 signal source. 1 repeated signal grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 374 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
health |
software | healthy | scripts/whisper-svc/whisper_service.py:18 |
transcribe |
software | healthy | scripts/whisper-svc/whisper_service.py:23 |
read_env |
software | healthy | files/opt/sdr-tuner/wbfm_stream.py:74 |
parse_freq |
software | healthy | files/opt/sdr-tuner/wbfm_stream.py:88 |
lowpass_taps |
software | healthy | files/opt/sdr-tuner/wbfm_stream.py:98 |
__init__ |
software | healthy | files/opt/sdr-tuner/wbfm_stream.py:113 |
__call__ |
software | healthy | files/opt/sdr-tuner/wbfm_stream.py:121 |
main |
software | healthy | files/opt/sdr-tuner/wbfm_stream.py:134 |
stop |
software | healthy | files/opt/sdr-tuner/wbfm_stream.py:186 |
read_env |
software | healthy | files/opt/sdr-tuner/mux_supervisor.py:49 |
mount_for |
software | healthy | files/opt/sdr-tuner/mux_supervisor.py:63 |
load_channels |
software | healthy | files/opt/sdr-tuner/mux_supervisor.py:69 |
spec_key |
software | healthy | files/opt/sdr-tuner/mux_supervisor.py:114 |
__init__ |
software | healthy | files/opt/sdr-tuner/mux_supervisor.py:120 |
start |
software | healthy | files/opt/sdr-tuner/mux_supervisor.py:126 |
alive |
software | healthy | files/opt/sdr-tuner/mux_supervisor.py:139 |
stop |
software | healthy | files/opt/sdr-tuner/mux_supervisor.py:142 |
write_status |
software | healthy | files/opt/sdr-tuner/mux_supervisor.py:159 |
main |
software | healthy | files/opt/sdr-tuner/mux_supervisor.py:193 |
on_hup |
software | dead | files/opt/sdr-tuner/mux_supervisor.py:202 |
on_term |
software | dead | files/opt/sdr-tuner/mux_supervisor.py:205 |
reconcile |
software | healthy | files/opt/sdr-tuner/mux_supervisor.py:212 |
_load_json |
software | healthy | files/opt/sdr-tuner/station_db.py:18 |
reload |
software | healthy | files/opt/sdr-tuner/station_db.py:25 |
_norm_am |
software | healthy | files/opt/sdr-tuner/station_db.py:37 |
_norm_fm |
software | healthy | files/opt/sdr-tuner/station_db.py:44 |
lookup_am |
software | healthy | files/opt/sdr-tuner/station_db.py:51 |
lookup_fm |
software | healthy | files/opt/sdr-tuner/station_db.py:58 |
hd_subchannels |
software | healthy | files/opt/sdr-tuner/station_db.py:65 |
label |
software | healthy | files/opt/sdr-tuner/station_db.py:76 |
_norm |
software | healthy | files/opt/sdr-tuner/station_db.py:94 |
has_override |
software | healthy | files/opt/sdr-tuner/station_db.py:98 |
set_override |
software | healthy | files/opt/sdr-tuner/station_db.py:103 |
clear_override |
software | dead | files/opt/sdr-tuner/station_db.py:135 |
write_state |
software | healthy | files/opt/sdr-tuner/rds_watcher.py:29 |
parse_rt |
software | healthy | files/opt/sdr-tuner/rds_watcher.py:48 |
write_state |
software | healthy | files/opt/sdr-tuner/caption_orchestrator.py:69 |
reset_song |
software | healthy | files/opt/sdr-tuner/caption_orchestrator.py:79 |
__init__ |
software | healthy | files/opt/sdr-tuner/caption_orchestrator.py:89 |
append |
software | healthy | files/opt/sdr-tuner/caption_orchestrator.py:94 |
last |
software | healthy | files/opt/sdr-tuner/caption_orchestrator.py:101 |
is_hallucination |
software | healthy | files/opt/sdr-tuner/caption_orchestrator.py:123 |
reader_loop |
software | dead | files/opt/sdr-tuner/caption_orchestrator.py:127 |
transcribe_loop |
software | dead | files/opt/sdr-tuner/caption_orchestrator.py:153 |
lrclib_get |
software | healthy | files/opt/sdr-tuner/caption_orchestrator.py:189 |
parse_lrc |
software | healthy | files/opt/sdr-tuner/caption_orchestrator.py:212 |
itunes_lookup |
software | healthy | files/opt/sdr-tuner/caption_orchestrator.py:232 |
fetch_art |
software | healthy | files/opt/sdr-tuner/caption_orchestrator.py:266 |
_norm |
software | healthy | files/opt/sdr-tuner/caption_orchestrator.py:272 |
_canonical_match |
software | healthy | files/opt/sdr-tuner/caption_orchestrator.py:277 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tune-icecast.sh |
software | healthy | tune-icecast.sh |
bootstrap.sh |
software | healthy | bootstrap.sh |
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
deploy.sh |
software | healthy | deploy.sh |
LICENSE |
software | healthy | LICENSE |
PROJECT_MEMORY.md |
software | healthy | PROJECT_MEMORY.md |
Dockerfile |
software | healthy | scripts/whisper-svc/Dockerfile |
whisper_service.py |
software | healthy | scripts/whisper-svc/whisper_service.py |
docker-compose.yml |
software | healthy | scripts/whisper-svc/docker-compose.yml |
wbfm_stream.py |
software | healthy | files/opt/sdr-tuner/wbfm_stream.py |
mux_supervisor.py |
software | healthy | files/opt/sdr-tuner/mux_supervisor.py |
wxsat_capture.sh |
software | healthy | files/opt/sdr-tuner/wxsat_capture.sh |
station_db.py |
software | healthy | files/opt/sdr-tuner/station_db.py |
rds_watcher.py |
software | healthy | files/opt/sdr-tuner/rds_watcher.py |
channel_pipeline.sh |
software | healthy | files/opt/sdr-tuner/channel_pipeline.sh |
caption_orchestrator.py |
software | healthy | files/opt/sdr-tuner/caption_orchestrator.py |
wxsat_rebuild.py |
software | healthy | files/opt/sdr-tuner/wxsat_rebuild.py |
fcc_fetch.py |
software | healthy | files/opt/sdr-tuner/fcc_fetch.py |
fm_scan.py |
software | healthy | files/opt/sdr-tuner/fm_scan.py |
device_loss_guard.sh |
software | healthy | files/opt/sdr-tuner/device_loss_guard.sh |
stream.sh |
software | healthy | files/opt/sdr-tuner/stream.sh |
am_stream.py |
software | healthy | files/opt/sdr-tuner/am_stream.py |
app.py |
software | healthy | files/opt/sdr-tuner/app.py |
stereo_decode.py |
software | healthy | files/opt/sdr-tuner/stereo_decode.py |
am_diag_scan.py |
software | healthy | files/opt/sdr-tuner/am_diag_scan.py |
iq_capture.py |
software | healthy | files/opt/sdr-tuner/iq_capture.py |
wxsat_cn_check.py |
software | healthy | files/opt/sdr-tuner/wxsat_cn_check.py |
wxsat_live.py |
software | healthy | files/opt/sdr-tuner/wxsat_live.py |
wxsat_predict.py |
software | healthy | files/opt/sdr-tuner/wxsat_predict.py |
wxsat_scheduler.py |
software | healthy | files/opt/sdr-tuner/wxsat_scheduler.py |
ui_settings.py |
software | healthy | files/opt/sdr-tuner/ui_settings.py |
hd_stream.py |
software | healthy | files/opt/sdr-tuner/hd_stream.py |
am_scan.py |
software | healthy | files/opt/sdr-tuner/am_scan.py |
butterchurnPresets.min.js |
software | healthy | files/opt/sdr-tuner/static/butterchurnPresets.min.js |
butterchurn.min.js |
software | healthy | files/opt/sdr-tuner/static/butterchurn.min.js |
isSupported.min.js |
software | healthy | files/opt/sdr-tuner/static/isSupported.min.js |
radio.html |
software | healthy | files/opt/sdr-tuner/templates/radio.html |
index.html |
software | healthy | files/opt/sdr-tuner/templates/index.html |
wxsat.html |
software | healthy | files/opt/sdr-tuner/templates/wxsat.html |
multi.html |
software | healthy | files/opt/sdr-tuner/templates/multi.html |
BUILD_GUIDE.md |
software | healthy | hardware/docs/BUILD_GUIDE.md |
README.md |
software | healthy | hardware/case/README.md |
2026-05-27-am-rfi-discovery.md |
software | healthy | notes/2026-05-27-am-rfi-discovery.md |
2026-05-27-hdr-and-31hz-analysis.md |
software | healthy | notes/2026-05-27-hdr-and-31hz-analysis.md |
2026-05-26-am-audio-tuning.md |
software | healthy | notes/2026-05-26-am-audio-tuning.md |
2026-06-03-song-identification.md |
software | healthy | notes/2026-06-03-song-identification.md |
2026-06-02-fm-device-loss-selfheal.md |
software | healthy | notes/2026-06-02-fm-device-loss-selfheal.md |
CLAUDE.md |
quality | healthy | CLAUDE.md |
| Label | Layer | Status | Path |
|---|---|---|---|
GET /health |
api | healthy | scripts/whisper-svc/whisper_service.py |
POST /transcribe |
api | healthy | scripts/whisper-svc/whisper_service.py |
ANY / |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /radio |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /wxsat |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /multi |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /tune |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /stop |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /scan-fm |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /scan-am |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /reload-stations |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /settings |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/status |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/art |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/scan_status |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/rfi_status |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/now_playing |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/station-override |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/stations |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/tune |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/bitrate |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/stereo |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/antenna |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/mux/status |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/mux/channels |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/mux/start |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/mux/stop |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/wxsat/captures |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/wxsat/passes |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/wxsat/status |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/wxsat/live |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/wxsat/pass/<cid> |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/wxsat/rebuild |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/wxsat/authorize |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/wxsat/space |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/wxsat/image/<path:relpath> |
api | healthy | files/opt/sdr-tuner/app.py |
ANY /api/wxsat/delete |
api | healthy | files/opt/sdr-tuner/app.py |
| Label | Layer | Status | Path |
|---|---|---|---|
scripts |
software | healthy | scripts |
whisper-svc |
software | healthy | scripts/whisper-svc |
files |
software | healthy | files |
opt |
software | healthy | files/opt |
sdr-tuner |
software | healthy | files/opt/sdr-tuner |
static |
software | healthy | files/opt/sdr-tuner/static |
templates |
software | healthy | files/opt/sdr-tuner/templates |
hardware |
software | healthy | hardware |
docs |
software | healthy | hardware/docs |
case |
software | healthy | hardware/case |
notes |
software | healthy | notes |
| Label | Layer | Status | Path |
|---|---|---|---|
DecimatingFIR |
software | healthy | files/opt/sdr-tuner/wbfm_stream.py:107 |
Pipeline |
software | healthy | files/opt/sdr-tuner/mux_supervisor.py:119 |
Ring |
software | healthy | files/opt/sdr-tuner/caption_orchestrator.py:88 |
Fir |
software | healthy | files/opt/sdr-tuner/stereo_decode.py:93 |
Delay |
software | healthy | files/opt/sdr-tuner/stereo_decode.py:107 |
Tee |
software | healthy | files/opt/sdr-tuner/am_diag_scan.py:362 |
SkyTrack |
software | healthy | files/opt/sdr-tuner/wxsat_live.py:90 |
as |
software | healthy | files/opt/sdr-tuner/static/butterchurnPresets.min.js:as |
as |
software | healthy | files/opt/sdr-tuner/static/butterchurn.min.js:as |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | bootstrap.sh |
192.168.6.82 |
network | healthy | CLAUDE.md |
192.168.6.18 |
network | healthy | files/opt/sdr-tuner/app.py |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8000 |
network | healthy | scripts/whisper-svc/Dockerfile |
port:8088 |
network | healthy | scripts/whisper-svc/docker-compose.yml |
port:8080 |
network | healthy | files/opt/sdr-tuner/app.py |
| Label | Layer | Status | Path |
|---|---|---|---|
image::scripts/whisper-svc/Dockerfile |
hardware | healthy | scripts/whisper-svc/Dockerfile |
whisper |
hardware | healthy | scripts/whisper-svc/docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-x7f8s3xa |
software | healthy | /tmp/repobility-clone-x7f8s3xa |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | bootstrap.sh |
This page is publicly accessible at:
https://repobility.com/scan/c569b605-f337-4370-9c20-84c9b66e64bd/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/c569b605-f337-4370-9c20-84c9b66e64bd/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.