Skip to content

Chief front page gives way to a growing compose field - #22969

Merged
austinywang merged 9 commits into
feat-cmux-nextfrom
chief-first-run-composer-overlap
Oct 23, 2026
Merged

austinywang merged 9 commits into
feat-cmux-nextfrom
chief-first-run-composer-overlap

Conversation

@austinywang

@austinywang austinywang commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Summary

In an empty Chief conversation, a long draft grows the compose field up into the Chief front page, and the page's action rows and Switching card drew over the text.

  • MessagesLabHomeView.onFieldTopChange reports a field height change (typing, an attachment, a width rewrap, a send); HomeNativeTranscriptView lays out again, so the panel ends at the field's top.
  • HomeFirstRunView drops what does not fit, in order: agent rows, then the hero, then the Switching card, then the action rows. Everything returns when the field shrinks; a card hidden with Hide stays hidden.
  • New DEBUG capture scene home-chief-long-draft: the home-chief scene plus a 24-line draft; it waits until the field grew and the panel gave way, and reports the gap between the panel's lowest shown part and the field.

Changelog

Fixed: The Chief start page no longer draws over a long message as you type it.

Testing

cmux-ci run --class light --script scripts/ci/package-test-lane.sh --arg=suite --arg=Packages/macOS/CmuxNext --arg=HomeChiefFrontPageTests,HomeFirstRunSwitchCardTests[,SharedIndicatorSurfacesTests] (Xcode 26.6):

  • Base plus the test only (eccbc43): aGrowingFieldNeverLeavesThePanelUnderIt fails with 44 issues (the card and rows drawn up to 230 pt past a 0 pt panel; the action rows never hide).
  • Fix (c4ccf2c), review follow-up (6d17447): all pass.
  • Final head: see the latest evidence comment.

Observed / Not run

  • Observed: the red/green runs above; a tagged dev build of 6d17447 (job 2132c132a42aa997f14a29af, tag 22969-chief-front-page-overlap) dogfooded by the requester, who reports the panel now gives way to a long draft.
  • Two correctness reviews by subagents: PASS (findings fixed; see comments).
  • Not run: the Mac capture.

No capture: the capture build succeeded (job 790ffc5eeee906f2b2074d09, head 02d3271), but capture-host acquire --slot could not reach either capture mini from this machine (cmux-mac-mini-cua-2/-3: SSH alias does not resolve here). cmux-ci capture <head> --state scene:home-chief-long-draft --pr 22969 from a machine on the fleet route produces it.

🤖 Generated with Claude Code

austinywang and others added 2 commits October 20, 2026 22:03
… under it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A long draft grows the field up into the empty Chief conversation's panel
without a size change, so the panel was never refit, and it could only drop
agent rows and the hero: the action rows and Switching card stayed under
the field. MessagesLabHomeView now reports a field height change
(onFieldTopChange) and the host lays out again; the panel drops agent rows,
then the hero, then the Switching card, then the action rows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@austinywang austinywang added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 21, 2026
@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

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

Review d88afe1: 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=pr22969 -f ref=chief-first-run-composer-overlap -f platform=macos -f backend_mode=local

Passes: CI passes on d88afe18ea.

CI passes on d88afe18ea (run 39900322057 attempt 1).

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); no finished base run on d35831e to compare; do not merge until green; see lane-rules

Tour of d88afe18ea (run)

The path-selected recorder failed for core-after, core-before; see the run artifact and failed manifests.

Path-selected interactions

Interaction Changed paths
chief-settings Packages/macOS/CmuxNext/Sources/CmuxNextHome/NativeTranscript/HomeFirstRunView\+Debug.swift
Packages/macOS/CmuxNext/Sources/CmuxNextHome/NativeTranscript/HomeFirstRunView.swift
core Packages/macOS/CmuxNext/Sources/CmuxNextApp/Control/CaptureSceneRegistry\+Home.swift
Packages/macOS/CmuxNext/Sources/CmuxNextApp/Control/CaptureSceneRegistry.swift
Packages/macOS/CmuxNext/Sources/CmuxNextHome/NativeTranscript/HomeNativeTranscriptView.swift
Packages/macOS/CmuxNext/Tests/CmuxNextAppTests/HomeChiefFrontPageTests.swift

Chief front page and settings (before): DEGRADED — 4 ok, 2 unavailable

tour

Video (mp4)

