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
11 months ago

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

MiniMinilism
Get notified by email when there are changes.