@@ -17,6 +17,7 @@ function M.reset()
1717 -- subscribe to state changes and if state.messages is cleared, it
1818 -- should clear it's state too
1919 state .messages = {}
20+ state .last_user_message = nil
2021end
2122
2223--- Set up all subscriptions, for both local and server events
@@ -318,10 +319,13 @@ function M.on_message_updated(event)
318319 -- I think this is mostly for book keeping / stats (tokens update)
319320 state .messages [found_idx ].info = message
320321 else
321- table.insert (state .messages , { info = message , parts = {} } )
322+ table.insert (state .messages , event . properties )
322323 found_idx = # state .messages
323324
324325 M ._write_message_header (message , found_idx )
326+ if message .role == ' user' then
327+ state .last_user_message = message
328+ end
325329 end
326330
327331 M ._scroll_to_bottom ()
@@ -397,12 +401,11 @@ function M.on_part_updated(event)
397401 end
398402
399403 local formatter = require (' opencode.ui.session_formatter' )
400- local message_with_parts = vim .tbl_extend (' force' , message , { parts = msg_wrapper .parts })
401404 local ok , formatted = pcall (formatter .format_part_isolated , part , {
402405 msg_idx = msg_idx ,
403406 part_idx = part_idx ,
404407 role = message .role ,
405- message = message_with_parts ,
408+ message = msg_wrapper ,
406409 })
407410
408411 if not ok then
0 commit comments