@@ -38,10 +38,11 @@ pub fn render(app: &mut App, frame: &mut Frame, area: Rect) -> usize {
3838
3939 let msg_start = lines. len ( ) ;
4040
41+ let show_labels = app. show_source_labels ( ) ;
4142 if msg. role == MessageRole :: Tool {
42- render_tool_message ( msg, app, & theme, wrap_width, & mut lines) ;
43+ render_tool_message ( msg, app, & theme, wrap_width, show_labels , & mut lines) ;
4344 } else {
44- render_chat_message ( msg, & theme, wrap_width, & mut lines) ;
45+ render_chat_message ( msg, & theme, wrap_width, show_labels , & mut lines) ;
4546 }
4647
4748 for line in & mut lines[ msg_start..] {
@@ -111,13 +112,23 @@ fn render_chat_message(
111112 msg : & crate :: app:: ChatMessage ,
112113 theme : & Theme ,
113114 wrap_width : usize ,
115+ show_labels : bool ,
114116 lines : & mut Vec < Line < ' static > > ,
115117) {
116- let ( prefix, base_style) = match msg. role {
117- MessageRole :: User => ( "[user] " , theme. user_message ) ,
118- MessageRole :: Assistant => ( "[zeph] " , theme. assistant_message ) ,
119- MessageRole :: System => ( "[system] " , theme. system_message ) ,
120- MessageRole :: Tool => unreachable ! ( ) ,
118+ let ( prefix, base_style) = if show_labels {
119+ match msg. role {
120+ MessageRole :: User => ( "[user] " , theme. user_message ) ,
121+ MessageRole :: Assistant => ( "[zeph] " , theme. assistant_message ) ,
122+ MessageRole :: System => ( "[system] " , theme. system_message ) ,
123+ MessageRole :: Tool => unreachable ! ( ) ,
124+ }
125+ } else {
126+ match msg. role {
127+ MessageRole :: User => ( "" , theme. user_message ) ,
128+ MessageRole :: Assistant => ( "" , theme. assistant_message ) ,
129+ MessageRole :: System => ( "" , theme. system_message ) ,
130+ MessageRole :: Tool => unreachable ! ( ) ,
131+ }
121132 } ;
122133
123134 let indent = " " . repeat ( prefix. len ( ) ) ;
@@ -219,10 +230,15 @@ fn render_tool_message(
219230 app : & App ,
220231 theme : & Theme ,
221232 wrap_width : usize ,
233+ show_labels : bool ,
222234 lines : & mut Vec < Line < ' static > > ,
223235) {
224- let name = msg. tool_name . as_deref ( ) . unwrap_or ( "tool" ) ;
225- let prefix = format ! ( "[{name}] " ) ;
236+ let prefix = if show_labels {
237+ let name = msg. tool_name . as_deref ( ) . unwrap_or ( "tool" ) ;
238+ format ! ( "[{name}] " )
239+ } else {
240+ String :: new ( )
241+ } ;
226242 let content_lines: Vec < & str > = msg. content . lines ( ) . collect ( ) ;
227243
228244 // First line is always the command ($ ...)
0 commit comments