diff --git a/src/gui_2.py b/src/gui_2.py index 83b7c6f..8a129e3 100644 --- a/src/gui_2.py +++ b/src/gui_2.py @@ -660,24 +660,6 @@ class App: self.show_windows[name] = bool(opened) if exp: render_func() - def _render_ai_settings_hub(self) -> None: - self._render_persona_selector_panel() - if imgui.collapsing_header("Provider & Model"): self._render_provider_panel() - if imgui.collapsing_header("System Prompts"): self._render_system_prompts_panel() - if imgui.collapsing_header("RAG Settings"): self._render_rag_panel() - self._render_agent_tools_panel() - - def _render_discussion_hub(self) -> None: - with imscope.tab_bar("discussion_hub_tabs"): - with imscope.tab_item("Discussion") as (exp, _): - if exp: self._render_discussion_tab() - with imscope.tab_item("Context Composition") as (exp, _): - if exp: self._render_context_composition_panel() - with imscope.tab_item("Snapshot") as (exp, _): - if exp: self._render_snapshot_tab() - with imscope.tab_item("Takes") as (exp, _): - if exp: self._render_takes_panel() - def _show_menus(self) -> None: """ [C: tests/test_gui_window_controls.py:test_gui_window_controls_minimize_maximize_close] @@ -1093,6 +1075,24 @@ class App: with imscope.tab_item('Paths') as (exp, _): if exp: self._render_paths_panel() + def _render_ai_settings_hub(self) -> None: + self._render_persona_selector_panel() + if imgui.collapsing_header("Provider & Model"): self._render_provider_panel() + if imgui.collapsing_header("System Prompts"): self._render_system_prompts_panel() + if imgui.collapsing_header("RAG Settings"): self._render_rag_panel() + self._render_agent_tools_panel() + + def _render_discussion_hub(self) -> None: + with imscope.tab_bar("discussion_hub_tabs"): + with imscope.tab_item("Discussion") as (exp, _): + if exp: self._render_discussion_tab() + with imscope.tab_item("Context Composition") as (exp, _): + if exp: self._render_context_composition_panel() + with imscope.tab_item("Snapshot") as (exp, _): + if exp: self._render_snapshot_tab() + with imscope.tab_item("Takes") as (exp, _): + if exp: self._render_takes_panel() + def _render_operations_hub(self) -> None: imgui.push_style_var(imgui.StyleVar_.item_spacing, imgui.ImVec2(10, 4)) ch1, self.ui_separate_tool_calls_panel = imgui.checkbox("Pop Out Tool Calls", self.ui_separate_tool_calls_panel) @@ -3792,57 +3792,10 @@ def hello(): [C: tests/test_discussion_takes_gui.py:test_render_discussion_tabs, tests/test_discussion_takes_gui.py:test_switching_discussion_via_tabs, tests/test_gui_discussion_tabs.py:test_discussion_tabs_rendered, tests/test_gui_phase4.py:test_track_discussion_toggle, tests/test_gui_symbol_navigation.py:test_render_discussion_panel_symbol_lookup] """ if self.perf_profiling_enabled: self.perf_monitor.start_component("_render_discussion_panel") - # THINKING indicator - is_thinking = self.ai_status in ['sending...', 'streaming...', 'running powershell...'] - if is_thinking: - val = math.sin(time.time() * 10 * math.pi) - alpha = 1.0 if val > 0 else 0.0 - c = vec4(255, 100, 100, alpha) - if theme.is_nerv_active(): - c = vec4(255, 50, 50, alpha) # More vibrant for NERV - imgui.text_colored(c, "THINKING...") - imgui.same_line() + self._render_thinking_indicator() if self.is_viewing_prior_session: - imgui.push_style_color(imgui.Col_.child_bg, vec4(50, 40, 20)) - if imgui.button("Exit Prior Session"): - self.controller.cb_exit_prior_session() - self._comms_log_dirty = True - imgui.separator() - imgui.begin_child("prior_scroll", imgui.ImVec2(0, 0), False) - clipper = imgui.ListClipper() - clipper.begin(len(self.prior_disc_entries)) - while clipper.step(): - for idx in range(clipper.display_start, clipper.display_end): - entry = self.prior_disc_entries[idx] - imgui.push_id(f"prior_disc_{idx}") - collapsed = entry.get("collapsed", False) - if imgui.button("+" if collapsed else "-"): - entry["collapsed"] = not collapsed - imgui.same_line() - role = entry.get("role", "??") - ts = entry.get("ts", "") - imgui.text_colored(C_LBL, f"[{role}]") - if ts: - imgui.same_line() - imgui.text_colored(vec4(160, 160, 160), str(ts)) - - content = entry.get("content", "") - if collapsed: - imgui.same_line() - preview = content.replace("\n", " ")[:80] - if len(content) > 80: preview += "..." - imgui.text_colored(vec4(180, 180, 180), preview) - else: - is_nerv = theme.is_nerv_active() - if is_nerv: imgui.push_style_color(imgui.Col_.text, vec4(80, 255, 80)) - markdown_helper.render(content, context_id=f'prior_disc_{idx}') - if is_nerv: imgui.pop_style_color() - - imgui.separator() - imgui.pop_id() - imgui.end_child() - imgui.pop_style_color() + self._render_prior_session_view() if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_discussion_panel") return