diff --git a/conductor/tracks.md b/conductor/tracks.md index 34dd24f..bdd1dd6 100644 --- a/conductor/tracks.md +++ b/conductor/tracks.md @@ -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. @@ -67,14 +67,18 @@ This file tracks all major tracks for the project. Each track has its own detail *Link: [./tracks/presets_ai_settings_ux_20260311/](./tracks/presets_ai_settings_ux_20260311/)* *Goal: Improve the layout, scaling, and control ergonomics of the Preset windows (Personas, Prompts, Tools) and AI Settings panel. Includes dual-control sliders and categorized tool management.* -8. [x] **Track: Session Context Snapshots & Visibility** +8. [x] ~~**Track: Session Context Snapshots & Visibility**~~ (Archived 2026-03-22 - Replaced by discussion_hub_panel_reorganization) *Link: [./tracks/session_context_snapshots_20260311/](./tracks/session_context_snapshots_20260311/)* *Goal: Session-scoped context management, saving Context Presets, MMA assignment, and agent-focused session filtering in the UI.* -9. [x] **Track: Discussion Takes & Timeline Branching** +9. [x] ~~**Track: Discussion Takes & Timeline Branching**~~ (Archived 2026-03-22 - Replaced by discussion_hub_panel_reorganization) *Link: [./tracks/discussion_takes_branching_20260311/](./tracks/discussion_takes_branching_20260311/)* *Goal: Non-linear discussion timelines via tabbed "takes", message branching, and synthesis generation workflows.* +12. [ ] **Track: Discussion Hub Panel Reorganization** + *Link: [./tracks/discussion_hub_panel_reorganization_20260322/](./tracks/discussion_hub_panel_reorganization_20260322/)* + *Goal: Properly merge Session Hub into Discussion Hub (4 tabs: Discussion | Context Composition | Snapshot | Takes), establish Files & Media as project-level inventory, deprecate ui_summary_only, implement Context Composition and DAW-style Takes.* + 10. [ ] **Track: Undo/Redo History Support** *Link: [./tracks/undo_redo_history_20260311/](./tracks/undo_redo_history_20260311/)* *Goal: Robust, non-provider based undo/redo for text inputs, UI controls, discussion mutations, and context management. Includes hotkey support and a history list view.* diff --git a/conductor/tracks/discussion_hub_panel_reorganization_20260322/metadata.json b/conductor/tracks/discussion_hub_panel_reorganization_20260322/metadata.json new file mode 100644 index 0000000..9ee75e6 --- /dev/null +++ b/conductor/tracks/discussion_hub_panel_reorganization_20260322/metadata.json @@ -0,0 +1,22 @@ +{ + "name": "discussion_hub_panel_reorganization", + "created": "2026-03-22", + "status": "in_progress", + "priority": "high", + "affected_files": [ + "src/gui_2.py", + "src/models.py", + "src/project_manager.py", + "tests/test_gui_context_presets.py", + "tests/test_discussion_takes.py" + ], + "replaces": [ + "session_context_snapshots_20260311", + "discussion_takes_branching_20260311" + ], + "related_tracks": [ + "aggregation_smarter_summaries (future)", + "system_context_exposure (future)" + ], + "notes": "These earlier tracks were marked complete but the UI panel reorganization was not properly implemented. This track consolidates and properly executes the intended UX." +} diff --git a/conductor/tracks/discussion_hub_panel_reorganization_20260322/plan.md b/conductor/tracks/discussion_hub_panel_reorganization_20260322/plan.md new file mode 100644 index 0000000..3d17198 --- /dev/null +++ b/conductor/tracks/discussion_hub_panel_reorganization_20260322/plan.md @@ -0,0 +1,55 @@ +# Implementation Plan: Discussion Hub Panel Reorganization + +## Phase 1: Cleanup & Project Settings Rename +Focus: Remove redundant ui_summary_only, rename Context Hub, establish project-level vs discussion-level separation + +- [ ] Task: Audit current ui_summary_only usages and document behavior to deprecate +- [ ] Task: Remove ui_summary_only checkbox from _render_projects_panel (gui_2.py) +- [ ] Task: Rename Context Hub to "Project Settings" in _gui_func tab bar +- [ ] Task: Remove Context Presets tab from Project Settings (Context Hub) +- [ ] Task: Update references in show_windows dict and any help text +- [ ] Task: Write tests verifying ui_summary_only removal doesn't break existing functionality +- [ ] Task: Conductor - User Manual Verification 'Phase 1: Cleanup & Project Settings Rename' + +## Phase 2: Merge Session Hub into Discussion Hub +Focus: Move Session Hub tabs into Discussion Hub, eliminate separate Session Hub window + +- [ ] Task: Audit Session Hub (_render_session_hub) tab content +- [ ] Task: Add Snapshot tab to Discussion Hub containing Aggregate MD + System Prompt preview +- [ ] Task: Remove Session Hub window from _gui_func +- [ ] Task: Add Discussion Hub tab bar structure (Discussion | Context Composition | Snapshot | Takes) +- [ ] Task: Write tests for new tab structure rendering +- [ ] Task: Conductor - User Manual Verification 'Phase 2: Merge Session Hub into Discussion Hub' + +## Phase 3: Context Composition Tab +Focus: Per-discussion file filter with save/load preset functionality + +- [ ] Task: Write tests for Context Composition state management +- [ ] Task: Create _render_context_composition_panel method +- [ ] Task: Implement file/screenshot selection display (filtered from Files & Media) +- [ ] Task: Implement per-file flags display (Auto-Aggregate, Force Full) +- [ ] Task: Implement Save as Preset / Load Preset buttons +- [ ] Task: Connect Context Presets storage to this panel +- [ ] Task: Update Persona editor to reference Context Composition presets +- [ ] Task: Write tests for Context Composition preset save/load +- [ ] Task: Conductor - User Manual Verification 'Phase 3: Context Composition Tab' + +## Phase 4: Takes Timeline Integration +Focus: DAW-style branching with proper visual timeline and synthesis + +- [ ] Task: Audit existing takes data structure and synthesis_formatter +- [ ] Task: Enhance takes data model with parent_entry and parent_take tracking +- [ ] Task: Implement Branch from Entry action in discussion history +- [ ] Task: Implement visual timeline showing take divergence +- [ ] Task: Integrate synthesis panel into Takes tab +- [ ] Task: Implement take selection for synthesis +- [ ] Task: Write tests for take branching and synthesis +- [ ] Task: Conductor - User Manual Verification 'Phase 4: Takes Timeline Integration' + +## Phase 5: Final Integration & Cleanup +Focus: Ensure all panels work together, remove dead code + +- [ ] Task: Run full test suite to verify no regressions +- [ ] Task: Remove dead code from ui_summary_only references +- [ ] Task: Update conductor/tracks.md to mark old session_context_snapshots and discussion_takes_branching as archived/replaced +- [ ] Task: Conductor - User Manual Verification 'Phase 5: Final Integration & Cleanup' diff --git a/conductor/tracks/discussion_hub_panel_reorganization_20260322/spec.md b/conductor/tracks/discussion_hub_panel_reorganization_20260322/spec.md new file mode 100644 index 0000000..2931d30 --- /dev/null +++ b/conductor/tracks/discussion_hub_panel_reorganization_20260322/spec.md @@ -0,0 +1,137 @@ +# Specification: Discussion Hub Panel Reorganization + +## 1. Overview + +This track addresses the fragmented implementation of Session Context Snapshots and Discussion Takes & Timeline Branching tracks (2026-03-11). Those tracks were marked complete but the UI panel layout was not properly reorganized. + +**Goal:** Create a coherent Discussion Hub that absorbs Session Hub functionality, establishes Files & Media as project-level file inventory, and properly implements Context Composition and DAW-style Takes branching. + +## 2. Current State Audit (as of 2026-03-22) + +### Already Implemented (DO NOT re-implement) +- `ui_summary_only` checkbox in Projects panel +- Session Hub as separate window with tabs: Aggregate MD | System Prompt +- Context Hub with tabs: Projects | Paths | Context Presets +- Context Presets save/load mechanism in project TOML +- `_render_synthesis_panel()` method (gui_2.py:2612-2643) - basic synthesis UI +- Takes data structure in `project['discussion']['discussions']` +- Per-file `Auto-Aggregate` and `Force Full` flags in Files & Media + +### Gaps to Fill (This Track's Scope) +1. `ui_summary_only` is redundant with per-file flags - deprecate it +2. Context Hub renamed to "Project Settings" (remove Context Presets tab) +3. Session Hub merged into Discussion Hub as tabs +4. Files & Media stays separate as project-level inventory +5. Context Composition tab in Discussion Hub for per-discussion filter +6. Context Presets accessible via Context Composition (save/load filters) +7. DAW-style Takes timeline properly integrated into Discussion Hub +8. Synthesis properly integrated with Take selection + +## 3. Panel Layout Target + +| Panel | Location | Purpose | +|-------|----------|---------| +| **AI Settings** | Separate dockable | Provider, model, system prompts, tool presets, bias profiles | +| **Files & Media** | Separate dockable | Project-level file inventory (addressable files) | +| **Project Settings** | Context Hub → rename | Git dir, paths, project list (NO context stuff) | +| **Discussion Hub** | Main hub | All discussion-related UI (tabs below) | +| **MMA Dashboard** | Separate dockable | Multi-agent orchestration | +| **Operations Hub** | Separate dockable | Tool calls, comms history, external tools | +| **Diagnostics** | Separate dockable | Telemetry, logs | + +**Discussion Hub Tabs:** +1. **Discussion** - Main conversation view (current implementation) +2. **Context Composition** - File/screenshot filter + presets (NEW) +3. **Snapshot** - Aggregate MD + System Prompt preview (moved from Session Hub) +4. **Takes** - DAW-style timeline branching + synthesis (integrated, not separate panel) + +## 4. Functional Requirements + +### 4.1 Deprecate ui_summary_only +- Remove `ui_summary_only` checkbox from Projects panel +- Per-file flags (`Auto-Aggregate`, `Force Full`) are the intended mechanism +- Document migration path for users + +### 4.2 Rename Context Hub → Project Settings +- Context Hub tab bar: Projects | Paths +- Remove "Context Presets" tab +- All context-related functionality moves to Discussion Hub → Context Composition + +### 4.3 Merge Session Hub into Discussion Hub +- Session Hub window eliminated +- Its content becomes tabs in Discussion Hub: + - **Snapshot tab**: Aggregate MD preview, System Prompt preview, "Copy" buttons + - These were previously in Session Hub + +### 4.4 Context Composition Tab (NEW) +- Shows currently selected files/screenshots for THIS discussion +- Per-file flags: Auto-Aggregate, Force Full +- **"Save as Preset"** / **"Load Preset"** buttons +- Dropdown to select from saved presets +- Relationship to Files & Media: + - Files & Media = the inventory (project-level) + - Context Composition = selected filter for current discussion + +### 4.5 Takes Timeline (DAW-Style) +- **New Take**: Start fresh discussion thread +- **Branch Take**: Fork from any discussion entry +- **Switch Take**: Make a take the active discussion +- **Rename/Delete Take** +- All takes share the same Files & Media (not duplicated) +- Non-destructive branching +- Visual timeline showing divergence points + +### 4.6 Synthesis Integration +- User selects 2+ takes via checkboxes +- Click "Synthesize" button +- AI generates "resolved" response considering all selected approaches +- Result appears as new take +- Accessible from Discussion Hub → Takes tab + +## 5. Data Model Changes + +### 5.1 Discussion State Structure +```python +# Per discussion in project['discussion']['discussions'] +{ + "name": str, + "history": [ + {"role": "user"|"assistant", "content": str, "ts": str, "files_injected": [...]} + ], + "parent_entry": Optional[int], # index of parent message if branched + "parent_take": Optional[str], # name of parent take if branched +} +``` + +### 5.2 Context Preset Format +```toml +[context_preset.my_filter] +files = ["path/to/file_a.py"] +auto_aggregate = true +force_full = false +screenshots = ["path/to/shot1.png"] +``` + +## 6. Non-Functional Requirements +- All changes must not break existing tests +- New tests required for new functionality +- Follow 1-space indentation Python code style +- No comments unless explicitly requested + +## 7. Acceptance Criteria + +- [ ] `ui_summary_only` removed from Projects panel +- [ ] Context Hub renamed to Project Settings +- [ ] Session Hub window eliminated +- [ ] Discussion Hub has 4 tabs: Discussion, Context Composition, Snapshot, Takes +- [ ] Context Composition allows save/load of filter presets +- [ ] Takes can be branched from any entry +- [ ] Takes timeline shows divergence visually +- [ ] Synthesis works with 2+ selected takes +- [ ] All existing tests still pass +- [ ] New tests cover new functionality + +## 8. Out of Scope +- Aggregation improvements (sub-agent summarization, hash-based caching) - separate future track +- System prompt exposure (`_SYSTEM_PROMPT` in ai_client.py) - separate future track +- Session sophistication (Session as container for multiple discussions) - deferred