Repository navigation
fix: sub-threads and scheduled tasks keep the reasoning you set for their model - #728
Merged
Merged
Conversation
…heir model An agent that started a sub-thread on a named model (most often on another computer) sent no reasoning level, so the thread ran at the provider's default even when that model sat in the room at a level the user chose. Scheduled tasks an agent set up on a named model had the same gap. The reasoning is now settled when the thread or task is asked for and saved with it: a level the agent names (new `agent.reasoning`, or "default"), else the level of the first agent on the same kind of provider and model among the asking agent, the room's other agents, and the user's default for new threads. Only the reasoning follows, never other options. A level the model doesn't offer is refused with its levels instead of quietly dropped, and the computer that runs a sub-thread checks it again before starting. thread_agents lists each model's reasoning levels and the room's agents with their levels; thread_start, schedule_create and schedule_list say what each thread or task runs at. Linked computers share their models' levels in peer.describe. The approval card shows the level beside the model.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
github-merge-queue
Bot
removed this pull request from the merge queue due to a conflict with the base branch
Oct 31, 2026
# Conflicts: # apps/server/src/mcp/threadToolHandlers.ts
This branch was successfully deployed
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.
When an agent started a sub-thread on a named model, it sent no reasoning level, so the thread ran at the provider's default. That held even when the same model sat in the room at a level the user chose. It showed up most on another computer: GPT-6.1 Sol in the room at Extra High, its sub-thread on the linked PC at Sol's default. Scheduled tasks an agent set up on a named model had the same gap.
The rule. A thread's or task's reasoning is settled when it is asked for and saved with it (
settleChildReasoninginchildThreadAgents.ts), so replay and approval use exactly what was shown:agent.reasoning(id or picker label, or"default"for the provider's own).agent.options.Only the reasoning follows, never other options (a fast service tier stays the user's call). Claude's retired
ultracodeeffort follows as Extra High. A level the model doesn't offer is refused with its levels instead of being quietly dropped.Linked computers.
peer.describenow shares each model's reasoning option and levels (optional field; older computers simply don't say). A model past the listed 12 borrows the same model's levels from this computer. The computer that runs a sub-thread re-checks the level before it starts and refuses one its model lacks, rather than letting a driver swap in another. Thread moves skip that check and keep their options as before.What agents see.
thread_agentslists each model's levels,yourswith its reasoning, androom(the other agents with the reasoning the user set). Thethread_startdescription steers the agent to its own model or one already in the room unless the user asked otherwise.thread_start,schedule_createandschedule_listreport what each thread or task runs at. Outside agents'thread_starttakesagent.reasoningtoo and follows the user's default.What users see. The "agent wants to start threads" card shows the level beside the model ("GPT-6.1 Sol · Extra High · on Windows PC").
Docs:
docs/design/child-threads.md(Reasoning),docs/design/fleet.md, and the app guide topics.Checks:
vp fmt,vp lint,vp run typecheck; server tests for the thread, schedule, link, room and outside-agent tools (240); full web unit suite and full browser suite. The plan and the diff were reviewed by another agent; its findings (receiver re-check,"default"escape, unlisted remote models, retired levels, card label on mismatched catalogs, refusing instead of dropping) are fixed and tested. Not tested live across two computers.