Repository navigation
Releases
v8.0.0
What's New
WLED 8.0.0 unifies the official Android and iOS apps in a single Kotlin Multiplatform codebase while bringing major new features to both platforms:
- Home Screen Widgets, Siri & Shortcuts: Interactive Home Screen widgets on iOS (with Liquid Glass support, Siri, Shortcuts, and Action button integration) and a refreshed Material 3 widget layout on Android featuring live Wi-Fi signal strength indicators and an ambient glow when lights are on.
- What's New Changelog: Automatically view localized release notes after an update or revisit them anytime from Settings on both Android and iOS.
- Feature Parity on iOS: OTA firmware updates for custom QuinLED and MoonModules boards alongside official WLED releases, theme selection, offline device grouping, automatic discovery controls, battery level indicators, and German & Simplified Chinese translations.
- Smoother Discovery & Real-Time Connections: Shared mDNS discovery and WebSocket state management with a 60-second offline grace period, Android 17 local network permission support, a connection progress bar, and fixed WebView file uploads on Android.
🚀 New Features
- Improve iOS widget initial configuration and unconfigured state (#296) @Moustachauve
- Add curated short Google Play release notes and skill workflows (#297) @Moustachauve
- Add /prepare-release skill for beta and production release preparation (#292) @Moustachauve
- Show indeterminate loading bar at top of device WebView (#291) @Moustachauve
- Replace iOS HTML error pages with native SwiftUI error view (#290) @Moustachauve
- Add German and Simplified Chinese localizations to iOS (#289) @Moustachauve
- Support localized What's New changelogs and store release notes (#287) @Moustachauve
- Automate Android and iOS beta and production releases via GitHub Actions and Fastlane (#286) @Moustachauve
- Display WiFi signal strength icon in Android and iOS widgets (#283) @Moustachauve
- Polish Android Home Screen widget layout and Material 3 theme (#282) @Moustachauve
- Polish iOS Home Screen widget layout and Liquid Glass support (#281) @Moustachauve
- Add iOS Home Screen WidgetKit extension and live widget state sync (#272) @Moustachauve
- Add iOS App Intents, widget views, and snapshot tests (#271) @Moustachauve
- Bring iOS device list, edit, and OTA update UI to parity with Android (#269) @Moustachauve
- Respect the automatic discovery setting and add it to iOS (#263) @Moustachauve
- Add What's New changelog sheet on iOS and share version filtering logic. (#262) @Moustachauve
- Style changelog sheet with pixel font, version cards, and floating action. (#261) @Moustachauve
- Adopt shared UserPreferencesRepository and @observable view models on iOS (#257) @Moustachauve
- Adopt shared DeviceConnectionManager in iOS app (#239) @Moustachauve
- Adopt shared DeviceConnectionManager on Android (#246) @Moustachauve
- Add database persistence and firmware update polling to DeviceConnectionManager (#248) @Moustachauve
- Implement core real-time DeviceConnectionManager in shared module (#247) @Moustachauve
- Add multiplatform device connection and partitioning foundations (#237) @Moustachauve
- Tune Gradle JVM options and modernize build performance settings (#240) @Moustachauve
- Fetch device info on iOS through the shared DeviceApi (#234) @Moustachauve
- Migrate iOS app persistence from Core Data to shared Room database (#231) @Moustachauve
- Integrate native iOS application into monorepo and link Shared framework (#229) @Moustachauve, @sqrt0b1000, @gemini-code-assist[bot], @google-labs-jules[bot]
- Export Shared KMP module as an XCFramework for iOS consumption (#227) @Moustachauve
- feat(kmp): migrate DeviceDiscovery (mDNS) to shared module for Android and iOS (#224) @Moustachauve
- feat(kmp): implement IosNetworkConnectivityManager and iOS unit tests (Phase 4.3) (#222) @Moustachauve
- feat(kmp): implement AndroidNetworkConnectivityManager and migrate :app (Phase 4.2) (#221) @Moustachauve
- feat(kmp): define shared NetworkConnectivityManager interface and NetworkStatus model (Phase 4.1) (#220) @Moustachauve
- refactor(kmp): migrate DataStore and UserPreferences to :shared (Step 3.6) (#219) @Moustachauve
- refactor(kmp): migrate Ktor API clients, WebSockets, and ReleaseService to :shared (Step 3.5) (#218) @Moustachauve
- refactor(kmp): migrate Room database, entities, and repositories to :shared (Step 3.4) (#217) @Moustachauve
- feat(kmp): configure SKIE gradle plugin for swift interop in :shared (#216) @Moustachauve
- refactor(kmp): migrate pure network DTOs, models, and utilities to :shared (#215) @Moustachauve
- feat(kmp): scaffold :shared multiplatform module targeting android and ios (#214) @Moustachauve
- feat(room): switch SQLite driver to BundledSQLiteDriver and update migrations for Room KMP (#206) @Moustachauve
- feat(websocket): migrate to Ktor Client WebSockets and modernize state architecture (#205) @Moustachauve
- refactor: migrate HTTP networking from Retrofit to Ktor Client (#200) @Moustachauve
- feat: migrate navigation from Navigation Compose to Navigation 3 (#192) @Moustachauve
- feat: Whats new view (#155) @Moustachauve
🐛 Bug Fixes
- Keep reflective constructors for Glance widget workers and actions in R8 (#301) @Moustachauve
- Request local network permission on Android 17 and prevent NSD picker loop (#293) @Moustachauve
- Avoid blocking the main thread when loading the initial app theme (#294) @Moustachauve
- Seed baseline changelog version when migrating from pre-8.0 installs (#285) @Moustachauve
- Resolve Swift compiler warnings in Xcode across app and test targets (#270) @Moustachauve
- Fix WebView file uploads and retain upload callbacks across configuration changes (#266) @Moustachauve
- Fix iOS build warnings in Xcode (#241) @Moustachauve
- Support unsigned 32-bit values for nightlight remaining time (#235) @Moustachauve
- Merge main into dev (v7.0.1 hotfix sync) (#188) @Moustachauve
- fix(widget): prevent crash when publishing widget previews (#156) @Moustachauve
🧰 Maintenance
- Release 8.0.0 (#306) @Moustachauve
- Record main (v7.0.1) merge ancestry in dev (#307) @Moustachauve
- Prepare 8.0.0 release changelogs and translations (#305) @Moustachauve
- Chore(deps): Bump gradle/actions from 6.4.0 to 6.4.1 (#302) @dependabot[bot]
- Chore(deps): Bump com.google.devtools.ksp from 2.3.12 to 2.3.13 (#304) @dependabot[bot]
- Chore(deps): Bump com.android.tools.screenshot:screenshot-validation-api from 0.0.1-alpha16 to 0.0.1-alpha17 (#303) @dependabot[bot]
- Speed up the iOS CI check (#300) @Moustachauve
- Migrate Compose screenshot testing to AGP 9.5 test suites (#299) @Moustachauve
- Update libs.versions.toml (#298) @Moustachauve
- Improve iOS widget initial configuration and unconfigured state (#296) @Moustachauve
- Add curated short Google Play release notes and skill workflows (#297) @Moustachauve
- Extract local network permission controller and refine retry flow (#295) @Moustachauve
- Request local network permission on Android 17 and prevent NSD picker loop (#293) @Moustachauve
- Avoid blocking the main thread when loading the initial app theme (#294) @Moustachauve
- Add /prepare-release skill for beta and production release preparation (#292) @Moustachauve
- Show indeterminate loading bar at top of device WebView (#291) @Moustachauve
- Replace iOS HTML error pages with native SwiftUI error view (#290) @Moustachauve
- Add German and Simplified Chinese localizations to iOS (#289) @Moustachauve
- Move back changes to dev since we're not quite ready for a release yet. (#288) @Moustachauve
- Support localized What's New changelogs and store release notes (#287) @Moustachauve
- Automate Android and iOS beta and production releases via GitHub Actions and Fastlane (#286) @Moustachauve
- Prepare unified 8.0.0 release for Android and iOS (#284) @Moustachauve
- Display WiFi signal strength icon in Android and iOS widgets (#283) @Moustachauve
- Polish Android Home Screen widget layout and Material 3 theme (#282) @Moustachauve
- Remove unused Gradle dependencies and update Android and iOS packages (#280) @Moustachauve
- Add iOS Home Screen WidgetKit extension and live widget state sync (#272) @Moustachauve
- Add iOS App Intents, widget views, and snapshot tests (#271) @Moustachauve
- Resolve Swift compiler warnings in Xcode across app and test targets (#270) @Moustachauve
- Bring iOS device list, edit, and OTA update UI to parity with Android (#269) @Moustachauve
- Use targeted device updates and markUpdateInstalled on Android (#268) @Moustachauve
- Fix WebView file uploads and retain upload callbacks across configuration changes (#266) @Moustachauve
- Upload failed screenshot diffs as a dedicated CI artifact (#265) @Moustachauve
- Respect the automatic discovery setting and add it to iOS (#263) @Moustachauve
- Add What's New changelog sheet on iOS and share version filtering logic. (#262) @Moustachauve
- Style changelog sheet with pixel font, version cards, and floating action. (#261) @Moustachauve
- Adopt shared UserPreferencesRepository and @observable view models on iOS (#257) @Moustachauve
- Add SwiftUI snapshot testing for the iOS device list screen (#260) @Moustachauve
- Remove unused Android resources and exclude dev-only files from app binaries (#258) @Moustachauve
- Add Compose Preview screenshot testing for the device list screen (#259) @Moustachauve
- Unify device discovery handling and offline grace-period partitioning (#256) @Moustachauve
- Remove stale firmware update strings from iOS String Catalog (#255) @Moustachauve
- Wire iOS shared dependencies through isolated Koin containers (#254) @Moustachauve
- Unify DeviceF...
v8.0.0-beta.3
What's New
This third beta of WLED 8.0.0 fixes an issue on Android where Home Screen widgets could remain stuck on the loading spinner or fail to toggle power in minified release builds, and updates shared Kotlin, Ktor, and SKIE dependencies across Android and iOS.
🐛 Bug Fixes
- Keep reflective constructors for Glance widget workers and actions in R8 (#301) @Moustachauve
🧰 Maintenance
- Speed up the iOS CI check (#300) @Moustachauve
- Migrate Compose screenshot testing to AGP 9.5 test suites (#299) @Moustachauve
- Update libs.versions.toml (#298) @Moustachauve
Contributors
v8.0.0-beta.2
What's New
This second beta of WLED 8.0.0 improves initial iOS Home Screen widget configuration and unconfigured state handling, adds support for the Android 17 local network permission (preventing repeated system NSD picker prompts and showing a helpful banner if permission is denied), and resolves a startup main-thread block when loading the initial app theme.
🚀 New Features
- Improve iOS widget initial configuration and unconfigured state (#296) @Moustachauve
🐛 Bug Fixes
- Request local network permission on Android 17 and prevent NSD picker loop (#293) @Moustachauve
- Avoid blocking the main thread when loading the initial app theme (#294) @Moustachauve
🧰 Maintenance
- Add curated short Google Play release notes and skill workflows (#297) @Moustachauve
- Extract local network permission controller and refine retry flow (#295) @Moustachauve
Contributors
v8.0.0-beta.1
What's New
Welcome to the first beta of WLED 8.0.0! This release marks a major architectural milestone: the Android and iOS apps now live in a unified monorepo powered by a Kotlin Multiplatform (KMP) shared backend—bringing a complete backend migration to the iOS app (shared Room database with automatic Core Data migration, Ktor HTTP & WebSocket connection management, mDNS discovery, DataStore preferences, and OTA firmware updates) alongside full feature parity across both platforms.
Highlights in v8.0.0-beta.1:
- Unified Kotlin Multiplatform Backend: Shared real-time WebSocket management, faster mDNS discovery, a 60-second offline grace period, and shared OTA firmware update engine across Android and iOS.
- iOS Feature Parity & New Capabilities: Home Screen widgets (with Liquid Glass support), Siri & Shortcuts actions, Custom Firmware Updates (QuinLED & MoonModules), Theme Selection, Offline Device Grouping, Automatic Discovery toggle, native unreachable-device view, and German & Simplified Chinese translations.
- Refreshed Home Screen Widgets: Updated Material 3 adaptive widget layout on Android and live Wi-Fi signal strength indicators on both platforms.
- In-App "What's New" Changelog: Automatically view localized release notes after an update or revisit them anytime from Settings.
🚀 New Features
- Show indeterminate loading bar at top of device WebView (#291) @Moustachauve
- Replace iOS HTML error pages with native SwiftUI error view (#290) @Moustachauve
- Add German and Simplified Chinese localizations to iOS (#289) @Moustachauve
- Support localized What's New changelogs and store release notes (#287) @Moustachauve
- Display WiFi signal strength icon in Android and iOS widgets (#283) @Moustachauve
- Polish Android Home Screen widget layout and Material 3 theme (#282) @Moustachauve
- Polish iOS Home Screen widget layout and Liquid Glass support (#281) @Moustachauve
- Add iOS Home Screen WidgetKit extension and live widget state sync (#272) @Moustachauve
- Add iOS App Intents, widget views, and snapshot tests (#271) @Moustachauve
- Bring iOS device list, edit, and OTA update UI to parity with Android (#269) @Moustachauve
- Respect the automatic discovery setting and add it to iOS (#263) @Moustachauve
- Add What's New changelog sheet on iOS and share version filtering logic. (#262) @Moustachauve
- Style changelog sheet with pixel font, version cards, and floating action. (#261) @Moustachauve
- Adopt shared UserPreferencesRepository and @observable view models on iOS (#257) @Moustachauve
- Adopt shared DeviceConnectionManager on Android (#246) @Moustachauve
- Add database persistence and firmware update polling to DeviceConnectionManager (#248) @Moustachauve
- Implement core real-time DeviceConnectionManager in shared module (#247) @Moustachauve
- Adopt shared DeviceConnectionManager in iOS app (#239) @Moustachauve
- Add multiplatform device connection and partitioning foundations (#237) @Moustachauve
- Fetch device info on iOS through the shared DeviceApi (#234) @Moustachauve
- Migrate iOS app persistence from Core Data to shared Room database (#231) @Moustachauve
- Integrate native iOS application into monorepo and link Shared framework (#229) @Moustachauve, @sqrt0b1000, @gemini-code-assist[bot], @google-labs-jules[bot]
- Export Shared KMP module as an XCFramework for iOS consumption (#227) @Moustachauve
- feat(kmp): migrate DeviceDiscovery (mDNS) to shared module for Android and iOS (#224) @Moustachauve
- feat(kmp): implement IosNetworkConnectivityManager and iOS unit tests (Phase 4.3) (#222) @Moustachauve
- feat(kmp): implement AndroidNetworkConnectivityManager and migrate :app (Phase 4.2) (#221) @Moustachauve
- feat(kmp): define shared NetworkConnectivityManager interface and NetworkStatus model (Phase 4.1) (#220) @Moustachauve
- feat(kmp): configure SKIE gradle plugin for swift interop in :shared (#216) @Moustachauve
- feat(kmp): scaffold :shared multiplatform module targeting android and ios (#214) @Moustachauve
- feat(room): switch SQLite driver to BundledSQLiteDriver and update migrations for Room KMP (#206) @Moustachauve
- feat(websocket): migrate to Ktor Client WebSockets and modernize state architecture (#205) @Moustachauve
- feat: migrate navigation from Navigation Compose to Navigation 3 (#192) @Moustachauve
- feat: Whats new view (#155) @Moustachauve
🐛 Bug Fixes
- Seed baseline changelog version when migrating from pre-8.0 installs (#285) @Moustachauve
- Resolve Swift compiler warnings in Xcode across app and test targets (#270) @Moustachauve
- Fix WebView file uploads and retain upload callbacks across configuration changes (#266) @Moustachauve
- Fix iOS build warnings in Xcode (#241) @Moustachauve
- Support unsigned 32-bit values for nightlight remaining time (#235) @Moustachauve
- Merge main into dev (v7.0.1 hotfix sync) (#188) @Moustachauve
- fix(widget): prevent crash when publishing widget previews (#156) @Moustachauve
🧰 Maintenance
- Add /prepare-release skill for beta and production release preparation (#292) @Moustachauve
- Move back changes to dev since we're not quite ready for a release yet. (#288) @Moustachauve
- Automate Android and iOS beta and production releases via GitHub Actions and Fastlane (#286) @Moustachauve
- Prepare unified 8.0.0 release for Android and iOS (#284) @Moustachauve
- Remove unused Gradle dependencies and update Android and iOS packages (#280) @Moustachauve
- Use targeted device updates and markUpdateInstalled on Android (#268) @Moustachauve
- Upload failed screenshot diffs as a dedicated CI artifact (#265) @Moustachauve
- Add SwiftUI snapshot testing for the iOS device list screen (#260) @Moustachauve
- Add Compose Preview screenshot testing for the device list screen (#259) @Moustachauve
- Remove unused Android resources and exclude dev-only files from app binaries (#258) @Moustachauve
- Unify device discovery handling and offline grace-period partitioning (#256) @Moustachauve
- Remove stale firmware update strings from iOS String Catalog (#255) @Moustachauve
- Wire iOS shared dependencies through isolated Koin containers (#254) @Moustachauve
- Unify DeviceFirstContactService and address validation in :shared (#253) @Moustachauve
- Migrate iOS firmware updates and releases to shared KMP module (#252) @Moustachauve
- Update Gradle, Android, and iOS dependencies to latest compatible versions (#251) @Moustachauve
- Update agent instructions, skills, and pre-commit guardrails (#250) @Moustachauve
- Optimize iOS check workflow and resolve test runner flakiness (#249) @Moustachauve
- Tune Gradle JVM options and modernize build performance settings (#240) @Moustachauve
- Bump iOS minimum deployment target to 18.0 (#238) @Moustachauve
- Migrate Android dependency injection from Hilt to Koin (#236) @Moustachauve
- Declare thrown exceptions on DeviceApi for Swift callers (#233) @Moustachauve
- Alphabetize String Catalog entries in Localizable.xcstrings (#232) @Moustachauve
- Rename project and documentation references to WLED-App (#230) @Moustachauve
- Optimize iOS CI workflow execution and cache Kotlin/Native toolchain (#228) @Moustachauve
- Update app dependencies and CI GitHub actions to latest stable versions (#226) @Moustachauve
- ci: test and lint KMP :shared module across Android and iOS (#223) @Moustachauve
- refactor(kmp): migrate DataStore and UserPreferences to :shared (Step 3.6) (#219) @Moustachauve
- refactor(kmp): migrate Ktor API clients, WebSockets, and ReleaseService to :shared (Step 3.5) (#218) @Moustachauve
- refactor(kmp): migrate Room database, entities, and repositories to :shared (Step 3.4) (#217) @Moustachauve
- refactor(kmp): migrate pure network DTOs, models, and utilities to :shared (#215) @Moustachauve
- refactor(kmp): decouple Dagger Hilt from core repository, service, and domain classes (#213) @Moustachauve
- Chore(deps): Update dependencies to latest stable versions (#212) @Moustachauve
- refactor(kmp): decouple android.util.Log and semver4j using Kermit and KMP semver (#207) @Moustachauve
- chore: enable detekt UnusedImports, coroutine, bug, and style rules (#204) @Moustachauve
- refactor(test): modernize test suite to pure JUnit 5 and remove Robolectric (#203) @Moustachauve
- chore: optimize GitHub Actions workflows and remove duplicate PR triggers (#202) @Moustachauve
- Implement Selfie snapshot testing across model, serialization, and migration test suites (#201) @Moustachauve
- refactor: migrate HTTP networking from Retrofit to Ktor Client (#200) @Moustachauve
- chore: remove coderabbit configuration (#199) @Moustachauve
- chore: enable parallel sync for Gradle 9.4+ (#198) @Moustachauve
- refactor: replace DataStore Protobuf with kotlinx.serialization (#196) @Moustachauve
- chore: bump targetSdk to 37 (#195) @Moustachauve
- refactor: replace Moshi with kotlinx.serialization (#194) @Moustachauve
- chore: remove deprecated compose-navigation skill (#193) @Moustachauve
- chore: update and reorganize android agent skills into categories (#191) @Moustachauve
- chore(coderabbit): enable automatic reviews on dev branch (#190) @Moustachauve
- ci: optimize GitHub Actions cache and lint analysis (#189) @Moustachauve
- Chore(deps): Update all dependencies, Kotlin, and Gradle to latest stable versions (#187) @Moustachauve
- Chore(deps): Bump gradle-wrapper from 9.4.1 to 9.5.0 (#166) @dependabot[bot]
- Chore(deps): Bump com.google.devtools.ksp from 2.3.6 to 2.3.7 (#165) @dependabot[bot], @Moustachauve
- Chore(deps): Bump kotlin from 2.3.20 to 2.3.21 (#164) @dependabot[bot], @Moustachauve
- Chore(deps): Bump navigationCompose from 2.9.7 to 2.9.8 (#163) [@dependabot[bot]](https://github...
v7.0.1 (52)
What's New
Hotfix to help properly find the latest WLED version available.
🐛 Bug Fixes
- Fix version sorting by using SemVer instead of publishedDate (#168) @Moustachauve
🧰 Maintenance
- chore: bump app version to 7.0.1 (#169) @Moustachauve
Contributors
v7.0.0 (51)
Summary
• New Widgets: Redesigned interactive home screen widgets with quick actions, dynamic colors, and real-time syncing.
• Device Controls: Control lights directly from Android's quick settings.
• Updates: OTA update support for MoonModules and QuinLED boards.
• Deep Linking: Support for opening wled:// links.
• More: German & Chinese translations, better auto-discovery, offline management, and bug fixes.
What's New
- Chore(deps): Bump protobufJavalite from 4.34.0 to 4.34.1 (#145) @dependabot[bot]
- Chore(deps): Bump gradle-wrapper from 9.4.0 to 9.4.1 (#143) @dependabot[bot]
- Chore(deps): Bump androidx.compose:compose-bom from 2026.03.00 to 2026.03.01 (#146) @dependabot[bot]
- Chore(deps): Bump com.diffplug.spotless from 8.3.0 to 8.4.0 (#144) @dependabot[bot]
- Chore(deps): Bump release-drafter/release-drafter from 6 to 7 (#135) @dependabot[bot]
- fix: update widget when device IP address changes (#139) @Moustachauve
- Chore(deps): Bump gradle-wrapper from 9.3.1 to 9.4.0 (#138) @dependabot[bot]
- Chore(deps): Bump com.google.devtools.ksp from 2.3.4 to 2.3.6 (#137) @dependabot[bot]
- Chore(deps): Bump kotlin from 2.3.10 to 2.3.20 (#136) @dependabot[bot]
- Refactor settings update logic (#133) @Moustachauve
- Chore(deps): Bump actions/upload-artifact from 6 to 7 (#128) @dependabot[bot]
- Change style of power button for
offdevices and refactor (#111) @Moustachauve - feat: Add Android 11 Device Controls (#108) @Moustachauve
- Bump app version to 7.0.0-beta260113-01 (#107) @Moustachauve
- Refactor: Extract drawer and utils from DeviceListDetail (#106) @Moustachauve
- Chore(deps): Bump io.mockk:mockk from 1.14.0 to 1.14.7 (#105) @dependabot[bot]
- Chore(deps): Bump protobufJavalite from 4.33.2 to 4.33.4 (#104) @dependabot[bot]
- Refactor: Extract widget components and improve theming (#102) @Moustachauve
- feat: Add Quick Actions to wide widget (#100) @Moustachauve
- Pull dev into master (#87) @Moustachauve
🚀 New Features
- fix(ui): improve DeviceEdit experience for offline devices without state (#152) @Moustachauve
- feat: improve update source display on device edit screen (#149) @Moustachauve
- Enhance dynamic repository tracking and introduce auto-discovery (#134) @Moustachauve
- Update repo tracking system - respect repo (#125) @netmindz
- Add ESP32_V4 release name override for versions >= 0.16.0 (#130) @netmindz
- refactor(widget): Centralize device name logic and improve widget upd… (#113) @Moustachauve
- feat(widget): Add widget preview for Android 15 (#112) @Moustachauve
- feat: add de translation (#12) @starfetch
- I18n: Add French and Chinese translations for widget strings (#103) @Moustachauve
- feat: Display last updated time as a chronometer in widgets (#99) @Moustachauve
- Feat: Update widgets from WebSocket state and sync with each others (#98) @Moustachauve
- feat(widget): Redesign device widget and add refresh button (#97) @Moustachauve
- Feat: Add dynamic coloring and previews for widgets (#95) @Moustachauve
- feat: Add deep linking support for wled:// scheme and AP mode (#94) @Moustachauve
- Feature: Open device from widget (#92) @Moustachauve
- Add WLED Widget using Jetpack Glance (#83) @google-labs-jules[bot]
🐛 Bug Fixes
- fix(ui): improve DeviceEdit experience for offline devices without state (#152) @Moustachauve
- Fix update refresh issue and refactor DeviceEdit UI with State Hoisting (#151) @Moustachauve
- Fix: Use FLAG_MUTABLE for notification PendingIntent (#110) @Moustachauve
🧰 Maintenance
- Merge dev into main for 7.1 (#154) @Moustachauve
- Fix update refresh issue and refactor DeviceEdit UI with State Hoisting (#151) @Moustachauve
- Update release-drafter templates to use RESOLVED_VERSION (#150) @Moustachauve
- Chore(deps): Bump gradle/actions from 5 to 6 (#142) @dependabot[bot]
- Fix release-drafter releaser on pull requests and enable autolabeler (#148) @Moustachauve
- build: Enforce complete translations in CI checks (#140) @Moustachauve
- chore: add awesome-android-agent-skills (#132) @Moustachauve
- Update dependencies (#131) @Moustachauve
- feat: Run check workflow on push to main and dev (#101) @Moustachauve
- CI: Optimize Gradle build and test execution (#96) @Moustachauve
- Create AGENTS.md (#93) @google-labs-jules[bot]
- Add Code Formatting (Spotless) and Static Analysis (Detekt) (#85) @google-labs-jules[bot]
- Chore(deps): Bump actions/checkout from 4 to 6 (#89) @dependabot[bot]
- Chore(deps): Bump actions/setup-java from 4 to 5 (#90) @dependabot[bot]
- Chore(deps): Bump gradle/actions from 4 to 5 (#91) @dependabot[bot]
- Chore(deps): Bump actions/upload-artifact from 4 to 6 (#88) @dependabot[bot]
- chore: Configure development workflow, automation, and guidelines (#86) @Moustachauve
New Contributors
- @starfetch made their first contribution in #12
- @netmindz made their first contribution in #130
All Contributors
@Copilot, @Moustachauve, @dependabot[bot], @google-labs-jules[bot], @netmindz, @starfetch, dependabot[bot] and google-labs-jules[bot]
Full Changelog: v6.1.0...v7.0.0
v6.1.0 (48)
- New native error screen when devices are unreachable
- Added Chinese translation
- Improved file downloads handling
- Increased connection timeout to 30 seconds for better stability
- Pressing "Back" now closes the navigation menu
- Fixed bugs with device addresses and visual sliders
What's Changed
- Fix: Improve HTML error message parsing by @Moustachauve in #69
- Fix: Close navigation drawer on back press by @Moustachauve in #70
- Prevent overriding non-IP device addresses by @Moustachauve in #74
- Refactor: Exclude nightly and sanitize version tags by @Moustachauve in #73
- feat: add zh translation by @kap1bala in #51
- Refactor: Adjust tooltip sizing in SliderWithLabel by @Moustachauve in #75
- Feat: Replace WebView error page with native screen by @Moustachauve in #76
- Feat: Increase network timeout to 30 seconds by @Moustachauve in #77
- feat: Update dependencies by @Moustachauve in #79
- Refactor: Use version catalog for protoc artifact by @Moustachauve in #80
- Refactor: Move update logic to MainViewModel by @Moustachauve in #81
- feat: Improve file download handling in WebView by @Moustachauve in #82
- Add GitHub Actions for Tests and Lint by @google-labs-jules[bot] in #78
- Feat: Add translation for hidden devices string by @Moustachauve in #84
New Contributors
Full Changelog: v6.0.1...v6.1.0
v6.0.1 (47)
- Fix issues with devices on WLED version 0.14.2
- Minor crash fixes
What's Changed
- Fix Android 15 Edge-to-Edge Deprecated API Warnings by @google-labs-jules[bot] in #61
- Fix WLED 0.14.2 websocket connection issue and Disable dependency metadata in APK builds by @Moustachauve in #65
- Improve error handling for Github API and other code improvements by @Moustachauve in #66
- Fix sql constraint error and other misc code improvements by @Moustachauve in #67
- Fix crash when calling openUri and other improvements by @Moustachauve in #68
Full Changelog: v6.0.0...v6.0.1
v6.0.0 (46)
Major improvement: the app is now using websockets to communicate with the WLED devices. This should mean a more stable connection and more reactive interface!
- App is renamed to simply "WLED" from "WLED-Native"
- Fix crash when failing to start discovery
- Battery icon will show if the right usermod is present
- Bug fixes and stability improvement
What's Changed
- Battery icon by @Topchris18 in #32
- Update Gradle dependencies by @Moustachauve in #39
- initial fastlane structures from IzzyOnDroid by @IzzySoft in #43
- Refactor SwipeToDismissBox to use
onDismissby @Moustachauve in #46 - Rename app to WLED from WLED Native by @Moustachauve in #47
- Migrate from kapt to ksp by @Moustachauve in #48
- Refactor Gradle scripts and configuration by @Moustachauve in #49
- Refactor the whole project so device connects with Websockets by @Moustachauve in #52
- Enhance UX: Dynamic Device Status, UI Responsiveness, and Lifecycle Management by @Moustachauve in #53
- Fix Compose preview for UpdateInstallingDialog by @google-labs-jules[bot] in #55
- Fix issue where hidden devices are never shown by @Moustachauve in #57
- Upgrade gradle, remove unused packages and update code to get rid of JSoup and LiveData by @Moustachauve in #58
- Remove grace period, implement MAC-based discovery fast track and slightly throttle database updates from websockets by @Moustachauve in #59
- Fix Webview glitches and Online device list not updating by @Moustachauve in #60
New Contributors
- @Topchris18 made their first contribution in #32
- @IzzySoft made their first contribution in #43
- @google-labs-jules[bot] made their first contribution in #55
Full Changelog: v5.0.0...v6.0.0
v5.0.0 (40)
What's Changed
WLED Native gets an updated look! With this version, the user interface has been rewritten from the ground up. It should be faster, more stable and look better.
A lot of bugs were also fixed.
Full Changelog: v4.1.1...v5.0.0