Skip to content

cmux NEXT: keep Priority dragged chats in place - #25231

Closed
teamleaderleo wants to merge 7 commits into
feat-cmux-nextfrom
nx-sidebar-24177-core
Closed

teamleaderleo wants to merge 7 commits into
feat-cmux-nextfrom
nx-sidebar-24177-core

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

This is replacement piece 1 for #24177, limited to the core held-place drag fix and its regression coverage.

Fixes #24177

“a dragged chat keeps its place.”

The Priority drag persists the dropped order through subsequent ranking updates, using the existing marks persistence path. The tests cover a dragged row keeping its place while other rows rank around it, including the no-op and persistence-facing action assertions.

Validation:

  • python3 scripts/cmux-next/prepush-gate.py passed at 46a01209c7025.
  • git diff --check passed.
  • Native Swift tests are submitted to the fleet after the exact head is reviewed; no native build ran here.
  • The later Escape/hide, autoscroll, and keyboard/VoiceOver behavior is intentionally split into replacement PRs.

Agent session: big-red


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

teamleaderleo and others added 2 commits October 25, 2026 18:31
…ile the others rank

Red on base: the Priority view has no drag (a row's press only opens the chat) and the ranking
has no placement, so an idle chat always sinks below the unread ones (Leo 2026-10-21).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15ba7-3152-78b2-bfdf-bb6eb0d5a053&host=cosmic-gray
Leo 2026-10-21: "the click and drag doesn't quite work for moving guys up... some sort of basic
baked-in priority view thing sends your chat down since you're idle whereas upper ones are unread".

A Priority row now drags past the sidebar's drag threshold (a click still opens the chat). The drop
records the chat's place in the Priority marks (AgentPriorityMarks.placed, saved with the other marks);
the ranking puts placed chats back at their places and ranks the rest around them, so an idle chat
the person moved up no longer sinks below unread ones. A placed idle chat stays past the idle horizon
like a pinned one. The Priority view, its tiers and every default stay as they were.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15ba7-3152-78b2-bfdf-bb6eb0d5a053&host=cosmic-gray

Sidebar-Look: no visual change
Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a1754c-46d3-7d00-943d-9ccb740653c6&host=gcp-codex-lane-5
@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 26, 2026
@blacksmith-sh

blacksmith-sh Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Found 9 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp9q6as8b6/summary-missing.json (live):/summary-missing.json (live): View Logs
/tmp/tmpd_gpvhue/summary-fail.json (live):/summary-fail.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.yml must derive the embedded key and sign every appcast through the helper/
nightly.yml must derive the embedded key and sign every appcast through the helper
View Logs
test_every_routed_input_triggers_the_workflow (main.PullRequestTiers.test_every_rou
ted_input_triggers_the_workflow) (path='.claude/settings.json')
View Logs
test_the_repository_highlights_validate (main.DigestTests.test_the_repository_highl
ights_validate)/
test_the_repository_highlights_validate (main.DigestTests.test_the_repository_highl
ights_validate)
View Logs

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

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

cmux-next guards / nightly-guards / workflow-guard-tests / release-notary is red on 15 of 20 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.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

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

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

cmux-next / cmux-next checks (god files, concurrency, crash safety, l10n) › Script tests (pin-cmux-tui, embed-cef, ensure-cef store) is red on 13 of 16 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.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Closing this split PR per stale-PR reconciliation. Its work is superseded by the remaining split replacements; no merge is requested here.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Orphaned: no activity for 15 h, and no lane holds a lease on it. Adopted by the orphan sweep: merged feat-cmux-next in at be50989. A later pass queues it for the merge hub if it is reviewed, small and red only on base reds.

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

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

Review f0a2e45: 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=pr25231 -f ref=nx-sidebar-24177-core -f platform=macos -f backend_mode=local

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6-astra xhigh, next-review): SHIP at be50989

No blocking findings.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

cmux-next / cmux-next checks (god files, concurrency, crash safety, l10n) › No literal state roots (per-build isolation S7, cx-is1kf.8) is red on 13 of 21 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.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6-astra xhigh, next-review): BLOCK at f0a2e45

  • Packages/macOS/CmuxNext/Sources/CmuxNextSidebar/Views/Priority/SidebarPriorityRowView.swift:205 — The drag handlers are not reached for normal presses on the row’s title or preview. The row does not override hitTest, so AppKit targets its ChromeLabel/indicator subviews; pressStart is never set on the row. The tests call row.mouseDown directly and miss real event dispatch, leaving most rows undraggable.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Superseded by #28075, a carry of this PR that fixes its exact-head BLOCK: in the Priority row, presses on the title and preview were routed to the row. The carry adds a regression assertion for that.

This branch was previously deployed

1 inactive deployment
ci-routing-agent — f0a2e45d Deployed Oct 27, 2026 by teamleaderleo via wait for same-key tree publisher #65418
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.

1 participant