RFC 0007: Pluggable scheduler seam in gateway#5
Conversation
|
Codex review: needs changes before merge. Reviewed June 7, 2026, 9:21 PM ET / 01:21 UTC. Summary Reproducibility: not applicable. this is a design RFC rather than a runtime bug report. The concrete review check is source/process conformance of the added Markdown file against current main. Review metrics: 2 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Add the required draft lifecycle metadata, then keep the PR in RFC review until maintainers explicitly accept, narrow, or reject the scheduler plugin contract and create the implementation issue required by the RFC process. Do we have a high-confidence way to reproduce the issue? Not applicable; this is a design RFC rather than a runtime bug report. The concrete review check is source/process conformance of the added Markdown file against current main. Is this the best way to solve the issue? Not yet merge-ready; the RFC path is appropriate for this kind of plugin SDK decision, but the file should match current lifecycle metadata and the scheduler contract still needs maintainer signoff. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: not found in the target repository. Codex review notes: model gpt-5.5, reasoning high; reviewed against e938e93198f4. Label changesLabel justifications:
Evidence reviewedAcceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
a19ebba to
445b1f8
Compare
|
@clawsweeper re-review The previous review at 2026-06-01T02:55Z failed before completion ('Review failed before ClawSweeper could summarize the requested change'). Asking for a fresh attempt. |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
ClawSweeper P1 review finding: rfcs/0006-feeds.md already exists on main, so this proposal's id collides. Rename to rfcs/0007-pluggable-scheduler.md and update the in-document rfcs/0007/ asset reference. PR title separately updated via gh pr edit.
|
@clawsweeper re-review Addressed P1: renumbered to P2 (plugin contract / maintainer signoff) is by-design — that's the RFC purpose, not a code issue. |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
On the "claimed external scheduler deployment" P1 proof gap: Captured live deployment evidence from both gateways the RFC references. Both hosts are launchd-supervised; openclaw-scheduler runs as a separate service under a separate Observed:
This is the consumer-side artifact the RFC's "existence proof" claim refers to. The RFC's purpose is to give that already-shipping out-of-process scheduler a first-class plugin-SDK seam so its scheduled runs surface in On P1 #1 ("blesses new plugin kind / future migration concern"): that's the explicit RFC purpose. The proposal is intentionally additive — built-in cron stays the default; the plugin kind only engages when an external scheduler plugin registers itself. On P1 #3 ("API-design questions intentionally open"): all four open questions in the RFC are flagged in an "Unresolved questions" section so a maintainer decision can land before any implementation follows. That's the correct shape for an RFC discussion vehicle, not a blocker on the proposal itself. |
|
@clawsweeper re-review The requested redacted live deployment proof was added in #5 (comment). Please re-review against the current PR head and the added proof. |
|
🦞👀 Command router queued. I will update this comment with the next step. Re-review progress:
|
This RFC proposes a narrow plugin-SDK seam that lets an external scheduler plugin own scheduled-job dispatch while the gateway keeps owning heartbeats and run-state ingestion. The built-in cron stays the default; when a
schedulerplugin declaresowns: "scheduled-jobs", the gateway disables its in-process cron at startup and routes job registration through the plugin runtime.Why this RFC
Operators with workflows that need durability, retries, approvals, multi-step chains, or full run history reach for external schedulers (notably
openclaw-scheduler, a SQLite-backed sibling service). Today those tools can only talk to the gateway through the public HTTP surface and cannot register scheduled work that the gateway considers first-class. The seam proposed here would let the same external runtime become the canonical scheduler so its runs surface ingateway status, hooks, and transcript mirroring.Scope
registerScheduledJob,cancelScheduledJob,listScheduledJobs.owns: "scheduled-jobs"onkind: schedulermanifests.onStart,onComplete,onError.Existence proof
The consumer side is already running.
openclaw-schedulerhas been deployed on two gateways (mac-mini.lanandrh-bot.lan) for several weeks, talking to OpenClaw only through the public HTTP surface. The skill is listed on ClawHub asdurable-scheduler@1.0.0. What's missing is the seam.If the shape proposed here is accepted, I'll carry the reference implementation as a follow-up PR against
openclaw/openclaw. Drafting it now without an accepted seam shape would mean rewriting it against whatever the final contract looks like, which is why I'm leading with the RFC.Notes
rfcs/0006/in a follow-up revision once the seam shape is settled.