Skip to content

Notifications

SorGuayteawLord edited this page Aug 17, 2026 · 1 revision

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".

Channels

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

What fires

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).

Switches

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.

Keeping the connection alive

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 dataSync foreground 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.

Permission

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.

Not a notification

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.

Clone this wiki locally