⚠️ Breaking Release: Async-first refactor and protocol hardening
This release is a major internal refactor focused on long-term stability, reduced ban risk, and improved data quality across HTTP/MQTT flows.
Highlights
- Full async-first architecture with
aiohttptransport - Hardened MQTT command lifecycle (serialization, timeout handling, safer shutdown)
- Improved auth/session handling and disconnect behavior
- Better fixture-driven validation and significantly expanded automated test coverage
- Improved device and schedule payload mapping quality
Breaking Changes
- Synchronous WorxCloud context manager usage is deprecated
(migrate to async lifecycle usage) - Internal command/session behavior changed due to stricter lifecycle and timeout handling
- Refactored event/callback flow may affect integrations relying on previous callback semantics
Migration Notes
- Prefer async initialization and teardown patterns
- Review command helper usage and validate inputs explicitly
- Check custom callback handlers for async compatibility
- See migration and cheat sheet docs added in this release for examples
Features & Improvements
- Refactoring baseline and architecture hardening (#293, #318)
- Stabilized disconnect lifecycle and token error propagation (#294)
- HTTP retry improvements and reduced product lookup calls (#295)
- MQTT command serialization and enforced response timeout (#296)
- EventHandler callback isolation per instance (#303)
- HTTP session reuse in API request flow (#306)
- Improved MQTT timeout diagnostics and metadata logging (#308, #321)
- Improved device payload mapping and schedule mapping refactors (#310, #311, #312, #313)
- Optional in-flight command deduplication (#324)
- Async callback support in event dispatch (#323)
- Interactive live test dashboards (terminal + Windows GUI) (#327, #328)
Bug Fixes
- AWS CRT resources are now cleaned up correctly on MQTT disconnect (#307)
- API event callback payload handling fixed (#305)
Testing & Quality
- Introduced pytest foundation, fixtures, and CI workflow (#297)
- Added auth/lifecycle unit tests (#301)
- Added fixture-driven device decode tests (#302)
- Added MQTT command flow safety tests (#304)
- Added async context manager lifecycle coverage (#320)
Maintenance
- Added stale issue/PR workflow automation (#298)
- Updated AGENTS branch/PR workflow rules (#316)
- Removed unused debug artifacts/imports (#326)
- Added changelog + migration docs and async cheat sheet (#299, #325)