Compare commits

...

3 Commits

13 changed files with 317 additions and 17 deletions

View File

@@ -1,4 +1,4 @@
# Project Tracks # Project Tracks
This file tracks all major tracks for the project. Each track has its own detailed plan in its respective folder. This file tracks all major tracks for the project. Each track has its own detailed plan in its respective folder.
@@ -12,7 +12,7 @@ This file tracks all major tracks for the project. Each track has its own detail
--- ---
## Phase 3: Future Horizons (Tracks 1-28) ## Phase 3: Future Horizons (Tracks 1-32)
*Initialized: 2026-03-06* *Initialized: 2026-03-06*
*Updated: 2026-03-08* *Updated: 2026-03-08*
@@ -64,52 +64,60 @@ This file tracks all major tracks for the project. Each track has its own detail
14. [x] **Track: On-Demand Definition Lookup** 14. [x] **Track: On-Demand Definition Lookup**
*Link: [./tracks/on_demand_def_lookup_20260306/](./tracks/on_demand_def_lookup_20260306/)* *Link: [./tracks/on_demand_def_lookup_20260306/](./tracks/on_demand_def_lookup_20260306/)*
15. [ ] **Track: Advanced Log Management and Session Restoration**
*Link: [./tracks/log_session_overhaul_20260308/](./tracks/log_session_overhaul_20260308/)*
*Goal: Centralize log management, improve session restoration reliability with full-UI replay mode, and optimize log size via external script/output referencing. Implement transient diagnostic logging for system warnings.*
16. [ ] **Track: UI Theme Overhaul & Style System**
*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.*
--- ---
### Manual UX Controls ### Manual UX Controls
15. [x] **Track: Manual Ticket Queue Management** 17. [x] **Track: Manual Ticket Queue Management**
*Link: [./tracks/ticket_queue_mgmt_20260306/](./tracks/ticket_queue_mgmt_20260306/)* *Link: [./tracks/ticket_queue_mgmt_20260306/](./tracks/ticket_queue_mgmt_20260306/)*
16. [x] **Track: Kill/Abort Running Workers** 18. [x] **Track: Kill/Abort Running Workers**
*Link: [./tracks/kill_abort_workers_20260306/](./tracks/kill_abort_workers_20260306/)* *Link: [./tracks/kill_abort_workers_20260306/](./tracks/kill_abort_workers_20260306/)*
17. [x] **Track: Manual Block/Unblock Control** 19. [x] **Track: Manual Block/Unblock Control**
*Link: [./tracks/manual_block_control_20260306/](./tracks/manual_block_control_20260306/)* *Link: [./tracks/manual_block_control_20260306/](./tracks/manual_block_control_20260306/)*
18. [x] **Track: Pipeline Pause/Resume** 20. [x] **Track: Pipeline Pause/Resume**
*Link: [./tracks/pipeline_pause_resume_20260306/](./tracks/pipeline_pause_resume_20260306/)* *Link: [./tracks/pipeline_pause_resume_20260306/](./tracks/pipeline_pause_resume_20260306/)*
19. [x] **Track: Per-Ticket Model Override** 21. [x] **Track: Per-Ticket Model Override**
*Link: [./tracks/per_ticket_model_20260306/](./tracks/per_ticket_model_20260306/)* *Link: [./tracks/per_ticket_model_20260306/](./tracks/per_ticket_model_20260306/)*
20. [ ] **Track: Manual UX Validation & Review** 22. [ ] **Track: Manual UX Validation & Review**
*Link: [./tracks/manual_ux_validation_20260302/](./tracks/manual_ux_validation_20260302/)* *Link: [./tracks/manual_ux_validation_20260302/](./tracks/manual_ux_validation_20260302/)*
### Misc Side-tracks ### Misc Side-tracks
21. [x] **Track: Enhanced Context Control & Cache Awareness** 23. [x] **Track: Enhanced Context Control & Cache Awareness**
*Link: [./tracks/enhanced_context_control_20260307/](./tracks/enhanced_context_control_20260307/)* *Link: [./tracks/enhanced_context_control_20260307/](./tracks/enhanced_context_control_20260307/)*
22. [x] **Track: GUI Performance Profiling & Optimization** 24. [x] **Track: GUI Performance Profiling & Optimization**
*Link: [./tracks/gui_performance_profiling_20260307/](./tracks/gui_performance_profiling_20260307/)* *Link: [./tracks/gui_performance_profiling_20260307/](./tracks/gui_performance_profiling_20260307/)*
23. [x] **Track: Test Integrity Audit & Intent Documentation** 25. [x] **Track: Test Integrity Audit & Intent Documentation**
*Link: [./tracks/test_integrity_audit_20260307/](./tracks/test_integrity_audit_20260307/)* *Link: [./tracks/test_integrity_audit_20260307/](./tracks/test_integrity_audit_20260307/)*
*Goal: Audit tests simplified by AI agents. Add intent documentation comments to prevent future simplification. Covers simulation tests (test_sim_*.py), live workflow tests, and major feature tests.* *Goal: Audit tests simplified by AI agents. Add intent documentation comments to prevent future simplification. Covers simulation tests (test_sim_*.py), live workflow tests, and major feature tests.*
24. [x] **Track: Test Regression Verification** 26. [x] **Track: Test Regression Verification**
*Link: [./tracks/test_regression_verification_20260307/](./tracks/test_regression_verification_20260307/)* *Link: [./tracks/test_regression_verification_20260307/](./tracks/test_regression_verification_20260307/)*
--- ---
### C/C++ Language Support ### C/C++ Language Support
25. [ ] **Track: Tree-Sitter C/C++ MCP Tools** 27. [ ] **Track: Tree-Sitter C/C++ MCP Tools**
*Link: [./tracks/ts_cpp_tree_sitter_20260308/](./tracks/ts_cpp_tree_sitter_20260308/)* *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.* *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.*
26. [ ] **Track: Bootstrap gencpp Python Bindings** 28. [ ] **Track: Bootstrap gencpp Python Bindings**
*Link: [./tracks/gencpp_python_bindings_20260308/](./tracks/gencpp_python_bindings_20260308/)* *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).* *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).*
@@ -117,18 +125,22 @@ This file tracks all major tracks for the project. Each track has its own detail
### Path Configuration ### Path Configuration
27. [ ] **Track: Project-Specific Conductor Directory** 29. [ ] **Track: Project-Specific Conductor Directory**
*Link: [./tracks/project_conductor_dir_20260308/](./tracks/project_conductor_dir_20260308/)* *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.* *Goal: Make conductor directory per-project. Each project TOML can specify custom conductor dir for isolated track/state management.*
28. [ ] **Track: GUI Path Configuration in Context Hub** 30. [ ] **Track: GUI Path Configuration in Context Hub**
*Link: [./tracks/gui_path_config_20260308/](./tracks/gui_path_config_20260308/)* *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.* *Goal: Add path configuration UI to Context Hub. Allow users to view and edit configurable paths directly from the GUI.*
29. [ ] **Track: Saved System Prompt Presets** 31. [ ] **Track: Saved System Prompt Presets**
*Link: [./tracks/saved_presets_20260308/](./tracks/saved_presets_20260308/)* *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.* *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.*
32. [ ] **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.*
--- ---
## Completed / Archived ## Completed / Archived

View File

@@ -0,0 +1,5 @@
# Track log_session_overhaul_20260308 Context
- [Specification](./spec.md)
- [Implementation Plan](./plan.md)
- [Metadata](./metadata.json)

View File

@@ -0,0 +1,8 @@
{
"track_id": "log_session_overhaul_20260308",
"type": "feature",
"status": "new",
"created_at": "2026-03-08T12:53:00Z",
"updated_at": "2026-03-08T12:53:00Z",
"description": "Move comms log's load log button to log management. Make it load an entire session's log instead of just comms. Rework loading implementation for reliability. Handle and filter MMA agent logs in comms log. Offload generated scripts and tool output to separate files with ID referencing. Relocate performance warnings from discussion to transient diagnostic logs."
}

View File

@@ -0,0 +1,38 @@
# Implementation Plan: Advanced Log Management and Session Restoration
## Phase 1: Storage Optimization (Offloading Data)
- [ ] Task: Implement file-based offloading for scripts and tool outputs.
- [ ] Update `src/session_logger.py` to include `log_tool_output(session_id, output)` which saves output to a unique file in the session directory and returns the filename.
- [ ] Modify `src/session_logger.py:log_tool_call` to ensure scripts are consistently saved and return a unique filename/ID.
- [ ] Update `src/app_controller.py` to use these unique IDs/filenames in the `payload` of comms and tool logs instead of raw content.
- [ ] Task: Verify that logs are smaller and scripts/outputs are correctly saved to the session directory.
- [ ] Task: Conductor - User Manual Verification 'Phase 1: Storage Optimization' (Protocol in workflow.md)
## Phase 2: Session-Level Restoration & UI Relocation
- [ ] Task: Relocate the "Load Log" button.
- [ ] Remove the "Load Log" button from `_render_comms_history_panel` in `src/gui_2.py`.
- [ ] Add the "Load Log" button to the "Log Management" panel in `src/gui_2.py`.
- [ ] Task: Rework `cb_load_prior_log` for session-level loading.
- [ ] Update `src/app_controller.py:cb_load_prior_log` to allow selecting a session directory or the main session log file.
- [ ] Implement logic to load all related logs (comms, mma, tools) for that session.
- [ ] Ensure that for entries referencing external files (scripts/outputs), the content is loaded on-demand or during the restoration process.
- [ ] Task: Implement "Historical Replay" UI mode.
- [ ] In `src/gui_2.py`, implement logic to tint the UI (as already partially done for comms) when `is_viewing_prior_session` is True.
- [ ] Populate `disc_entries`, `_comms_log`, and MMA Dashboard states from the loaded session logs.
- [ ] Task: Conductor - User Manual Verification 'Phase 2: Session-Level Restoration' (Protocol in workflow.md)
## Phase 3: Diagnostic Log & Discussion Cleanup
- [ ] Task: Clean up discussion history and implement Diagnostic Tab.
- [ ] Add `self.diagnostic_log` (a list of transient messages) to `AppController`.
- [ ] Update `src/app_controller.py:_on_performance_alert` to append to `self.diagnostic_log` instead of `disc_entries`.
- [ ] Update `src/ai_client.py` (and other areas) to redirect "SYSTEM WARNING" and similar performance-related messages to the diagnostic log via a new event type.
- [ ] Add a "Diagnostics" tab to the Log Management panel in `src/gui_2.py` to render `self.diagnostic_log`.
- [ ] Ensure `diagnostic_log` is NOT persisted to `manual_slop.toml` or restored during session loads.
- [ ] Task: Conductor - User Manual Verification 'Phase 3: Diagnostic Log & Cleanup' (Protocol in workflow.md)
## Phase 4: MMA Log Integration & Filtering
- [ ] Task: Improve MMA log visibility and filtering.
- [ ] Ensure MMA sub-agent `log_comms` calls include sufficient metadata (tier, role) for filtering.
- [ ] Update `_render_comms_history_panel` in `src/gui_2.py` to ensure MMA logs are clearly distinct and correctly filtered based on existing UI toggles.
- [ ] Task: Final end-to-end verification of session restoration and log management.
- [ ] Task: Conductor - User Manual Verification 'Phase 4: MMA Log Integration' (Protocol in workflow.md)

View File

@@ -0,0 +1,47 @@
# Specification: Advanced Log Management and Session Restoration
## Overview
This track focuses on centralizing log management, improving the reliability and scope of session restoration, and optimizing log storage by offloading large data blobs (scripts and tool outputs) to external files. It also aims to "clean" the discussion history by moving transient system warnings to a dedicated diagnostic log.
## Functional Requirements
### 1. Centralized Log Management
- Move the "Load Log" functionality from the Comms Log panel to the **Log Management** panel.
- Update the "Load Log" action to load an **entire session** (Comms, MMA Agent logs, and Tool Execution logs) instead of just the Comms log.
### 2. Session Replay Mode
- When a previous session is loaded, the UI should enter a "Historical/Replay" mode:
- Apply a visual tint to the UI to clearly distinguish it from an active session.
- Populate all respective panels (Discussion, MMA Dashboard, Operation Logs) with the data from the loaded session logs as if they were live.
- Fix the existing broken implementation for loading and parsing historical comms logs.
### 3. Log Storage Optimization
- **Script Offloading:** AI-generated PowerShell scripts must be saved into the session's directory with a unique identifier naming scheme.
- **Output Offloading:** Output from tool executions (e.g., shell command results) must be saved to separate files within the session directory.
- **ID Referencing:** Log entries in the `.jsonl` files should reference these external files by their filenames instead of embedding the full content.
### 4. MMA Agent Log Integration
- Ensure MMA sub-agent communications are correctly captured and filterable within the main Comms Log view.
- Utilize existing filter criteria (e.g., role, status) to manage the display of these logs.
### 5. Diagnostic Log Rework
- Remove system performance warnings and transient notifications from the **Discussion History**.
- Relocate these warnings to a new **Diagnostic Tab** within the Log Management panel.
- **Transient Diagnostics:** Diagnostic logs should not be restored or re-populated during session history loads; they are relevant only to the active runtime environment.
## Non-Functional Requirements
- **Efficiency:** Significantly reduce the size of individual log files by offloading large content strings.
- **Maintainability:** Decouple log visualization from the main execution logic to ensure robust session replay.
## Acceptance Criteria
- [ ] The "Load Log" button is successfully relocated and initiates a full session restoration.
- [ ] Loaded sessions correctly tint the UI and populate historical data into their original panels.
- [ ] Comms logs contain filename references for scripts and outputs rather than the raw text.
- [ ] Discussion history remains clear of performance-related system messages.
- [ ] MMA sub-agent logs are visible and correctly filtered in the Comms view.
- [ ] The new Diagnostic Tab correctly displays real-time system warnings.
## Out of Scope
- Real-time "playback" (animating the session as it happened); only static restoration is required.
- Editing or modifying historical session logs.
- Exporting sessions to formats other than the native log structure.

View File

@@ -0,0 +1,5 @@
# Track saved_tool_presets_20260308 Context
- [Specification](./spec.md)
- [Implementation Plan](./plan.md)
- [Metadata](./metadata.json)

View File

@@ -0,0 +1,8 @@
{
"track_id": "saved_tool_presets_20260308",
"type": "feature",
"status": "new",
"created_at": "2026-03-08T12:42:00Z",
"updated_at": "2026-03-08T12:42:00Z",
"description": "Make agent tools have presets. Add flags for tools related to their level of approval (auto, ask). Move tools to ai settings. Put python related tools in a pythons section, general file tools in thier oww section, etc. Tool Presets added to mma agent role options."
}

View File

@@ -0,0 +1,44 @@
# Implementation Plan: Saved Tool Presets
## Phase 1: Data Model & Storage
- [ ] Task: Define the `ToolPreset` data model and storage logic.
- [ ] Create `src/tool_presets.py` to handle loading/saving to `tool_presets.toml`.
- [ ] Implement `ToolPresetManager` to manage CRUD operations for presets and categorization.
- [ ] Task: Write unit tests for `ToolPresetManager`.
- [ ] Test loading tool presets from TOML.
- [ ] Test saving tool presets to TOML.
- [ ] Test dynamic category parsing.
- [ ] Test tool approval flag persistence.
- [ ] Task: Conductor - User Manual Verification 'Phase 1: Data Model & Storage' (Protocol in workflow.md)
## Phase 2: UI Integration (AI Settings)
- [ ] Task: Relocate tool settings to the AI Settings panel.
- [ ] Modify `gui_2.py` to remove the current tool listing from the main panel and move it to the AI Settings panel (global/project).
- [ ] Task: Implement dynamic tool categorization UI.
- [ ] Modify `gui_2.py` to render tools in sections based on categories defined in `tool_presets.toml`.
- [ ] Implement toggleable "auto"/"ask" flags for each tool.
- [ ] Task: Implement Tool Preset dropdown for MMA agent roles.
- [ ] Add the "Tool Preset" dropdown to the MMA agent role configuration modal in `gui_2.py`.
- [ ] Task: Write integration tests for AI Settings UI using `live_gui`.
- [ ] Verify tools are categorized correctly in the UI.
- [ ] Verify toggling a tool's approval persists correctly.
- [ ] Verify the "Tool Preset" dropdown shows all available presets.
- [ ] Task: Conductor - User Manual Verification 'Phase 2: UI Integration (AI Settings)' (Protocol in workflow.md)
## Phase 3: AI Client & Execution Integration
- [ ] Task: Integrate tool presets into the AI Client.
- [ ] Modify `src/ai_client.py` to load and apply the selected tool preset for a given agent role.
- [ ] Implement logic to restrict available tools and enforce "auto"/"ask" behavior based on the preset.
- [ ] Task: Update MMA delegation to pass the selected tool preset.
- [ ] Modify `scripts/mma_exec.py` and `src/multi_agent_conductor.py` to pass the `tool_preset` to sub-agents.
- [ ] Task: Write integration tests for AI execution with tool presets.
- [ ] Verify agents only have access to tools in their assigned preset.
- [ ] Verify "auto" tools execute without prompting, and "ask" tools require confirmation.
- [ ] Task: Conductor - User Manual Verification 'Phase 3: AI Client & Execution Integration' (Protocol in workflow.md)
## Phase 4: Final Integration & Polish
- [ ] Task: Implement Preset Manager Modal.
- [ ] Create a modal for creating, editing, and deleting tool presets.
- [ ] Task: Final UI polish (spacing, icons, tooltips).
- [ ] Task: Run full suite of relevant tests.
- [ ] Task: Conductor - User Manual Verification 'Phase 4: Final Integration & Polish' (Protocol in workflow.md)

View File

@@ -0,0 +1,38 @@
# Specification: Saved Tool Presets
## Overview
This feature adds the ability to create, save, and manage "Tool Presets" for agent roles. These presets define which tools are available to an agent and their respective "auto" vs "ask" approval levels. Tools will be organized into dynamic, TOML-defined categories (e.g., Python, General) and integrated into the global and project-specific AI settings.
## Functional Requirements
- **Dedicated Storage:**
- Tool presets and categorization data will be stored in a dedicated `tool_presets.toml` file.
- **Preset Content:**
- `name`: A unique identifier for the tool preset.
- `categories`: A dictionary of tool categories (e.g., `[categories.python]`, `[categories.general]`).
- `tools`: A list of tool definitions within each category, including:
- `name`: The tool's identifier (e.g., `read_file`).
- `approval`: A flag set to `auto` (execute immediately) or `ask` (require user confirmation).
- **GUI Integration:**
- **AI Settings Panel:** Move tool management to the AI Settings panel (global and project).
- **Categorized Sections:** Display tools in the UI based on their dynamic categories (Python, General, etc.).
- **Approval Toggles:** Provide a visual indicator and toggle for each tool's `auto`/`ask` status.
- **MMA Role Mapping:** Add a "Tool Preset" dropdown to the existing MMA agent role configuration (alongside provider and model selections).
- **Dynamic Categorization:**
- The UI must dynamically render categories and tool lists based on the `tool_presets.toml` structure.
## Non-Functional Requirements
- **Persistence:** Changes to presets or tool approval levels must be persisted to the `tool_presets.toml` file.
- **Scalability:** The system should handle an arbitrary number of categories and tools.
- **Validation:** Ensure tool names are valid and match existing MCP/native tools.
## Acceptance Criteria
- [ ] Users can create a new tool preset and see it in the dropdown for MMA agent roles.
- [ ] Tools are correctly displayed in dynamic categories (Python, General) in the UI.
- [ ] Changing a tool's approval flag (auto/ask) is correctly persisted.
- [ ] Selecting a tool preset for an MMA role correctly restricts the available tools and sets their default approval levels for that role.
- [ ] The AI Settings panel correctly reflects the categorized tool list.
## Out of Scope
- Support for other file formats (e.g., JSON, YAML) for tool presets.
- Presets for specific files or folders (scoped only to global or project level).
- Cloud syncing of tool presets.

View File

@@ -0,0 +1,5 @@
# Track ui_theme_overhaul_20260308 Context
- [Specification](./spec.md)
- [Implementation Plan](./plan.md)
- [Metadata](./metadata.json)

View File

@@ -0,0 +1,8 @@
{
"track_id": "ui_theme_overhaul_20260308",
"type": "feature",
"status": "new",
"created_at": "2026-03-08T13:00:00Z",
"updated_at": "2026-03-08T13:00:00Z",
"description": "Improve default font (Inter/Maple Mono), implement professional subtle rounded theme using imgui-bundle, custom shaders (corners, blur, AA), multi-viewport toggle, and layout presets."
}

View File

@@ -0,0 +1,43 @@
# Implementation Plan: UI Theme Overhaul & Style System
## Phase 1: Research & Typography
- [ ] Task: Research `imgui-bundle` text rendering and theme APIs.
- [ ] Identify the best way to load and render high-quality fonts (Inter/Maple Mono).
- [ ] Check for Freetype support or specialized rendering forks within the current environment.
- [ ] Task: Implement Professional Typography.
- [ ] Integrate Inter and Maple Mono font assets.
- [ ] Update the font loading logic in `src/gui_2.py` (or a dedicated theme module).
- [ ] Verify font rendering quality and scaling across the UI.
- [ ] Task: Conductor - User Manual Verification 'Phase 1: Research & Typography' (Protocol in workflow.md)
## Phase 2: Professional Style & Theming
- [ ] Task: Implement the "Subtle Rounding" Professional Theme.
- [ ] Define the professional color palette and style variables (rounding, padding, spacing).
- [ ] Utilize `imgui-bundle`'s styling APIs to apply the theme globally.
- [ ] Refactor existing hardcoded styling in `src/gui_2.py` to use the new theme system.
- [ ] Task: Write visual regression tests or simulation scripts to verify the new theme's consistency.
- [ ] Task: Conductor - User Manual Verification 'Phase 2: Professional Style & Theming' (Protocol in workflow.md)
## Phase 3: Advanced Visual Effects (Shaders)
- [ ] Task: Implement Custom UI Shaders.
- [ ] Develop and integrate shaders for rounded window corners and soft shadows.
- [ ] Develop and integrate shaders for glass/acrylic (blur) effects on selected panels.
- [ ] Develop and integrate shaders for improved text anti-aliasing.
- [ ] Task: Perform a performance audit to ensure shaders do not degrade FPS.
- [ ] Task: Conductor - User Manual Verification 'Phase 3: Advanced Visual Effects (Shaders)' (Protocol in workflow.md)
## Phase 4: Layout Management & Multi-Viewport
- [ ] Task: Implement Multi-Viewport Support.
- [ ] Add the "Multi-Viewport" toggle checkbox to the main menu bar.
- [ ] Ensure the application correctly handles panel detachment and re-attachment.
- [ ] Task: Implement UI Layout Presets.
- [ ] Create a management system (Save/Load/Delete) for window layout presets.
- [ ] Ensure presets capture window geometry and the Multi-Viewport state.
- [ ] Persist layout presets to the project configuration (`manual_slop.toml` or a dedicated file).
- [ ] Task: Verify layout restoration accuracy across multiple presets.
- [ ] Task: Conductor - User Manual Verification 'Phase 4: Layout Management & Multi-Viewport' (Protocol in workflow.md)
## Phase 5: Final Polish & Verification
- [ ] Task: Conduct a final UI audit for "professionalism" and consistency.
- [ ] Task: Run the full simulation suite to ensure no regressions in tool interaction or workflow.
- [ ] Task: Conductor - User Manual Verification 'Phase 5: Final Polish & Verification' (Protocol in workflow.md)

View File

@@ -0,0 +1,39 @@
# Specification: UI Theme Overhaul & Style System
## Overview
This track aims to modernize the application's appearance by implementing a professional, high-fidelity UI theme using `imgui-bundle`'s native styling and theming capabilities. It focuses on improving typography, visual shapes, and introducing advanced features like custom shaders, multi-viewport support, and user-managed layout presets.
## Functional Requirements
- **Professional Typography:**
- Replace the default ImGui font with a high-quality, professional font family (e.g., **Inter** or **Maple Mono**).
- Implement proper font scaling and anti-aliasing.
- **Style & Theming System:**
- Utilize `imgui-bundle`'s recommended styling APIs to define a cohesive "professional" theme.
- Implement a "Subtle Rounding" aesthetic for windows, buttons, and other UI elements.
- Research and implement the latest text rendering techniques supported by `imgui-bundle` or its forks (e.g., Freetype integration).
- **Advanced Visual Effects (Shaders):**
- Explore and implement custom shaders for:
- Rounded window corners and soft shadows.
- Glass/Acrylic (blur) effects for panels.
- Improved text anti-aliasing via specialized shaders.
- **Multi-Viewport Support:**
- Add a toggle in the main menu bar to enable/disable ImGui's **Multi-Viewport** feature (allowing panels to be dragged outside the main application window).
- **UI Layout Presets:**
- Implement a system for users to save and manage custom window layouts.
- Layout presets must capture window positions, sizes, and the current **Multi-Viewport** state.
## Non-Functional Requirements
- **Performance:** Ensure that custom shaders and advanced rendering do not significantly impact the application's frame rate (FPS).
- **Compatibility:** The new theme and style system must be compatible across all supported platforms (win32).
- **Reliability:** Layout presets must be persisted correctly and restored accurately.
## Acceptance Criteria
- [ ] The default font is changed to Inter or Maple Mono with high-quality rendering.
- [ ] The UI has a consistent "Subtle Rounding" aesthetic across all standard widgets.
- [ ] A "Multi-Viewport" toggle is available in the menu bar and works as expected.
- [ ] Users can save multiple window layout presets and switch between them.
- [ ] Custom shaders are implemented for at least one major effect (e.g., rounded corners or acrylic blur) without degrading performance.
## Out of Scope
- Complete redesign of the Hub-based layout logic (only styling/theming).
- Cloud-based layout synchronization.