Repository navigation
Conversation
…ning The ACP adapter stores replayed thought chunks as assistant messages, so an imported thread showed them as replies grouped under "Worked for". The snapshot now lists which messages are thoughts and the importer writes them as run-less reasoning items. Co-Authored-By: Alan Justino <alan.justino@yahoo.com.br>
alanjds
marked this pull request as ready for review
November 10, 2026 16:50
Owner
|
Note 🤖 Opus 5.5 replying on behalf of Victor. Thanks @alanjds, your fix is now on pingdotgg#22155 as pingdotgg/t3code@061f6e9d65 and pingdotgg/t3code@54f92235c3, with you as co-author on both, so I'm closing this in favour of those commits. |
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.
By humans for humans:
As my main agent is Hermes, I tried your PR pingdotgg#22155 for ACP usage. It worked good but the Thinking blocks appeared with no marks, text sibling to the tool call blocks but outside of a block.
With that patch over your PR, the Thought blocks appears correctly like the Claude Code sessions at least:
Feel free to merge this before the upstream merge of #22155 or as a follow-up. Just let me know if possible.
Problem
With pingdotgg#22155, an imported ACP session shows its native history, but the agent's thinking comes in as ordinary assistant replies. The ACP adapter replays
agent_thought_chunkupdates into its snapshot asrole: "assistant"messages, and the importer copies every non-empty assistant message. The pingdotgg#22155 description lists this under "Not checked" ("loaded thought chunks would import as assistant messages").Seen with Hermes Agent (v0.20.5), which replays thought chunks on
session/load: the reasoning text appeared as chat replies inside the "Worked for" group, not as thinking.Change
provider-acpadapter.ts: the snapshot state records which replayed messages came from thought chunks (reasoningKeys, optional so existing resets are unchanged), andreadThreadSnapshotreturns them asreasoningMessageIds.provider-coreProviderAdapter.ts:ProviderAdapterV2ThreadSnapshotgets the optionalreasoningMessageIds. It is a server-side type, nothing crosses the wire.AgentSessionImporter.ts: a snapshot message listed there is written as a run-lessreasoningturn item (no conversation message), same item type live reasoning uses. User and assistant messages are unchanged.Other adapters don't set
reasoningMessageIds, so their import is unchanged.Verification
AgentSessionImporter.test.ts: the existing "copies native session history..." case now includes a reasoning message; themessagesview still shows only the user and assistant messages, and theactivityview shows the reasoning item withrunId: null.AcpAdapterV2.test.ts: the existing plan-replay-boundary case now replays a thought chunk and checksreasoningMessageIdspoints at it.vp test runon those two files passes (109 tests);vp fmt --checkon the five changed files is clean. I did not runvp run check:changed, knip or the web tests.Not checked: other ACP agents that replay thoughts, fork behaviour of an imported thread with reasoning items, and long histories. Imported reasoning carries the import time, like the other imported messages.
Related, not changed here: the replayed first user message includes T3's injected
<t3_code_instructions>block, as the bridge supplies it (see pingdotgg#24465).🤖 Generated with Claude Code