fix(claude-code): remove incorrect agent_visible filter on user message (#7931)

Signed-off-by: Adrian Cole <adrian@tetrate.io>
Co-authored-by: Adrian Cole <adrian@tetrate.io>
This commit is contained in:
Rizel Scarlett
2026-03-16 19:11:12 -04:00
committed by GitHub
parent a79cf7e1ef
commit 707dc5fecc
+7 -2
View File
@@ -275,7 +275,7 @@ pub struct ClaudeCodeProvider {
} }
impl ClaudeCodeProvider { impl ClaudeCodeProvider {
/// Build content blocks from the last user message only — the CLI maintains /// Build content blocks from the last user message only. The CLI maintains
/// conversation context internally per session_id. /// conversation context internally per session_id.
fn last_user_content_blocks(&self, messages: &[Message]) -> Vec<Value> { fn last_user_content_blocks(&self, messages: &[Message]) -> Vec<Value> {
let msgs = match messages.iter().rev().find(|m| m.role == Role::User) { let msgs = match messages.iter().rev().find(|m| m.role == Role::User) {
@@ -283,7 +283,7 @@ impl ClaudeCodeProvider {
None => messages, None => messages,
}; };
let mut blocks: Vec<Value> = Vec::new(); let mut blocks: Vec<Value> = Vec::new();
for message in msgs.iter().filter(|m| m.is_agent_visible()) { for message in msgs {
let prefix = match message.role { let prefix = match message.role {
Role::User => "Human: ", Role::User => "Human: ",
Role::Assistant => "Assistant: ", Role::Assistant => "Assistant: ",
@@ -1049,6 +1049,11 @@ mod tests {
&[json!({"type":"text","text":"Human: [tool_result id=call_123] file1.txt\nfile2.txt"})] &[json!({"type":"text","text":"Human: [tool_result id=call_123] file1.txt\nfile2.txt"})]
; "tool_response" ; "tool_response"
)] )]
#[test_case(
vec![Message::new(Role::User, 0, vec![MessageContent::text("hidden input")]).user_only()],
&[json!({"type":"text","text":"Human: hidden input"})]
; "user_only_message_not_dropped"
)]
fn test_last_user_content_blocks(messages: Vec<Message>, expected: &[Value]) { fn test_last_user_content_blocks(messages: Vec<Message>, expected: &[Value]) {
let provider = make_provider(); let provider = make_provider();
let blocks = provider.last_user_content_blocks(&messages); let blocks = provider.last_user_content_blocks(&messages);