Break compaction back into check_ and do_ compaction (#5212)

This commit is contained in:
David Katz
2025-10-16 17:24:46 -04:00
committed by GitHub
parent f0da14bff8
commit de835124a1
4 changed files with 78 additions and 194 deletions
+7 -11
View File
@@ -1,6 +1,6 @@
use crate::state::AppState;
use axum::{extract::State, http::StatusCode, routing::post, Json, Router};
use goose::conversation::message::Message;
use goose::conversation::{message::Message, Conversation};
use serde::{Deserialize, Serialize};
use std::sync::Arc;
use utoipa::ToSchema;
@@ -46,16 +46,12 @@ async fn manage_context(
) -> Result<Json<ContextManageResponse>, StatusCode> {
let agent = state.get_agent_for_route(request.session_id).await?;
let (_, processed_messages, token_counts, _) = goose::context_mgmt::check_and_compact_messages(
&agent,
&request.messages,
true,
false,
None,
None,
)
.await
.map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?;
let conversation = Conversation::new_unvalidated(request.messages);
let (processed_messages, token_counts, _) =
goose::context_mgmt::compact_messages(&agent, &conversation, false)
.await
.map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?;
// TODO(Douwe): store into db
Ok(Json(ContextManageResponse {