# Step Result Command
1 Launch ok
2 Home with the Chief: its front page while the conversation is empty ok cmux action run home.show
3 Dark ok
4 Back to the system appearance ok
5 Chief settings under the name pill unavailable: exited 1 (the settings open only over a Chief conversation) cmux action run home.toggleChiefSettings
6 Closed again unavailable: exited 1 (the settings open only over a Chief conversation) cmux action run home.toggleChiefSettings
Screenshots (5)

1. Launch
Launch

2. Home with the Chief: its front page while the conversation is empty
Home with the Chief: its front page while the conversation is empty

3. Dark
Dark

5. Chief settings under the name pill
Chief settings under the name pill

6. Closed again
Closed again

### Chief front page and settings \(after\): DEGRADED — 4 ok, 2 unavailable

tour

Video (mp4)

# Step Result Command
1 Launch ok
2 Home with the Chief: its front page while the conversation is empty ok cmux action run home.show
3 Dark ok
4 Back to the system appearance ok
5 Chief settings under the name pill unavailable: exited 1 (the settings open only over a Chief conversation) cmux action run home.toggleChiefSettings
6 Closed again unavailable: exited 1 (the settings open only over a Chief conversation) cmux action run home.toggleChiefSettings
Screenshots (5)

1. Launch
Launch

2. Home with the Chief: its front page while the conversation is empty
Home with the Chief: its front page while the conversation is empty

3. Dark
Dark

5. Chief settings under the name pill
Chief settings under the name pill

6. Closed again
Closed again

### Core UI \(before\): FAILED — 16 ok, 3 failed, 1 unavailable

tour

Video (mp4)

# Step Result Command
1 Launch ok
2 New workspace ok cmux workspace new --name Tour
3 Type in the terminal ok cmux workspace name:Tour screen current pane current tab current terminal current write --text "echo hello from the cmux-next tour\r"
4 A command reports progress: tab loading spinner ok cmux workspace name:Tour screen current pane current tab current terminal current write --text "clear; printf '\\033]9;4;3\\007'; sleep 900\r"
5 Split right failed: exited 1 cmux action run splitRight
6 Split down failed: exited 1 cmux action run splitDown
7 New terminal tab failed: exited 1 cmux action run newSurface
8 Browser tab ok cmux tab new-browser --url https://example.com
9 Hide the sidebar ok cmux action run toggleSidebar
10 Show the sidebar ok cmux action run toggleSidebar
11 Notification ok cmux notify --title Tour --body "Hello from CI"
12 Notifications panel ok cmux action run showNotifications
13 Agent chat ok cmux agent new-chat
14 Agent workspace ok cmux workspace new --name Agent
15 Agent starts ok cmux workspace name:Agent screen current pane current tab current terminal current write --text "clear; printf '\\033]7501;state=working\\033\\\\'; sleep 8; printf '\\033]7501;state=done\\033\\\\'; sleep 900\r"
16 An agent works: row working spinner ok cmux workspace new --name Notes
17 The agent finishes: done mark in the spinner's place ok
18 Session tree: keycaps on the first rows ok cmux settings set sidebar.sessionTree true
19 Session tree back off for later tours ok cmux settings set sidebar.sessionTree false
20 Profile menu unavailable: exited 1 (the menu shot needs a screen capture route) cmux action run sidebar.profileMenu

Failed steps:

5. Split right
Split right

6. Split down
Split down

7. New terminal tab
New terminal tab

Screenshots (12)

1. Launch
Launch

2. New workspace
New workspace

3. Type in the terminal
Type in the terminal

4. A command reports progress: tab loading spinner
A command reports progress: tab loading spinner

8. Browser tab
Browser tab

9. Hide the sidebar
Hide the sidebar

11. Notification
Notification

12. Notifications panel
Notifications panel

13. Agent chat
Agent chat

16. An agent works: row working spinner
An agent works: row working spinner

17. The agent finishes: done mark in the spinner's place
The agent finishes: done mark in the spinner's place

18. Session tree: keycaps on the first rows
Session tree: keycaps on the first rows

### Core UI \(after\): FAILED — 16 ok, 3 failed, 1 unavailable

tour

Video (mp4)

