All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Single universal JAR works on both Fabric and NeoForge (no separate downloads)
- Custom mergeJar Gradle task for producing universal JAR (no external dependencies)
- NeoForge runtime initialization moved to FMLClientSetupEvent (proper lifecycle)
- Release workflow builds single universal JAR and publishes to Modrinth with both loader tags
- Removed unused maven-publish plugin from both subprojects
- Consolidated shared resources (lang, icon) in common/
- NeoForge support (single universal JAR works on both Fabric and NeoForge)
- Multi-loader project structure with shared common code
- Custom mergeJar Gradle task for producing universal JAR (no external dependencies)
- Restructured project to common/fabric/neoforge modules
- Shared runtime logic extracted to SmnToastClientRuntime
- Shared logger extracted to SmnToast class
- Release workflow builds universal JAR and publishes to Modrinth with both loader tags
- Minecraft 26.2 support
- Playerctl availability check on Linux with alert toast
- Flatpak D-Bus permission detection with alert toast
- Warning triangle icon for alert toasts (vs music note for normal toasts)
recheckAvailability()— periodic 60-second background recheck on daemon thread detects if playerctl was installed mid-game
- Migrated from Yarn mappings to Mojang official mappings (26.1+ requirement)
- Build toolchain: Loom 1.17, Gradle 9.5.1, Fabric Loader 0.19.3, Java 25
- Toast manager access:
getToastManager()→gui.toastManager()(26.2 Gui reorganization) - Toast rendering:
draw()→extractRenderState(),GuiGraphicsExtractorAPI
- Toast stops working after logout/rejoin (
isShowingflag stuck true) - Keybind shows "No music playing" instead of alert when playerctl missing
- Minecraft 26.1 support (first unobfuscated Minecraft version)
- Mojang official mappings migration (Yarn discontinued)
- Build toolchain: Loom 1.16, Gradle 9.4.1, Fabric API 0.151.0+26.1.2
- All API names updated from Yarn to Mojang mappings
- Java 21 → Java 25
- macOS support via AppleScript (contributed by NatsuCamellia)
- Guard against empty list from CommandRunner in LinuxTrackFetcher
- Package renamed from
mpristomedia - Modularized track fetching logic into separate fetcher classes
- Extracted CommandRunner utility
- Windows support via SMTC (System Media Transport Controls)
- Flatpak support for MPRIS detection via D-Bus
- Initial release
- MPRIS music detection with toast notifications on Linux
- Configurable keybind to show current track on demand
- Custom keybind category
- English translations