Skip to content

Implement interoperable and safe channel QR sharing/importing for design #128 #1313

Description

@RCGV1

Parent design: meshtastic/design#128

Web currently generates canonical Replace URLs but does not implement the shared Add/import contract:

  • Add URLs retain LoRa configuration in the encoded ChannelSet.
  • Import ignores ?add=true, can apply LoRa settings, and maps incoming channels onto replacement slots.
  • There is no Add import mode that preserves the existing channel set and LoRa settings, no safe free-slot/conflict/capacity model, and no shared strict parser.
  • Share and import use different terminology and confirmation models.
  • Deep-link/share handling and explicit copy/system-share fallbacks are incomplete.

Scope:

  • Create one tested parser/encoder for canonical and supported legacy ChannelSet URLs.
  • Make Replace the default; make Add encode no LoRa configuration and lock add-only incoming links to Add.
  • Implement a safe Import plan: Replace may replace selected slots/apply LoRa; Add uses only confirmed free slots, preserves existing settings, and reports conflicts/capacity before writes.
  • Use that plan and vocabulary in both QR share and pasted/shared URL intake; add copy and Web Share API fallback where available.
  • Keep the current event-driven reconnect behavior. Do not add a reboot prediction until firmware exposes authoritative accepted-operation status.

Acceptance criteria:

  • Cross-client Replace/Add fixture URLs round-trip correctly.
  • Tests cover malformed/foreign URLs, add-only payloads, duplicates, full capacity, selected channel counts, and no-reboot resync behavior.
  • UI evidence covers Replace, Add, add-only, error/conflict, disconnected, and success states.

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