Skip to content

[Fix] Session reminders fail when users request a delay in seconds - #2265

Merged
daniel-lxs merged 1 commit into
developfrom
fix/session-wakeup-seconds-1a0q4j7m0g4xa
Sep 5, 2026
Merged

[Fix] Session reminders fail when users request a delay in seconds#2265
daniel-lxs merged 1 commit into
developfrom
fix/session-wakeup-seconds-1a0q4j7m0g4xa

Conversation

@roomote-roomote

Copy link
Copy Markdown
Contributor

​Opened on behalf of @daniel-lxs. Follow up by mentioning @roomote-roomote, in the web UI, or in Slack.

Related issue

Follow-up to merged #2239. No linked issue.

Why this PR exists

  • A maintainer explicitly invited this PR in the linked issue or discussion
  • I am a maintainer / this is internal Roomote work

Second-based reminders were rejected by the minute/hour/day-only grammar. This fixes requests such as "say something in 30 seconds" without accepting fractional or compound textual durations.

What changed

  • Accept in 30s and seconds aliases for one-shot reminders, and every 30s x3 for bounded recurring checks. Recurring intervals under five minutes still require a run count or end time; cron stays five-field.
  • Preserve existing JSONB minute fields, storing whole seconds as canonical fractional minutes. Existing whole-unit schedules and legacy absolute rows retain their behavior and deduplication identity; no migration is needed.
  • Validate positive whole-second durations and existing maximum horizons, round timestamp arithmetic to milliseconds, and display fractional-minute intervals as seconds.
  • Update the shared native tool grammar/descriptions, Fast prompt guidance, and public docs to use in 30s, not in 0.5m.

Delivery remains best effort. Queue infrastructure and the one-minute lost-hint recovery sweep are unchanged; no exact-time delivery guarantee is introduced.

How it was tested

  • Targeted Vitest: 59 cloud-agents parser/schedule/service tests, 10 shared contract tests, 16 real-PostgreSQL wakeup tests, and 101 SDK firing/parent-event tests pass (186 total).
  • New real-DB native-handler tests verify persistence at now + 30 seconds, the queue hint timestamp, default report policy, retry deduplication across clock changes/equivalent units, and no persistence or queueing on invalid text. The queue boundary is mocked; this is not a live delivery test.
  • pnpm lint:fast, pnpm check-types:fast, pnpm knip, focused formatting, git diff --check, and docs validation/link checks pass. Commit and full pre-push hooks pass. A non-failing Knip configuration hint about mint remains.
  • Browser proof is not applicable to this parsing/scheduling/docs change. No live provider/model reminder delivery was tested. Nothing was merged or deployed.

Checklist

  • The PR title follows the repo convention: [Fix], [Feat], [Improve], [Refactor], [Docs], or [Chore] followed by a user-facing description
  • This PR is small and scoped to one change
  • pnpm lint and pnpm check-types pass locally
  • I added tests or included a clear manual validation note above
  • I removed secrets, tokens, private keys, and customer data from code, logs, and screenshots
  • If this change should appear in the changelog, I ran pnpm changeset

The fast static gates listed above were run instead of the full formatting-inclusive commands. No changeset was added.

@roomote-community

roomote-community Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

No code issues found. See task

Reviewed 0263d64

@roomote-roomote
roomote-roomote Bot marked this pull request as ready for review September 5, 2026 17:58
@daniel-lxs
daniel-lxs merged commit 16eaaf5 into develop Sep 5, 2026
19 checks passed
@daniel-lxs
daniel-lxs deleted the fix/session-wakeup-seconds-1a0q4j7m0g4xa branch September 5, 2026 17:59
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