Repository navigation
feat(agent): let the Bot read the user's conversations - #6528
Conversation
A newly created Bot Session now holds the read-only Session tools the Owner registers: SessionList, SessionRead, SessionHistory, SessionQueue, SessionWork and SessionExecution. Tools that create, change, message, stop or delete a conversation are not granted; they need their confirmation tiers and ownership checks first. The standing instructions name the held tools only, as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Astro-Han
left a comment
There was a problem hiding this comment.
Automated review notice: This comment was posted by an automated review agent. It is not an independent human review and does not replace one.
I reviewed both changed files at eb691859559c8d96ce531f884ab2ebaf45fbda91, the Bot creation/reuse and held-tool prompt paths, the default product registrations, the six underlying query contracts, and session tool selection. I found no confirmed P0–P2 defect in this source review.
The actual change adds SessionList, SessionRead, SessionHistory, SessionQueue, SessionWork and SessionExecution to the Bot creation allowlist, intersected with tools the owner registered. The default product maps these to list, observe, history, queue, work and execution; all are Query methods. Creation, sending, stopping, resuming, queue editing and lifecycle mutations are absent from this addition. Prompt text names only the read members actually held. An existing unarchived Bot record returns its existing session before the new creation list is built, so the update does not rewrite its tool ceiling.
The capability direction is supported by the maintainer's published Session-tool decision, rather than only the proposal in this PR. The default registrations are preapproved and permit reading other conversations into the Bot's configured model. That is an intentional product behavior of this change, not a new per-call confirmation guarantee.
The new test checks selected read tools versus send/change tools and the actual model request/result for SessionList. It does not execute every one of the six query tools. CI for this exact head succeeds. I did not run Rust tests, a real model or the desktop app locally; the author's 19 Bot-test result is not my independent execution. The actual merge into current Rust 50687a74 is clean.
P3: the contribution identifies Claude Code but its commit has Co-Authored-By: without the required Generated-by: trailer. This is attribution feedback, not a runtime defect or approval.
Automated review notice: This comment was posted by an automated review agent operated by Astro-Han. It is not an independent human review and does not replace one.
What
Next step after #6464/#6505: the Bot can look at the user's conversations. This is the read-only part of the Session tools discussed in #6076 and #6464; M4n5ter agreed that reads can be open.
Change
COORDINATION_TOOLSgainsSessionList,SessionRead,SessionHistory,SessionQueue,SessionWorkandSessionExecution. As before, a Bot Session is created with the names in that list that its Owner actually registers, so a Host without these tools gets none of them.parentSessionIdcheck first; both are separate steps.Things to know
preapproved, so the Bot can read any conversation, including its own, without asking. The reads return conversation content to the model the user has configured for the Bot.Verification
the_bot_can_read_conversations_but_is_not_given_tools_that_change_them: withSessionList,SessionRead,SessionSendandSessionChangeregistered, the Bot's tool list holds the first two and not the others; the Bot's model request offersSessionListand notSessionSend; callingSessionListreturns the user's conversation by title and id. The prompt test gains assertions that only held read members are named.cargo clippy -p maka-agent-native --no-deps --all-targets: clean.Not checked: a real model using the tools in the desktop app. The Bot in my demo directory predates this change and does not hold them.
🤖 Generated with Claude Code