Private
Public Access
0
0
Files

1.6 KiB

Implementation Plan: Selectable Thinking Monologs

Phase 1: UI Implementation

  • Task: Update render_thinking_trace signature
    • Modify def render_thinking_trace(app: App, entry: dict, segments: list[dict], entry_index: int, is_standalone: bool = False) to accept the parent entry: dict.
    • Update all calls to render_thinking_trace in src/gui_2.py (e.g., in render_discussion_entry and render_comms_history_panel) to pass the appropriate entry object. For standalone traces where an entry dictionary might not exist, pass a dummy dict to hold the state.
  • Task: Implement the UI Toggle
    • Inside render_thinking_trace, below or next to the imgui.collapsing_header, add an imgui.button that toggles entry.get("thinking_read_mode", True).
  • Task: Implement Conditional Rendering
    • If thinking_read_mode is True (Read mode), use markdown_helper.render(content) or imgui.text_wrapped for a clean reading view.
    • If thinking_read_mode is False (Pure mode), use render_selectable_label(app, f"think_text_...", content, multiline=True, height=-1) to make the text selectable and copyable.

Phase 2: Verification

  • Task: Verification
    • Verify that thinking traces in the Discussion Hub can be toggled between Pure and Read modes.
    • Verify that text can be selected and copied via Ctrl+C in Pure mode.
    • Verify that the change does not crash other areas rendering thinking traces (like Comms History).
  • Task: Conductor - User Manual Verification 'Phase 2: Verification' (Protocol in workflow.md)