# Step Result Command
1 Launch ok
2 New workspace ok cmux workspace new --name Tour
3 Type in the terminal ok cmux workspace name:Tour screen current pane current tab current terminal current write --text "echo hello from the cmux-next tour\r"
4 A command reports progress: tab loading spinner ok cmux workspace name:Tour screen current pane current tab current terminal current write --text "clear; printf '\\033]9;4;3\\007'; sleep 900\r"
5 Split right failed: exited 1 cmux action run splitRight
6 Split down failed: exited 1 cmux action run splitDown
7 New terminal tab failed: exited 1 cmux action run newSurface
8 Browser tab ok cmux tab new-browser --url https://example.com
9 Hide the sidebar ok cmux action run toggleSidebar
10 Show the sidebar ok cmux action run toggleSidebar
11 Notification ok cmux notify --title Tour --body "Hello from CI"
12 Notifications panel ok cmux action run showNotifications
13 Agent chat ok cmux agent new-chat
14 Agent workspace ok cmux workspace new --name Agent
15 Agent starts ok cmux workspace name:Agent screen current pane current tab current terminal current write --text "clear; printf '\\033]7501;state=working\\033\\\\'; sleep 8; printf '\\033]7501;state=done\\033\\\\'; sleep 900\r"
16 An agent works: row working spinner ok cmux workspace new --name Notes
17 The agent finishes: done mark in the spinner's place ok
18 Session tree: keycaps on the first rows ok cmux settings set sidebar.sessionTree true
19 Session tree back off for later tours ok cmux settings set sidebar.sessionTree false
20 Profile menu unavailable: exited 1 (the menu shot needs a screen capture route) cmux action run sidebar.profileMenu

Failed steps:

5. Split right
Split right

6. Split down
Split down

7. New terminal tab
New terminal tab

Screenshots (12)

1. Launch
Launch

2. New workspace
New workspace

3. Type in the terminal
Type in the terminal

4. A command reports progress: tab loading spinner
A command reports progress: tab loading spinner

8. Browser tab
Browser tab

9. Hide the sidebar
Hide the sidebar

11. Notification
Notification

12. Notifications panel
Notifications panel

13. Agent chat
Agent chat

16. An agent works: row working spinner
An agent works: row working spinner

17. The agent finishes: done mark in the spinner's place
The agent finishes: done mark in the spinner's place

18. Session tree: keycaps on the first rows
Session tree: keycaps on the first rows

Tours are data in scripts/cmux-next/media/tours: add a step or a tour file to show your feature.

Review: agent rows could outlast the card, and a card with its desktop note
could go before the hero. Agent rows now show only while the hero and card
do, and the hero only while a card with keys does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo

Copy link
Copy Markdown
Collaborator

Bead cx-fpnwb created for this PR by the cmux coordinator.

@austinywang

Copy link
Copy Markdown
Contributor Author

Evidence for head 6d1744787c59e8efc1652c7f7406b340578d7ae7 (base feat-cmux-next).

Focused tests (cmux-ci run … package-test-lane.sh suite Packages/macOS/CmuxNext …, Xcode 26.6):

  • eccbc43 (test only): aGrowingFieldNeverLeavesThePanelUnderIt fails, 44 issues (rows and card drawn up to 230 pt past a 0 pt panel; action rows never hide).
  • c4ccf2c (fix): HomeChiefFrontPageTests 6/6, HomeFirstRunSwitchCardTests 4/4 pass.
  • 6d17447 (head, with the review follow-up): HomeChiefFrontPageTests, HomeFirstRunSwitchCardTests, SharedIndicatorSurfacesTests all pass (key chief-firstrun-6d174478).

Review (correctness subagent): PASS. Two low findings, both fixed in 6d17447: agent rows could outlast a dropped Switching card, and a card with its desktop-conflict note could go before the hero. Now agent rows show only while the hero and card do, and the hero only while a card with keys does. Nit (no change): a width rewrap asks for one extra no-op layout pass.

Dev build: job 2132c132a42aa997f14a29af, tag 22969-chief-front-page-overlap, published to HQ and launched.

Not run yet: visual review of the tagged build.

@teamleaderleo

Copy link
Copy Markdown
Collaborator

cmux-next guards / defaults-snapshot is red on 18 of 18 fresh feat-cmux-next PR heads in the last 2:00:00, so it is most likely a base red, not this PR's. The base-reds lane has it; a base merge picks up the fix once it lands.

austinywang and others added 3 commits October 21, 2026 14:41
…-run-composer-overlap

# Conflicts:
#	Packages/macOS/CmuxNext/Sources/CmuxNextHome/NativeTranscript/HomeNativeTranscriptView.swift
…ng draft

The home-chief scene, then a long draft that grows the field up into the
first-run panel; it waits until the field grew and the panel gave way, and
reports how far the panel's lowest shown part sits above the field.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@blacksmith-sh

blacksmith-sh Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Found 8 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp15gxyko9/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmpmsk6vrmf/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
test_base_passes (main.NoticesPairTests.test_base_passes)/
test_base_passes (main.NoticesPairTests.test_base_passes)
View Logs
test_targets_outside_the_app_go_to_the_mac_canary (main.SwiftCanaryFleetCoverage.te
st_targets_outside_the_app_go_to_the_mac_canary)/
test_targets_outside_the_app_go_to_the_mac_canary (main.SwiftCanaryFleetCoverage.te
st_targets_outside_the_app_go_to_the_mac_canary)
View Logs

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

