carlos / platform Public

Merge pull request #285 from carlosframework/cron

Scheduled work: recurring schedules and one-shot timers as a platform concern
Paul Campbell pushed by paul@keymail.dev 2fb300b152de398f6abba8b59d9ad81de1128f42 parent 6a861ceparent a4c3154
39 files changed, +11799 −106
  • apimode.go +136 −0
  • docs/superpowers/plans/2026-08-23-scheduled-work.md +3164 −0
  • docs/superpowers/specs/2026-08-23-scheduled-work-design.md +652 −0
  • internal/activator/activator_test.go +335 −18
  • internal/activator/admintoken.go +214 −0
  • internal/activator/admintoken_test.go +266 −0
  • internal/activator/backend_exec.go +131 −53
  • internal/activator/logsink.go +6 −3
  • internal/console/apischedule.go +322 −0
  • internal/console/apischedule_test.go +468 −0
  • internal/console/authcli.go +11 −0
  • internal/edge/edge.go +6 −0
  • internal/edge/purge.go +83 −25
  • internal/edge/purge_listen_windows.go +5 −3
  • internal/host/agent.go +80 −4
  • internal/host/schedule_wake_test.go +532 −0
  • internal/host/schedule_wiring.go +436 −0
  • internal/host/schedule_wiring_test.go +160 −0
  • internal/registry/registry.go +24 −0
  • internal/registry/timers.go +216 −0
  • internal/registry/timers_test.go +251 −0
  • internal/schedule/control.go +171 −0
  • internal/schedule/control_test.go +195 −0
  • internal/schedule/converge.go +334 −0
  • internal/schedule/converge_test.go +543 −0
  • internal/schedule/cron.go +169 −0
  • internal/schedule/cron_test.go +85 −0
  • internal/schedule/declaration.go +303 −0
  • internal/schedule/declaration_test.go +181 −0
  • internal/schedule/envfile.go +32 −0
  • internal/schedule/runner.go +469 −0
  • internal/schedule/runner_test.go +674 −0
  • internal/schedule/spec.go +134 −0
  • internal/schedule/spec_test.go +86 −0
  • internal/schedule/status.go +116 −0
  • internal/schedule/status_test.go +37 −0
  • main.go +3 −0
  • schedule.go +367 −0
  • schedule_test.go +402 −0

CI passed — run details

apimode.go

Loading diff…

docs/superpowers/plans/2026-08-23-scheduled-work.md

Loading diff…

docs/superpowers/specs/2026-08-23-scheduled-work-design.md

Loading diff…

internal/activator/activator_test.go

Loading diff…

internal/activator/admintoken.go

Loading diff…

internal/activator/admintoken_test.go

Loading diff…

internal/activator/backend_exec.go

Loading diff…

internal/activator/logsink.go

Loading diff…

internal/console/apischedule.go

Loading diff…

internal/console/apischedule_test.go

Loading diff…

internal/console/authcli.go

Loading diff…

internal/edge/edge.go

Loading diff…

internal/edge/purge.go

Loading diff…

internal/edge/purge_listen_windows.go

Loading diff…

internal/host/agent.go

Loading diff…

internal/host/schedule_wake_test.go

Loading diff…

internal/host/schedule_wiring.go

Loading diff…

internal/host/schedule_wiring_test.go

Loading diff…

internal/registry/registry.go

Loading diff…

internal/registry/timers.go

Loading diff…

internal/registry/timers_test.go

Loading diff…

internal/schedule/control.go

Loading diff…

internal/schedule/control_test.go

Loading diff…

internal/schedule/converge.go

Loading diff…

internal/schedule/converge_test.go

Loading diff…

internal/schedule/cron.go

Loading diff…

internal/schedule/cron_test.go

Loading diff…

internal/schedule/declaration.go

Loading diff…

internal/schedule/declaration_test.go

Loading diff…

internal/schedule/envfile.go

Loading diff…

internal/schedule/runner.go

Loading diff…

internal/schedule/runner_test.go

Loading diff…

internal/schedule/spec.go

Loading diff…

internal/schedule/spec_test.go

Loading diff…

internal/schedule/status.go

Loading diff…

internal/schedule/status_test.go

Loading diff…

main.go

Loading diff…

schedule.go

Loading diff…

schedule_test.go

Loading diff…