Conversation
Expose the cron inference model configuration that up until now only lived in config.yaml, and make the resulting routing legible in the desktop app. Models settings gains a "Cron jobs" section with a drift-guard toggle, cascading fleet provider/model dropdowns, and Save/Clear actions. The cron editor and job detail surface the resolved model routing (pinned / fleet default / global default) so an unpinned job that follows cron.model is no longer shown under a misleading "global default" label.
Cdddo
force-pushed
the
feat/cron-model-defaults
branch
from
August 19, 2026 00:57
e9e930c to
60e5da2
Compare
Contributor
Genuinely useful drift-guard visibility (#89513): unpinned jobs silently resolving to
No blocking issues found. |
10 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Makes cron inference-model configuration visible and configurable in the desktop app, where it previously only lived in
config.yaml— and fixes a misleading routing label.The Models settings page gains a "Cron jobs" section exposing the fleet default (
cron.model/cron.model_provider) as cascading provider/model dropdowns, a drift-guard toggle (cron.model_drift_guard), and Save/Clear actions. The drift guard's fail-closed protection against unintended spending from a changed global model is now configurable from the UI rather than onlyconfig.yaml.Separately, the cron editor and job detail now surface the resolved model routing (Pinned / Fleet default / Global default) instead of labeling every unpinned job "Default (global model)" — which was wrong once
cron.modelroutes an unpinned job to a non-global model (fire-time resolution is per-job pin →cron.model→ global).Related Issue
Issue describing the desktop-UI gap (Models pane missing cron config + scheduled jobs can't route to
cron.model): #89513. This PR implements that surface.Type of Change
Changes Made
apps/desktop/src/app/settings/model-settings.tsx— new "Cron jobs" section: drift-guard toggle (cron.model_drift_guard), cascading fleet provider/model dropdowns, Save + Clearapps/desktop/src/app/cron/cron-job-model.ts—jobModelRouting(),cronModelChoiceLabel(),MODEL_FLEET_VALUErouting helpersapps/desktop/src/app/cron/index.tsx— routing pill on job detail + truthful fleet/global options in the editor model pickerapps/desktop/src/app/settings/model-settings.test.tsx— tests for the new section (toggle save, dropdown save, clear)apps/desktop/src/app/cron/cron-job-model.test.ts— tests for the routing helpersHow to Test
cd apps/desktop && npx vitest run src/app/settings/model-settings.test.tsx src/app/cron/cron-job-model.test.ts— 43 passcron.modelis setChecklist
Code
feat(desktop): …)Documentation & Housekeeping
Screenshots / Logs