From 8e94967a9f6cbf8e1594454786aa81348612d47c Mon Sep 17 00:00:00 2001 From: Shivering Ocelot Date: Fri, 4 Sep 2026 00:34:57 -0500 Subject: [PATCH] feat(chat): improve log message display --- backend/src/agent.py | 20 ++++++++++++++++++++ backend/src/app_mixins/chat.py | 3 +++ frontend/src/components/Message.vue | 7 ++++++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/backend/src/agent.py b/backend/src/agent.py index 1462968..18dc38c 100644 --- a/backend/src/agent.py +++ b/backend/src/agent.py @@ -131,6 +131,24 @@ class Agent: chat_id=message.chat_id, thread_id=message.thread_id, content=stream, + kind="log", + subkind="reasoning", + ) + run.emit_event('chat-message', { + 'messageId': new_message['id'], + 'chatId': message.chat_id, + 'threadId': message.thread_id, + }) + + async def on_toolcall_event(stream): + print("[agent] run output " + repr(stream)) + new_message = await self.app.send_chat_message( + sender=self.id, + chat_id=message.chat_id, + thread_id=message.thread_id, + content=stream, + kind="log", + subkind="reasoning", ) run.emit_event('chat-message', { 'messageId': new_message['id'], @@ -139,6 +157,8 @@ class Agent: }) await run.on_async('reasoning', on_reasoning_event) + await run.on_async('output', on_output_event) + await run.on_async('tool-call', on_toolcall_event) await self.run(run) return run diff --git a/backend/src/app_mixins/chat.py b/backend/src/app_mixins/chat.py index 3369cbb..2030145 100644 --- a/backend/src/app_mixins/chat.py +++ b/backend/src/app_mixins/chat.py @@ -72,11 +72,14 @@ class ChatMixin: messages = await query.order_by("-id").all() messages.reverse() + # TODO: Stop repetition. + # There's db.Message and chat.Message, also should be combined somehow, or wrap db always. return [{ "id": message.id, "time": message.time, "sender": message.sender, "kind": message.kind, + "subkind": message.subkind, "content": message.content, "threadId": message.thread_id, } for message in messages] diff --git a/frontend/src/components/Message.vue b/frontend/src/components/Message.vue index 032b62c..36b63ac 100644 --- a/frontend/src/components/Message.vue +++ b/frontend/src/components/Message.vue @@ -92,7 +92,7 @@ watch(() => [props.message.format, props.message.content], ([newFormat, newConte @@ -155,6 +155,11 @@ watch(() => [props.message.format, props.message.content], ([newFormat, newConte font-family: monospace; font-size: 80%; } +.message.log .log-sender { + font-family: monospace; + font-weight: bold; + font-size: 80%; +} .resource { align-self: center;