Repository navigation
Chief Home: a pinned Needs you section lists the Feed's open requests - #33817
Conversation
…ds you section (red) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-528c54a2913c7edf480a
The Feed's open requests (the ones it pins, in its order, from its own model) show in a card under the Chief conversation's header: what each one is and who asked, a click opens its source (its link, the asking tab or chat, else the Feed), and the Feed row's one-click answers answer through the Feed's own path. Hidden when nothing waits. It lies over the transcript, so it moves no message. Variants rows (default), cards and bar under Debug Settings > Feed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-528c54a2913c7edf480a
|
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)
web and size checks: green Default changesThis pull request changes 2 defaults at
Signed off on this commit by Merge receipt: merged as Regenerate the snapshot with Shipped in:
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/41645731551 at 6dedb9c failed: cmux-next checks (god files, concurrency, crash safety, l10n). |
|
Owned by an agent session · session |
…ance Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-528c54a2913c7edf480a
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
… clear, wires the Feed's hooks once Review follow-ups at 05e6a98: a height change re-measures in the next layout pass (never inside SwiftUI's update); the empty Chief's first-run panel starts under the card; the cards variant leaves the Feed card's buttons to act; the Feed's open and place hooks install only when the Inbox page has not. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-528c54a2913c7edf480a
|
Review (subagent claude-opus-5-5 medium): SHIP at 05e6a98 Visual verdict: no screenshots attached (follow-up); the card is new UI behind its own Feed data. Follow-ups:
|
|
Review (subagent claude-opus-5-5 medium): SHIP at 7f93b17 Visual verdict: no screenshots attached (follow-up #33830). Follow-ups (#33830):
|
|
Found 2 test failures on Blacksmith runners: Failures
|
…-written one Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-528c54a2913c7edf480a
|
Review (subagent claude-opus-5-5 medium): SHIP at cbd8579 Visual verdict: unchanged by this diff (test only). Follow-ups (#33830):
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-528c54a2913c7edf480a
|
Review (subagent claude-opus-5-5 medium): SHIP at f433263 Visual verdict: only the Needs you row text changes (the headline is semibold instead of medium; the meta line is TypeScale.caption, which is 11 pt and follows the text size). Follow-ups: none. |
The no-SwiftUI gate refuses a new SwiftUI file. The section, its rows and the bar are AppKit now; the Feed's own SwiftUI answer controls and request card are hosted through FeedListView.swift (already allowlisted), as the Feed list hosts its request cards. It follows the model with one withObservationTracking read, re-armed only while in a window. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-528c54a2913c7edf480a
|
Review (subagent claude-opus-5-5 medium): SHIP at 4090945 Visual verdict: no screenshots attached (follow-up #33830). The section is now AppKit; the Feed's own answer controls and request card are hosted as the Feed list hosts them. Follow-ups (#33830):
|
|
Review (codex, router-review): SHIP at 4090945 Reviewer: codex gpt-6-astra high, fast tier. Follow-ups: 3. Each lands as an issue in this repo that links this receipt; the lane that opened the PR fixes it forward. SHIP at 4090945
Follow-ups:
|
|
Review (codex gpt-6-astra high, router-review): BLOCK at 4090945 BLOCK at 4090945
Native tests could not run here because |
…uPin (arch app_lines +86 from #33817) (#33938) * base red: Chief Home's pinned Needs you is CmuxNextFeed's FeedNeedsYouPin (arch app_lines +86 from #33817) #33817 (7f7705f) added HomeHostView+NeedsYou.swift (84 CmuxNextApp lines): when the section shows, how it is made, what a click opens and the observation that pins it under the header. That logic is the Feed's view of its own model, so it moves to CmuxNextFeed as FeedNeedsYouPin (with a FeedPinnedSectionHost protocol, which HomeNativeTranscriptView meets as it is). The App keeps the wiring: the Feed's hooks, the tab lookup in the daemon store, the Inbox page, and starting the watch. Same decisions in the same order. HomeNeedsYouTests reads FeedNeedsYouPin.shows. CmuxNextApp -57. * fix(webviews): web-lint red: Reply chip shadow uses --elevation-2; settings gallery formatted check:design-tokens failed on feat since #33343 (0bb39cb): .cv-selection-reply had a raw box-shadow color (0 2px 8px rgb(0 0 0 / 0.14)). It now uses the popover elevation token, which also darkens correctly in dark mode. vp fmt --check failed on settings.gallery.ts since #33681 (db2bc10); this is the formatter's output. * Revert "fix(webviews): web-lint red: Reply chip shadow uses --elevation-2; settings gallery formatted" This reverts commit bde198b. * base red: the Home transcript's FeedPinnedSectionHost conformance imports CmuxNextFeed and CmuxNextHome publicly (fleet compile) A conformance of a public type from another module to a public protocol is public, so both modules must be public imports in that file.
|
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)
Correction (Leo, 2026-11-03): he asked to see permission items, not a pinned card by default; #34110 makes it opt-in. Its look is not yet verified.
This PR is the Chief Home part. The Feed side (#33705) already posts these as open requests and pins them at the top of the Feed. Until now nothing showed them in Chief Home.
What changes
Chief Home shows a pinned Needs you card under the header while the Feed has open requests (opt-in since cmux NEXT Chief Home: the pinned Needs you card is opt-in, off by default #34110). It lists the requests the Feed pins, in the Feed's order (
FeedModel.needsYou=listSections.requests), read from the Feed's own model. There is no second store.Each row says what the request is and who asked, using the Feed row's own text (
FeedRowContent's headline and who/where, plus the age). A click on the row opens the request's source:One-click answers: approve, confirm, sign-in, review and the other answers the Feed row offers in one click sit at the end of the row. They are the Feed's own
FeedAnswerControls, so they answer throughFeedModel.answerand add no new logic. A question or a choice opens instead, because it needs typing or picking.Past three requests the rest are counted ("2 more"), and the count opens the Feed.
It is hidden when nothing waits (no empty-state chrome), and it shows only in a Chief's conversation.
It sits over the transcript, under the header and above the message box, so showing, hiding or resizing it moves no message (no layout shift).
Observation and cleanup: one
ObservationStreamper Chief Home reads whether anything waits, and the card's SwiftUI view observes only its own rows. It wakes only on a Feed change and starts no timer. The watch is cancelled when the conversation stops being a Chief's and inHomeHostView's deinit.Variants: three styles under Debug Settings > Feed > "Needs you in Home" (
feed.needsYouStyle), switched live:rows(default): one line each, with answers at the end.cards: the Feed list's request cards.bar: one line with the count and the first request.I picked
rows. It is the shortest card that still answers in place, so it covers the least of the chat.cardsrepeats each request's full prompt, which is too tall over the chat, andbarhides who asked.References used:
cursor/live/getting-started-checklist(a quiet rounded card with its label on the left and a count beside it) andclaude/live/session-running-with-side-panels(a centered column, with what is pinned staying put while the transcript scrolls).Prior art kept: #22646 (the agent pane's Needs you list) and #24071 (that header badge moved to the App Store, off by default) are untouched, and no chat-header badge is added. No
*Chief*file and no Chief-area path is changed.Localization: one new string,
needsYou.more("%lld more"), in CmuxNextFeed's xcstrings with every locale that table carries (en, de, fr, ar, es, zh-Hant, zh-Hans, ko, ja and the rest). The title reuses the Feed's existing "Needs you" (group.needsYou). The Debug Settings labels are developer-only and, like the other tunables, not localized.Testing
HomeNeedsYouTests(CmuxNextAppTests) has five tests:Runs:
package-test-lane.sh suite Packages/macOS/CmuxNext HomeNeedsYouTestsfails to compile the test:value of type 'HomeNativeTranscriptView' has no member 'pinnedSection',cannot find 'FeedNeedsYouView' in scope.cmux-ci compile-check --apppasses at 7f93b17, whose source is the same as this head (the later commit changes only the test).Not run
Agent session: agent session
🤖 Generated with Claude Code