diff --git a/crates/goose-server/src/routes/reply.rs b/crates/goose-server/src/routes/reply.rs index 12cfae3a6d9a..3e55fa1525a6 100644 --- a/crates/goose-server/src/routes/reply.rs +++ b/crates/goose-server/src/routes/reply.rs @@ -1,7 +1,7 @@ use super::utils::verify_secret_key; use crate::state::AppState; use axum::{ - extract::State, + extract::{DefaultBodyLimit, State}, http::{self, HeaderMap, StatusCode}, response::IntoResponse, routing::post, @@ -387,9 +387,15 @@ async fn submit_tool_result( pub fn routes(state: Arc) -> Router { Router::new() - .route("/reply", post(reply_handler)) + .route( + "/reply", + post(reply_handler).layer(DefaultBodyLimit::max(50 * 1024 * 1024)), + ) .route("/confirm", post(confirm_permission)) - .route("/tool_result", post(submit_tool_result)) + .route( + "/tool_result", + post(submit_tool_result).layer(DefaultBodyLimit::max(10 * 1024 * 1024)), + ) .with_state(state) } diff --git a/crates/goose/src/message.rs b/crates/goose/src/message.rs index f3ee70efce97..a6194035d4d3 100644 --- a/crates/goose/src/message.rs +++ b/crates/goose/src/message.rs @@ -353,6 +353,7 @@ impl From for Message { pub struct Message { pub id: Option, pub role: Role, + #[serde(default = "default_created")] pub created: i64, pub content: Vec, } @@ -390,6 +391,10 @@ pub fn push_message(messages: &mut Vec, message: Message) { } } +fn default_created() -> i64 { + 0 // old messages do not have timestamps. +} + impl Message { pub fn new(role: Role, created: i64, content: Vec) -> Self { Message {