-
-
Notifications
You must be signed in to change notification settings - Fork 4
Notifications
Notifications are why a remote is worth having: a harness turn can take many minutes, and the two things you actually need are "it finished" and "it is waiting for you".
Three Android notification channels, so you can tune them separately in system settings:
| Channel | Carries |
|---|---|
| Completions | A turn finished · a goal completed or blocked · a session went idle |
| Needs your action | An approval, a plan review, or a question is waiting |
| Connection status | The low-priority ongoing notice while the app holds the connection in the background |
| Notification | When |
|---|---|
| Turn complete — | A turn ends while you are not looking at that session |
| Goal complete — | A goal reaches its completed phase |
| Goal blocked — | A goal becomes blocked and needs a decision |
| Review requested — | A plan is ready for review, or an approval is pending |
| The harness asks: | The harness has a question for you |
| Session finished — | The session stopped running |
Tapping one deep-links straight into that session.
Two behaviours worth knowing:
- Notifications for the session you are currently looking at are suppressed. You can already see what happened.
- Repeats are de-duplicated, so one event produces one notification even if the app sees it more than once (for example after a reconnect resync).
Settings → Notifications:
| Setting | Default | Note |
|---|---|---|
| Notify when a turn completes | on | A turn finishing while the app is in the background |
| Notify when a goal completes or blocks | on | |
| Notify when your action is needed | on | An approval, question, or plan waiting on you |
| Keep connected in background | off | Runs a foreground service so events keep arriving |
Android's own per-channel controls apply on top of these.
The app receives events over two WebSockets. If Android freezes the process, no events arrive, so nothing can be notified.
-
Keep connected in background runs a
dataSyncforeground service. Android requires a visible notification for that, which is the Connection status one — it is not spam, it is the price of the socket. The service only pins the process; the connection itself stays where it is. - A 15-minute background job reconnects if the connection dropped while the app was not running, as a fallback.
- If the connection is lost, reconnection is automatic with backoff, and the session list and open transcripts resync afterwards.
Leaving the toggle off is fine if you keep the app in the foreground while a turn runs.
Android 13 and newer require an explicit notification permission; the app asks on first launch. If you dismissed it, grant it in Android's app info screen — nothing in the app can re-ask for you.
Some vendor ROMs apply aggressive battery optimisation that stops background work regardless of the foreground service. Exempting the app from battery optimisation is the usual remedy.
The update available dialog is not part of this system. It is an in-app dialog shown at most once per release, it cannot install anything, and it is switchable off at Settings → About → Check for updates. It is also the only request the app makes to anything other than your harness — see Security.
DSH Mobile — an unofficial, community-built Android remote for the
DeepSeek Harness. The harness and its brand belong
to their respective owners.
MIT ·
repository ·
canonical technical docs in
docs/.