docs: propose an external Automations dispatch backend - #5
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed August 25, 2026, 12:19 AM ET / 04:19 UTC. ClawSweeper reviewWhat this changesAdds a 398-line draft RFC proposing opt-in external dispatch for compatible shell and command Automations while OpenClaw retains canonical job and run history. Merge readinessKeep open as a draft RFC: it proposes a new permanent Automations/plugin contract, and both the repository lifecycle and the RFC itself require maintainer acceptance before merge. Priority: P3 Review scores
Verification
How this fits togetherAutomations owns the public job catalog and canonical run history. The proposed plugin seam would send a selected compatible job to an external dispatcher and ingest bounded receipts back into that canonical history. flowchart LR
A[Operator selects a compatible job] --> B[OpenClaw Automations catalog]
B --> C{Dispatch choice}
C -->|Built-in| D[Built-in scheduler]
C -->|External| E[Plugin dispatch backend]
E --> F[Receipt validation and canonical history]
D --> F
Decision needed
Why: The proposed manifest, registration API, selection flag, and external execution authority are new product contracts; source review cannot establish recurring demand or select the permanent boundary. Before merge
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Keep external schedulers on the supported Gateway API unless a maintainer sponsors this bounded seam; sponsorship should create the required discussion and implementation issue before acceptance. Do we have a high-confidence way to reproduce the issue? Not applicable: this is a design-only RFC, not a report of failing current behavior. Is this the best way to solve the issue? Unclear: the proposal narrowly describes safeguards, but deciding that a permanent core seam is better than existing Gateway APIs requires maintainer product judgment and demand evidence. AGENTS.md: not found in the target repository. Codex review notes: model internal, reasoning high; reviewed against af708f0ddb6f. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (14 earlier review cycles; latest 8 shown)
|
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 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:
|
|
@clawsweeper re-review Updated in |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
@clawsweeper re-review Updated in |
|
🦞🧹 I asked ClawSweeper to review this item again. |
There was a problem hiding this comment.
Pull request overview
This PR introduces RFC 0014, proposing a plugin-SDK seam that allows an external scheduler plugin to own scheduled-job dispatch while the gateway retains responsibility for heartbeats and run-state surfacing.
Changes:
- Adds an RFC defining scheduler plugin discovery (
owns: "scheduled-jobs") and startup-time ownership behavior. - Specifies a scheduler runtime interface (
registerScheduledJob,cancelScheduledJob,listScheduledJobs) for routingcron.*job operations. - Defines run-state lifecycle event ingestion (
onStart,onComplete,onError) plus trust-boundary validation requirements and acceptance gates.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
d17aeea to
8b2b699
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
8b2b699 to
dc1519a
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
Related: #59
What Problem This Solves
OpenClaw already owns canonical Automations jobs and history, but an operator who needs compatible scheduled shell work to continue while the Gateway is unavailable has no bounded plugin contract for external dispatch without maintaining a separate public catalog and risking duplicate execution.
This RFC asks whether recurring demand justifies a narrow per-job dispatch-and-receipt seam while OpenClaw remains the sole public owner.
Why This Change Was Made
The proposal is rebased and rewritten against the audited OpenClaw Automations and Plugin SDK snapshot cited below. V1 is limited to shell/command
cronandatjobs; agent turns and system events stay built-in because canonical model, provider, token-usage, session, and task facts cannot come from a backend-authored receipt. Shared SQLite remains authoritative for job specifications, ownership, identifiers, admission, list/get/runs/history, and lifecycle.RFC #59's phase-one deadline projection remains a separate host-compute contract. Any future
scheduleOnlyexternal-action phase must converge on this RFC's owner, admission, fencing, receipt, and history contract instead of creating a parallel plugin API.User Impact
No shipped behavior changes: this is still a draft RFC. If maintainers later accept and implement it, operators would opt in per compatible shell/command job through a surfaced onboarding and enablement path. Installing a plugin alone would change nothing.
Evidence
openclaw/rfcs@af708f0ddb6f42cc4f4bc5499889cdc6889aef58.openclaw/openclaw@e1a700840a76d0b852503d2b0dee6ae4f60a7ea8(shared-SQLite Automations ownership, current run telemetry, execution-generation and timer fencing, and Plugin SDK/manifest surfaces).scheduleOnlyexternal owner must converge on one dispatch-and-receipt contract.amittell/openclaw-scheduler@e095d897424ac83ee4534ea298b98e2cf7c3d29f/ package 0.5.2 (cron/at and shell execution capabilities; no conforming OpenClaw plugin adapter yet).git diff --checkpasses; frontmatter and all seven required top-level sections match the current template; Summary is one paragraph; no trailing whitespace or stale v1 agent/system-event execution path remains; all three RFC links return HTTP 200.dc1519a51b4e6221af6c40e48ca7013ec45ac5a0.Unmet gates are intentionally explicit:
maintainer-discussionDiscord thread is not evidenced here;issueremains blank because no implementation issue exists; andstatus: draft;