Skip to content

Desktop scheduled tasks ignore settings.json model: 'Default' silently tracks last-used interactive model (and its effort) #100317

Description

@uncle-barrito

Summary

In the Claude desktop app (Code tab), scheduled tasks ("routines") whose model is left on Default ignore the model set in ~/.claude/settings.json and instead silently track the last-used interactive session model — including its effort level. After one interactive Fable 5 session, every routine on the account launches on claude-fable-5 at high effort instead of the configured claude-opus-5-5[1m], roughly doubling (or more) the usage of every scheduled run. This value persists across full app restarts and is stored nowhere on disk that we could find, so there is no user-controllable default for routines.

This behavior began with the desktop app update installed 2026-10-06 ~07:58 CT. Before that update, routine session records carried the exact settings.json string (claude-opus-5-5[1m] — alias suffix included), proving routines then read settings.json. After it, the suffix disappeared and the model began following last use.

Environment

  • Claude desktop app (Code tab), Windows 11 Pro 10.0.26200
  • App auto-updated 2026-10-06, re-verified current + restarted 2026-10-07 before final repro
  • ~/.claude/settings.json: "model": "claude-opus-5-5[1m]" (unchanged throughout)
  • Scheduled tasks created via the scheduled-tasks MCP (no model parameter exists there) and via the app UI

Evidence (from the app's own session records: %APPDATA%\Claude\claude-code-sessions\...\local_<id>.json, fields model / effort / effortInherited)

Created (UTC) Session model effort
Oct 4 12:24 routine claude-opus-5-5[1m] medium
Oct 6 12:53 routine claude-opus-5-5[1m] medium
Oct 6 13:08 routine (first run after app update) claude-opus-5-5 (suffix gone) medium
Oct 6 13:56 interactive claude-opus-5-5 high
Oct 7 04:20 interactive claude-fable-5 high
Oct 7 12:24 routine claude-fable-5 high
Oct 7 19:12 no-op probe routine (after settings.json re-pinned AND /model claude-opus-5-5 run in a session) claude-fable-5 high
Oct 7 19:44 no-op probe routine, model "Default" claude-fable-5 high
Oct 7 19:45 same probe with Opus 5.5 picked in the routine's Edit form claude-opus-5-5 medium
Oct 7 ~20:1x fresh probe created AFTER app re-update + full restart, model "Default" claude-fable-5 high

All routine records show effortInherited: true.

What we ruled out

  • Not settings.json: pinned to claude-opus-5-5[1m] the whole time; probes still launched Fable.
  • Not the most-recently-created session: a Sonnet-pinned session was created minutes before a Default probe; the probe still launched Fable (it tracks the interactive/composer model, not session creation).
  • Not stale in-memory state: survives a full app quit/restart, twice.
  • Not stored locally: a byte-level scan of %APPDATA%\Claude (Local Storage leveldb decoded, IndexedDB, session stores, .claude.json, task folders) found no per-task model field and no composer-remembered model key. All 22 task folders contain only SKILL.md. The per-task model picked in the Edit form is apparently server-side.

Expected

Either (a) routines honor the settings.json model/effort cascade like other sessions (pre-Oct-6 behavior), or (b) there is a user-visible, documented default-model control for scheduled tasks. The current behavior — an undocumented "Default" that follows whatever model the user last ran interactively — makes scheduled-run costs unpredictable: one late-night Fable session silently converts every daily/weekly/monthly routine to Fable-at-high until the next interactive session.

Workaround we found (confirming the per-task pin works)

Setting the model explicitly in each routine's Edit form pins that routine durably (claude-opus-5-5, effort inheriting the model's default medium) even while interactive Fable sessions run. But it must be clicked per routine, new routines default to the broken "Default", and the scheduled-tasks MCP exposes no model parameter, so it cannot be automated.

Docs gap

https://code.claude.com/docs/en/desktop-scheduled-tasks does not document how a task's model or effort is resolved when left on Default, and no changelog entry describes the Oct-6 behavior change.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:desktoparea:routinesClaude Code routines on web, used for scheduled tasks, webhook-triggered tasks, etc.bugSomething isn't workingplatform:windowsIssue specifically occurs on Windows

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions