cmux NEXT App Store: Needs you is an App Store item, off by default

Merged
TE
15d ago
+705-12

Leo, about the Needs you inbox badge in the agent chat header ("he" is Lawrence):

"he doesnt like this tho i kinda like this tho it's not too useful for me rn... app store maybe?"

What changes

  • New setting agentPane.needsYou.enabled (Bool, default off), under Settings > General > Agent Chat ("Needs You"). An agent can set it, since it only changes what the header shows. CmuxConfigSnapshot.agentPaneNeedsYouEnabled reads it.
  • App Store card chat.needsYou ("Needs You", Chief group, inbox preview): "A badge in the chat header lists every ask your agents wait on, with one-click answers." Get turns the setting on and Remove turns it off.
  • Wiring: while the setting is off, a new agent page gets the existing needs-you="off" attribute (AgentPaneTunables.documentAttributes, through needsYouInstalled, which AgentPanePageSettings.follow sets from cmux.json). While it is on, the Debug Settings choice agentPane.debug.needsYou (pinned / compact / off) applies as it does today. Like the debug tunable, the setting is read when an agent tab is made.
  • Strings for the setting row and the card in all 21 languages. Release note needs-you-in-app-store.md.
  • Tests: AgentPaneNeedsYouSettingTests pins the default (off), the toggle row and agent-settable; AgentPaneNeedsYouTunablesTests pins that "not installed" maps to needs-you="off" whatever the debug choice; AppStoreFeaturesTests lists the card under Chief.

What doesn't change

  • Nothing is deleted. Turning it on gives exactly today's feature.
  • The "Needs your input" pill (agentPane.debug.needsYouPill) is untouched.
  • No webview, header CSS, NeedsYou.tsx or App.tsx edits. With needs-you="off", NeedsYouButton already returns null before it renders the button or popover (webviews/src/agent-session/acpmux/needsYou/NeedsYou.tsx:79), and the header tools row spaces its items with flex gap (header/header.css:55, handoff/styles.css:43), so no gap is left behind. The session-panel lane is stacking the header and popover polish for off.
  • Settings exports (schemas/settings/settings-schema.json, docs/mdm/*, the source stamp) and the defaults snapshot are written by the export step and autofix, not by hand.

Capture

The App Store card, under Features > Chief (off by default, so it says Get):

Capture steps-86112f0128 at 70fa23131825 (fleet build, capture mini, text checked for private data)

LightDark
lightdark

Before/after of the agent chat header (fleet build at 3845f9af, which differs from the head only in a test file). Off, the new default: no Needs you inbox left of the terminal icon, no gap:

Capture steps-9db2aaf084 at 3845f9af963d (fleet build, capture mini, text checked for private data)

LightDark
lightdark

Installed (agentPane.needsYou.enabled: true), as before this PR: the inbox is back:

Capture steps-07350c549f at 3845f9af963d (fleet build, capture mini, text checked for private data)

LightDark
lightdark

Agent session: huge-blue

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Makes the "Needs you" inbox badge in the agent chat header an App Store item, off by default.

  • Adds the agentPane.needsYou.enabled setting (Settings > General > Agent Chat) and the chat.needsYou App Store card to toggle it.
  • While off, new agent pages get needs-you="off"; while on, the existing agentPane.debug.needsYou debug choice applies as before.
  • The setting is agent-settable since it only affects what the header shows; the "Needs your input" pill is unchanged.
  • Card name and summary are localized in all 21 languages, with a release note pointing to the App Store's Features tab.