Skip to content

feat(frontend): add owner-scoped reminder store - #300

Open
yimi528 wants to merge 2 commits into
QwenAudio:mainfrom
yimi528:feat/reminder-store-yimi528
Open

feat(frontend): add owner-scoped reminder store#300
yimi528 wants to merge 2 commits into
QwenAudio:mainfrom
yimi528:feat/reminder-store-yimi528

Conversation

@yimi528

@yimi528 yimi528 commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add FrontendReminderStore as the persistence boundary for frontend-owned reminders.
  • Keep reminder records scoped by owner and validate text, timestamps, IANA time zones, kinds, recurrence, and lifecycle states.
  • Persist versioned JSON atomically with private permissions and a shared file transaction lock.
  • Recover an interrupted firing reminder as active so a later runtime can retry it.
  • Add due inspection, atomic due claiming, cancellation, completion, recurring rescheduling, and failure transitions.

This is the storage-only T1 slice from the frontend Agent capability roadmap. It intentionally does not wire new tools, the existing schedule_reminder path, ReminderScheduler, AnnouncementManager, or BackendPort.

Data safety

  • Reads and writes are owner-scoped; an owner cannot inspect or cancel another owner's reminder.
  • Invalid or corrupt records are skipped or quarantined without taking down the Gateway.
  • Failed persistence rolls back the in-memory mutation.
  • No credentials, audio, logs, or backend session data are stored.

Validation

  • node --test server/test/frontend-reminders.test.mjs (11 tests passed)
  • eslint server/src/conversation/frontend-reminders.mjs server/test/frontend-reminders.test.mjs
  • git diff --check

Follow-up PRs can connect this store to reminder tools and scheduling after the data contract is reviewed.

This file implements a FrontendReminderStore for managing reminders with persistence, including methods for creating, retrieving, listing, and managing reminder statuses.
This test suite verifies the functionality of the FrontendReminderStore, including creating, validating, persisting, and managing reminders. It covers various scenarios such as owner limits, data persistence, error handling, and concurrent reminder creation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant