Skip to content

feat(tui): add footer_variant to show the turn's variant in footers - #53848

Closed
Nowaker wants to merge 1 commit into
anomalyco:devfrom
Nowaker:tui-footer-variant
Closed

Nowaker wants to merge 1 commit into
anomalyco:devfrom
Nowaker:tui-footer-variant

Conversation

@Nowaker

@Nowaker Nowaker commented Oct 8, 2026

Copy link
Copy Markdown

Note: I'm aware v1 is now the maintenance branch and new features go to v2 only. This PR is here for others who want to use it on v1. I will submit a v2 version once I've migrated my plugin setup to v2.

Issue for this PR

Closes #53846

Type of change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation

What does this PR do?

Adds footer_variant to tui.json, so you can see which variant, such as the reasoning effort, each assistant turn ran with. Without it, a turn on high and a turn on the default read the same once you have switched.

  • false (default): footers unchanged.
  • true: the variant stored on the message follows the model in every assistant message footer, e.g. ▣ Build · Claude Opus 4.5 · high · 45.5s. Turns that ran without a variant are unchanged.

The footer reads message.variant, so a past turn keeps the variant it ran with after the selection changes. The prompt line already shows the current variant and is not touched. Documented in tui.mdx.

Independent of other open PRs: it applies to dev on its own. If #53639 (model_label) or #53195 (turn timing) also land, the variant sits right after the model in those footers too, before any time and duration.

How did you verify your code works?

  • test/config.test.tsx covers decoding. bun typecheck and bun test pass in packages/tui.
  • Isolated XDG_* dirs on a throwaway tmux socket, OpenAI-compatible fake providers. Turn one runs without a variant, turn two on high; footers and the prompt line as captured:
# default
▣  Build · QA Model · 2.1s
▣  Build · QA Model · 250ms
┃  Build · QA Model QA Beta · high

# "footer_variant": true
▣  Build · QA Model · 2.6s
▣  Build · QA Model · high · 253ms
┃  Build · QA Model QA Beta · high

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR

This PR is AI generated, but under direct supervision and on request of @Nowaker.

Assistant message footers name the model but not the variant it ran
with, so a turn on high reasoning effort reads the same as one on the
default. The variant is stored on every message and the prompt shows
the current one, but nothing shows which one a past turn used.

footer_variant in tui.json (default false) adds the message's variant,
e.g. high or max, after the model in assistant message footers. Turns
without a variant are unchanged. Documented in tui.mdx.
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

The following comment was made by an LLM, it may be inaccurate:

@opencode-agent opencode-agent Bot closed this Oct 8, 2026
@opencode-agent

opencode-agent Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Thanks for putting this together, @Nowaker, and for the clear write-up and testing notes!

v1 (the dev branch) only takes critical fixes now: data loss, security problems, or crashes and breakage with no workaround. A new option like footer_variant won't be merged there, so I'm closing this one.

Showing each turn's variant in the footer still makes sense for v2. You're welcome to open it against the v2 branch, referencing #53846. v2 is a separate implementation, so the change will likely need redoing there rather than porting this diff directly.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE]: show the turn's model variant in message footers

1 participant