Skip to content

base red: multi-view split drop test lets the sidebar observation repaint row fills - #31564

Merged
teamleaderleo merged 1 commit into
feat-cmux-nextfrom
lane/swift-red-round2-multiview-lit-rows
Nov 2, 2026
Merged

teamleaderleo merged 1 commit into
feat-cmux-nextfrom
lane/swift-red-round2-multiview-lit-rows

Conversation

@teamleaderleo

Copy link
Copy Markdown
Collaborator

What failed

SidebarMultiViewWindowTests.aRowDraggedToASplitEdgePreservesFocusAndVisibleRowHighlightsDuringThePreview, https://github.com/manaflow-ai/cmux/actions/runs/41358792657 (first run on a display Mac with the test):

SidebarMultiViewDropTests.swift:67:13: Expectation failed: (f.litRows → ["k0", "k1"]) == (f.shown → ["k0", "k2", "k1"])

The checks before it passed, including f.onScreen == f.shown and f.shown.contains("k2"): the model had k2 on screen, the row fill had not repainted yet.

Cause

The sidebar repaints the on-screen fills from its observation task (SidebarView.observe → render → list.syncRowStates() when onScreen changes), a MainActor turn after the drop. The test (#27845, 2b962c6) read litRows in the drop's own turn after one synchronous frame().

Fix

Before the post-drop checks, the test gives the observation up to 120 bounded turns (10 ms sleep + frame each) until litRows == shown. If the product never lights k2 the same expectation still fails. Test-only.

Risk

Small, test-only; display-only suite.

Agent session: agent session

🤖 Generated with Claude Code

…tion repaint the fills

The sidebar repaints on-screen row fills from its observation task, a MainActor turn after
SidebarModel.onScreen changes; the last check of #27845's test read litRows in the same turn
as the drop. It now gives that task bounded turns before checking.

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

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

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

Review 81b2e1f: 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=pr31564 -f ref=lane/swift-red-round2-multiview-lit-rows -f platform=macos -f backend_mode=local

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

CI passes on 81b2e1fff3 (run 41370632429 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.

Shipped in:

@teamleaderleo teamleaderleo left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review (claude-opus-5-5): SHIP at 81b2e1f

Review (subagent claude-opus-5-5 medium): SHIP at 81b2e1f
The base red is SidebarMultiViewDropTests.swift:67, where litRows was [k0,k1] and shown was [k0,k2,k1]: the fills were read in the same turn as the drop. SidebarView+Observation recomputes onScreen in its observation task and calls syncRowStates only when that changes, so the diagnosis matches the code. The wait is bounded: 120 iterations x 10 ms (about 1.2 s), and each one calls f.frame(). The where clause skips the body once litRows == shown. All the final #expects stay, including litRows == shown, so a sidebar that never lights the dropped row still fails after the wait. litRows and shown are both Set, so != compiles, and the test is already async throws. The mid-drag frame-by-frame checks are unchanged.
Follow-ups: none

@github-actions github-actions Bot added the risk:low Risk tier (docs/ci/risk-tiers.md) label Nov 2, 2026
@teamleaderleo
teamleaderleo merged commit 13eaa1d into feat-cmux-next Nov 2, 2026
94 of 98 checks passed
@teamleaderleo
teamleaderleo deleted the lane/swift-red-round2-multiview-lit-rows branch November 2, 2026 01:12
@blacksmith-sh

blacksmith-sh Bot commented Nov 2, 2026

Copy link
Copy Markdown

Found 10 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp51t7x9rq/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmpxmtfasux/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
imported web bundle inputs are not routed:/imported web bundle inputs are not routed: View Logs
test_every_part_of_bun_run_check_runs_in_the_warn_branch (main.WebviewsWarnSplitCov
ersCheck.test_every_part_of_bun_run_check_runs_in_the_warn_branch)/
test_every_part_of_bun_run_check_runs_in_the_warn_branch (main.WebviewsWarnSplitCov
ersCheck.test_every_part_of_bun_run_check_runs_in_the_warn_branch)
View Logs
test_the_repository_keeps_leo_bans (main.LeoBansTests.test_the_repository_keeps_leo
_bans)/
test_the_repository_keeps_leo_bans (main.LeoBansTests.test_the_repository_keeps_leo
_bans)
View Logs
test_the_repository_keeps_leo_bans (main.LeoBansTests.test_the_repository_keeps_leo
_bans)/
test_the_repository_keeps_leo_bans (main.LeoBansTests.test_the_repository_keeps_leo
_bans)
View Logs

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

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 81b2e1ff Deployed Nov 2, 2026 by teamleaderleo via namespace autofix #11758
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant