Known Limitations

This page records the actual boundaries of v0.3.1-beta; it is not a roadmap promise.

Fixed capacity must be handled by the caller

App launch, Animation, and Popup APIs can report capacity or transition failures, although some examples still ignore those results. AppManager::registerApp() returns void, so registration count must be reviewed before startup. See Resource limits for limits and tuning.

The ListView data API is low level

ListItem represents different item types through callbacks, a union, and non-owning pointers. This works well for static embedded data, but type safety and capacity observability can still improve.

The caller owns non-owning data lifetime

Widget text, XBM images, Chart buffers, Popup value references, App launch parameters, and lambda captures are usually not copied. See Callbacks and lifetime for the common rules.

The concurrency boundary is narrow

tickFromISR() is a special entry point for a timer ISR. See Event-driven rendering for the task ownership of all other APIs.