Releases: NucleusFramework/ComposeNativeTray
Release list
v2.0.3
Improvements
- TrayApp: the heap is trimmed ~1.5 s after the popup is hidden, so an app idling in the tray no longer holds on to garbage from the visible session. No visible jank (nothing is on screen, runs off the UI thread) and rapid open/close toggles are debounced. Audio-safe with native playback backends (rodio/composemediaplayer): JVM safepoints don't pause their native threads.
v2.0.2
Fixes
- macOS (Nucleus Tao backend): fixed a startup deadlock —
startTray()no longer blocks the calling thread on an init latch whiletray_initwaits for the GCD main queue. Tray init now runs inline on the caller. - Removed the 100 ms
tray_looppolling thread on macOS (events are delivered by the app's own AppKit run loop). - Removed dead JNA-era mouse-hook JNI code on Windows.
- Publications are signed only when a signing key is configured, so
publishToMavenLocalworks out of the box.
2.0.1
What's Changed
- fix(macos-tray): use native performClick for context menu to fix wrong popup position by @amirroid in #420
Full Changelog: v2.0.0...v2.0.1
v2.0.0
What's Changed
- feat(menu): add Composable tray menu DSL by @kdroidFilter in #403
- refactor: rename package to dev.nucleusframework.composenativetray by @kdroidFilter in #409
- Bump kotlinx-coroutines from 1.10.2 to 1.11.0 by @dependabot[bot] in #400
- Bump gradle-wrapper from 9.4.1 to 9.5.0 by @dependabot[bot] in #396
- Migrate to Nucleus 2.0 and drop platformtools/SingleInstanceManager by @kdroidFilter in #410
- feat: Tao-only TrayApp with transparent standalone popup panel (Windows) by @kdroidFilter in #414
- Promote TrayApp to a stable API; log instead of crashing on non-Tao backend by @kdroidFilter in #416
Full Changelog: v1.3.3...v2.0.0
1.3.3
1.3.2
What's Changed
- Fix stale native cache serving AVX build on CPUs without AVX (#401) by @kdroidFilter in #406
- Fix sd-bus thread-safety crash in Linux tray (#405) by @kdroidFilter in #407
Full Changelog: v1.3.1...v1.3.2
1.3.1
1.3.0
What's Changed
- feat: add onMenuOpened callback to Tray composable by @kdroidFilter in #385
- Bump org.jetbrains.compose from 1.10.0 to 1.10.3 by @dependabot[bot] in #384
- feat: add keyboard shortcut hints to tray menu items by @kdroidFilter in #389
Full Changelog: v1.2.0...v1.3.0
1.2.0
What's Changed
JNA completely removed ? JNI everywhere
The entire native layer has been rewritten. JNA has been fully removed on all three platforms (macOS, Linux, Windows) and replaced by JNI.
Linux native rewritten in C ~20x smaller
The Linux native library has been rewritten from Go to C, reducing the packaged binary size by approximately 20x.
Linux ARM64 support
Native Linux libraries are now compiled for both x86_64 and aarch64, bringing first-class support for Linux ARM64 devices.
GraalVM native-image compatibility
ComposeNativeTray is now compatible with Nucleus GraalVM native-image compilation. Reachability metadata, native-image properties, and a dedicated NativeLibraryLoader have been added to ensure proper resource extraction at runtime.
Build system restructured
- Native sources moved to
src/native/{macos,windows,linux}/with per-platform build scripts - Kotlin sources migrated from
commonMaintojvmMain - New reusable CI workflow for native builds
- Added Detekt + Ktlint for code quality
- Upgraded to Gradle 9.4.1
Bug fixes
- Fixed macOS Space behavior dispatch on main thread
- Fixed GraalVM JNI method lookup via
FindClasson interfaces
Full Changelog: v1.1.0...v1.2.0
1.1.0
What's Changed
- Fix macOS tray toggle and Space switching by @kdroidFilter in #373
- TrayApp Api is now in Alpha !
Full Changelog: v1.0.11...v1.1.0