Skip to content

fix(tui): scope reasoning-effort variants to the agent, seed from agent config - #46202

Closed
griffemi wants to merge 1 commit into
anomalyco:devfrom
griffemi:fix/agent-scoped-variants
Closed

fix(tui): scope reasoning-effort variants to the agent, seed from agent config#46202
griffemi wants to merge 1 commit into
anomalyco:devfrom
griffemi:fix/agent-scoped-variants

Conversation

@griffemi

Copy link
Copy Markdown

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

…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.
@github-actions github-actions Bot added the needs:compliance This means the issue will auto-close after 2 hours. label Aug 30, 2026
@github-actions

Copy link
Copy Markdown
Contributor

This PR doesn't fully meet our contributing guidelines and PR template.

What needs to be fixed:

  • PR description is missing required template sections. Please use the PR template.

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.

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for your contribution!

This PR doesn't have a linked issue. All PRs must reference an existing issue.

Please:

  1. Open an issue describing the bug/feature (if one doesn't exist)
  2. Add Fixes #<number> or Closes #<number> to this PR description

See CONTRIBUTING.md for details.

@github-actions

Copy link
Copy Markdown
Contributor

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:

  1. feat(tui): show model variant in subagent footer (feat(tui): show model variant in subagent footer #38772)

    • Related because it addresses displaying the model variant in the TUI, which is directly related to variant management and scoping issues this PR fixes.
  2. feat(task): pass variant to subagent so it inherits parent's thinking level (feat(task): pass variant to subagent so it inherits parent's thinking level #12567)

    • Related because it deals with passing and inheriting reasoning effort variants in the context of subagents, similar to the agent config seeding this PR implements.

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.

@github-actions

Copy link
Copy Markdown
Contributor

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.

@github-actions github-actions Bot removed the needs:compliance This means the issue will auto-close after 2 hours. label Aug 30, 2026
@github-actions github-actions Bot closed this Aug 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant