Feature: reliable user reminders #97

Open
opened 2026-09-28 22:01:48 +00:00 by aiko · 1 comment
Owner

Outcome

An explicitly requested user reminder is stored and scheduled by Denpa, remains inspectable and actionable in the Receiver, and survives a Hermes or Denpa restart. Hermes retains agent-job scheduling and reasoning; the existing proactive-turn queue remains a separate delivery mechanism. An inferred commitment is only a proposal until the operator accepts it.

Decisions

  • Hermes schedules agent jobs; Denpa schedules user reminders. Amend ADR-0007 narrowly; do not repurpose the in-memory proactive-turn queue (ADR-0017).
  • Reminder lifecycle is Denpa-owned: due time, pending/due/snoozed/acknowledged state, idempotent firing, and display. Hermes interprets explicit requests and proposes inferred ones.
  • Do not require Hermes availability to display or fire an already-created reminder.

Slices

Tracked in linked child issues. Integrate rather than duplicate denpatou#57–59 (park/coalesce/hold proactive turns); those do not implement durable user reminders.

Done when

A reminder requested in conversation can be inspected, fires once at due time, and remains actionable after restarting Hermes and the go-between. No inferred reminder is silently scheduled.

## Outcome An explicitly requested user reminder is stored and scheduled by Denpa, remains inspectable and actionable in the Receiver, and survives a Hermes or Denpa restart. Hermes retains agent-job scheduling and reasoning; the existing proactive-turn queue remains a separate delivery mechanism. An inferred commitment is only a proposal until the operator accepts it. ## Decisions - Hermes schedules agent jobs; Denpa schedules user reminders. Amend ADR-0007 narrowly; do not repurpose the in-memory proactive-turn queue (ADR-0017). - Reminder lifecycle is Denpa-owned: due time, pending/due/snoozed/acknowledged state, idempotent firing, and display. Hermes interprets explicit requests and proposes inferred ones. - Do not require Hermes availability to display or fire an already-created reminder. ## Slices Tracked in linked child issues. Integrate rather than duplicate denpatou#57–59 (park/coalesce/hold proactive turns); those do not implement durable user reminders. ## Done when A reminder requested in conversation can be inspected, fires once at due time, and remains actionable after restarting Hermes and the go-between. No inferred reminder is silently scheduled.
Author
Owner

Child slices: denpatou#61 boundary ADR → denpatou#62 explicit reminder end-to-end → denpatou#63 durable snooze and denpatou#64 inferred proposal (the last two can proceed independently after #62). Existing denpatou#57–59 remain separate proactive-turn work.

Child slices: denpatou#61 boundary ADR → denpatou#62 explicit reminder end-to-end → denpatou#63 durable snooze and denpatou#64 inferred proposal (the last two can proceed independently after #62). Existing denpatou#57–59 remain separate proactive-turn work.
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#97
No description provided.