**DOs** - Color-code headers and status: Use Stylize for clear, scannable results. ```rust let title_line = Line::from(vec![ "tool".magenta(), " ".into(), if success { "success".green() } else { "failed".red() }, format!(", duration: {duration}").gray(), ]); ``` - Render invocations with Line/Span and concise styling: Server/tool in blue, args in gray. ```rust let invocation = Line::from(vec![ server.as_str().blue(), ".".into(), tool.as_str().blue(), "(".into(), args_str.as_str().gray(), ")".into(), ]); ``` - Keep active/completed formatting consistent: Reuse the same invocation line in both states. ```rust // Active view.push(Line::from(vec!["tool".magenta(), " running...".dim()])); view.push(invocation.clone()); // Completed view.push(title_line); view.push(invocation); ``` - Render CallToolResultContent items individually: Text gets compact-JSON + truncation; others get clear placeholders; errors are styled. ```rust match result { Ok(mcp_types::CallToolResult { content, .. }) if !content.is_empty() => { view.push("".into()); for c in content { let line = match c { CallToolResultContent::TextContent(t) => format_and_truncate_tool_result(&t.text, TOOL_CALL_MAX_LINES, num_cols as usize), CallToolResultContent::ImageContent(_) => "".to_string(), CallToolResultContent::AudioContent(_) => "