Skip to content

Generic provider-agnostic scheduler#445

Merged
bradygaster merged 2 commits intobradygaster:devfrom
tamirdresher:feat/squad-scheduler
Mar 18, 2026
Merged

Generic provider-agnostic scheduler#445
bradygaster merged 2 commits intobradygaster:devfrom
tamirdresher:feat/squad-scheduler

Conversation

@tamirdresher
Copy link
Copy Markdown
Collaborator

Summary

Adds a unified .squad/schedule.json manifest for all recurring Squad tasks, with pluggable provider adapters.

What's included

  • scheduler.ts — schema types, validation, cron parsing (5-field with */N + comma), trigger evaluation, task execution with retry, state persistence
  • Two providers: LocalPollingProvider (ralph-watch integration) + GitHubActionsProvider (generates workflow YAML)
  • CLI commands: squad schedule list|run|init|status
  • Default template: ralph-heartbeat schedule
  • 51 new tests across 9 describe blocks
  • Feature doc: docs/features/generic-scheduler.md
  • Blog post: docs/blog/2026-03-17-generic-scheduler.md

Test results

  • 51/51 scheduler tests pass, 0 regressions

Refs #296
cc @bradygaster

Copilot and others added 2 commits March 17, 2026 17:18
Adds a unified .squad/schedule.json manifest with provider adapters
that replace scattered cron jobs, polling scripts, and manual triggers.

New files:
- packages/squad-sdk/src/runtime/scheduler.ts — schema types, validation,
  trigger evaluation (cron/interval/event/startup), task execution with retry,
  state persistence, LocalPollingProvider, GitHubActionsProvider
- packages/squad-cli/src/cli/commands/schedule.ts — CLI subcommands:
  list, run <id>, init, status
- packages/squad-sdk/templates/schedule.json — default template
- test/scheduler.test.ts — 51 tests covering validation, triggers,
  providers, state, and file I/O
- .changeset/squad-scheduler.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
KalebCole pushed a commit to KalebCole/squad that referenced this pull request Mar 17, 2026
KalebCole pushed a commit to KalebCole/squad that referenced this pull request Mar 17, 2026
Session: 2026-02-24T0430-prs-merged
Requested by: Brady

Changes:
- Merged 6 decision inbox files into decisions.md (Cheritto, Fenster, Kovash, Marquez, McManus, Waingro)
- Deleted all inbox files (now empty)
- Created .squad/identity/prd-next-waves.md (4-wave execution plan: A=Polish, B=Reliability, C=Testing, D=Delight)
- Updated .squad/identity/now.md to reflect Wave A focus
- Created session log: .squad/log/2026-02-24T0430-prs-merged.md

PRs merged this session: bradygaster#444, bradygaster#445, bradygaster#446, bradygaster#447
Issues closed: bradygaster#400, bradygaster#389, bradygaster#417, bradygaster#391, bradygaster#402, bradygaster#405, bradygaster#404, bradygaster#407, bradygaster#431, bradygaster#429
Issues filed: bradygaster#448-bradygaster#459 (Wave A Polish items)

Process directive: All work through PRs with squad member review before merge

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@bradygaster bradygaster merged commit 5720705 into bradygaster:dev Mar 18, 2026
2 checks passed
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.

2 participants