Operator directive (rob, 2026-07-02): there should be ONE reporter ID, supplied to sigmond once, used by every upload path — wsprdaemon, wsprnet, and PSKReporter alike.
Today's MSK144 end-to-end test on B4 surfaced how fragmented reporter identity currently is:
coordination.toml [host] call → STATION_CALL (plain callsign)
- each client's
[station] callsign (psk-recorder had AC0G/B4, meteor-scatter AC0G)
- each client's per-instance
[instance] reporter_id (unset on B4 until today)
- wspr-uploader's
WD_RECEIVER_CALL env
coordination.py already renders STATION_WSPRNET_CALL / STATION_PSKREPORTER_CALL override hooks from [station] — but no client consumes them
Failure mode observed: with [instance] reporter_id unset, psk-recorder/meteor-scatter ChTailer falls back to the radiod status DNS name, hs-uploader's tar builder prefers reporter_id for the RX_SITE arcname (transports/wsprdaemon.py, psk_call = cols.get("reporter_id") or ...), wsprdaemon-server derives rx_sign from that path segment, and the pskreporter forwarder then posted spots to PSKReporter under receiver callsign "B4-100-RX888MK2-STATUS". ~790 rows were misattributed on 2026-07-02 (17:54–18:40 UTC) before we set [instance] reporter_id = "AC0G/S" in both clients' configs as a stopgap.
Proposed unification (implementation PR/commits to follow from AC0G/B4):
coordination.toml [station] reporter_id = "AC0G/S" (one key, site-wide) → rendered as STATION_REPORTER_ID in coordination.env.
- psk-recorder, meteor-scatter (and future clients): reporter resolution becomes
[instance] reporter_id (explicit per-instance override) → STATION_REPORTER_ID (site default) → loud warning on radiod-hostname fallback, never silent.
- wspr-recorder uploader shim: default
WD_RECEIVER_CALL from STATION_REPORTER_ID when unset.
- The existing
STATION_WSPRNET_CALL / STATION_PSKREPORTER_CALL hooks remain as per-destination overrides for operators whose IDs genuinely differ per service.
Related, same class of bug (config that silently never loads): the %i/%I EnvironmentFile fix is applied to wspr-recorder and meteor-scatter units; psk-recorder@.service still has the %I-only line. Also see HamSCI/wspr-recorder#5.
— filed from AC0G/B4, 2026-07-02
🤖 Generated with Claude Code
Operator directive (rob, 2026-07-02): there should be ONE reporter ID, supplied to sigmond once, used by every upload path — wsprdaemon, wsprnet, and PSKReporter alike.
Today's MSK144 end-to-end test on B4 surfaced how fragmented reporter identity currently is:
coordination.toml [host] call→STATION_CALL(plain callsign)[station] callsign(psk-recorder hadAC0G/B4, meteor-scatterAC0G)[instance] reporter_id(unset on B4 until today)WD_RECEIVER_CALLenvcoordination.pyalready rendersSTATION_WSPRNET_CALL/STATION_PSKREPORTER_CALLoverride hooks from[station]— but no client consumes themFailure mode observed: with
[instance] reporter_idunset, psk-recorder/meteor-scatter ChTailer falls back to the radiod status DNS name, hs-uploader's tar builder prefersreporter_idfor the RX_SITE arcname (transports/wsprdaemon.py,psk_call = cols.get("reporter_id") or ...), wsprdaemon-server derivesrx_signfrom that path segment, and the pskreporter forwarder then posted spots to PSKReporter under receiver callsign "B4-100-RX888MK2-STATUS". ~790 rows were misattributed on 2026-07-02 (17:54–18:40 UTC) before we set[instance] reporter_id = "AC0G/S"in both clients' configs as a stopgap.Proposed unification (implementation PR/commits to follow from AC0G/B4):
coordination.toml [station] reporter_id = "AC0G/S"(one key, site-wide) → rendered asSTATION_REPORTER_IDin coordination.env.[instance] reporter_id(explicit per-instance override) →STATION_REPORTER_ID(site default) → loud warning on radiod-hostname fallback, never silent.WD_RECEIVER_CALLfromSTATION_REPORTER_IDwhen unset.STATION_WSPRNET_CALL/STATION_PSKREPORTER_CALLhooks remain as per-destination overrides for operators whose IDs genuinely differ per service.Related, same class of bug (config that silently never loads): the
%i/%IEnvironmentFile fix is applied to wspr-recorder and meteor-scatter units;psk-recorder@.servicestill has the%I-only line. Also see HamSCI/wspr-recorder#5.— filed from AC0G/B4, 2026-07-02
🤖 Generated with Claude Code