Skip to content

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

Open
voltcrash wants to merge 3 commits into
pingdotgg:mainfrom
voltcrash:voltcrash/fix-issue-30233
Open

voltcrash wants to merge 3 commits into
pingdotgg:mainfrom
voltcrash:voltcrash/fix-issue-30233

Conversation

@voltcrash

Copy link
Copy Markdown
Contributor

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).

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Nov 3, 2026
@macroscopeapp

macroscopeapp Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

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.

@voltcrash
voltcrash force-pushed the voltcrash/fix-issue-30233 branch from 540b7fb to 47d8f2b Compare November 3, 2026 16:33
@coderabbitai

coderabbitai Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • Resume reviews
  • Trigger review

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: Bug fix · Severity of issue fixed: Medium

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant ScheduledTasksSettings
  participant TraitsPicker
  participant ScheduledTaskUpsert
  User->>ScheduledTasksSettings: Select provider model
  ScheduledTasksSettings->>TraitsPicker: Provide model data and current options
  User->>TraitsPicker: Change model options
  TraitsPicker->>ScheduledTasksSettings: Return updated options
  User->>ScheduledTasksSettings: Save task
  ScheduledTasksSettings->>ScheduledTaskUpsert: Submit modelSelection
Loading

Possibly related issues

Suggested reviewers: juliusmarminge

Merge Risk: Minimal · up to fa245

No material issue remains that should delay merging the scheduled-task effort control.

Pre-merge checks: Passed 4

Check name Status Explanation
Title check Passed The title clearly identifies the web fix and the primary change: enabling reasoning-effort settings for scheduled tasks.
Description check Passed The description includes the required Problem, Change, Scope and approval, and Verification sections. It explains the behavior change, linked issue, approval basis, focused tests, manual verification,…
Linked Issues check Passed [#30233] The web editor stores one ModelSelection in the draft. taskToDraft retains saved options. New-task defaults use the configured default selection. TraitsPicker edits the selection. Model…
Out of Scope Changes check Passed The changed editor logic, draft-state update, and browser tests support the effort and model-option requirements in [#30233]. The reviewed change summary shows no unrelated product behavior or provide…
Full details: Description check

Explanation

The description includes the required Problem, Change, Scope and approval, and Verification sections. It explains the behavior change, linked issue, approval basis, focused tests, manual verification, limitations, and UI evidence.

Full details: Linked Issues check

Explanation

[#30233] The web editor stores one ModelSelection in the draft. taskToDraft retains saved options. New-task defaults use the configured default selection. TraitsPicker edits the selection. Model changes create a selection without stale options, while reselecting the same model retains options. Browser tests cover default and saved options, effort changes, same-model reselection, and model switching. The PR evidence states that the existing mobile editor already provides and saves these controls.

Full details: Out of Scope Changes check

Explanation

The changed editor logic, draft-state update, and browser tests support the effort and model-option requirements in [#30233]. The reviewed change summary shows no unrelated product behavior or provider-default changes.

Finishing Touches

Generate unit tests (beta)

  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Usage-based review receipt

Note

This review was completed with usage-based billing: files reviewed beyond your plan's included limits are billed at $0.25/file. View usage-based billing.

Recent review info

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 258e300 and fa245d5.

Files selected for processing: 3

  • apps/web/src/components/settings/ScheduledTasksSettings.browser.test.tsx
  • apps/web/src/components/settings/ScheduledTasksSettings.tsx
  • apps/web/src/components/settings/scheduledTasksSettings.logic.ts

Limit details: You’ve used all 10 included reviews currently available.

@voltcrash
voltcrash force-pushed the voltcrash/fix-issue-30233 branch from 47d8f2b to 8afb8d7 Compare November 3, 2026 16:49
@maria-rcks

maria-rcks commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

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:

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

@noahflk

noahflk commented Nov 3, 2026

Copy link
Copy Markdown

+1

juliusmarminge and others added 2 commits November 11, 2026 03:55
Main replaced TraitsPicker's planModeEnabled prop with includePlanAgent;
match the other settings pickers. Split the effort test so the edit and
model-switch steps run once.

AI-assisted; verified with the tests and tools listed above.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copy link
Copy Markdown
Member

Evidence

Real web client, Chromium, 1280×800, light theme; fresh synthetic state on both commits. Codex catalog entries have synthetic names and explicit capabilities; tasks remain disabled.

Steps: Settings → Scheduled tasks → New task; choose project and New thread each run; select the reasoning-capable model and disable the task. Base has no effort control. On head, select High, save and reopen; edit effort and reopen; reselect the same model and save; switch models and verify stale High clears.

Before After
0f13d2ccbd fa245d5ad5
Before: model picker without effort control After: model picker with effort control
Before interaction recording After: save, reopen, edit, reselect, and switch models

After: High retained after reopening

After: High retained after reselecting the same model and saving

Scenario driver · Fixture preparation · Redacted base transcript · Redacted head transcript

AI-assisted; verified with the tests and tools listed above.

Not shown:

  • Desktop shell was not exercised; captures cover the web editor shared with desktop.
  • Live task execution was not exercised because tasks remained disabled; model capabilities used synthetic catalog entries.
  • Preservation of configured non-default model options on initial task creation was not separately exercised.

@graydonpower-dev

Copy link
Copy Markdown

+1, would love to see this merged.

This branch has not been deployed

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

Labels

size:M 30-99 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Scheduled task editor has no reasoning effort control, so tasks run at the model's default effort

5 participants