What's Changed
- fix(settings): hide root boot toggle on non-rooted devices, async root check by @LandonMoran in #123
- fix(settings): align restore path with init, remove unused import by @LandonMoran in #124
- feat: Request battery optimization exemption on start-on-boot toggle by @tim1540 in #125
- fix(settings): clean dev — reapply PRs #123, #124, #125 without accidental main merge by @LandonMoran in #127
- fix(boot): prevent crash loop in BootCompleteReceiver.rootStart() by @LandonMoran in #129
- fix(res): restore missing update strings; prep for beta release by @LandonMoran in #130
- fix(manifest): use specialUse FGS type for AdbPairingService by @LandonMoran in #131
- fix(worker/notifications): stale notification cleanup + FGS refresh by @LandonMoran in #134
- feat(settings): restructure App Updates into top-level Settings group by @LandonMoran in #136
- feat(home,watchdog): add persistent TCP prompt dialog, fast-path bypass, and watchdog race protection by @CodexofLost in #135
- fix(i18n): complete tcp_prompt_dialog translations across all locales by @LandonMoran in #138
- refactor(manager): remove unused dependencies, dead legacy views, and obsolete XML assets by @CodexofLost in #141
- feat(manager): connect reactive server state flow to Home and Compose UI by @CodexofLost in #142
- fix(boot): keep ADB start pending on cellular until Wi-Fi returns by @LandonMoran in #144
- refactor(manager): replace binder polling loops with event-driven state transitions by @CodexofLost in #145
- fix(auth): eliminate UI-thread blocking CountDownLatch in RequestPermissionActivity by @CodexofLost in #146
- refactor(tasker): replace polling sleep in server restart with binder death listener by @CodexofLost in #147
- perf(server): optimize system service wait and remote process wait timeout by @CodexofLost in #148
- fix: kick backoff-parked start worker when unmetered Wi-Fi returns by @LandonMoran in #149
- fix: worker survives Wi-Fi-off boot in TCP mode (match reference contract) by @LandonMoran in #151
- fix(dhizuku): drop ADB-TCP 5555 fallback from Dhizuku starter by @LandonMoran in #160
- feat(ui): clean up Home top bar, add Pull-to-Refresh, and relocate About to Settings by @CodexofLost in #154
- fix(starter): resolve 'Waiting for service...' hang with ContentProvider backoff and starter watchdog by @CodexofLost in #152
- feat(ui): add search, permission filter chips, and search bar modernization by @CodexofLost in #157
- feat(ui): align with Material 3 Expressive guidelines by @CodexofLost in #155
- feat(ui): modernize dialogs to Material 3 Expressive Compose specifications by @CodexofLost in #156
- feat(ui): add daemon startup indicator, unify squircle icon styling, and replace alpha surfaces by @CodexofLost in #158
- fix(watchdog): resolve server process name mismatch in fallback force-stop by @CodexofLost in #161
- fix(worker): recover stale wireless port via loopback probe; surface retry reason by @LandonMoran in #159
- fix(starter): resolve MaterialAlertDialogBuilder compiler error in StarterActivity by @CodexofLost in #162
- fix(auth): restore INTERACT_ACROSS_USERS_FULL guard on RequestPermissionActivity by @CodexofLost in #163
- fix(adb): suppress duplicate USB debugging prompts and watchdog race by @CodexofLost in #167
- fix(starter): pre-warm ShizukuManagerProvider to resolve 'Waiting for service...' timeout by @CodexofLost in #166
- refactor(ui): migrate ADB discovery/pairing dialogs and Tasker EditActivity to Compose by @CodexofLost in #165
- refactor(ui): migrate activity dialogs to Compose AlertDialog by @CodexofLost in #164
New Contributors
- @CodexofLost made their first contribution in #135
Full Changelog: 13.9.0.r32...13.9.0.r35