Repository navigation
acpmux: chat window rows carry their label and place (Rust migration A7, list 1) - #31798
lawrencecchen wants to merge 4 commits into
Conversation
… shows (red) The sidebar history and the palette chats page each work out a chat's shown title and folder in Swift (SidebarChatHistoryFeed.historyChat, AgentChatsPalettePage.items), and the palette ranker in acpmux works out the same text a second time to match it (window.rs rank_entry). This test asks the window rows for that text: it fails until acpmux sends it. Rust migration A7 (rm-chat-lists).
Each row of `_acpmux/chats_window` now carries the text its list shows: `label` (the title; with none, the window's `untitled` word, else the folder's name with `lastPathComponent` rules, else the serialized harness) and `place` (the folder, `~` for the home folder). `place` is the same function the palette ranker uses for its subtitle, so a palette row shows the text the ranker matched. Clients stop working these out (layer-ownership.md rules 1 and 4: one copy of a rule, in Rust). Rust migration A7 (rm-chat-lists).
… label and place AgentChatsPalettePage.items and SidebarChatHistoryFeed.historyChat no longer work out a chat's shown title and folder: they show the row's `label` and `place` from acpmux's window (previous commit). The Swift copies of the title fallback (title, else the page's word / the folder's name / the harness) and of the `~` folder text are deleted. A raw-field fallback stays only for a daemon from before labels, until the version handoff replaces it. Rust migration A7 (rm-chat-lists).
|
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 1 default at
Needs a review. It passes with an independent review receipt on this commit: a comment or review whose first line is Regenerate the snapshot with |
|
Found 6 test failures on Blacksmith runners: Failures
|
|
Check classification at 44c04c6: fleet clippy step ae05c7dcd3cc28e147f1a91b failed on a base finding, not on this PR. The error is |
|
Review (claude-reviewer-a7): SHIP at 44c04c6 I read the diff and the full files at the head. I compared them with What I checkedSidebar history label is the same as before (base:
Palette title is the same as before. The palette spec always sends Palette subtitle. Every path builds the row the same way. The plain path and the Diffs. A row value now depends on the chat, its activity, Old daemon. An older daemon sends no Tests.
Binding rules. This change follows layer-ownership.md rule 1 and L1/L3, because the rule now lives in Rust and Swift only shows what the daemon decided. It also follows rule 4/L5: one Non-blocking notes
Fleet
|
|
Check classification at 44c04c6. This PR changes none of the files these checks name.
|
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. |
|
Review (claude-reviewer-a7): SHIP at b77d9b2 This head is cmux-bot's merge of feat-cmux-next (85ed087) into 44c04c6, which I reviewed before (#31798 (comment)). I did not compile or run anything on my machine. What I checked:
My earlier findings stay as they were: none of them blocks the merge, and the non-blocking notes in the first comment still apply. The Swift suites step (3e4998cd051637a5030a6dbe) ran on 44c04c6. Its result still applies to this head, because the merge changed none of the files those suites test. |
|
For awareness: this PR conflicts with feat-cmux-next, so it can't land until it's rebased or base is merged in. Its current review verdict stays as is; a hand-resolved merge gets a fresh review at the new head. |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Rust migration A7 (rm-chat-lists), list 1 of the chat-list moves: the text a chat list row shows.
What changes
Each row of acpmux's
_acpmux/chats_windownow carries two fields:label: the row's shown name. It is the chat's title. With no title, it is the window'suntitledword (the palette sends "New chat"), else the folder's last part (withlastPathComponentrules: a trailing/is dropped,/stays/), else the harness name as the row serializes it.place: the chat's folder, with~for the home folder. This is the same function that the palette ranker uses for its subtitle, so a palette row shows the text that the ranker matched.The Swift copies of these rules are deleted:
AgentChatsPalettePage.items:title ?? untitledandabbreviatingWithTildeInPath. They were also a second copy of the ranker'srank_entrytitle and subtitle (layer-ownership.md rule 4).SidebarChatHistoryFeed.historyChat:title ?? lastPathComponent ?? harness.Swift keeps a raw-field fallback (
label ?? title,place ?? cwd) only for a running daemon from before this change. The version handoff replaces such a daemon when the app starts.The daemon change has no FFI pin step: acpmux is a daemon, not cmux-app-ffi.
Tests (fleet, run by me)
cmux-tui-rust-check.sh test a_window_row_carries_the_label_and_place_its_list_shows, step 8bee78d87712390e76b37965: FAILED on the assertion (left: [Null, Null, Null, Null],right: ["claude-code", "proj", "p1", "Fix the build"], chats_window.rs:524; 1 test run). https://github.com/manaflow-ai/cmuxterm-hq/actions/runs/41388476867chats::window::tests(the ported Swift cases of the rule), step b7c64fd2644817ae885b6b03: PASSED (8 tests run, 8 passed, the 2 new ones named in the log); clippy, step ae05c7dcd3cc28e147f1a91b: FAILED on a base finding (clippy::suspicious_open_optionsin cmux-tui/src/plugin_manager.rs:233, from feat(cmux-tui): update installed plugins automatically #31462; this PR does not change it; open fix base red: plugin update lock opens without truncation (Linux clippy suspicious_open_options, #31462) #31697). The run stopped before acpmux; I run clippy again after base red: plugin update lock opens without truncation (Linux clippy suspicious_open_options, #31462) #31697 lands.AgentChatsPaletteAnswerTests,SidebarChatHistoryTestson a Mac (proof-step), step 3e4998cd051637a5030a6dbe on cmuxs-Mac-mini-4: PASSED (AgentChatsPaletteAnswerTests 12 tests including the newaRowShowsTheLabelAndPlaceAcpmuxSends; SidebarChatHistoryTests 16 tests).Changelog
none
Observed / Not run
Observed: the fleet results above (filled in when they end).
prepush-gate.py: no new violations.Not run:
placeequals Swift'sabbreviatingWithTildeInPathfor a folder at or under the home folder, and for every other folder. I did not compare the two on a Mac for unusual paths (for example..parts); both leave such a path as it is, by reading.