Skip to content

Allow major-version mismatch toggle + version-compat gate in pick_build_path #607

@bdraco

Description

@bdraco

The 7b offloader Settings UI shipped (#574) with every toggle except Allow major-version mismatch. The compile-side enforcement gate hasn't landed either: pick_build_path doesn't consume StoredPairing.esphome_version today, so a remote receiver running a different major ESPHome version than the offloader is silently treated as eligible.

What's already in place

What's missing

  1. A version-compat gate in pick_build_path that filters peers whose esphome_version differs from the offloader's esphome.const.__version__ at the major level.
  2. A user-facing "Allow major-version mismatch" toggle on the offloader Settings UI (per-pairing or master — TBD) that widens the gate.
  3. The compile-time check that catches the mismatch before the receiver wastes CPU on an incompatible YAML.

Why deferred

Silently filtering eligible peers without an operator-visible override would be the wrong default — a user wouldn't know why their freshly-paired receiver suddenly stopped getting jobs. The gate and the toggle land together.

Acceptance

  • pick_build_path exposes a version-compat gate (default-on) that drops mismatched peers from the eligible set.
  • --no-X / explicit-on toggle on OffloaderRemoteBuildSettings + per-pairing override widens the gate.
  • Settings UI surfaces both (master + per-row).
  • Tests pin the matrix: matched-major eligible, mismatched-major filtered by default, override re-enables.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    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