Repository navigation
cmux NEXT settings: agentPane.composerRing chooses context or plan usage for the composer ring - #34732
Conversation
… (red) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-9435bc58cd1ad61a49df
…e for the composer ring
A choice setting (context, the default, or planUsage) next to Show Context
Usage. The composer event carries composerRing and the page writes it with
pane.setComposerRing {ring}, as pane.setAttachmentView writes
agentPane.attachmentView. Agent-settable (a look), palette-exposed,
localized.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-9435bc58cd1ad61a49df
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Shipped in:
|
|
Found 5 test failures on Blacksmith runners: Failures
|
|
Compile check CmuxNext at fea3581: passed (378 s). |
|
Swift logic follow-up (tip watcher swift-logic row, STATUS 13027 "SWIFT LOGIC CULPRITS"; lead order). This PR raised
plans/cmux-next/layer-ownership.md says Rust owns every state, list and rule and Swift is the platform shell. Please move the new logic of this PR in a follow-up: to Rust (the crate that owns the area; the owner lists in STATUS 12147-12165 name the target per area), or at least out of the app into its package. If a declaration above is platform code (AppKit, Core Animation, OS calls, strings, tokens, DEBUG tooling), reply here and the table gets a PLATFORM row with your reason instead. The swift-logic row is a report, not a gate: nothing blocks on this comment. |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo: "are we able to disable the context thing on the bottom right? i want to be able to right click disable it. what's its name?" and "likewise, i guess we can turn that into a 5h/weekly usage type thing instead as well for some people. i suppose it'd be relevant sometimes for SOME people to have that surfaced e.g in their session info thing."
This is the native and settings side. A separate web PR reads the value and draws the plan usage ring.
What changed
agentPane.composerRing, a choice:context(the default, so the ring behaves as it does today) orplanUsage(the account's 5-hour and weekly usage limits, when the harness reports them). It sits in Settings > Agents > Message Box right after Show Context Usage. Title "Composer Ring", choices "Context" / "Plan Usage", localized like the neighbouring Attachment View strings.agentPane.showContextUsageis unchanged and still hides or shows the ring.composerhost event (AgentPaneComposerSetting.pageValue) now carries"composerRing": "context" | "planUsage".pane.setComposerRing {ring}writesagentPane.composerRingthe same waypane.setAttachmentView {view}writesagentPane.attachmentView, and is added to the page method allowlist. Any other value comes back unsupported and writes nothing.AgentPaneComposerSettingsSchema.agentSettableKeys(it only changes a look) and is palette-exposed. Because it is a plain string choice, the CLI and MCP get it from the schema without new code.schemas/settings/settings-schema.json,schemas/defaults/cmux-next.json,docs/mdm/*,web/data/next-docs/settings-reference.generated.json). Base autofix regenerates them, as it does for other settings PRs.Red / green
AgentPaneComposerRingSettingTests(default, page value, round-trip, bad value gives a diagnostic, layout placement, agent-settable) andAgentPaneComposerRingRequestTests(decoding, refusal, allowlist). They don't compile without the new types.Observed / Not run
cmux settings get|set agentPane.composerRingand MCPsettings_seton a tagged build. The web side that draws plan usage is in the separate web PR.Changelog
Agent session: agent session
🤖 Generated with Claude Code
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Adds a Composer Ring setting so the ring at the end of the composer can show either context usage or plan usage.
agentPane.composerRingsetting in Settings > Agents > Message Box, right after Show Context Usage, withcontext(default) andplanUsagechoices.composerhost event now carriescomposerRing, and a newpane.setComposerRing {ring}page request writes it the same waypane.setAttachmentViewwritesagentPane.attachmentView; invalid values are refused with no write.agentPane.showContextUsageis unchanged and still hides or shows the ring either way.Tests
Written for commit fea3581. Summary will update on new commits.