A long-draft render left its draft for later scenes in the same app.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@austinywang
austinywang marked this pull request as ready for review October 21, 2026 21:51
@austinywang

Copy link
Copy Markdown
Contributor Author

Evidence for head af4ac245f1a38fa97a00f218c932726f124e6358 (merged with feat-cmux-next in af43a0c).

Focused tests (package-test-lane.sh suite Packages/macOS/CmuxNext HomeChiefFrontPageTests,HomeFirstRunSwitchCardTests,SharedIndicatorSurfacesTests, Xcode 26.6): all 3 suites pass at 02d3271 (key chief-firstrun-02d32717) and at the head (key chief-firstrun-af4ac245).

Review of the merge and capture scene (second correctness subagent): PASS. Merge keeps both base's import-card offset (ColumnTopOverlays) and this fix; every write of the field's height fires onFieldJump/onFieldResize, so nothing moves the field top without a relayout; the long-draft scene can settle (the field caps at 295.5 pt, 24 lines grow it about 265 pt). One low finding fixed in af4ac24: Home scenes now start with an empty field, so a long-draft render leaves nothing for later scenes; a missing transcript is now an error, not a silent pass.

Earlier reds on 6d17447 (defaults-snapshot, cmux-next generated files, cmux-next swift test, cmux-next perf gate) were base findings: stale settings exports for files this PR does not touch, and ActionSurfaceParityTests.everyMenuKeepsAShortTopLevel (13 > 12). The branch now has the current base; CI on this head supersedes them.

Capture: not taken (see description: capture minis unreachable from this machine; build job 790ffc5eeee906f2b2074d09).

@austinywang austinywang added ready-to-land Reviewed at this head; next-autoland merges it into feat-cmux-next when its only reds are base reds and removed ready-to-land Reviewed at this head; next-autoland merges it into feat-cmux-next when its only reds are base reds labels Oct 21, 2026
…-run-composer-overlap

# Conflicts:
#	Packages/macOS/CmuxNext/Sources/CmuxNextHome/NativeTranscript/HomeFirstRunView.swift
#	Packages/macOS/CmuxNext/Sources/CmuxNextHome/NativeTranscript/HomeNativeTranscriptView.swift
@cursor

cursor Bot commented Oct 23, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot 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.

@austinywang

Copy link
Copy Markdown
Contributor Author

Evidence for head d88afe18ea6de2eabd2bee37eb86e04a617ed605 (merged with current feat-cmux-next).

Conflict resolution (bbca89b, against #23940): the import suggestion row now sits inside the panel under the action rows, so it counts with the action block and hides with it; the transcript takes base's header-only top, keeping onFieldTopChange. Review subagent: PASS (the import row's isHidden stays owned by the row; no layout loop; nothing re-shows it over the field). Nit, pre-existing in base: the size check counts a 14 pt gap above the import row where the stack uses 6 pt, so it hides a part a few points early, never late.

Focused tests (key chief-firstrun-d88afe18, Xcode 26.6): HomeChiefFrontPageTests, HomeFirstRunSwitchCardTests, SharedIndicatorSurfacesTests all pass.

Dev build: job 8064b3f757aeaec6ad925979, tag 22969-chief-front-page-overlap-v2.

Reds on this head, classified:

  • pr-capture-check: this PR's description (the No capture: line was mid-line); fixed in the description.
  • rails (web Rails tests), nightly-guards / release-notary (Ghostty license manifest digest) and its wrapper Guard status: files this PR does not touch; base findings.
  • cmux-next checks: findings in SidebarPullRequestCard, VaultListView, BrowserDownloadsPopup, WorkspaceTodoPageView, ExtensionsMenuView, AgentCLIIntentLedger, HomeGroupInfoView, ChiefMemoryInspectorView, plus Type scale / No new SwiftUI; none in this PR's files, and the pre-push gate reports no violation added by its commits. Base finding.

@austinywang
austinywang merged commit 0fae9e4 into feat-cmux-next Oct 23, 2026
125 of 131 checks passed
@austinywang
austinywang deleted the chief-first-run-composer-overlap branch October 23, 2026 04:35
@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

This branch was previously deployed

1 inactive deployment
ci-routing-agent — d88afe18 Deployed Oct 23, 2026 by austinywang via namespace autofix #1690
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