• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lsm / HyperNeo / 30579292991
83%

Build:
DEFAULT BRANCH: dev
Ran 30 Jul 2026 08:29PM UTC
Jobs 0
Files 0
Run time –
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
  cancel
30579292991

push

github

web-flow
Fire long-horizon agent reminders via the job queue (#2262)

* feat: fire long-horizon agent reminders via the job queue

Wire reminder firing into the job-queue machinery so due LH agent
reminders wake the owning agent session on schedule. Reminders were
previously write-only records.

- Add listDueReminders (active reminders, next_run_at<=now, active owner)
  and advanceReminderAfterFire (CAS advance) to the LH agent repository.
- Add a self-scheduling scanner handler (longHorizonAgentReminder.fire)
  mirroring task-schedule-fire's guard/deliver/advance shape plus
  memory-consolidation's self-scheduling. Per reminder: deliver, then
  CAS-advance (cron recomputes next_run_at and stays active; one-shot
  'at' flips to fired). A paused agent's reminder is filtered at the
  query and skipped at delivery without advancing.
- Expose SpaceRuntimeService.deliverLongHorizonAgentReminder, delegating
  to the existing ensure-session + inject path with agent-active guards.
- Register the handler and seed the initial scan in app.ts.

* fix: seed nextRunAt in createReminder RPC so cron reminders fire

Address review on #2262.

P1 (blocking): spaceLongHorizonAgent.createReminder accepted
triggerType 'at'|'cron' but never passed nextRunAt, so the column
defaulted to NULL and the scanner's due-query (next_run_at IS NOT NULL)
never selected these rows. Since cron reminders can only be created via
this RPC (the MCP create_agent_reminder hardcodes 'at'), the cron loop
never worked end-to-end. Now seeds nextRunAt: 'at' -> runAt (required),
'cron' -> getNextRunAt after isValidCronExpression validation.

P2: softened the handler idempotency-key comment — the SDK does not
dedupe by message uuid, so the key is a label/tracing handle, not a hard
dedupe fence; the CAS advance is the real double-fire guard.

P3: build the idempotency key from fresh.nextRunAt (consistent with the
CAS) and clarified the agent-state skip vs reminder-status guard.

Adds RPC-path tests: a cron rem... (continued)
Source Files on build 30579292991
Detailed source file information is not available for this build.
  • Back to Repo
  • Github Actions Build #30579292991
  • 2d7286fe on github
  • Prev Build on dev (#30559809612)
  • Next Build on dev (#30579445923)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc