Skip to content

Compatibility

Compatibility is the eligibility gate. Even if a device is in a deployment's audience and lands inside the cohort percentage, it will only be offered an artifact whose manifest matches its hardware profile.

Enforced dimensions

The decision engine currently enforces these dimensions on every check:

Dimension How matched
framework Exact: arduinoesp_idf.
chip_family Exact: esp32esp32s3esp32c3.
board_id Blank artifact constraint matches anything; otherwise exact.
hardware_revision Artifact's hardware_revision_min/max range (inclusive). Blank bounds mean no constraint.

Advisory dimensions (not yet enforced)

These fields are stored on artifacts and devices but the engine does not use them as a gate today. They are planned for a future phase.

Dimension Status
partition_profile Stored; not enforced. Mismatched partitions can still brick a device; validate in your own CI.
nvs_schema_version Stored; not enforced.
security_mode Stored; not enforced.

Worked rejection example

A device reports chip_family = esp32s3, board_id = freenove-cam. An artifact's manifest declares chip_family = esp32s3, board_id = esp32s3-devkitc-1.

Not compatible. board_id mismatch. Even at 100% rollout, this device sees {"update_available": false} for that artifact.