@@ -190,8 +190,16 @@ function M.format_message_header(message, previous_message)
190190 display_name = role :upper ()
191191 end
192192
193+ local header_style = config .ui .output .compact_assistant_headers
194+ if header_style == true then
195+ header_style = ' minimal'
196+ end
197+ if header_style == false then
198+ header_style = ' full'
199+ end
200+
193201 local same_mode_as_previous = false
194- if config . ui . output . compact_assistant_headers and role == ' assistant' and previous_message then
202+ if ( header_style == ' minimal ' or header_style == ' hidden ' ) and role == ' assistant' and previous_message then
195203 local previous_role = previous_message .info and previous_message .info .role or nil
196204 local previous_mode = previous_message .info and previous_message .info .mode or state .current_mode
197205 local current_mode = message .info .mode or state .current_mode
@@ -206,7 +214,9 @@ function M.format_message_header(message, previous_message)
206214 if not same_mode_as_previous then
207215 output :add_lines (M .separator )
208216 else
209- output :add_line (' ' )
217+ if header_style ~= ' hidden' then
218+ output :add_line (' ' )
219+ end
210220 end
211221
212222 if not same_mode_as_previous then
@@ -223,7 +233,7 @@ function M.format_message_header(message, previous_message)
223233 } --[[ @as OutputExtmark]] )
224234 end
225235
226- if time then
236+ if time and ( role ~= ' assistant ' or header_style ~= ' hidden ' ) then
227237 output :add_extmark (output :get_line_count () - 1 , {
228238 virt_text = { { (same_mode_as_previous and ' ' or ' ' ) .. util .format_time (time ), ' OpencodeHint' } },
229239 virt_text_pos = ' right_align' ,
0 commit comments