prop/lib/microwaveprop/pskr
Graham McIntire f78d4ccb9f
test(pskr): two-pass HRRR pipeline integration test + tighter specs
Adds the test that verifies the full producer→drain→re-pass loop:
sample written with NULL HRRR fields + fetch task enqueued, then once
an HRRR profile lands, the next sampler pass UPSERTs the same
calibration_samples row (id preserved) with non-NULL weather data.

Also tightens dialyzer surface:

* PartitionManager defines a `result()` typedoc and uses it on both
  public functions instead of inlined tuple types.
* PartitionMaintenanceWorker.perform/1 + the lookahead/1 helper get
  explicit specs.
* CalibrationSampler.enqueue_missing_hrrr/3 gets a spec covering its
  group_by-shape input map and HRRR profile list.

`mix precommit` clean (3310 tests, 0 failures). Local `mix dialyzer`
hits an OTP 28.4 vs 28.5 toolchain mismatch unrelated to this change.
2026-05-05 17:31:17 -05:00
..
aggregator.ex feat(pskr): ingest PSK Reporter MQTT firehose for weather correlation 2026-05-04 09:24:20 -05:00
calibration_sample.ex feat(pskr): hourly calibration sampler joining spots × HRRR × Kp 2026-05-04 16:12:47 -05:00
calibration_sampler.ex test(pskr): two-pass HRRR pipeline integration test + tighter specs 2026-05-05 17:31:17 -05:00
client.ex fix(pskr): require both ends in CONUS for MQTT subscriptions 2026-05-04 13:07:45 -05:00
feature_bin.ex feat(pskr): weekly recalibration analysis on the calibration corpus 2026-05-04 16:18:17 -05:00
mqtt.ex refactor(pskr): drop emqtt, talk MQTT 3.1.1 over :gen_tcp directly 2026-05-04 09:52:34 -05:00
recalibration_run.ex feat(pskr): weekly recalibration analysis on the calibration corpus 2026-05-04 16:18:17 -05:00
recalibrator.ex feat(pskr): weekly recalibration analysis on the calibration corpus 2026-05-04 16:18:17 -05:00
spot_hourly.ex feat(pskr): preserve full locator precision from MQTT spots 2026-05-04 12:42:46 -05:00