1.6 KiB
1.6 KiB
Implementation Plan: Selectable Thinking Monologs
Phase 1: UI Implementation
- Task: Update
render_thinking_tracesignature- Modify
def render_thinking_trace(app: App, entry: dict, segments: list[dict], entry_index: int, is_standalone: bool = False)to accept the parententry: dict. - Update all calls to
render_thinking_traceinsrc/gui_2.py(e.g., inrender_discussion_entryandrender_comms_history_panel) to pass the appropriateentryobject. For standalone traces where an entry dictionary might not exist, pass a dummy dict to hold the state.
- Modify
- Task: Implement the UI Toggle
- Inside
render_thinking_trace, below or next to theimgui.collapsing_header, add animgui.buttonthat togglesentry.get("thinking_read_mode", True).
- Inside
- Task: Implement Conditional Rendering
- If
thinking_read_modeisTrue(Read mode), usemarkdown_helper.render(content)orimgui.text_wrappedfor a clean reading view. - If
thinking_read_modeisFalse(Pure mode), userender_selectable_label(app, f"think_text_...", content, multiline=True, height=-1)to make the text selectable and copyable.
- If
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)