Objectives
Eliminate post‑unlock UI desynchronization, overview/gesture breakages, and OEM‑specific crashes as top trust blockers within one quarter[1][2].
Ship a focused set of UX and organization features that users requested, without compromising performance or simplicity principles[3][4].
Instrument, test, and publish performance, stability, and accessibility SLOs aligned to Android guidance to rebuild confidence[5][6].
Fix post‑unlock UI freeze/desync on Android 14
Symptom: UI stops visually updating after unlock when another app woke the device; taps open the wrong entries because the visual state is stale[1][2].
Repro: Home → screen off → Assistant/Tasker/call wakes device → back to lock → unlock → Niagara responds but doesn’t redraw in foreground[1][2].
Notes: Workarounds are force‑stop or granting Accessibility; both are unacceptable long‑term for trust and security posture[1][2].
Actions:
Add unlock‑path state sync: assert lifecycle, force first‑draw invalidation, and resubscribe to composition/vsync post‑unlock with watchdog if no frame within one refresh window[5][1].
Capture Perfetto traces (FrameTimeline, JankStats) on unlock with diagnostic toggle for targeted users to isolate missed draws and buffer lifetimes[5][1].
Publish upstream references and solicit device/ROM/version tuples to refine scope and increase platform pressure for a framework fix[2][7].
Acceptance: p95 time‑to‑first‑draw after unlock < 150ms; zero tap‑misroute reports over 14‑day 5% staged rollout; no Accessibility workaround required[5][1].
Stop “Niagara replaces app in overview” during gesture recents
Symptom: Recents displays Niagara in place of the last app; tapping returns home instead of resuming the task; partial fix exists but recurs post‑install/update until restart[3][1].
Actions:
Audit task/affinity flags, setRecentsAnimation callbacks, and activity launch modes around cold starts and post‑update lifecycle, then trigger an automatic “Restart launcher” one‑shot after update to prevent the recurrence window[3][1].
Validate snapshot timing and ensure surfaces are not reclaimed prematurely during recents animation transactions[1][5].
Acceptance: No observed task hijacks on Pixel/gesture nav across 500 device‑days; no “tap opens home instead of app” reports post‑update at 10% rollout[3][1].
Fix Xiaomi HyperOS 2 (Android 15) crash cluster
Symptom: Excessive crashes on Xiaomi’s Android 15, reportedly not seen with Nova; implies implementation‑specific fragility under HyperOS 2 compositor or recents integration[3][8].
Actions:
Reproduce on HyperOS 2 reference hardware and collect tombstones/ANRs and SurfaceFlinger dumps; coordinate with Xiaomi Dev channels and capture reduced repro if vendor defect suspected[3][9].
Add feature gating or alt paths on HyperOS for known problematic animation/gesture sequences pending OEM fix[3][8].
Acceptance: Crash‑free sessions increase to parity with non‑Xiaomi devices at p95; no spike in Vitals after re‑enable of gated paths on affected SKUs[3][9].
Stabilize favorites reordering (uncontrolled acceleration)
Symptom: Dragging the last visible favorite makes the list scroll too fast when the list exceeds viewport height, preventing precise placement[3].
Actions: Clamp auto‑scroll velocity during drag, add hysteresis and edge “precision zone,” and snap to nearest target with larger hit slop while dragging[3][5].
Acceptance: Task success rate ≥ 99% in usability runs for reordering long favorite lists with fewer than 2 corrections per move at 5% A/B exposure[3][5].
Battery spikes and UI lag reports
Evidence: Users report Niagara rising to top battery consumer alongside lag, indicating background processing or observer over‑subscription issues[10][1].
Actions: Add wakeup caps, migrate heavy work to idle with JobScheduler constraints, and profile with Batterystats + Perfetto to remove long‑running main‑thread work and redundant listeners[5][10].
Acceptance: p95 daily foreground energy for launcher ≤ baseline grid launcher cohort; Vitals “excessive wakeups” under threshold for 30 days[5][10].
Widget stack cap and adaptive budget
Status: Static cap at four widgets due to performance and stability concerns; considered for increase later[3].
Actions: Replace fixed cap with adaptive mode that expands under charge/high‑RAM and contracts under thermal/frame‑time pressure; show current budget and cause of contraction to users for transparency[3][5].
Acceptance: No regression in frame pacing on widget‑heavy setups; fewer complaints about insufficient stacks; no increase in crashes due to widget rendering over 30 days[3][5].
Notification badges/dots option
Status: Planned; alternative to preview text for minimal UI preference[3].
Actions: Provide three levels: 0/1/2 preview lines or dot, with per‑app exceptions and privacy respect mirroring lock‑screen settings; A/B for glanceability vs clutter[3].
Acceptance: Net positive sentiment on feedback board and reduced “too verbose” complaints at 25% rollout[3].
Upcoming alarm indicator in date/time widget
Status: Low priority; user‑requested compact alarm glyph/time next to clock[3].
Actions: Source from AlarmManager; respect DND and work profile calendars when hidden; expose toggle in widget settings[3].
Acceptance: No measurable jank impact; positive sentiment with minimal complexity increase[3].
Search provider expansion
Status: Planned; limitation cited: suggestions require parsable responses, blocking arbitrary custom URLs[3].
Actions: Define provider plug‑in contract for JSON suggestion endpoints; support Google, DDG, Bing, Kagi, Brave, Startpage with suggestion mode, and “Custom via URL” without suggestions as graceful fallback[3].
Acceptance: No crashes from malformed responses; clear UI affordance when suggestions are unavailable for custom engines[3].
Work profile section
Status: In progress; separate section in all‑apps list, visible only when profile enabled[3].
Actions: Add per‑profile favorites, search scoping, quiet hours toggle, and respect Android Enterprise work boundary semantics for visibility and notifications[3][11].
Acceptance: No data leakage across profiles; positive reports from managed profile testers and MDM pilots; documented behavior for IT reviews[3][11].
Auto‑hide apps in folder from all‑apps (Pro)
Status: Planned; declutters app list; per‑folder setting preferred[3].
Actions: Ensure search always finds hidden apps unless explicit “hide from search,” with crumb count indicator and “reveal hidden” affordance to prevent lock‑out[3].
Acceptance: Zero “lost app” reports; improved organization sentiment without discoverability regressions[3].
Tasker integration for favorites (Pro)
Status: Requested; allows index‑preserving dynamic favorites by context; related to rejected native favorite profiles by time/location[3].
Actions: Publish a stable automation API (add/remove favorites, insertion index, idempotent ops) with versioned contracts and sample Tasker profiles[3].
Acceptance: Adoption by power users with zero breaking changes across minor releases; reduced repeat requests for native triggers[3].
Risk: Unlock freeze violates perceivability/operability by desynchronizing visuals and input, harming screen reader and low‑vision usability[1].
Plan: Audit WCAG 2.1 AA for focus order, touch targets, announcements on dynamic changes, and contrast; publish an accessibility conformance report and remediation plan aligned with 2025 enforcement trends under the European Accessibility Act[6][12].
Acceptance: Pass internal WCAG checks; reduced accessibility complaints linked to unlock and navigation; documented alternative inputs and gestures where OEMs limit behavior[6][1].
Remove Accessibility‑permission workaround as stability crutch
Rationale: Undermines trust and creates optics of over‑permissioning for core flows; fix root cause in lifecycle/state sync instead[1][2].
Cadence: Review monthly Android Security Bulletins to catch compositor/driver regressions that manifest as rendering anomalies; re‑run OEM sanity passes post OTAs[9][5].
Acceptance: No instructions to grant Accessibility for basic stability; clean Vitals and crash analytics after platform updates on test rings[9][1].
Current: Some core organizational/automation features are Pro‑gated while other user requests are rejected, creating friction disproportionate to value[3][4].
Adjustment: Keep Pro focused on high‑effort themes, icon families, advanced gestures, and future backup/cloud capabilities; avoid gating essential organization or accessibility features to reduce support churn and improve goodwill[4][3].
Acceptance: Higher conversion quality with fewer refunds and reduced friction reports tied to core workflows on feedback board[4][3].
Diagnostics mode
Implement opt‑in tracing templates (unlock, recents, gesture handling), anonymized session IDs, and automatic redaction of PII; ship Perfetto presets and a “Share diagnostics” flow for affected users[5][1].
Play Console vitals SLOs
Targets: user‑perceived ANR < 0.3%, crash rate < 0.4%, cold start < 2s p95; gate releases on regression[5].
Issue tracker alignment
Maintain and promote the shared survey and Android Issue Tracker threads to amplify platform fixes; keep help articles updated with upstream links and mitigations[2][7].
Maintain canary rings for Xiaomi/HyperOS, Samsung/One UI, Google/Pixel, OnePlus/OxygenOS, HONOR/MagicOS, and TECNO/Infinix/XOS with recents/gestures, unlock, and widget rendering smoke tests each OTA[1][7].
Capture community‑shared workarounds for recents on specific ROMs and document in Help with scope/limitations as temporary mitigations, while prioritizing app‑side resilience[13][14].
0–30 days
Ship unlock state‑sync fix and overview correctness; add post‑update auto‑restart one‑shot; clamp drag auto‑scroll; enable diagnostics mode and publish performance SLOs[1][5].
30–60 days
Resolve Xiaomi HyperOS crash path; add notification badge/dot option; introduce adaptive widget budget with transparent UI[3][8].
60–90 days
GA work profile section with per‑profile scope; ship search provider plug‑ins with suggestion contracts; publish Tasker favorites API and samples[3][11].
Rollout gates
Staged rollouts at 5% → 25% → 100% gated by SLO dashboards, crash/ANR thresholds, and user sentiment deltas on feedback board items that motivated the change[3][5].
Docs
Update Help for common bugs with upstream links, mitigations, and device matrices; add API docs for Tasker integration; publish accessibility conformance summary[1][3].
Feedback board items: overview hijack, favorites reordering, widget cap, search providers, badges/dots, work section, auto‑hide in folders, Tasker integration, Xiaomi HyperOS crashes, rejected dynamic favorites[3].
Common bugs and unlock freeze guidance: Niagara Help articles with repro, workarounds, and upstream issue aggregation[1][2].
Pro features and subscription context: Niagara Pro scope and model[4].
Android performance evaluation and trace tooling: AOSP guidance[5].
Security bulletins and patch hygiene: Android Security Bulletin Aug 2025[9].
Enterprise alignment: Intune and Android Enterprise profile configuration references[11].
Third‑party launcher platform friction: developer coalition and survey for Google engagement[7].
Unlock and overview: Zero misroutes and hijacks at staged rollouts, no Accessibility workaround, p95 first draw < 150ms[5][1].
OEM crashes: Parity stability on HyperOS 2 with captured root cause or gated mitigation, no Vitals regression post‑OTA[3][9].
Performance: Energy and wakeups within cohort baseline with published targets and no widget‑related jank regressions[5][10].
UX features: Badges, alarms, provider expansion, and work profiles ship with measurable sentiment improvement and no stability trade‑offs[3][11].
Process: Diagnostics mode active, SLO gates enforced, Help and API docs updated, and feedback board items closed with linked fixes[5][3].
By executing this plan, Niagara can remove high‑impact reliability defects, deliver user‑requested organization features responsibly, and re‑earn trust with visible telemetry and consistent platform hygiene across Android versions and OEMs[1][5].
Citations: [1] Commonly reported bugs - Niagara Launcher Help Page https://help.niagaralauncher.app/article/163-commonly-reported-bugs [2] Bug reports on Android's issue tracker - Niagara Launcher Help Page https://help.niagaralauncher.app/article/174-bug-reports-on-androids-issue-tracker [3] Feedback - Niagara Launcher https://feedback.niagaralauncher.com [4] Niagara Pro Features https://help.niagaralauncher.app/article/40-niagara-pro-features [5] Evaluate performance - Android Open Source Project https://source.android.com/docs/core/tests/debug/eval_perf [6] Common Accessibility Laws and Compliance Standards - Applause https://www.applause.com/blog/accessibility-laws-and-standards/ [7] Third-party Android launcher developers join forces to vent their ... https://www.androidpolice.com/third-party-android-launcher-developers-join-forces-voice-frustrations-to-google/ [8] Xiaomi HyperOS 2 Launcher March 8, 2025 update released https://xiaomitime.com/xiaomi-hyperos-launcher-september-2024-update-released-12920/ [9] Android Security Bulletin—August 2025 | Android Open Source Project https://source.android.com/docs/security/bulletin/2025-08-01 [10] Very high battery usage · Issue #2499 · NiagaraLauncher/Niagara ... https://github.com/NiagaraLauncher/Niagara-Issues/issues/2499 [11] Configure Microsoft Launcher for Android Enterprise with Intune https://learn.microsoft.com/en-us/intune/intune-service/apps/configure-microsoft-launcher [12] What is Accessibility Compliance? - BrowserStack https://www.browserstack.com/accessibility-testing/what-is-accessibility-compliance [13] (FIX!!!) 3rd Party Launchers and the Recent Apps button issues ... https://xdaforums.com/t/fix-3rd-party-launchers-and-the-recent-apps-button-issues-consistent-replication.4360809/page-2 [14] (FIX!!!) 3rd Party Launchers and the Recent Apps button issues ... https://xdaforums.com/t/fix-3rd-party-launchers-and-the-recent-apps-button-issues-consistent-replication.4360809/ [15] Niagara becomes unresponsive intermittently · Issue #2595 - GitHub https://github.com/NiagaraLauncher/Niagara-Issues/issues/2595 [16] Android 14 Nova Launcher home screen freeze bug fixed (decently ... https://www.reddit.com/r/NovaLauncher/comments/18fp7r5/android_14_nova_launcher_home_screen_freeze_bug/ [17] Sudden Freezing, Lagging, and Non-Responsive Behavior #3044 https://github.com/8bitPit/Niagara-Issues/issues/3044 [18] HyperOS 2.0.5.0 Xiaomi.eu Android 15 Problems https://www.reddit.com/r/PocoPhones/comments/1jpiw5r/hyperos_2050_xiaomieu_android_15_problems/
Please authenticate to join the conversation.
In Review
Feature Request
6 months ago

MiniMinilism
Get notified by email when there are changes.
In Review
Feature Request
6 months ago

MiniMinilism
Get notified by email when there are changes.