conductor(tracks): Add discussion_hub_panel_reorganization track
This track addresses the fragmented implementation of Session Context Snapshots and Discussion Takes & Timeline Branching tracks (2026-03-11) which were marked complete but the UI panel layout was not properly reorganized. New track structure: - Phase 1: Remove ui_summary_only, rename Context Hub to Project Settings - Phase 2: Merge Session Hub into Discussion Hub (4 tabs) - Phase 3: Context Composition tab (per-discussion file filter) - Phase 4: DAW-style Takes timeline integration - Phase 5: Final integration and cleanup Also archives the two botched tracks and updates tracks.md.
This commit is contained in:
@@ -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.
|
||||||
|
|
||||||
@@ -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/)*
|
*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.*
|
*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/)*
|
*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.*
|
*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/)*
|
*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.*
|
*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**
|
10. [ ] **Track: Undo/Redo History Support**
|
||||||
*Link: [./tracks/undo_redo_history_20260311/](./tracks/undo_redo_history_20260311/)*
|
*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.*
|
*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.*
|
||||||
|
|||||||
@@ -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."
|
||||||
|
}
|
||||||
@@ -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'
|
||||||
@@ -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
|
||||||
Reference in New Issue
Block a user