Merge pull request #285 from carlosframework/cron
Scheduled work: recurring schedules and one-shot timers as a platform concern
39 files changed,
+11799
−106
apimode.go+136 −0docs/superpowers/plans/2026-08-23-scheduled-work.md+3164 −0docs/superpowers/specs/2026-08-23-scheduled-work-design.md+652 −0internal/activator/activator_test.go+335 −18internal/activator/admintoken.go+214 −0internal/activator/admintoken_test.go+266 −0internal/activator/backend_exec.go+131 −53internal/activator/logsink.go+6 −3internal/console/apischedule.go+322 −0internal/console/apischedule_test.go+468 −0internal/console/authcli.go+11 −0internal/edge/edge.go+6 −0internal/edge/purge.go+83 −25internal/edge/purge_listen_windows.go+5 −3internal/host/agent.go+80 −4internal/host/schedule_wake_test.go+532 −0internal/host/schedule_wiring.go+436 −0internal/host/schedule_wiring_test.go+160 −0internal/registry/registry.go+24 −0internal/registry/timers.go+216 −0internal/registry/timers_test.go+251 −0internal/schedule/control.go+171 −0internal/schedule/control_test.go+195 −0internal/schedule/converge.go+334 −0internal/schedule/converge_test.go+543 −0internal/schedule/cron.go+169 −0internal/schedule/cron_test.go+85 −0internal/schedule/declaration.go+303 −0internal/schedule/declaration_test.go+181 −0internal/schedule/envfile.go+32 −0internal/schedule/runner.go+469 −0internal/schedule/runner_test.go+674 −0internal/schedule/spec.go+134 −0internal/schedule/spec_test.go+86 −0internal/schedule/status.go+116 −0internal/schedule/status_test.go+37 −0main.go+3 −0schedule.go+367 −0schedule_test.go+402 −0
CI passed — run details
apimode.goLoading diff…
docs/superpowers/plans/2026-08-23-scheduled-work.mdLoading diff…
docs/superpowers/specs/2026-08-23-scheduled-work-design.mdLoading diff…
internal/activator/activator_test.goLoading diff…
internal/activator/admintoken.goLoading diff…
internal/activator/admintoken_test.goLoading diff…
internal/activator/backend_exec.goLoading diff…
internal/activator/logsink.goLoading diff…
internal/console/apischedule.goLoading diff…
internal/console/apischedule_test.goLoading diff…
internal/console/authcli.goLoading diff…
internal/edge/edge.goLoading diff…
internal/edge/purge.goLoading diff…
internal/edge/purge_listen_windows.goLoading diff…
internal/host/agent.goLoading diff…
internal/host/schedule_wake_test.goLoading diff…
internal/host/schedule_wiring.goLoading diff…
internal/host/schedule_wiring_test.goLoading diff…
internal/registry/registry.goLoading diff…
internal/registry/timers.goLoading diff…
internal/registry/timers_test.goLoading diff…
internal/schedule/control.goLoading diff…
internal/schedule/control_test.goLoading diff…
internal/schedule/converge.goLoading diff…
internal/schedule/converge_test.goLoading diff…
internal/schedule/cron.goLoading diff…
internal/schedule/cron_test.goLoading diff…
internal/schedule/declaration.goLoading diff…
internal/schedule/declaration_test.goLoading diff…
internal/schedule/envfile.goLoading diff…
internal/schedule/runner.goLoading diff…
internal/schedule/runner_test.goLoading diff…
internal/schedule/spec.goLoading diff…
internal/schedule/spec_test.goLoading diff…
internal/schedule/status.goLoading diff…
internal/schedule/status_test.goLoading diff…
main.goLoading diff…
schedule.goLoading diff…
schedule_test.goLoading diff…