Skip to content

fix(supervisor): turn off Claude Code's own schedulers in bots - #70

Merged
httpsphl merged 1 commit into
mainfrom
fix/block-claude-schedulers
Sep 30, 2026
Merged

httpsphl merged 1 commit into
mainfrom
fix/block-claude-schedulers

Conversation

@httpsphl

Copy link
Copy Markdown
Owner

Problem

Asked to do something at a set time ("check the inbox every day at 8"), bots called Claude Code's built-in CronCreate. It needs no permission, and its own result says the job is session-only: it dies when the process exits and expires after 7 days. Botloft never sees it, so nothing shows in the Routines tab, and the bot tells the owner the work is scheduled.

Change

  • Bots start with --disallowedTools CronCreate,CronDelete,CronList,ScheduleWakeup,RemoteTrigger (spec 7.4).
  • The bot's rules say it cannot schedule work itself: the owner creates a routine in the Routines tab, and the bot must not say it is scheduled before a routine exists.
  • Spec 5.1, 7.4 and a new row in section 19.

A follow-up PR adds a schedule_routine tool so bots can propose a real routine for the owner to approve.

Tested with real Claude Code (2.1.284)

claude -p --output-format stream-json --verbose --setting-sources project,local --strict-mcp-config: the system/init lists the five scheduling tools among 28; with the flag they are gone (23).

Manual check

  1. Restart a bot in the app (or restart Botloft).
  2. Ask it: "check X every day at 8".
  3. It should not call a scheduler. It should point to the Routines tab.

Asked to check something every day, bots called CronCreate. That job
lives only in the bot's process: it dies on a restart, expires in 7 days
and never shows in the Routines tab. Bots now run with --disallowedTools
for CronCreate, CronDelete, CronList, ScheduleWakeup and RemoteTrigger,
and their rules send the owner to the Routines tab instead.
@httpsphl
httpsphl merged commit 4191fe1 into main Sep 30, 2026
3 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.

1 participant