feat: replace binary detection with text metadata check
Co-authored-by: aider (openai/andrew/openrouter/deepseek/deepseek-chat-v3.1) <aider@aider.chat>
This commit is contained in:
@@ -43,10 +43,10 @@ pub fn mode_get(
|
|||||||
|
|
||||||
if detect_binary {
|
if detect_binary {
|
||||||
let meta_map = item_with_meta.meta_as_map();
|
let meta_map = item_with_meta.meta_as_map();
|
||||||
if let Some(binary_val) = meta_map.get("binary") {
|
if let Some(text_val) = meta_map.get("text") {
|
||||||
if binary_val == "false" {
|
if text_val == "true" {
|
||||||
detect_binary = false;
|
detect_binary = false;
|
||||||
} else if binary_val == "true" {
|
} else if text_val == "false" {
|
||||||
return Err(anyhow!(
|
return Err(anyhow!(
|
||||||
"Refusing to output binary data to TTY, use --force to override"
|
"Refusing to output binary data to TTY, use --force to override"
|
||||||
));
|
));
|
||||||
|
|||||||
@@ -258,10 +258,10 @@ async fn stream_item_content_response_with_metadata(
|
|||||||
|
|
||||||
// Check if content is binary when allow_binary is false
|
// Check if content is binary when allow_binary is false
|
||||||
if !allow_binary {
|
if !allow_binary {
|
||||||
let is_binary = if let Some(binary_val) = metadata.get("binary") {
|
let is_binary = if let Some(text_val) = metadata.get("text") {
|
||||||
binary_val == "true"
|
text_val == "false"
|
||||||
} else {
|
} else {
|
||||||
// If binary metadata isn't set, we need to check the content using streaming approach
|
// If text metadata isn't set, we need to check the content using streaming approach
|
||||||
match item_service.get_item_content_info_streaming(item_id).await {
|
match item_service.get_item_content_info_streaming(item_id).await {
|
||||||
Ok((_, _, is_binary)) => is_binary,
|
Ok((_, _, is_binary)) => is_binary,
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
|
|||||||
@@ -97,8 +97,8 @@ impl AsyncItemService {
|
|||||||
.map(|s| s.to_string())
|
.map(|s| s.to_string())
|
||||||
.unwrap_or_else(|| "application/octet-stream".to_string());
|
.unwrap_or_else(|| "application/octet-stream".to_string());
|
||||||
|
|
||||||
let is_binary = if let Some(binary_val) = metadata.get("binary") {
|
let is_binary = if let Some(text_val) = metadata.get("text") {
|
||||||
binary_val == "true"
|
text_val == "false"
|
||||||
} else {
|
} else {
|
||||||
crate::common::is_binary::is_binary(&content_clone)
|
crate::common::is_binary::is_binary(&content_clone)
|
||||||
};
|
};
|
||||||
@@ -154,8 +154,8 @@ impl AsyncItemService {
|
|||||||
|
|
||||||
// Check if content is binary when allow_binary is false
|
// Check if content is binary when allow_binary is false
|
||||||
if !allow_binary {
|
if !allow_binary {
|
||||||
let is_binary = if let Some(binary_val) = metadata.get("binary") {
|
let is_binary = if let Some(text_val) = metadata.get("text") {
|
||||||
binary_val == "true"
|
text_val == "false"
|
||||||
} else {
|
} else {
|
||||||
// Get binary status using streaming approach
|
// Get binary status using streaming approach
|
||||||
let (_, _, is_binary) = self.get_item_content_info_streaming(item_id).await?;
|
let (_, _, is_binary) = self.get_item_content_info_streaming(item_id).await?;
|
||||||
|
|||||||
@@ -77,8 +77,8 @@ impl ItemService {
|
|||||||
.unwrap_or_else(|| "application/octet-stream".to_string());
|
.unwrap_or_else(|| "application/octet-stream".to_string());
|
||||||
|
|
||||||
// Check if content is binary
|
// Check if content is binary
|
||||||
let is_binary = if let Some(binary_val) = metadata.get("binary") {
|
let is_binary = if let Some(text_val) = metadata.get("text") {
|
||||||
binary_val == "true"
|
text_val == "false"
|
||||||
} else {
|
} else {
|
||||||
crate::common::is_binary::is_binary(&item_with_content.content)
|
crate::common::is_binary::is_binary(&item_with_content.content)
|
||||||
};
|
};
|
||||||
@@ -110,8 +110,8 @@ impl ItemService {
|
|||||||
.unwrap_or_else(|| "application/octet-stream".to_string());
|
.unwrap_or_else(|| "application/octet-stream".to_string());
|
||||||
|
|
||||||
// Check if content is binary using only the first 8192 bytes
|
// Check if content is binary using only the first 8192 bytes
|
||||||
let is_binary = if let Some(binary_val) = metadata.get("binary") {
|
let is_binary = if let Some(text_val) = metadata.get("text") {
|
||||||
binary_val == "true"
|
text_val == "false"
|
||||||
} else {
|
} else {
|
||||||
// Read only the first 8192 bytes for binary detection
|
// Read only the first 8192 bytes for binary detection
|
||||||
let mut sample_reader = self.compression_service.stream_item_content(
|
let mut sample_reader = self.compression_service.stream_item_content(
|
||||||
|
|||||||
Reference in New Issue
Block a user