Report expiring desktop availability for reminder delivery #99

Open
opened 2026-09-28 22:02:42 +00:00 by aiko · 0 comments
Owner

Parent

aiko/denpa#98

What to build

Have the desktop Receiver report authenticated, expiring availability to Denpa: active, idle, locked or offline. A missing heartbeat expires to offline rather than leaving the last state indefinitely. These signals are delivery hints only: they must never create or close a sitting, declare a seam, or imply whether a reminder exists. Make desktop signals observable in a small diagnostic/status view so routing decisions can be checked. Android client reachability is determined by its authenticated connection for this slice; do not claim native OS push or background availability.

Acceptance criteria

  • With a real desktop Receiver, Denpa distinguishes active, idle, locked and disconnected; stale signals expire to offline.
  • A reconnect updates the same enrolled device rather than creating a new identity.
  • No presence transition opens/closes a sitting or releases a held proactive turn (ADR-0014/0015).
  • Tests cover expiry, reconnect, and state transitions without assuming the OS always exposes every signal.

Blocked by

  • aiko/denpatou#62 — the first durable reminder consumer; presence can be developed independently but is only useful to routing once that path lands.
## Parent [aiko/denpa#98](https://git.aiko.works/aiko/denpa/issues/98) ## What to build Have the desktop Receiver report authenticated, expiring availability to Denpa: active, idle, locked or offline. A missing heartbeat expires to offline rather than leaving the last state indefinitely. These signals are delivery hints only: they must never create or close a sitting, declare a seam, or imply whether a reminder exists. Make desktop signals observable in a small diagnostic/status view so routing decisions can be checked. Android client reachability is determined by its authenticated connection for this slice; do not claim native OS push or background availability. ## Acceptance criteria - [ ] With a real desktop Receiver, Denpa distinguishes active, idle, locked and disconnected; stale signals expire to offline. - [ ] A reconnect updates the same enrolled device rather than creating a new identity. - [ ] No presence transition opens/closes a sitting or releases a held proactive turn (ADR-0014/0015). - [ ] Tests cover expiry, reconnect, and state transitions without assuming the OS always exposes every signal. ## Blocked by - [aiko/denpatou#62](https://git.aiko.works/aiko/denpatou/issues/62) — the first durable reminder consumer; presence can be developed independently but is only useful to routing once that path lands.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
aiko/denpa#99
No description provided.