Skip to content

v0.14.0 remaining: Play Store unblock + ChromeWatcher crash fix #189

Description

@TimeToBuildBob

Follow-up to #176. Context rebuilt from full thread read.

Current state (as of 2026-07-12)

Open items

1. Remove FOREGROUND_SERVICE_DATA_SYNC permission (Play Store release blocker)

The v0.14.0 fastlane upload fails with:

Google Api Error: Invalid request - You must let us know whether your app uses any Foreground Service permissions.

Google Play Console requires a declaration form + demo video for FOREGROUND_SERVICE_DATA_SYNC. Since sync is disabled by default (#184) and not demo-able, we should remove it for now.

Fix: Two-line removal from AndroidManifest.xml:

  • <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
  • android:foregroundServiceType="dataSync" from the SyncAlarmReceiver service entry (or just drop the uses-permission and leave the type — the type without the permission is inert)

Re-add when sync is actually shippable and a demo video can be recorded.

2. ChromeWatcher NPE (top crash cluster — ~791 reports)

From vitals.py errors:

This is the dominant driver of the ~8% user-perceived crash rate. Needs a null-check guard at ChromeWatcher.kt:76 and a stub onInterrupt implementation.

3. Hostname validation in aw-server-rust (enhancement, not blocker)

Erik requested a server-side guard to reject bucket creation with space-containing hostnames (so a misconfigured Android client can't create a broken bucket). Fix location: aw-server-rust bucket creation path.

4. Native OOM in sync (tracked upstream)

The Scudo ERROR: Out of memory crash during syncBoth is tracked in ActivityWatch/aw-server-rust#630 (unbounded event fetch). Short-term mitigation already merged (#184 — disabled auto-sync by default). Long-term fix is batch/stream processing in aw-server-rust.

Done in #176

Priority order

  1. Investigate using aw-server-rust as backend #1 (FOREGROUND_SERVICE_DATA_SYNC removal) — unblocks the v0.14.0 production Play Store upload; 2-line change
  2. Put up beta on Google Play Store #2 (ChromeWatcher NPE) — dominant crash cluster, directly driving the rating decline
  3. Include building of aw-server-rust and run instrumented tests in CI #4 (upstream OOM) — mitigated already, long-term fix in aw-server-rust#630
  4. Added basic working version of calling aw-server-rust code #3 (hostname validation) — enhancement, doesn't block release

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions