GEN step info improved, smooth rendering disabled

frdel committed Jan 30, 2026 at 13:14 UTC 06abffa012ae62fa3b0def373cf080619ac02c11
5 files changed +23 -19
python/api/chat_create.py
+8 -7
@@ -17,13 +17,14 @@ class CreateChat(ApiHandler):
17 new_context = self.use_context(new_ctxid)
18
19 # copy selected data from current to new context
20 - if current_context:
21 - current_data_1 = current_context.get_data(projects.CONTEXT_DATA_KEY_PROJECT)
22 - if current_data_1:
23 - new_context.set_data(projects.CONTEXT_DATA_KEY_PROJECT, current_data_1)
24 - current_data_2 = current_context.get_output_data(projects.CONTEXT_DATA_KEY_PROJECT)
25 - if current_data_2:
26 - new_context.set_output_data(projects.CONTEXT_DATA_KEY_PROJECT, current_data_2)
20 + # do not create new chats in the same project anymore, it can be annoying
21 + # if current_context:
22 + # current_data_1 = current_context.get_data(projects.CONTEXT_DATA_KEY_PROJECT)
23 + # if current_data_1:
24 + # new_context.set_data(projects.CONTEXT_DATA_KEY_PROJECT, current_data_1)
25 + # current_data_2 = current_context.get_output_data(projects.CONTEXT_DATA_KEY_PROJECT)
26 + # if current_data_2:
27 + # new_context.set_output_data(projects.CONTEXT_DATA_KEY_PROJECT, current_data_2)
28
29 return {
30 "ok": True,
python/extensions/reasoning_stream/_10_log_from_stream.py
+5 -3
@@ -12,8 +12,10 @@ class LogFromStream(Extension):
12 async def execute(self, loop_data: LoopData = LoopData(), text: str = "", **kwargs):
13
14 # thought length indicator
15 - pipes = "|" * math.ceil(math.sqrt(len(text)))
15 + length = f"({len(text)})" if text else ""
16 + pipes = "|" * math.ceil(math.sqrt(len(text))/2)
17 heading = build_heading(self.agent, f"Reasoning... {pipes}")
18 + step = f"Reasoning... {length}"
19
20 # create log message and store it in loop data temporary params
21 if "log_item_generating" not in loop_data.params_temporary:
@@ -21,10 +23,10 @@ class LogFromStream(Extension):
23 self.agent.context.log.log(
24 type="agent",
25 heading=heading,
24 - step="Reasoning..."
26 + step=step
27 )
28 )
29
30 # update log message
31 log_item = loop_data.params_temporary["log_item_generating"]
30 - log_item.update(heading=heading, reasoning=text, step="Reasoning...")
32 + log_item.update(heading=heading, reasoning=text, step=step)
python/extensions/response_stream/_10_log_from_stream.py
+8 -8
@@ -25,8 +25,8 @@ class LogFromStream(Extension):
25 heading = build_heading(self.agent, f"Using {parsed['tool_name']}") # if the llm skipped headline
26 elif "thoughts" in parsed:
27 # thought length indicator
28 - pipes = "|" * math.ceil(math.sqrt(len(text)))
29 - heading = build_heading(self.agent, f"Thinking... {pipes}")
28 + length = "|" * math.ceil(math.sqrt(len(text))/2)
29 + heading = build_heading(self.agent, f"Thinking... {length}")
30 else:
31 heading = build_heading(self.agent, "Receiving...")
32
@@ -52,16 +52,16 @@ class LogFromStream(Extension):
52 kvps["step"] = f"Using {parsed['tool_name']}..." # using tool XY
53 if parsed["tool_name"]=="code_execution_tool":
54 if "tool_args" in parsed and "runtime" in parsed["tool_args"]:
55 - pipes = ""
55 + length = ""
56 if "code" in parsed["tool_args"]:
57 - pipes = "|" * math.ceil(math.sqrt(len(parsed["tool_args"]["code"])))
58 - kvps["step"] = f"Writing code... {pipes}"
57 + length = f"({len(parsed['tool_args']['code'])})"
58 + kvps["step"] = f"Writing code... {length}"
59 if parsed["tool_args"]["runtime"] == "python":
60 - kvps["step"] = f"Writing Python code... {pipes}"
60 + kvps["step"] = f"Writing Python code... {length}"
61 elif parsed["tool_args"]["runtime"] == "nodejs":
62 - kvps["step"] = f"Writing Node.js code... {pipes}"
62 + kvps["step"] = f"Writing Node.js code... {length}"
63 elif parsed["tool_args"]["runtime"] == "terminal":
64 - kvps["step"] = f"Writing terminal command... {pipes}"
64 + kvps["step"] = f"Writing terminal command... {length}"
65 kvps.update(parsed)
66
67
webui/css/messages.css
+1
@@ -428,6 +428,7 @@
428 }
429
430 .msg-content {
431 + width: 100%;
432 margin-bottom: 0;
433 padding: 0;
434 overflow: hidden;
webui/js/messages.js
+1 -1
@@ -769,7 +769,7 @@ export function drawMessageResponse({
769 markdown: true,
770 latex: true,
771 mainClass: "message-agent-response",
772 - smoothStream: !isMassRender(), // stream smoothly if not in mass render mode
772 + smoothStream: false,// !isMassRender(), // stream smoothly if not in mass render mode
773 });
774
775 // Collapsible with action buttons