Skip to content

ref(scheduler): Extract scheduler plugin package#429

Merged
dcramer merged 5 commits into
mainfrom
ref/extract-scheduler-plugin
May 28, 2026
Merged

ref(scheduler): Extract scheduler plugin package#429
dcramer merged 5 commits into
mainfrom
ref/extract-scheduler-plugin

Conversation

@dcramer
Copy link
Copy Markdown
Member

@dcramer dcramer commented May 28, 2026

Move scheduler behavior into a dedicated @sentry/junior-scheduler trusted plugin package. Apps now opt into scheduled tasks with schedulerPlugin(), while core keeps the generic heartbeat, dispatch, and plugin-state primitives.

Plugin Boundary

The scheduler package owns schedule tools, recurrence math, prompt framing, durable scheduler state, and heartbeat dispatch. @sentry/junior no longer registers scheduler hooks by default.

Trusted Plugin API

Expose plugin state locking, set-if-not-exists writes, and AgentPluginToolInputError so scheduler can preserve its idempotency and model-repairable validation behavior outside core.

Release And Docs

Add the scheduler package to workspace dependencies, release metadata, CI packaging, docs, tests, and eval harness wiring.

@vercel
Copy link
Copy Markdown

vercel Bot commented May 28, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
junior-docs Ready Ready Preview, Comment May 28, 2026 9:54pm

Request Review

Comment thread packages/junior-scheduler/src/schedule-tools.ts
Comment thread packages/junior-scheduler/src/store.ts
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit bb25b16. Configure here.

Comment thread .craft.yml
dcramer and others added 4 commits May 28, 2026 14:43
Move scheduler tools, state, prompt framing, and heartbeat hooks into a dedicated @sentry/junior-scheduler package. Core now exposes the trusted plugin state primitives the scheduler needs and apps opt in with schedulerPlugin().

Update docs, tests, eval harness wiring, and release metadata for the new package.

Co-Authored-By: GPT-5 Codex <codex@openai.com>
Restore Slack conversation id normalization in the extracted scheduler tools and update tests for explicit scheduler registration.

Remove the scheduler-specific plugin-state key mapping from core so trusted plugin state remains a generic namespace primitive.

Co-Authored-By: GPT-5 Codex <codex@openai.com>
Allow extracted trusted plugins to declare legacy state prefixes during migration. This keeps existing scheduler records visible after the scheduler moves behind plugin state without adding scheduler-specific storage branches to core.

Co-Authored-By: GPT-5 Codex <codex@openai.com>
Keep the scheduler package order consistent across release metadata.

Co-Authored-By: GPT-5 Codex <codex@openai.com>
@dcramer dcramer marked this pull request as ready for review May 28, 2026 21:47
Keep legacy scheduler state access scoped to the scheduler plugin namespace so the migration path does not expose arbitrary raw state prefixes.

Clarify heartbeat docs now that scheduled tasks are enabled by registering the scheduler plugin explicitly.

Co-Authored-By: GPT-5 Codex <codex@openai.com>
@dcramer dcramer force-pushed the ref/extract-scheduler-plugin branch from 59dc082 to 3dda7e0 Compare May 28, 2026 21:53
@dcramer dcramer merged commit 4287a0b into main May 28, 2026
16 checks passed
@dcramer dcramer deleted the ref/extract-scheduler-plugin branch May 28, 2026 22:02
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