Repository navigation
Pause a schedule without editing its file (0.17.0 after #84) - #83
Merged
Merged
Conversation
`skillhook schedules pause|resume`, `POST /schedules/<name>/pause|resume` and the cloud commands `schedule.pause` / `schedule.resume`. The pause lives in jobs/.schedules.json, so the repository's skillhook.yaml stays the source of truth for schedules while a person can switch one off from Skillhook Cloud. Paused slots are skipped quietly and never caught up; `until` ends a pause. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
JOsacky
enabled auto-merge (squash)
November 11, 2026 20:18
…ude/schedule-pause # Conflicts: # CHANGELOG.md
…ting assignment) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ude/schedule-pause # Conflicts: # CHANGELOG.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Version: lands after #84, which takes 0.16.0. This branch is rebased and re-bumped to 0.17.0 once #84 is on main.
Why
Repositories should declare their timers in
skillhook.yamland have that be the source of truth, but a person still needs to switch one off quickly (from Skillhook Cloud) when it misbehaves, without a commit. Today the only off switch is editing the file, so repositories moved their timers into Cloud-owned schedules, which then drift from what the repo declares.What
Scheduler.pause(name, {by, reason, until})/resume(name). The pause is stored injobs/.schedules.json(not the skill's file), so repo pulls, hook edits and restarts keep it.skippedbut are never caught up, and they emit no per-slot events, so a week of a 10-minute timer doesn't produce a thousand. On resume, or whenuntilpasses, it fires from the next slot.skillhook schedules pause <name> [--reason] [--until 2h|ISO]/resume(through the running server, or the state file when none runs),POST /schedules/<name>/pause|resume(admin), and cloud commandsschedule.pause {name, reason?, until?}/schedule.resume {name}(control class; the next sync carries a fresh snapshot).ScheduleStatus.paused({at, by?, reason?, until?}ornull) inschedules list,GET /healthand the cloud snapshot.Compatibility
Older machines refuse a whole sync response that carries an unknown command type, so the cloud must gate
schedule.pause/schedule.resumewithCOMMAND_SINCE=0.17.0. That's in the follow-up skillhook-cloud PR, after this publishes.Checked
pnpm run check: typecheck, 528 tests, build, schema, release metadata. New tests cover the scheduler (quiet skip, no catch-up on resume,untilexpiry across a restart, refusals, offline state), the admin route, the CLI and a cloud round trip overFakeCloud(pause → snapshot shows it → resume).🤖 Generated with Claude Code