fix(gui): Un-nest _render_response_panel to fix AttributeError
This commit is contained in:
+39
-39
@@ -4060,47 +4060,47 @@ def hello():
|
||||
self._handle_reset_session()
|
||||
if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_message_panel")
|
||||
|
||||
def _render_response_panel(self) -> None:
|
||||
if self.perf_profiling_enabled: self.perf_monitor.start_component("_render_response_panel")
|
||||
if self._trigger_blink:
|
||||
self._trigger_blink = False
|
||||
self._is_blinking = True
|
||||
self._blink_start_time = time.time()
|
||||
try:
|
||||
imgui.set_window_focus("Response") # type: ignore[call-arg]
|
||||
except:
|
||||
pass
|
||||
is_blinking = False
|
||||
blink_color = vec4(0, 0, 0, 0)
|
||||
if self._is_blinking:
|
||||
elapsed = time.time() - self._blink_start_time
|
||||
if elapsed > 1.5:
|
||||
self._is_blinking = False
|
||||
else:
|
||||
is_blinking = True
|
||||
val = math.sin(elapsed * 8 * math.pi)
|
||||
alpha = 50/255 if val > 0 else 0
|
||||
blink_color = vec4(0, 255, 0, alpha)
|
||||
def _render_response_panel(self) -> None:
|
||||
if self.perf_profiling_enabled: self.perf_monitor.start_component("_render_response_panel")
|
||||
if self._trigger_blink:
|
||||
self._trigger_blink = False
|
||||
self._is_blinking = True
|
||||
self._blink_start_time = time.time()
|
||||
try:
|
||||
imgui.set_window_focus("Response") # type: ignore[call-arg]
|
||||
except:
|
||||
pass
|
||||
is_blinking = False
|
||||
blink_color = vec4(0, 0, 0, 0)
|
||||
if self._is_blinking:
|
||||
elapsed = time.time() - self._blink_start_time
|
||||
if elapsed > 1.5:
|
||||
self._is_blinking = False
|
||||
else:
|
||||
is_blinking = True
|
||||
val = math.sin(elapsed * 8 * math.pi)
|
||||
alpha = 50/255 if val > 0 else 0
|
||||
blink_color = vec4(0, 255, 0, alpha)
|
||||
|
||||
with imscope.style_color(imgui.Col_.frame_bg, blink_color) if is_blinking else nullcontext():
|
||||
with imscope.style_color(imgui.Col_.child_bg, blink_color) if is_blinking else nullcontext():
|
||||
with imscope.child("response_scroll_area", imgui.ImVec2(0, -40), True):
|
||||
is_nerv = theme.is_nerv_active()
|
||||
with imscope.style_color(imgui.Col_.text, vec4(80, 255, 80)) if is_nerv else nullcontext():
|
||||
segments, parsed_response = thinking_parser.parse_thinking_trace(self.ai_response)
|
||||
if segments:
|
||||
self._render_thinking_trace([{"content": s.content, "marker": s.marker} for s in segments], 9999)
|
||||
markdown_helper.render(parsed_response, context_id="response")
|
||||
with imscope.style_color(imgui.Col_.frame_bg, blink_color) if is_blinking else nullcontext():
|
||||
with imscope.style_color(imgui.Col_.child_bg, blink_color) if is_blinking else nullcontext():
|
||||
with imscope.child("response_scroll_area", imgui.ImVec2(0, -40), True):
|
||||
is_nerv = theme.is_nerv_active()
|
||||
with imscope.style_color(imgui.Col_.text, vec4(80, 255, 80)) if is_nerv else nullcontext():
|
||||
segments, parsed_response = thinking_parser.parse_thinking_trace(self.ai_response)
|
||||
if segments:
|
||||
self._render_thinking_trace([{"content": s.content, "marker": s.marker} for s in segments], 9999)
|
||||
markdown_helper.render(parsed_response, context_id="response")
|
||||
|
||||
imgui.separator()
|
||||
if imgui.button("-> History"):
|
||||
if self.ai_response:
|
||||
segments, response = thinking_parser.parse_thinking_trace(self.ai_response)
|
||||
entry = {"role": "AI", "content": response, "collapsed": True, "ts": project_manager.now_ts()}
|
||||
if segments:
|
||||
entry["thinking_segments"] = [{"content": s.content, "marker": s.marker} for s in segments]
|
||||
self.disc_entries.append(entry)
|
||||
if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_response_panel")
|
||||
imgui.separator()
|
||||
if imgui.button("-> History"):
|
||||
if self.ai_response:
|
||||
segments, response = thinking_parser.parse_thinking_trace(self.ai_response)
|
||||
entry = {"role": "AI", "content": response, "collapsed": True, "ts": project_manager.now_ts()}
|
||||
if segments:
|
||||
entry["thinking_segments"] = [{"content": s.content, "marker": s.marker} for s in segments]
|
||||
self.disc_entries.append(entry)
|
||||
if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_response_panel")
|
||||
|
||||
def _render_external_tools_panel(self) -> None:
|
||||
if self.perf_profiling_enabled: self.perf_monitor.start_component("_render_external_tools_panel")
|
||||
|
||||
Reference in New Issue
Block a user