Repository navigation
cmux NEXT sidebar: preserve harness identity in chat history rows - #28651
Conversation
|
Review (codex gpt-6-astra high, router-review): BLOCK at 5e2ee40 BLOCK at 5e2ee40 Visual verdict: BLOCK — required after screenshots are absent.
Follow-ups: none |
|
Owned by an agent session · session |
# Conflicts: # Packages/macOS/CmuxNext/Sources/CmuxNextSidebar/Views/SidebarChatHistoryRow.swift # Packages/macOS/CmuxNext/Tests/CmuxNextAppTests/SidebarChatHistoryTests.swift
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Not verified: macOS jobs did not run: compile and app tests were skipped on CI passes on Written by Default changesThis pull request changes 1 default at
Signed off on this commit by Merge receipt: merged as Regenerate the snapshot with Shipped in:
|
|
Review (subagent claude-opus-5-5 medium): SHIP at c95e454 Compile: no problems found. Every API the diff calls exists at the head ( Follow-ups:
|
The session-tree Pinned and Earlier rows discarded
AcpmuxChat.harnessand rendered only a title plus age. That made old Claude/Codex chats indistinguishable after they left a workspace, despite the current sidebar contract requiring a harness mark with a stable fallback on every agent/session row.This draft carries the harness family through the metadata-only history model and feed, resolves registered harness ids through
AgentBrandCatalog, and gives unknown harnesses a person mark tinted withGroupColor.unset(id:). The row uses the shared leading icon column, clears the mark on reuse, and keeps the type only in accessibility text. Existing click, pin menu, age layout, row height, andsidebar.sessionTreedefault are unchanged.Evidence and prior art
SidebarChatHistoryRow.swiftpreviously documented “No kind icon” and owned only title/meta labels.SidebarChatHistory.swiftdropped the harness, whileSidebarChatHistoryFeed.historyChathad it at the source.leo-workspace/design/sidebar.mdandcmux-design-references/apps/claude/live/sidebar-linked-session-nesting.png's compact, icon-led nested session treatment.Tests
SidebarChatHistoryTestsverifies the feed preserves Codex/Claude harnesses.acme-agentgets a stable fallback colour, and the previous mark identity is not retained.git diff --checkandscripts/cmux-next/prepush-gate.pypass.cmux-ci test -- swift test --package-path Packages/macOS/CmuxNext --filter SidebarChatHistoryTests -j 4dispatched run41151216458for head5e2ee40f9407f05ba3ffdd21178039ec4d23f4fb; the lane stopped its wrapper after 30s, and the saved receipt remains available for the fleet wait. No green claim is made yet.Capture
Draft capture is still required before marking ready: add a DEBUG history fixture with Claude, Codex and an unknown harness in Pinned/Earlier, then attach 2x light and dark before/after images.
risk: normal
Agent session: agent session