[fix](trx-frontend-http): drop bidirectional requirement for decode paths

The bidirectional check required both A→B and B→A directed messages to
draw a contact line, which was too strict — the receiver may not hear
both sides of a QSO. Now a decode path is drawn whenever a directed
message is decoded and the target's locator is known from any message
in the 24 h history window.

Also rename "Longest QSOs" → "Longest decode paths" and update
related UI labels to better reflect what is actually shown.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
2026-03-15 17:09:12 +01:00
parent 8cb713b3b1
commit 22311eb01c
2 changed files with 3 additions and 7 deletions
@@ -6319,11 +6319,7 @@ function rebuildDecodeContactPaths() {
}
}
}
// Index directed messages by "SOURCE::TARGET" for QSO (bidirectional) check
const directedPairs = new Set(directedMessages.map((m) => `${m.source}::${m.target}`));
for (const msg of directedMessages) {
// A true QSO requires both A→B and B→A directed messages
if (!directedPairs.has(`${msg.target}::${msg.source}`)) continue;
const targetLocator = stationLocators.get(msg.target);
if (!targetLocator) continue;
if (msg.sourceGrid === targetLocator.grid) continue;