Skip to content

Align channel QR Add semantics and import lifecycle with design #128 #2126

Description

@RCGV1

Parent design: meshtastic/design#128

Current Apple behavior is partially compliant but has confirmed protocol/lifecycle gaps:

  • Add-mode shares mark ?add=true but serialize a ChannelSet that still contains LoRa configuration. Add payloads must contain no LoRa configuration.
  • Replace import treats every LoRa write as a reboot, swallows the following resync failure, and closes as success. Current firmware applies ordinary channel and LoRa changes live; an unconfirmed disconnect/error must remain recoverable.
  • Add allocation derives radio indexes from the locally cached channel count. It must not overwrite an occupied radio slot when the local table is incomplete; only a freshly synchronized complete table may provide free-slot allocation.
  • Share should use the same concise Replace/Add consequence explanation as import.

Acceptance criteria:

  • Generated Add URLs decode to a ChannelSet without LoRa configuration; Replace URLs preserve it.
  • Add imports preserve the node's channels and LoRa settings, do not silently overwrite, and clearly report unavailable/full/conflicting slots.
  • Standard current-firmware QR imports neither claim a reboot nor hide a post-write resync failure.
  • Share and import use the approved Replace/Add terms and explanations.
  • Add focused parser, generation, import-lifecycle, and slot-allocation coverage; record hardware status in the PR.

Do not duplicate the host-compatibility work in #2116.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions