Skip to content

cmux NEXT Chief Home: the pinned Needs you card is opt-in, off by default - #34110

Merged
teamleaderleo merged 2 commits into
feat-cmux-nextfrom
fix/needs-you-home-opt-in
Nov 3, 2026
Merged

teamleaderleo merged 2 commits into
feat-cmux-nextfrom
fix/needs-you-home-opt-in

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Fix-forward for #33817. Leo, 2026-11-03:

This thing the claude-coord-sr2 misinterpreted my request
I just wanted to see permission things, period, not a pinned thing by default. Toggle-on, yes, but I haven't verified the looks of that yet

and earlier: "oh stuff yeah actually we should be able to surface permissions/multiple choice related things inside chief".

#33817 put a pinned Needs you card over every Chief conversation by default. Leo did not ask for that. This PR makes the card opt-in and off by default. Its look has not been verified or approved by Leo.

What changes

  • New setting, off by default: Settings > Notifications > Feed > Pin Needs You in Chief (feed.needsYouInChief). Help text: "Open requests, such as permission prompts and questions, are pinned at the top of your Chief's conversation. The Feed always lists them."
  • Off (the default): nothing is pinned and the Chief transcript is unchanged. The watch reads no Feed state while the setting is off, so Feed changes don't wake it.
  • On: the card behaves as in Chief Home: a pinned Needs you section lists the Feed's open requests #33817 and switches live when the setting changes (it reads the observable settings snapshot inside the same ObservationStream). The Debug style variants (feed.needsYouStyle: rows, cards, bar) still apply.
  • Unchanged: the Feed's own requests and permission items (its pinned requests, inline answers, Inbox) and the feature code. Nothing was removed.
  • Agents may not set the key (.userOnly): the person decides whether it pins over their chat.
  • The label and help are localized in CmuxNextSettings' catalog for all 21 of its locales.

