fix(web): allow setting reasoning effort for scheduled tasks#30253

open1
main
GitHub fork: voltcrash/fix-issue-30233
opened7d agobyVvoltcrash
View on GitHubTwo-way sync enabledPR last imported 6h ago

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.

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

22 successful · 7 skipped
All checks passed
258e300
Synced from GitHub

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.

Synced from GitHub

Explain Change →

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.ts
Draft state and task conversion now use ModelSelection directly 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.tsx
The editor shows TraitsPicker for 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)

mermaid
1sequenceDiagram
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 nameStatusExplanation
Title checkPassedThe title clearly describes the main change to scheduled-task reasoning effort.
Description checkPassedThe description covers the problem, change, scope, verification, screenshots, and agent details.
Linked Issues checkPassed[#30233] The web editor adds TraitsPicker and saves the full ModelSelection. Drafts retain configured defaults and saved options. Browser tests cover effort edits and model changes. The PR descrip…
Out of Scope Changes checkPassed[#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 adds TraitsPicker and saves the full ModelSelection. 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

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.tsx
  • apps/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/main at 12ec17ce4c: the scheduled-task editor has no reasoning-effort control.
  • installed both checkouts with vp i and 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 to gpt-6-luna removed 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:

text
1manual run: 2026-11-03T17:52:48.210Z model=gpt-6.1-sol effort=high
2completed: 2026-11-03T17:52:51.621Z "scheduled effort verified."
3timed run: 2026-11-03T17:59:03.925Z model=gpt-6.1-sol effort=high
4completed: 2026-11-03T17:59:07.061Z "scheduled effort verified."
5cwd=/home/user/effort-verification
6scheduled 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.

Added 1 commit

  • fix(web): allow setting reasoning effort for scheduled tasks258e300