New config to show skills+plugins in the tokens/cost row - #121
Merged
Conversation
tmck-code
marked this pull request as ready for review
August 19, 2026 14:33
The skills+plugins trailing column vanished entirely when empty instead of rendering as a blank bordered section, dragging the loc r/w and cost sections' borders/labels along with it. Separately, the loc r/w and cost labels silently disappeared with show_icons=False because label detection sniffed for an icon glyph instead of using an explicit flag. Also centers the loc r/w label within its section using the abbreviated label form actually rendered. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
tmck-code
force-pushed
the
fix/skills-plugins-loc-cost-labels
branch
from
August 30, 2026 11:21
0d4e98a to
3ff6820
Compare
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ents, extract clip_visible Gate the trailing column on PLUGINS_TRAILING_MIN_W rather than the full measured list width so an overlong list is clipped with an ellipsis, not dropped. Derive has_lines from the shed rung actually taken. Rename the leader_* identifiers to trailing_*, extract clip_visible() for the three ellipsis-clip sites, and trim the triplicated rationale comments. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… not '…│' Also return '' for zero-width budgets instead of a stray ellipsis, and add regression tests for pad, zero budget, and a box-width sweep. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Context
Headline change: the trailing column of the tokens/cost row now shows skills + plugins instead of the tokens-over-time sparkline. The sparkline isn't gone — it moves to its own optional full-width row, off by default:
[layout].show_tokens_over_time = true/YAS_SHOW_TOKENS_OVER_TIME=true— adds a "tokens over time" row (t/mrate + live sparkline) under the tokens/cost band. Documented in the README config table andyas.example.toml.Alongside that, fixes three related rendering bugs surfacing across width/config combinations users actually hit:
skills + pluginstrailing column vanished entirely (instead of rendering as an empty bordered section) when there were no skills/plugins loaded, which dragged the borders and labels for the neighboringloc r/wandcost sess/daysections along with it.loc r/wandcost sess/daylabels silently disappeared from the border row whenshow_icons=False, because label detection sniffed for an icon glyph that's gated onshow_iconsinstead of using an explicit flag.loc r/wlabel wasn't centered within its section — it centered against the long label form's width instead of the abbreviated form actually rendered.No version bump on this branch (rebased onto main at 0.9.0).
Changes
Renderer / layout
claude/yas/layout.py— skills + plugins always occupy the trailing tokens/cost column; new opt-intokens over timerow below it. Consumeshas_linesdirectly for the loc r/w label anchor; centers the loc r/w label using the abbreviated label form's width (matching what_fit_labelactually renders) instead of the long form's width.claude/yas/renderer.py—tokens_costno longer gates the skills+plugins trailing column on non-empty content; it now always renders (blank-padded) when width allows. Also returns an explicithas_linesflag instead of forcing callers to re-derive presence from rendered glyphs.claude/yas/render/text.py,claude/yas/config.py,claude/yas/constants.py—show_tokens_over_timeconfig option and the new row's rendering + label constants.Docs
README.md,yas.example.toml— documentshow_tokens_over_time.Follow-ups from review
…to the real free column width (gate onPLUGINS_TRAILING_MIN_W) instead of being pre-clipped at 60 cols or shed entirely; newclip_visible()helper inrender/text.py;leader_*→trailing_*renames.Tests
test_tokens_cost.py,test_layout_seam.py,test_labels_layout.py,test_tool_counts_row.py,test_config.pyfor the new column/border layout.test/test_tokens_over_time.pyfor the new row.test/fixtures/claude_dark_wide.ansisnapshot to match the corrected renderer output.Checklist
Screenshots / recording
Benchmark
mainPRSystem info