fix(tui): scope reasoning-effort variants to the agent, seed from agent config - #46202
fix(tui): scope reasoning-effort variants to the agent, seed from agent config#46202griffemi wants to merge 1 commit into
Conversation
…nt config Agents can pin a reasoning-effort variant in frontmatter (agent.md 'variant: low|max'), and profiles like quick/build/debug rely on it to run the same model at different efforts. The TUI's variant store, however, is keyed per MODEL only: once any variant is selected for a model, every agent using that model displays and submits that same stored effort, and the agent's configured variant is never consulted. The server applies the agent's variant only when the client sends none (session.ts: input.variant ?? agent variant), so the TUI's per-model value structurally overrides the per-agent pinning. - selected(): manual overrides are now keyed '<agent>:<provider>/<model>', falling back to the agent's configured variant, then to none. - set(): writes under the same agent-scoped key. Behavior: switching agents now shows and submits each agent's own effort; ctrl+t remains a per-agent manual override. Previously persisted per-model entries become inert, which is the intended repair.
|
This PR doesn't fully meet our contributing guidelines and PR template. What needs to be fixed:
Please edit this PR description to address the above within 2 hours, or it will be automatically closed. If you believe this was flagged incorrectly, please let a maintainer know. |
|
Thanks for your contribution! This PR doesn't have a linked issue. All PRs must reference an existing issue. Please:
See CONTRIBUTING.md for details. |
|
The following comment was made by an LLM, it may be inaccurate: Based on the search results, I found two potentially related PRs: Related PRs:
These are related but not duplicate PRs—they appear to be addressing complementary aspects of variant/reasoning-effort management. The current PR (#46202) specifically fixes the scoping issue where manual overrides were incorrectly stored per-model instead of per-agent. |
|
This pull request has been automatically closed because it was not updated to meet our contributing guidelines within the 2-hour window. Feel free to open a new pull request that follows our guidelines. |
Agents can pin a reasoning effort in their frontmatter (
variant: low/max), which is how I run the same model at different efforts across profiles — quick is low, build is high, debug is max.That broke because the TUI stores the selected variant per model, not per agent. Once you've cycled the variant on a model (ctrl+t), that one stored value is what every agent using that model displays and sends. The agent's own variant only applies when the client sends nothing (
input.variant ?? agent variantin the session handler), and the TUI always sends something — so the last manually picked effort silently overrides every agent's config, permanently.Which means quick/build/debug all thought at the same effort, and you couldn't tell from the footer either, because it shows the stored value, not the agent's pin.
Fix: key manual overrides by
<agent>:<provider>/<model>and fall back to the agent's configured variant when there's no manual pick. Switching agents now shows and sends each agent's own effort, ctrl+t stays a per-agent override. Old per-model entries in model.json go inert, which is the point.Typecheck clean, full tui suite passes (193).