prop/test/microwaveprop
Graham McIntire b924cc2fc2
feat(pskr): preserve full locator precision from MQTT spots
Spots that include subsquare (EM12kl), extended-square (EM12kl37),
or extended-extended-subsquare (EM12kl37ab) precision now keep
that resolution end-to-end. Previously we truncated everything to
4 chars at parse time, which collapsed distinct paths into the same
row whenever two spotters shared a field.

The aggregation key uses the full grid as reported, so two
spotters in different subsquares of `EM12` produce two rows —
correct, since they are physically different paths. Any spot that
fails Maidenhead validation (odd length, illegal char at position
N) is still dropped via the same error path.

Storage normalizes to uppercase so the unique index doesn't split
on case. Maidenhead.valid?/1 already accepts both cases on input.
2026-05-04 12:42:46 -05:00
..
accounts feat(accounts): derive 10-char home_grid from explicit lat/lon 2026-04-25 17:04:45 -05:00
aprs fix(aprs): tighten PathParser self-loop check and Q-construct regex 2026-05-01 12:40:17 -05:00
backtest test: expand coverage and refactor to idiomatic style 2026-04-23 13:28:42 -05:00
beacons test: cover beacons/beacon schema 2026-04-16 14:09:45 -05:00
buildings feat(buildings): integrate MS footprints into path clearance + map render 2026-04-26 10:44:46 -05:00
commercial test: coverage round 4 (84.39% → 84.44%) + 6 new property tests 2026-04-24 10:32:05 -05:00
ionosphere fix(ionosphere): disable TLS verify for GIRO to unbreak ionosonde fetch 2026-04-22 09:49:03 -05:00
propagation feat(hrdps): scope to current-hour-only at 0.5° step 2026-04-30 10:36:00 -05:00
pskr feat(pskr): preserve full locator precision from MQTT spots 2026-05-04 12:42:46 -05:00
qrz test: cover qrz/client 2026-04-16 14:10:50 -05:00
radio feat(import): strip non-printables from CSV/ADIF uploads 2026-04-26 15:34:46 -05:00
rover refactor(rover-locations): rename status atoms ideal→good, off_limits→bad 2026-05-03 11:13:18 -05:00
space_weather test: coverage round 3 (83.96% → 84.39%) + 10 new property tests 2026-04-24 10:15:37 -05:00
terrain test: coverage round 4 (84.39% → 84.44%) + 6 new property tests 2026-04-24 10:32:05 -05:00
weather fix(weather): snap HRDPS reads to nearest valid_time within 6h 2026-04-30 13:46:32 -05:00
workers feat(rover-planning): hourly backfill worker recovers stuck paths 2026-05-03 13:52:27 -05:00
accounts_test.exs feat(auth): self-service password reset 2026-04-18 08:42:35 -05:00
application_test.exs perf(concurrency): partition Task.Supervisor to remove bottleneck on heavy async_stream paths 2026-04-21 14:20:29 -05:00
aprs_test.exs feat(aprs): add Aprs context for read-only queries against aprs.me 2026-05-01 12:47:35 -05:00
backtest_test.exs Phase 9.1: Consolidated backtest report and contest log import 2026-04-10 11:57:15 -05:00
beacon_monitors_test.exs hardening: Rust worker circuit-breaker + delete wall-clock sleep from beacon test 2026-04-21 18:02:46 -05:00
beacons_test.exs User profiles at /u/:callsign, flexible band input, assorted UX cleanup 2026-04-12 16:13:08 -05:00
cache_test.exs fix(cache): add periodic TTL sweeper to bound ETS growth 2026-04-21 13:19:53 -05:00
callsign_location_test.exs Drop gridmap.org dependency, resolve callsigns locally 2026-04-12 17:43:29 -05:00
canopy_test.exs feat(canopy): add tree-canopy height layer for path obstruction analysis 2026-04-26 12:51:48 -05:00
commercial_test.exs Wire NEXRAD, native ducts, and commercial links into scoring 2026-04-13 12:08:15 -05:00
format_property_test.exs test: cover Format.number/bytes, Instrument.span, SolarClient edges 2026-04-23 14:09:13 -05:00
format_test.exs feat(format): miles-primary distance formatting sitewide 2026-04-18 15:53:40 -05:00
geo_property_test.exs test(property): add property tests for terrain + atmospheric math 2026-04-21 13:56:39 -05:00
geo_test.exs test: cover geo, qrz record, callsign client 2026-04-16 14:09:44 -05:00
geocoder_test.exs Drop gridmap.org dependency, resolve callsigns locally 2026-04-12 17:43:29 -05:00
instrument_test.exs test: cover Format.number/bytes, Instrument.span, SolarClient edges 2026-04-23 14:09:13 -05:00
logger_format_test.exs test: silence expected warnings/errors during test runs 2026-04-24 09:27:17 -05:00
markdown_test.exs Add Tier 1 test coverage: EnrichmentStatus, Markdown, health, RemoteIp, Maidenhead 2026-04-06 10:15:38 -05:00
moon_test.exs feat(eme): add /eme Earth-Moon-Earth calculator 2026-04-23 16:18:20 -05:00
oban_error_reporter_test.exs feat(observability): attach Oban exception telemetry tap 2026-04-21 14:13:53 -05:00
propagation_test.exs fix: April 2026 codebase review — address 13 bugs across propagation chain 2026-04-25 10:52:51 -05:00
pskr_test.exs feat(pskr): preserve full locator precision from MQTT spots 2026-05-04 12:42:46 -05:00
qrz_test.exs Drop gridmap.org dependency, resolve callsigns locally 2026-04-12 17:43:29 -05:00
radio_refinement_test.exs CSV/ADIF import: upsert existing contacts on grid/mode refinement 2026-04-16 10:57:37 -05:00
radio_test.exs fix: April 2026 codebase review — address 13 bugs across propagation chain 2026-04-25 10:52:51 -05:00
release_test.exs test: push line coverage from 71.7% → 78.67% 2026-04-23 18:43:18 -05:00
repo_listener_test.exs test: cover repo_listener 2026-04-16 14:58:55 -05:00
rover_planning_test.exs feat(rover-planning): multi-band missions + smart reconcile 2026-05-03 14:08:49 -05:00
rover_test.exs feat(rover): user-scoped FixedStation context with ownership guard 2026-04-25 16:26:33 -05:00
terrain_test.exs Rename qsos table to contacts, qso_id to contact_id 2026-04-02 15:52:19 -05:00
weather_extra_test.exs test: coverage round 2 (82.05% → 83.96%) + 23 new property tests 2026-04-24 10:15:37 -05:00
weather_grid_test.exs perf(weather): cache forecast-hour grids in GridCache to skip ScalarFile decode 2026-04-29 13:10:12 -05:00
weather_test.exs fix: April 2026 codebase review — address 13 bugs across propagation chain 2026-04-25 10:52:51 -05:00