Remove final_output tool - let summaries stream naturally

- Remove final_output from tool definitions, dispatch, and misc tools
- Update system prompts to request summaries as regular markdown text
- Remove print_final_output from UiWriter trait and all implementations
- Remove final_output handling from agent core logic
- Rename final_output_summary → summary in session continuation
- Delete final_output test files
- Update tool count tests (12→11, 27→26)

This allows LLM summaries to stream through the markdown formatter
for a more natural, responsive user experience instead of buffering
everything into a tool call.
This commit is contained in:
Dhanji R. Prasanna
2026-01-09 14:57:24 +11:00
parent bebf04c7bd
commit 777191b3cb
17 changed files with 262 additions and 726 deletions

View File

@@ -32,8 +32,8 @@ pub struct SessionContinuation {
pub created_at: String,
/// Original session ID
pub session_id: String,
/// The last final_output summary
pub final_output_summary: Option<String>,
/// Session summary (last assistant response)
pub summary: Option<String>,
/// Path to the full session log (g3_session_*.json)
pub session_log_path: String,
/// Context window usage percentage when saved
@@ -50,7 +50,7 @@ impl SessionContinuation {
is_agent_mode: bool,
agent_name: Option<String>,
session_id: String,
final_output_summary: Option<String>,
summary: Option<String>,
session_log_path: String,
context_percentage: f32,
todo_snapshot: Option<String>,
@@ -62,7 +62,7 @@ impl SessionContinuation {
agent_name,
created_at: chrono::Utc::now().to_rfc3339(),
session_id,
final_output_summary,
summary,
session_log_path,
context_percentage,
todo_snapshot,