Skip to content

Make canonical scheduling core-owned - #1062

Merged
dcellison merged 1 commit into
mainfrom
feat/core-owned-canonical-scheduler
Aug 22, 2026
Merged

Make canonical scheduling core-owned#1062
dcellison merged 1 commit into
mainfrom
feat/core-owned-canonical-scheduler

Conversation

@dcellison

Copy link
Copy Markdown
Owner

Summary

  • move APScheduler ownership from the optional Telegram adapter into the transport-neutral Kai application host
  • persist deterministic schedule firings so reminders and agent runs recover idempotently across restart
  • route reminder and agent outcomes through canonical Workshop messages, runs, bindings, and the durable delivery outbox
  • preserve once, daily, interval, conditional, auto-remove, and notification behavior while making scheduling available in Workshop-only mode
  • expose canonical ownership and nonterminal firing diagnostics through make install-status

Safety and compatibility

  • active jobs without one complete canonical owner fail closed at core startup
  • Telegram /job and internal scheduling routes remain supported, but no longer manipulate Telegram JobQueue
  • scheduled work cannot create Telegram streaming previews; final delivery is binding-aware and outbox-backed
  • APScheduler is now an explicit core dependency rather than an incidental Telegram extra

Validation

  • make check
  • make typecheck
  • make check-install-constraints
  • full pytest suite
  • focused core-host, scheduler, canonical execution, Telegram adapter, webhook, schema, and installer tests

Closes #1061

@dcellison
dcellison merged commit ca18f75 into main Aug 22, 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.

Milestone 5: Move scheduled work to a core-owned canonical scheduler

2 participants