feat: implement content filtering for non-streaming and improve streaming tail handling

Co-authored-by: aider (openai/andrew/openrouter/deepseek/deepseek-chat-v3.1) <aider@aider.chat>
This commit is contained in:
Andrew Phillips
2025-08-28 18:22:28 -03:00
parent 1ded347355
commit c50a7db130
2 changed files with 203 additions and 35 deletions

View File

@@ -65,13 +65,35 @@ impl AsyncItemService {
.unwrap()
}
pub async fn get_item_content_info(&self, id: i64) -> Result<(Vec<u8>, String, bool), CoreError> {
pub async fn get_item_content_info(
&self,
id: i64,
head_bytes: Option<usize>,
head_words: Option<usize>,
head_lines: Option<usize>,
tail_bytes: Option<usize>,
tail_words: Option<usize>,
tail_lines: Option<usize>,
line_start: Option<usize>,
line_end: Option<usize>,
) -> Result<(Vec<u8>, String, bool), CoreError> {
let db = self.db.clone();
let item_service = self.item_service.clone();
tokio::task::spawn_blocking(move || {
let conn = db.blocking_lock();
item_service.get_item_content_info(&conn, id)
item_service.get_item_content_info(
&conn,
id,
head_bytes,
head_words,
head_lines,
tail_bytes,
tail_words,
tail_lines,
line_start,
line_end
)
})
.await
.unwrap()