Repository navigation
acpmux: the queue list names a teammate's queued prompt's author (chat multiplayer) - #25431
Conversation
QueuedPromptSummary and _acpmux/composers queue entries carry
author {id, name} from the prompt's person_message provenance (null for
the owner's and an agent's), so a pane that opens a shared chat cold
still knows the row is a teammate's.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-847de1e22cadc71cd076
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-847de1e22cadc71cd076
|
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)
Gallery before/after for
States
Pick other states with a Tour of |
|
Owned by an agent session · session |
|
Bead |
|
Shipped in:
|
What
acpmux's queue list now names who queued a teammate's prompt, so a pane that opens a shared chat cold still knows the row is a teammate's and offers none of the reader's actions. "Cold" means after an app restart, when the authored
queuedrecord is older than the attach page.Leo's words:
Before this PR the author was only in the
queued/queue_updatedrecord's_meta.provenance {kind: "person_message", from, fromName}(#25268).QueuedPromptSummarycarried onlyfromAgent.QueuedPromptSummarygetsauthor: {id, name} | null, typed asQueuedAuthor._acpmux/composersqueue entries get the sameauthor.person_message(author::listed, built onauthor::of_provenance). The name falls back to the id when a record has no name. The owner's prompt and an agent's message listnull.provenance) and the teammate's own edit (queue_editkeeps aperson_messageprovenance only for its sender). Another editor's change drops it, as before.server/peer_text.rsstill masks onlyprompt, andauthorhas no session text to mask. The provenance it comes from already reaches peers raw inqueuedrecords.spec/acpmux-protocol.jsonand the web's generatedtypes.tsare regenerated.The pane side, which reads
entry.authorfrom the list inmergeQueue, is #25357.No capture: no UI changes. The only webviews file is the generated protocol
types.ts(one new nullable field), which no pane code reads in this PR.Risk
Low. It adds one protocol field, and nothing reads it yet. The field is always present but nullable. Older clients ignore it. Nothing changes for a chat with no person author.
Tests
Run through
cmux-ci test(Linux):prompt_provenance::the_queue_list_names_a_persons_prompt_and_no_one_else(new): Ana's queued prompt lists{id, name}in the session summary and in_acpmux/composers, before and after her own edit. The owner's prompt and an agent's message list null.queue_restore::a_persons_queued_prompt_stays_theirs_across_a_crash(extended): after a SIGKILL and restart,_acpmux/infolists her as the queue entry's author.peer_integration::a_peer_lists_a_persons_queued_prompt_with_its_author(new): a prompt Ana queued through peer A is listed with her as author on A's session list.author::tests(extended):listed, including the fallback to the id and null for an agent.protocol_ir_is_current,only_the_sender_changes_a_waiting_prompt,a_persons_prompt_through_a_peer_is_recorded_as_theirs_on_the_owning_daemon,a_peer_may_not_edit_a_queued_prompt_that_holds_a_secretandto_an_agent_that_does_not_steer_an_agents_send_queues_named.cargo clippy -p acpmux --all-targets -D warningsandcargo fmt --checkare clean.Agent session: agent session
🤖 Generated with Claude Code