fix(web): allow setting reasoning effort for scheduled tasks#30253
Problem
Scheduled tasks already support provider options, but the web/desktop editor could not set reasoning effort. It also dropped the default model's options when the model was explicitly picked.
Change
Reuse the existing traits picker alongside the task model picker and keep the full model selection in the draft. New tasks retain the configured default options; existing tasks can inspect and change them. Picking a different model clears stale options, while reselecting the same model preserves them. Mobile already exposes these controls and saves the full selection.
Scope and approval
Fixes #30233. This is a focused configuration option for an established scheduling capability under CONTRIBUTING.md; it does not add a workflow or change provider defaults.
Verification
The regression failed before the fix because the effort control was absent. Browser tests now cover default and saved options, effort edits, reselecting the current model, and clearing options when switching models. vp run check:changed passes, including 29 focused tests, affected-package typechecks, lint, formatting, knip, and React Compiler checks. In the real web client against isolated worktree state, saved a paused Codex task at High, confirmed reasoningEffort: high in its stored selection, and reopened it at High. No provider turn was started. Native mobile and the Electron shell were not exercised; their implementations are unchanged.
| Before | After saving and reopening |
|---|---|
| Task editor without effort control | Task editor retaining High effort |
Reviewed with review-loop: 2 rounds with Claude Opus 5.5. Reviewer verdict: approved.
Created with GPT-6.1 Sol in the Codex harness (T3 Code).
Checks
Approvability
Verdict: Approved at 540b7fb
Macroscope's review found this PR approvable — Scheduled tasks gain a reasoning-effort picker that saves options with the task’s model selection. Changes remain explicit and task-specific, with existing defaults and save safeguards unchanged.
You can add or adjust custom eligibility rules. Learn more.
No actionable comments were generated in the recent review.
Walkthrough
-
The scheduled-task editor now stores a structured model selection and provides model-trait controls. It submits the selected model options when saving tasks. Browser tests cover creating and editing tasks, changing reasoning effort, and switching to a model without options.
Changes: Scheduled task model traits
Layer / File(s) Summary Structured model-selection draft
apps/web/src/components/settings/ScheduledTasksSettings.tsx,apps/web/src/components/settings/scheduledTasksSettings.logic.tsDraft state and task conversion now use ModelSelectiondirectly instead of a model key and separate base selection.Model traits editing and saving
apps/web/src/components/settings/ScheduledTasksSettings.tsx,apps/web/src/components/settings/ScheduledTasksSettings.browser.test.tsxThe editor shows TraitsPickerfor the active provider model and updates the structured selection when options change. It submits that selection and clears it when the environment changes. Browser tests cover create and edit flows, including changing reasoning effort and selecting a model without options.Estimated code review effort: 3 (Moderate) | ~20 minutes
Change: Feature · Severity of issue fixed: Medium
Sequence Diagram(s)
mermaid1 sequenceDiagram 2 participant User 3 participant ScheduledTasksSettings 4 participant TraitsPicker 5 participant ScheduledTaskUpsert 6 User->>ScheduledTasksSettings: Select provider model 7 ScheduledTasksSettings->>TraitsPicker: Provide model data and current options 8 User->>TraitsPicker: Change model options 9 TraitsPicker->>ScheduledTasksSettings: Return updated options 10 User->>ScheduledTasksSettings: Save task 11 ScheduledTasksSettings->>ScheduledTaskUpsert: Submit modelSelection Possibly related issues
- pingdotgg/t3code#29049 — The PR adds model-option controls to the web scheduled-task editor, which is also part of this issue’s objective.
- pingdotgg/t3code#31344 — The PR lets users set effort for a scheduled task, but does not address the issue’s separate concern about options for different-model delegation.
Suggested reviewers:
juliusmarminge
Merge Risk: External image Minimal · up to 258e3
-
No identified issue currently prevents merging the scheduled-task editor change after normal checks.
Pre-merge checks: Passed 4
-
Check name Status Explanation Title check Passed The title clearly describes the main change to scheduled-task reasoning effort. Description check Passed The description covers the problem, change, scope, verification, screenshots, and agent details. Linked Issues check Passed [ #30233] The web editor addsTraitsPickerand saves the fullModelSelection. Drafts retain configured defaults and saved options. Browser tests cover effort edits and model changes. The PR descrip…Out of Scope Changes check Passed [ #30233] The web editor changes, draft-state refactoring, and browser tests support the requested effort control and option persistence. The change summary shows no unrelated changes.Full details: Linked Issues check
-
Explanation
[
#30233] The web editor addsTraitsPickerand saves the fullModelSelection. Drafts retain configured defaults and saved options. Browser tests cover effort edits and model changes. The PR description states that mobile already exposes the controls and saves the full selection.
-
Finishing Touches
-
Generate unit tests (beta)
-
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
External image Recent review info
-
External image Run configuration
-
- Source mode: Auto
- Repository: pingdotgg/t3code
- Branch: main
- File: .coderabbit.config.ts
- Commit: 67fdc53
- Layers: Repository TS config
- Review profile: CHILL
- Plan: Advanced
- Run ID:
24956561-5417-486b-afed-62e88070c23e
External image Commits
-
Reviewing files that changed from the base of the PR and between 8afb8d75eb18e8016819943ee9111f7eaa8229a5 and 258e3007f04e848d31218f0724e7a63c360ef41a.
External image Files selected for processing: 2
-
apps/web/src/components/settings/ScheduledTasksSettings.tsxapps/web/src/components/settings/scheduledTasksSettings.logic.ts
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 1 remain after this review.
External image Recent review info
-
External image Run configuration
-
- Source mode: Auto
- Repository: pingdotgg/t3code
- Branch: main
- File: .coderabbit.config.ts
- Commit: 67fdc53
- Layers: Repository TS config
- Review profile: CHILL
- Plan: Advanced
- Run ID:
24956561-5417-486b-afed-62e88070c23e
External image Commits
-
Reviewing files that changed from the base of the PR and between 8afb8d75eb18e8016819943ee9111f7eaa8229a5 and 258e3007f04e848d31218f0724e7a63c360ef41a.
External image Files selected for processing: 2
-
apps/web/src/components/settings/ScheduledTasksSettings.tsxapps/web/src/components/settings/scheduledTasksSettings.logic.ts
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 1 remain after this review.
-
Note
Written by gpt-6.1-sol on behalf of Maria
Verified in a real dev environment
verified head 8afb8d75eb18e8016819943ee9111f7eaa8229a5 as-is on a disposable linux vm, using the real web client in system chrome through playwright. no code changes were needed.
- reproduced on
github/mainat12ec17ce4c: the scheduled-task editor has no reasoning-effort control. - installed both checkouts with
vp iand ran one background dev server at a time, stopping main before starting the pr. created a real git project through the app, with no fixtures or replay provider. - created a paused task using codex
gpt-6.1-sol, selected high effort, saved, and reopened it at high. changed high to low and back, saved and reopened both. reselecting the same model retained effort; switching togpt-6-lunaremoved saved options, confirmed through a read-only database query. - restored sol/high and exercised both “run now” and a one-time scheduled run at 17:59 utc. both produced new threads and the real response “scheduled effort verified.” in the client. native codex rollout records independently confirm the model, high effort, and project directory.
- blacksmith ran
vp test run apps/web/src/components/settings/ScheduledTasksSettings.browser.test.tsx apps/web/src/components/settings/scheduledTasksSettings.logic.test.ts: 2 files, 29 tests passed. all 29 existing pr checks were green.
selected runtime transcript:
| 1 | manual run: 2026-11-03T17:52:48.210Z model=gpt-6.1-sol effort=high |
| 2 | completed: 2026-11-03T17:52:51.621Z "scheduled effort verified." |
| 3 | timed run: 2026-11-03T17:59:03.925Z model=gpt-6.1-sol effort=high |
| 4 | completed: 2026-11-03T17:59:07.061Z "scheduled effort verified." |
| 5 | cwd=/home/user/effort-verification |
| 6 | scheduled task: run_count=2 last_run_status=succeeded last_run_error=null |
full selected runtime transcript
main: matching task with no reasoning-effort control
pr: saved task reopened with high effort
effort edits, saving, reopening, and same-model reselection
real timed codex response in the client with high effort
Not verified
native ios/android clients, the electron shell, macos/windows, other providers, and relay/tunnel connections were not exercised. the real runtime check used codex sol/high; default-option initialization is covered by the focused browser tests. uploaded video playback and seeking were checked in chrome; the same recording is embedded above as an animated gif for github.
+1
Added 1 commit
- fix(web): allow setting reasoning effort for scheduled tasks258e300