Fix live effort display in statusline - #39
Open
mpiton wants to merge 2 commits into
Open
Conversation
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.
What
Fix the statusline effort indicator so it reflects the live Claude Code session effort level.
The script now reads
effort.levelfrom the JSON payload Claude Code sends to the statusline command, then falls back to~/.claude/settings.jsonfor older payloads or models that do not report effort. It also renders the supportedxhighand session-onlymaxlevels explicitly.Why
maxeffort can be selected for the current session with/effortor--effort, but it is not persisted insettings.effortLevel. The previous implementation only readsettings.effortLevel, so a session running atmaxcould still show the persisted/default level in the custom statusline.Changes
.effort.levelfrom statusline stdin over persisted settings.settings.effortLevelas a fallback for compatibility.maxandxhigh.xhigh, stdin containsmax, and the statusline must displaymax.npm testas the project test entrypoint.How to Review
Start with
bin/statusline.sh: the effort resolution block is the behavior change, and the displaycaseadds the new supported levels.Then review
test/statusline.test.sh: it captures the regression by proving live stdin effort overrides persisted settings.Testing
npm testbash -n bin/statusline.sh test/statusline.test.shRisk / Deployment Notes
Low risk. This is a display-only change in the statusline script. No settings migration, dependencies, or runtime service changes are required.