Repository navigation
feat(agents): give agent conversations the thread composer and prompt bubble - #619
Conversation
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 36 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Note Clanker Claude Opus 5.5 is responding on behalf of meetsu #614 split |
…thread # Conflicts: # packages/ui/src/lib/strings.en.ts # packages/ui/src/lib/strings.fr.ts
|
Note Clanker Claude Opus 5.5 is responding on behalf of meetsu #621 split |
…thread # Conflicts: # packages/contracts/src/index.ts
…versations A direct conversation shows the thread's model, effort and mode chips, saved as the agent's main route. The user's messages are drawn by UserMessage, with thumbnails read from the agent's turn once it took the attachments (AgentMessageAttachment.source).
A pick made while a message was being sent was dropped by view.call, and its revision was read before the runtime fetch. It now goes through view.save and reads the agent's revision when its turn comes.
Note
Clanker Claude Opus 5.5 is responding on behalf of meetsu
Talking to an agent now uses the same box and the same prompt bubble as a thread: paste or attach pictures and files, dictate, recall past messages, stop the agent, pick its model, effort and mode from the chips, and see the pictures you sent as thumbnails that open in the viewer.
what changed
Composerthrough a newComposerTarget(lib/composer-target.ts) instead of its own form.MessageReceipts.svelte, used by thread prompts and agent messages alike, and agent replies get the copy button and time.agents.runtime.configure, the way the Settings tab does, and allows that model if it was not. A group keeps its recipient chips; a paired device gets no chips.UserMessage(it now takesacceptedandrespondedinstead of the timeline's progress, and opens a deferred picture from the bytesloadMessageAttachmentreturns). The first turn that takes a message's attachments sets each one'ssource(AgentMessageAttachment.source: that turn's prompt in the agent's thread and the part's index), so the bubble reads thumbnails and originals withmessages.attachment, like a thread's. Until a turn took them, the message lists names and sizes.agents.message.sendtakes attachments from the user: the message keeps name, type and size, the bytes wait in a core setting with the agents whose turn took them, so a resume before the turn still sends them and a decision's continuation does not.agents-runtime.test.ts.requiredTextinerrors.ts), the group's positive and revision-order checks, the Windows worker error text, the drivers' question and tool-result text, and the loopback port probe (loopback-port.ts).to question
Inventory of the thread view against the old Agents conversation:
Agent-only parts stay: identity header, settings, memory, routines, activity, missions, group recipients, memory pass chip, entrusted thread markers and questions.
The transcript is not the thread's
MessageList: agent messages are not thread messages. The user's bubble is the thread'sUserMessage; the agent's replies keep their bubble and share the copy action and time. Edit, retry and fork stay out: an agent conversation has no checkpoint to rewind to, and a rewind would also have to undo the agent's memory pass.verified
Head
101883c1(main39bed7edmerged in, no conflict):bun run checkpasses (svelte-check 0 errors, architecture check green after moving tworejectsmatchers tothrown()).AgentConversation.svelte.test.ts11 pass; the chips case and the thumbnail case fail with the change undone (3 failed).ImageViewer,Composer,MessageList,ComposerGrow, agents components andfake-agentspass.agents-runtime.test.tschecks the attachmentsourceand reads the picture back withmessages.attachment; red without the store change.test/agents*andtest/agent*: 86 pass.?fake=1&agents=1in headless Chrome (ANGLE): a 1440 x 900 screenshot attached, sent and opened in the viewer, desktop and 390 px.Earlier heads:
bun run checkpasses.agents*.test.tsandagent.test.ts, 80 pass, including the attachment case.agents.test.ts6 pass;agent-setting-cards,resident-agent,agent-shape4 pass.bun scripts/ci/budgets.ts measureon Linux, head against main18aa29cf: core JavaScript 4,499,394 against 4,499,556, UI total 4,870,956 against 4,871,593, entry chunk 483,003 against 492,029; no measure grows.captures
The original opens in the thread's viewer.
Phone, 390 px: the thread's Options and model chips, the thumbnail and the receipts.
A thread at the same size, for comparison.
Earlier head, before the chips and thumbnails:
Before: the agent's own box with its Plan chip.
A thread, for comparison at 1280x900.
A picture and a file waiting in the agent's box.
The sent message with its attachments, copy, time and ticks.
Phone, 390 px.