Skip to content

Packets table: add Source column with contact resolution #73

Description

@zindello

Summary

The Recent Packets table currently has no way to identify where a packet came from without drilling into the packet details. A Source column would surface this at a glance.

Proposed behaviour

Resolution priority (highest to lowest):

  1. Resolved contact — if the source address matches a known contact, show the contact name
  2. Advert packets — the advert payload already contains the sender's name; use that directly
  3. Partial match — if no contact resolves but the source matches a known contact's last 1–3 bytes, show the byte hint (e.g. …a3:f2) as a greyed hint
  4. Unresolved — show the raw source address fragment

Duplicate sources in a bucket/view:
If the same resolved name appears on multiple packets, show a multiplier badge: NodeName ×3

Why

  • Removes the need to open packet details just to identify the sender
  • Adverts are already self-describing — surfacing the name is a no-brainer
  • Partial byte hints give operators a useful clue even without a full contact book

Implementation notes

  • Contact resolution logic likely already exists elsewhere in the app (Neighbours view, PacketDetailsModal) — reuse rather than duplicate
  • The column should be sortable and filterable like the existing columns
  • On narrow screens it could be hidden by default (follow the existing responsive column hide pattern in PacketTable)
  • The multiplier badge (×N) only applies when the table is grouped/bucketed, not per-row

Acceptance criteria

  • Source column appears in the packets table
  • Resolved contacts show contact name
  • Advert packets show the advert name field
  • Unresolved sources show a byte hint (last 1–3 bytes of address)
  • Duplicate resolved names within a view show ×N badge
  • Column is responsive (hidden on xs/sm, visible md+)
  • Column is sortable

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions