chore(conductor): Add new track 'Selectable GUI Text & UX Improvements'
This commit is contained in:
@@ -17,15 +17,19 @@ This file tracks all major tracks for the project. Each track has its own detail
|
||||
*Link: [./tracks/ui_theme_overhaul_20260308/](./tracks/ui_theme_overhaul_20260308/)*
|
||||
*Goal: Modernize UI with Inter/Maple Mono fonts, a professional subtle rounded theme, custom shaders (corners, blur, AA), multi-viewport support, and layout presets.*
|
||||
|
||||
3. [ ] **Track: Selectable GUI Text & UX Improvements**
|
||||
*Link: [./tracks/selectable_ui_text_20260308/](./tracks/selectable_ui_text_20260308/)*
|
||||
*Goal: Address UI inconveniences by making critical text across the GUI selectable and copyable. Covers discussion history, comms logs, tool outputs, and key metrics.*
|
||||
|
||||
---
|
||||
|
||||
### C/C++ Language Support
|
||||
|
||||
3. [ ] **Track: Tree-Sitter C/C++ MCP Tools**
|
||||
4. [ ] **Track: Tree-Sitter C/C++ MCP Tools**
|
||||
*Link: [./tracks/ts_cpp_tree_sitter_20260308/](./tracks/ts_cpp_tree_sitter_20260308/)*
|
||||
*Goal: Add tree-sitter C and C++ grammars. Extend ASTParser to support C/C++ skeleton and outline extraction. Add MCP tools ts_c_get_skeleton, ts_cpp_get_skeleton, ts_c_get_code_outline, ts_cpp_get_code_outline.*
|
||||
|
||||
4. [ ] **Track: Bootstrap gencpp Python Bindings**
|
||||
5. [ ] **Track: Bootstrap gencpp Python Bindings**
|
||||
*Link: [./tracks/gencpp_python_bindings_20260308/](./tracks/gencpp_python_bindings_20260308/)*
|
||||
*Goal: Bootstrap standalone Python project with CFFI bindings for gencpp C library. Provides foundation for richer C++ AST parsing in future (beyond tree-sitter syntax).*
|
||||
|
||||
@@ -33,26 +37,26 @@ This file tracks all major tracks for the project. Each track has its own detail
|
||||
|
||||
### Path Configuration
|
||||
|
||||
5. [ ] **Track: Project-Specific Conductor Directory**
|
||||
6. [ ] **Track: Project-Specific Conductor Directory**
|
||||
*Link: [./tracks/project_conductor_dir_20260308/](./tracks/project_conductor_dir_20260308/)*
|
||||
*Goal: Make conductor directory per-project. Each project TOML can specify custom conductor dir for isolated track/state management.*
|
||||
|
||||
6. [ ] **Track: GUI Path Configuration in Context Hub**
|
||||
7. [ ] **Track: GUI Path Configuration in Context Hub**
|
||||
*Link: [./tracks/gui_path_config_20260308/](./tracks/gui_path_config_20260308/)*
|
||||
*Goal: Add path configuration UI to Context Hub. Allow users to view and edit configurable paths directly from the GUI.*
|
||||
---
|
||||
|
||||
### Manual UX Controls
|
||||
|
||||
7. [ ] **Track: Saved System Prompt Presets**
|
||||
8. [ ] **Track: Saved System Prompt Presets**
|
||||
*Link: [./tracks/saved_presets_20260308/](./tracks/saved_presets_20260308/)*
|
||||
*Goal: Ability to have saved presets for global and project system prompts. Includes full AI profiles with temperature and top_p settings, managed via a dedicated GUI modal.*
|
||||
|
||||
8. [ ] **Track: Saved Tool Presets**
|
||||
9. [ ] **Track: Saved Tool Presets**
|
||||
*Link: [./tracks/saved_tool_presets_20260308/](./tracks/saved_tool_presets_20260308/)*
|
||||
*Goal: Make agent tools have presets. Add flags for tools related to their level of approval (auto, ask). Move tools to ai settings. Put tools in dynamic TOML-defined categories (Python, General, etc.). Tool Presets added to mma agent role options.*
|
||||
|
||||
9. [ ] **Track: External Text Editor Integration for Approvals**
|
||||
10. [ ] **Track: External Text Editor Integration for Approvals**
|
||||
*Link: [./tracks/external_editor_integration_20260308/](./tracks/external_editor_integration_20260308/)*
|
||||
*Goal: Add support to open files modified by agents in external editors (10xNotepad/VSCode) for native diffing and manual editing during the tool approval flow.*
|
||||
|
||||
@@ -81,7 +85,6 @@ This file tracks all major tracks for the project. Each track has its own detail
|
||||
- [x] **Track: MMA Multi-Worker Visualization**
|
||||
- [x] **Track: Cache Analytics Display**
|
||||
- [x] **Track: Tool Usage Analytics**
|
||||
- [x] **Track: Session Insights & Efficiency Scores**
|
||||
- [x] **Track: Track Progress Visualization**
|
||||
- [x] **Track: Manual Skeleton Context Injection**
|
||||
- [x] **Track: On-Demand Definition Lookup**
|
||||
|
||||
5
conductor/tracks/selectable_ui_text_20260308/index.md
Normal file
5
conductor/tracks/selectable_ui_text_20260308/index.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Track selectable_ui_text_20260308 Context
|
||||
|
||||
- [Specification](./spec.md)
|
||||
- [Implementation Plan](./plan.md)
|
||||
- [Metadata](./metadata.json)
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"track_id": "selectable_ui_text_20260308",
|
||||
"type": "feature",
|
||||
"status": "new",
|
||||
"created_at": "2026-03-08T13:31:00Z",
|
||||
"updated_at": "2026-03-08T13:31:00Z",
|
||||
"description": "Fix ui inconvenicnes. Much of the text a user would want to select isn't selectable in the comms log. Go through all text used throughout the gui and identify what should be selectable so the user may have the convience of being able to copy the text to clipboard."
|
||||
}
|
||||
30
conductor/tracks/selectable_ui_text_20260308/plan.md
Normal file
30
conductor/tracks/selectable_ui_text_20260308/plan.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Implementation Plan: Selectable GUI Text & UX Improvements
|
||||
|
||||
## Phase 1: Research & Core Widget Wrapping
|
||||
- [ ] Task: Audit `gui_2.py` for all `imgui.text()` and `imgui.text_wrapped()` calls in target areas.
|
||||
- [ ] Identify the exact locations in `_render_discussion_panel`, `_render_comms_history_panel`, and `_render_ai_settings_panel`.
|
||||
- [ ] Task: Implement a helper function/component for "Selectable Label".
|
||||
- [ ] This helper should wrap `imgui.input_text` with `InputTextFlags_.read_only` and proper styling to mimic a standard label.
|
||||
- [ ] Task: Conductor - User Manual Verification 'Phase 1: Research & Core Widget' (Protocol in workflow.md)
|
||||
|
||||
## Phase 2: Discussion History & Comms Log
|
||||
- [ ] Task: Apply selectable text to Discussion History.
|
||||
- [ ] Update `_render_discussion_panel` to use the new selectable widget for AI and User message content.
|
||||
- [ ] Ensure multiline support works correctly for long messages.
|
||||
- [ ] Task: Apply selectable text to Comms Log payloads.
|
||||
- [ ] Update `_render_comms_history_panel` to make request and response JSON payloads selectable.
|
||||
- [ ] Task: Write visual regression tests using `live_gui` to ensure selection works and styling is consistent.
|
||||
- [ ] Task: Conductor - User Manual Verification 'Phase 2: Discussion & Comms' (Protocol in workflow.md)
|
||||
|
||||
## Phase 3: Tool Logs & AI Settings
|
||||
- [ ] Task: Apply selectable text to Tool execution logs.
|
||||
- [ ] Make generated PowerShell scripts and execution output selectable in the Operations/Tooling panels.
|
||||
- [ ] Task: Apply selectable text to AI Settings metrics.
|
||||
- [ ] Make token usage, cost estimates, and model configuration values (like model names) selectable.
|
||||
- [ ] Task: Final end-to-end verification of all copy-paste scenarios.
|
||||
- [ ] Task: Conductor - User Manual Verification 'Phase 3: Tool Logs & AI Settings' (Protocol in workflow.md)
|
||||
|
||||
## Phase 4: Final Polish
|
||||
- [ ] Task: Refine styling of read-only input fields (remove borders/backgrounds where appropriate).
|
||||
- [ ] Task: Verify keyboard shortcuts (Ctrl+C) work across all updated areas.
|
||||
- [ ] Task: Conductor - User Manual Verification 'Phase 4: Final Polish' (Protocol in workflow.md)
|
||||
33
conductor/tracks/selectable_ui_text_20260308/spec.md
Normal file
33
conductor/tracks/selectable_ui_text_20260308/spec.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Specification: Selectable GUI Text & UX Improvements
|
||||
|
||||
## Overview
|
||||
This track aims to address UI inconveniences by making critical text across the GUI selectable and copyable. This includes discussion history, communication logs, tool outputs, and key metrics. The goal is to provide a standard "Copy to Clipboard" capability via OS-native selection and shortcuts (Ctrl+C).
|
||||
|
||||
## Functional Requirements
|
||||
- **Selectable Text Areas:**
|
||||
- **Discussion History:** All messages (User and AI) must be selectable.
|
||||
- **Comms Log Payloads:** Raw request and response payloads must be selectable.
|
||||
- **Tool Logs & Scripts:** AI-generated scripts and the output of tool executions must be selectable.
|
||||
- **AI Settings:** Token usage metrics and other key configuration values must be selectable.
|
||||
- **Implementation Strategy:**
|
||||
- Use `imgui.input_text` with `imgui.InputTextFlags_.read_only` and `imgui.InputTextFlags_.multiline` for large text blocks (e.g., payloads, scripts, discussion content).
|
||||
- Use read-only `imgui.input_text` (single-line) for smaller metrics and labels that need to be copyable.
|
||||
- Ensure styling (background, borders) is adjusted so these read-only fields look consistent with the existing UI and don't appear as "editable" inputs.
|
||||
- **Interaction:**
|
||||
- Support standard OS-level text selection (click and drag).
|
||||
- Support standard "Copy" via context menu (right-click) and keyboard shortcut (Ctrl+C).
|
||||
|
||||
## Non-Functional Requirements
|
||||
- **Performance:** Ensure that wrapping labels in read-only input fields doesn't negatively impact GUI frame rates, especially in large logs.
|
||||
- **Visual Consistency:** Maintain the "high-density" aesthetic. Read-only input fields should not have distracting focus rings or background colors unless they are being actively interacted with.
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Users can select and copy text from any message in the Discussion History.
|
||||
- [ ] Users can select and copy raw JSON payloads from the Comms Log.
|
||||
- [ ] Users can select and copy generated PowerShell scripts from the Tool Logs.
|
||||
- [ ] Users can select and copy token usage numbers from the AI Settings panel.
|
||||
- [ ] Ctrl+C correctly copies the selected text to the clipboard.
|
||||
|
||||
## Out of Scope
|
||||
- Implementing a custom text editor within the GUI.
|
||||
- Adding "Copy" buttons to every single label (prioritizing selection over buttons).
|
||||
Reference in New Issue
Block a user