prop/lib/microwaveprop
Graham McInitre ba17a41683 fix: extract callsigns from MQTT topic when JSON payload omits sc/rc
Some FT8/Q65 multi-decoder spots omit sender/receiver callsigns
from the JSON payload, but the MQTT topic routing path always
carries them in positions 5 (sc) and 6 (rc):

  pskr/filter/v2/<band>/<mode>/<sc>/<rc>/<sl>/<rl>/<sa>/<ra>

Client now extracts callsigns from the topic and threads them
through Aggregator.ingest → Pskr.parse_spot, where they act as
fallback when the JSON sc/rc keys are nil or empty.

JSON payload values still take precedence when present — the topic
is only used as a safety net.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-20 13:37:37 -05:00
..
accounts fix: resolve all dialyzer type errors across project (46→0 project errors) 2026-06-08 17:51:13 -05:00
aprs polish(aprs): consolidate callsign regex, document raise, note negative-sample v1 limit 2026-05-01 13:10:57 -05:00
backtest fix: resolve all dialyzer type errors across project (46→0 project errors) 2026-06-08 17:51:13 -05:00
beacon_measurements feat(api): ingest endpoint for propmonitor beacon measurements 2026-05-13 16:07:04 -05:00
beacon_monitors Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
beacons Short-circuit RangeEstimate below 5.76 GHz to stop browser lockup 2026-04-14 16:56:24 -05:00
buildings fix: ensure all unused historical NFS data gets cleaned up 2026-07-20 09:27:36 -05:00
callsign_location Drop gridmap.org dependency, resolve callsigns locally 2026-04-12 17:43:29 -05:00
canopy fix: resolve 391 Credo issues across codebase 2026-06-12 13:51:32 -05:00
commercial perf: concurrent ASOS fetches + bulk upsert in commercial poll worker 2026-07-16 07:33:03 -05:00
ionosphere fix: handle GIRO API 404 cleanly — don't dump raw HTML into logs 2026-07-16 07:17:52 -05:00
prom_ex perf(prop): cap ScoreCache LRU + drop eager warmers to fix hot-pod OOMs 2026-04-24 18:49:36 -05:00
propagation fix: ensure all unused historical NFS data gets cleaned up 2026-07-20 09:27:36 -05:00
pskr fix: extract callsigns from MQTT topic when JSON payload omits sc/rc 2026-07-20 13:37:37 -05:00
qrz feat(telemetry): broaden Instrument span coverage 2026-04-18 17:25:33 -05:00
radio fix: resolve all dialyzer type errors across project (46→0 project errors) 2026-06-08 17:51:13 -05:00
rover fix: resolve all compiler warnings except framework-generated phoenix_component_verify 2026-05-29 10:18:52 -05:00
rover_planning feat(rover-planning): worker pre-computes full /path output, PathLive renders cached 2026-05-03 14:58:16 -05:00
space_weather fix: resolve all compiler warnings except framework-generated phoenix_component_verify 2026-05-29 10:18:52 -05:00
terrain Fix low-severity bugs and re-enable Credo checks 2026-05-29 17:29:22 -05:00
valkey test: use Mox for Valkey tests without real Redis (55%→88%) 2026-05-07 13:48:08 -05:00
weather feat: clickable band filters on PSK Reporter tab, fix all test & credo issues 2026-07-20 13:01:00 -05:00
workers feat: clickable band filters on PSK Reporter tab, fix all test & credo issues 2026-07-20 13:01:00 -05:00
accounts.ex fix: Repo.transact -> Repo.transaction (crash on email change + token revocation) 2026-07-16 07:26:49 -05:00
application.ex fix: resolve 391 Credo issues across codebase 2026-06-12 13:51:32 -05:00
aprs.ex polish(aprs): consolidate callsign regex, document raise, note negative-sample v1 limit 2026-05-01 13:10:57 -05:00
aprs_repo.ex feat(aprs): add read-only AprsRepo for aprs.me database access 2026-05-01 12:25:33 -05:00
backtest.ex chore(specs): add @spec to public API in accounts/release/backtest 2026-04-21 13:32:42 -05:00
beacon_measurements.ex feat(api): ingest endpoint for propmonitor beacon measurements 2026-05-13 16:07:04 -05:00
beacon_monitors.ex feat(api): ingest endpoint for propmonitor beacon measurements 2026-05-13 16:07:04 -05:00
beacons.ex fix(security,test): viewer-aware profile queries + create_contact ordering + valkey test isolation 2026-05-12 08:49:08 -05:00
cache.ex fix: resolve all dialyzer type errors across project (46→0 project errors) 2026-06-08 17:51:13 -05:00
callsign_location.ex Drop gridmap.org dependency, resolve callsigns locally 2026-04-12 17:43:29 -05:00
canopy.ex fix: ensure all unused historical NFS data gets cleaned up 2026-07-20 09:27:36 -05:00
commercial.ex refactor: deduplicate hrrr download, simplify radio/mqtt, fix credo/perf issues 2026-05-07 11:50:29 -05:00
format.ex refactor(format): consolidate number/bytes formatters + handle flaky IEM transports 2026-04-21 17:09:41 -05:00
geo.ex refactor: deduplicate helpers and simplify Scorer 2026-04-28 14:14:34 -05:00
geocoder.ex feat(telemetry): broaden Instrument span coverage 2026-04-18 17:25:33 -05:00
instrument.ex feat(telemetry): wide instrumentation + bump hrrr to 2 per pod 2026-04-18 16:33:34 -05:00
ionosphere.ex refactor: deduplicate helpers and simplify Scorer 2026-04-28 14:14:34 -05:00
mailer.ex Send mail as prop@w5isp.com with reply-to graham@mcintire.me 2026-04-12 14:00:38 -05:00
markdown.ex fix: resolve all dialyzer type errors across project (46→0 project errors) 2026-06-08 17:51:13 -05:00
moon.ex feat(eme): add /eme Earth-Moon-Earth calculator 2026-04-23 16:18:20 -05:00
oban_error_reporter.ex fix: resolve all dialyzer type errors across project (46→0 project errors) 2026-06-08 17:51:13 -05:00
partition_manager.ex fix: resolve all dialyzer type errors across project (46→0 project errors) 2026-06-08 17:51:13 -05:00
prom_ex.ex fix: stabilize flaky tests + silence PromEx Oban poller in test 2026-04-21 13:49:07 -05:00
propagation.ex fix: ensure all unused historical NFS data gets cleaned up 2026-07-20 09:27:36 -05:00
pskr.ex fix: extract callsigns from MQTT topic when JSON payload omits sc/rc 2026-07-20 13:37:37 -05:00
qrz.ex Drop gridmap.org dependency, resolve callsigns locally 2026-04-12 17:43:29 -05:00
radio.ex fix: resolve 391 Credo issues across codebase 2026-06-12 13:51:32 -05:00
release.ex feat: clickable band filters on PSK Reporter tab, fix all test & credo issues 2026-07-20 13:01:00 -05:00
repo.ex fix: override Repo.all/2 to accept :limit/:offset opts for Oban Pro compat 2026-07-15 14:41:02 -05:00
repo_listener.ex fix: make RepoListener resilient, bypass pgbouncer for NOTIFY/LISTEN 2026-07-20 13:15:45 -05:00
rover.ex fix: resolve all dialyzer type errors across project (46→0 project errors) 2026-06-08 17:51:13 -05:00
rover_planning.ex perf: batch fixes for site-wide audit — indexes, N+1, streams, atomicity 2026-07-16 07:31:19 -05:00
space_weather.ex refactor(db): use explicit on_conflict set clauses over :replace_all_except 2026-04-21 14:22:15 -05:00
terrain.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
valkey.ex test: use Mox for Valkey tests without real Redis (55%→88%) 2026-05-07 13:48:08 -05:00
weather.ex refactor: extract ProfileLookup module from weather.ex (2072→1696 lines, -376) 2026-07-16 07:47:47 -05:00