-
Notifications
You must be signed in to change notification settings - Fork 8
Description
Problem: Firmware-dependent capabilities are not represented
Background
Currently, all wearables of a given type expose all capabilities that are supported by any firmware version of that wearable. This implicitly assumes that all connected devices run the latest firmware.
However, for some wearables, new capabilities were introduced in later firmware releases. When a device runs an older firmware version, these capabilities may be:
- partially implemented,
- unavailable, or
- behave differently.
Problem Statement
Because capabilities are assigned solely based on the wearable type and not on the firmware version, the system cannot reliably determine which features are actually supported by a connected device. This leads to ambiguous behavior and increases the risk of runtime errors or unsupported operations when working with older firmware versions.
Desired Behavior
Capabilities should be conditionally enabled based on the firmware version of the connected wearable. A device should only expose the capabilities that are guaranteed to be supported by its currently installed firmware.
Proposed Direction (high-level)
Introduce a mechanism to:
- associate capabilities with minimum (and optionally maximum) firmware versions, and
- resolve the effective set of capabilities for a wearable at runtime based on its reported firmware version.
Motivation
- Avoid ambiguous or undefined behavior when interacting with older firmware
- Improve robustness of feature detection
- Make firmware evolution explicit and easier to reason about
- Enable backward compatibility without special-case logic in app code