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:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user