Release Summary
This release focuses mostly on 'core' APIs, enabling tools like Amper or the IDE to build advanced tooling for Compose Hot Reload.
This is part of the ongoing stabilization process. Binaries produced by this repository are considered the 'Compose Hot Reload Core Technology'.
DevTools
- Rework the "Missing JBR" status item: * Use JB icons * Add a dialog window with more info about the current JVM
- Target compose 1.9.0-rc01
- DevTools: Provide 'WindowExceptionHandler' logging to the orchestration instead of crashing DevTools
Advanced Changes
The following changes are relevant for projects integrating with Compose Hot Reload (such as IntelliJ, Amper, ...)
Orchestration
- Implement an atomic distributed 'OrchestrationState' which allows sharing state across all orchestrated processes
- OrchestrationServer: Only announce a client as 'connected' when the writer queue is active
- Implement 'OrchestrationLoggerState' to indicate if (and which) loggers are active in the orchestration
- Implement 'OrchestrationListener' which allows the server to initiate the connection (once ready)
- Orchestration: Lenient packageType & opaque orchestration messages
- OrchestrationMessage: Remove class hierarchy sealing in favor of 'SubclassOptInRequired'
Core
- Deprecate 'OrchestrationProtocolVersion' in favor of 'OrchestrationVersion'
- Future: Dispose reference to 'Continuation' in await()
- :core: Fix 'isActive()' to respect kotlinx.coroutines.Job
- core: Check-in api dump
- Broadcast: Ensure relevant listeners are registered right away when .toChannel or invokeOnValue are called
- Logging: Respect logLevel from HotReloadEnvironment before dispatching logs