Context read (Leo's recent drafts and issues)

These describe how permission and question items surface today: in the Feed's Needs you requests, on the iPhone, and as Chief approval cards. I read them as background only; Leo's correction above decides this PR.

Testing

HomeNeedsYouTests (CmuxNextAppTests):

  • new itIsOffByDefaultAndTheSettingTurnsItOn: unset cmux.json reads off, {"feed":{"needsYouInChief":true}} reads on, and the Settings row defaults to false;
  • new offPinsNothingAndOnPinsTheFeedsRequestsLive: with a request waiting and the toggle off, nothing is pinned while the Feed still lists the request; turning the toggle on pins it without a restart;
  • onlyAChiefsConversationShowsItAndOnlyWhileSomethingWaits now also checks that off shows nothing;
  • the four existing tests are otherwise unchanged and still cover the on path.

Runs: see the comments below for the fleet compile (cmux-ci compile-check --app) and the HomeNeedsYouTests suite at the head.

Settings exports (schemas/settings, docs/mdm) are regenerated by the PR autofix.

Agent session: agent session

🤖 Generated with Claude Code


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


Summary by cubic

Makes the pinned Needs you card over Chief conversations opt-in and off by default, per Leo's direction to fix forward #33817.

The card appears only when Settings > Notifications > Feed > Pin Needs You in Chief (feed.needsYouInChief) is on. Off (the default), the Chief transcript is unchanged and the Feed still lists all requests. On, the card pins the Feed's open requests under the Chief header and switches live without a restart. The card's visual style was not verified by Leo.

New Features

  • Adds the feed.needsYouInChief setting, marked .userOnly so agents cannot turn it on for the person.
  • Localizes the setting label and help text for all 21 of CmuxNextSettings' locales.

Testing

  • Adds HomeNeedsYouTests coverage for the off-by-default state, the live toggle-on path, and that nothing is pinned while the setting is off.
  • The existing tests still cover the enabled path unchanged.

Settings exports (schemas/settings, schemas/defaults, docs/mdm) are regenerated.

Written for commit 4638437. Summary will update on new commits.

View guided diff Turn on auto-fix

…ault

Leo, 2026-11-03: "I just wanted to see permission things, period, not a
pinned thing by default. Toggle-on, yes, but I haven't verified the looks
of that yet". Settings > Notifications > Feed > Pin Needs You in Chief
(feed.needsYouInChief, off by default) turns it on; the Feed's own
requests are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 4638437: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr34110 -f ref=fix/needs-you-home-opt-in -f platform=macos -f backend_mode=local

Not verified: macOS jobs did not run: compile and app tests were skipped on 46384373ec; ci-status is green without them.

CI passes on 46384373ec (run 41704465444 attempt 1).
macOS jobs did not run: compile and app tests were skipped: Fast static checks skipped (the macos job needs both to succeed). Re-run CI once they pass, before merging.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

red: cmux-next checks (god files, concurrency, crash safety, l10n); NEW: red check: Script tests (pin-cmux-tui, embed-cef, ensure-cef store) (+1 more) is not red on the base 2e9aa60; do not merge until green; see lane-rules

Default changes

This pull request changes 1 default at 46384373ec99 (what everyone gets without configuring anything):

  • setting.feed.needsYouInChief: (none) -> false (a new setting, off by default: passes on its own)

Every change is a new setting that defaults to off, the behavior from before it existed.

Merge receipt: merged as be63d3be43c3 with these defaults changed, signed off by review (correctness).

Regenerate the snapshot with python3 scripts/ci/defaults_guard.py snapshot.

Shipped in:

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 3, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Fleet runs at d84c211:

  • cmux-ci compile-check --app: passed (job c82ad05c5cae2b3c8d9927db).
  • package-test-lane.sh suite Packages/macOS/CmuxNext HomeNeedsYouTests: 7 tests in 1 suite passed (step 2918cd465ead93671b8e2c3b), including the new itIsOffByDefaultAndTheSettingTurnsItOn and offPinsNothingAndOnPinsTheFeedsRequestsLive.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (subagent claude-opus-5-5 medium): SHIP at d84c211

Visual verdict: unchanged by default (the card is now off by default); the look of the opt-in card is not verified.
Checked the call sites of the changed FeedNeedsYouPin signatures, the imports, that the key is in the agent-policy table once (.userOnly), all 21 locales in the catalog, and that the new tests can't pass without the watch having run. The fleet compile and HomeNeedsYouTests (7/7) passed at this head.

Follow-ups: (1) [follow-up] type FeedNeedsYouPin.isEnabled as @MainActor () -> Bool, matching FreeTierAttestStarter; (2) [follow-up] AppServices.settings isn't observed, so if settings load after the watch starts, a toggle that is on in cmux.json isn't picked up until the watch restarts (low risk: settings load before Chief Home opens).

@blacksmith-sh

blacksmith-sh Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Found 12 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp__hwi5ap/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmpcdwy1_z_/summary-missing.json (live):/summary-missing.json (live): View Logs
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows/
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows
View Logs
[new_workspaces] the window draws no frames/[new_workspaces] the window draws no frames View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
nightly still handles the legacy tunnel extension/
nightly still handles the legacy tunnel extension
View Logs
test_skipped_steps_read_no_unkeyed_decide_output (main.Workflow.test_skipped_steps_
read_no_unkeyed_decide_output) (step='- name: Build nightly app (Release)', output='not
ary_probe')/
test_skipped_steps_read_no_unkeyed_decide_output (main.Workflow.test_skipped_steps_
read_no_unkeyed_decide_output) (step='- name: Build nightly app (Release)', output='not
ary_probe')
View Logs
test_skipped_steps_read_no_unkeyed_decide_output (main.Workflow.test_skipped_steps_
read_no_unkeyed_decide_output) (step='- name: Build nightly app (Release)', output='not
ary_probe')/
test_skipped_steps_read_no_unkeyed_decide_output (main.Workflow.test_skipped_steps_
read_no_unkeyed_decide_output) (step='- name: Build nightly app (Release)', output='not
ary_probe')
View Logs
test_skipped_steps_read_no_unkeyed_decide_output (main.Workflow.test_skipped_steps_
read_no_unkeyed_decide_output) (step='- name: Build nightly app (Release)', output='pro
file_channel')/
test_skipped_steps_read_no_unkeyed_decide_output (main.Workflow.test_skipped_steps_
read_no_unkeyed_decide_output) (step='- name: Build nightly app (Release)', output='pro
file_channel')
View Logs

...and 2 more test failures. View all on Blacksmith: run 41704464360, run 41704466932

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

Copy link
Copy Markdown
Collaborator Author

Review (correctness): SHIP at 4638437

The default is false in runtime, Settings and generated exports. The observation reads the setting live, reads no Feed state while disabled, and hides only the pinned section without removing requests from the Feed. The latest commit changes only five generated exports. No concrete correctness blocker found.

Verification at this head: cmux-next/compile and cmux-next/fast-gates passed, as did the app compile and fleet Release compile. The previously recorded HomeNeedsYouTests run passed 7/7 at d84c211; runtime and test source is unchanged by 4638437. Full Swift tests, action exports and several web checks are still running; these are not claimed passed. The opt-in card's appearance has not been verified or approved by Leo.

CI classification: PR jobs tested synthetic merge 18a87d2 against base 6f7f953. The script-test failures for profile_channel/notary_probe also fail in that base's cmux-next checks. The legacy tunnel and nightly step-coverage failures also fail in that base's release-notary job. The PR status comment's comparison used the older original base 2e9aa60. The migration wrapper is red because its plan was cancelled, not because this PR changed migrations. Remaining cancelled jobs are advisory/superseded. No red caused by this PR was found.

Risk evidence passed. No unresolved review threads or open merge freezes were found; merge_freeze.py check returned 0 against the current empty freeze-issue list. Leo's explicit merge request lifts the prior permission hold. No deployment is requested.

@teamleaderleo
teamleaderleo merged commit be63d3b into feat-cmux-next Nov 3, 2026
181 of 196 checks passed
@teamleaderleo
teamleaderleo deleted the fix/needs-you-home-opt-in branch November 3, 2026 20:12
@lawrencecchen

Copy link
Copy Markdown
Contributor

Leo: #34110 put the arch ratchet's app_lines row red (+4 CmuxNextApp lines). The fix PR moves the feed.needsYouInChief read into CmuxNextSettings (HomeNeedsYouSetting.reader) and the reveal's tab lookup into DaemonStore.tab(reported:...); the card stays off by default and switches live.

lawrencecchen added a commit that referenced this pull request Nov 3, 2026
…ir packages' (arch app_lines +4 from #34110) (#34231)

#34110 (be63d3b) added 4 CmuxNextApp lines to HomeHostView+NeedsYou: the
feed.needsYouInChief read with its default, and its comment. The read moves to
CmuxNextSettings as HomeNeedsYouSetting.reader (the setting owns its default),
and the reveal's tab lookup (tab, else terminal resource, else ACP session),
which DaemonStore.place already ran inline, becomes
DaemonStore.tab(reported:terminal:agentSession:) in CmuxNextDaemon, used by
both. Same values and the same lookup order. CmuxNextApp -4.

Co-authored-by: cmux-bot[bot] <348531757+cmux-bot[bot]@users.noreply.github.com>

This branch was successfully deployed

2 inactive deployments
artifacts — 46384373 Deployed Nov 3, 2026 by teamleaderleo via publish tree-addressed cmux-tui #107419
sentry-dsyms — 46384373 Deployed Nov 3, 2026 by teamleaderleo via upload cmux-tui dSYMs to Sentry #107419
ci-routing-agent — 46384373 Deployed Nov 3, 2026 by teamleaderleo via namespace autofix #13558
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants