Repository navigation
feat(conversations): Add readConversationEvent tool - #2601
Merged
Merged
Conversation
Co-Authored-By: Thomas Jiang <20501235+thomasjiangcy@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
|
6 screenshot changes — 6 changed · 0 added · 0 removed Review screenshots in Frameshift |
thomasjiangcy
approved these changes
Nov 3, 2026
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
readConversationEvent, a read-only deferred tool in theconversationssource. It reads the full text of one event byseq, in char pages.searchConversationEventsreplaces payloads over 4 KB withpayload_omitted, so before this there was no way to get a large tool result back after compaction. Compaction-time trimming of old tool results (separate PR) will point its placeholder at this tool, so this PR must merge first.seq, optionalconversation_id(default current),offset(default 0),limit(default 20,000, max 50,000 chars).text,offset,total_chars,has_more,type,seq,history_version,created_at, plustool_name/is_errorfor tool results.[image: …],[tool call: name {args}]. Thinking blocks and the hiddendetailspayload are not returned. Messages return their text. Other events return JSON, with replacement history reduced to a count as insearchConversationEvents.conversations/event-access.ts, and both tools use them.searchConversationEventsbehavior does not change.The new behavioral eval in
continuity.eval.tsasks for an exact checksum that is only in a compactedbashresult. I could not run it in my sandbox because the eval egress tunnel was not available, so it still needs a live run. Without the cleared-result placeholder, the agent has to find theseqthroughsearchConversationEventsfirst. If it fails before the trimming PR lands, that is the gap.Open question:
offset/limitcount UTF-16 code units, so a page boundary can split a surrogate pair.via @thomasjiangcy.
--
View Session [Sentry]