Add #loser command — worst packet delivery record (v0.21.9) #52

Merged
kamilkrzywda merged 1 commits from fix/loser-command into main 2026-09-29 23:01:29 +02:00
Owner

New exact-match #loser on the command channel: replies with which node has the worst delivery record over our directed sends (grouped tx history by destination, delivered vs failed via routing ACKs).

  • Broadcasts excluded explicitly (to === BROADCAST_ADDR) in addition to the pending-status filter — this firmware can surface broadcasts as failed/NO_RESPONSE, so a status-only filter could crown the broadcast address "loser"
  • Node names resolved from the node map (longName ?? shortName), @!hex mention fallback when unknown (reuses the existing mention() helper)
  • Three reply shapes: worst delivery line / no failed sends yet / not enough data yet (only directed sends count — broadcasts have no acks; Meshtastic doesn't share mesh-wide per-user loss stats, so this is the honest dataset from our vantage point)
  • #help text now lists #loser; AGENTS.md command list synced

Tests 175 → 180 (all three reply cases + name-resolution fallback). Build clean, oxlint clean. Lockfile untouched.

New exact-match `#loser` on the command channel: replies with which node has the worst delivery record over our directed sends (grouped tx history by destination, delivered vs failed via routing ACKs). - Broadcasts excluded explicitly (`to === BROADCAST_ADDR`) in addition to the pending-status filter — this firmware can surface broadcasts as `failed/NO_RESPONSE`, so a status-only filter could crown the broadcast address "loser" - Node names resolved from the node map (longName ?? shortName), `@!hex` mention fallback when unknown (reuses the existing `mention()` helper) - Three reply shapes: worst delivery line / no failed sends yet / not enough data yet (only directed sends count — broadcasts have no acks; Meshtastic doesn't share mesh-wide per-user loss stats, so this is the honest dataset from our vantage point) - `#help` text now lists `#loser`; AGENTS.md command list synced Tests 175 → 180 (all three reply cases + name-resolution fallback). Build clean, oxlint clean. Lockfile untouched.
kamilkrzywda added 1 commit 2026-09-29 23:01:23 +02:00
kamilkrzywda merged commit 8fb16217f7 into main 2026-09-29 23:01:29 +02:00
kamilkrzywda deleted branch fix/loser-command 2026-09-29 23:01:30 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OpenCode/MeshBot#52