diff --git a/conductor/tracks.md b/conductor/tracks.md index dbba80c..ca9abc7 100644 --- a/conductor/tracks.md +++ b/conductor/tracks.md @@ -65,6 +65,14 @@ 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. [ ] **Track: Session Context Snapshots & Visibility** + *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. [ ] **Track: Discussion Takes & Timeline Branching** + *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.* + --- ### Additional Language Support diff --git a/conductor/tracks/discussion_takes_branching_20260311/index.md b/conductor/tracks/discussion_takes_branching_20260311/index.md new file mode 100644 index 0000000..e3943f3 --- /dev/null +++ b/conductor/tracks/discussion_takes_branching_20260311/index.md @@ -0,0 +1,5 @@ +# Track discussion_takes_branching_20260311 Context + +- [Specification](./spec.md) +- [Implementation Plan](./plan.md) +- [Metadata](./metadata.json) \ No newline at end of file diff --git a/conductor/tracks/discussion_takes_branching_20260311/metadata.json b/conductor/tracks/discussion_takes_branching_20260311/metadata.json new file mode 100644 index 0000000..8d6001c --- /dev/null +++ b/conductor/tracks/discussion_takes_branching_20260311/metadata.json @@ -0,0 +1,8 @@ +{ + "track_id": "discussion_takes_branching_20260311", + "type": "feature", + "status": "new", + "created_at": "2026-03-11T19:30:00Z", + "updated_at": "2026-03-11T19:30:00Z", + "description": "Discussion Takes & Timeline Branching: Tabbed interface for multi-timeline takes, message branching, and synthesis generation workflows." +} \ No newline at end of file diff --git a/conductor/tracks/discussion_takes_branching_20260311/plan.md b/conductor/tracks/discussion_takes_branching_20260311/plan.md new file mode 100644 index 0000000..247f7c3 --- /dev/null +++ b/conductor/tracks/discussion_takes_branching_20260311/plan.md @@ -0,0 +1,25 @@ +# Implementation Plan: Discussion Takes & Timeline Branching + +## Phase 1: Backend Support for Timeline Branching +- [ ] Task: Write failing tests for extending the session state model to support branching (tree-like history or parallel linear "takes" with a shared ancestor). +- [ ] Task: Implement backend logic to branch a session history at a specific message index into a new take ID. +- [ ] Task: Implement backend logic to promote a specific take ID into an independent, top-level session. +- [ ] Task: Conductor - User Manual Verification 'Phase 1: Backend Support for Timeline Branching' (Protocol in workflow.md) + +## Phase 2: GUI Implementation for Tabbed Takes +- [ ] Task: Write GUI tests verifying the rendering and navigation of multiple tabs for a single session. +- [ ] Task: Implement a tabbed interface within the Discussion window to switch between different takes of the active session. +- [ ] Task: Add a "Split/Branch from here" action to individual message entries in the discussion history. +- [ ] Task: Add a UI button/action to promote the currently active take to a new separate session. +- [ ] Task: Conductor - User Manual Verification 'Phase 2: GUI Implementation for Tabbed Takes' (Protocol in workflow.md) + +## Phase 3: Synthesis Workflow Formatting +- [ ] Task: Write tests for a new text formatting utility that takes multiple history sequences and generates a compressed, diff-like text representation. +- [ ] Task: Implement the sequence differencing and compression logic to clearly highlight variances between takes. +- [ ] Task: Conductor - User Manual Verification 'Phase 3: Synthesis Workflow Formatting' (Protocol in workflow.md) + +## Phase 4: Synthesis UI & Agent Integration +- [ ] Task: Write GUI tests for the multi-take selection interface and synthesis action. +- [ ] Task: Implement a UI mechanism allowing users to select multiple takes and provide a synthesis prompt. +- [ ] Task: Implement the execution pipeline to feed the compressed differences and user prompt to an AI agent, and route the generated synthesis to a new "take" tab. +- [ ] Task: Conductor - User Manual Verification 'Phase 4: Synthesis UI & Agent Integration' (Protocol in workflow.md) \ No newline at end of file diff --git a/conductor/tracks/discussion_takes_branching_20260311/spec.md b/conductor/tracks/discussion_takes_branching_20260311/spec.md new file mode 100644 index 0000000..3fb5627 --- /dev/null +++ b/conductor/tracks/discussion_takes_branching_20260311/spec.md @@ -0,0 +1,23 @@ +# Specification: Discussion Takes & Timeline Branching + +## 1. Overview +This track introduces non-linear discussion timelines, allowing users to create multiple "takes" (branches) from a shared point in a conversation. It includes UI for managing these parallel timelines within a single discussion window and features a specialized synthesis workflow to merge ideas from multiple takes. + +## 2. Functional Requirements + +### 2.1 Timeline Branching (Takes) +- **Message Branching:** Add a "Split/Branch from here" action on individual discussion messages. +- **Tabbed Interface:** Branching creates a new "take," represented visually as a new tab within the same discussion session. The new tab shares the timeline history up to the split point. +- **Take Promotion:** Allow users to promote any specific take into an entirely new, standalone discussion session. + +### 2.2 Take Synthesis Workflow +- **Multi-Take Selection:** Provide a UI to select multiple takes from a shared split point for comparison and synthesis. +- **Diff/Compressed Representation:** Develop a formatted representation (e.g., compressed diffs or parallel sequence summaries) that clearly highlights the differences between the selected takes. +- **Synthesis Generation:** Feed the compressed representation of the differences to an AI agent along with a user prompt (e.g., "I liked aspects of both, do C with these caveats") to generate a new, synthesized take. + +## 3. Acceptance Criteria +- [ ] Users can split a discussion from any message to create a new "take". +- [ ] Takes are navigable via a tabbed interface within the discussion window. +- [ ] A take can be promoted to a standalone discussion session. +- [ ] Multiple takes can be selected and formatted into a compressed difference view. +- [ ] An AI agent can successfully process the compressed take view to generate a synthesized continuation. \ No newline at end of file diff --git a/conductor/tracks/session_context_snapshots_20260311/index.md b/conductor/tracks/session_context_snapshots_20260311/index.md new file mode 100644 index 0000000..53a9d52 --- /dev/null +++ b/conductor/tracks/session_context_snapshots_20260311/index.md @@ -0,0 +1,5 @@ +# Track session_context_snapshots_20260311 Context + +- [Specification](./spec.md) +- [Implementation Plan](./plan.md) +- [Metadata](./metadata.json) \ No newline at end of file diff --git a/conductor/tracks/session_context_snapshots_20260311/metadata.json b/conductor/tracks/session_context_snapshots_20260311/metadata.json new file mode 100644 index 0000000..b951932 --- /dev/null +++ b/conductor/tracks/session_context_snapshots_20260311/metadata.json @@ -0,0 +1,8 @@ +{ + "track_id": "session_context_snapshots_20260311", + "type": "feature", + "status": "new", + "created_at": "2026-03-11T19:30:00Z", + "updated_at": "2026-03-11T19:30:00Z", + "description": "Session Context Snapshots & Visibility: Tying files/screenshots to active session, saving Context Presets, MMA assignment, and agent-focused session filtering." +} \ No newline at end of file diff --git a/conductor/tracks/session_context_snapshots_20260311/plan.md b/conductor/tracks/session_context_snapshots_20260311/plan.md new file mode 100644 index 0000000..4526e74 --- /dev/null +++ b/conductor/tracks/session_context_snapshots_20260311/plan.md @@ -0,0 +1,24 @@ +# Implementation Plan: Session Context Snapshots & Visibility + +## Phase 1: Backend Support for Context Presets +- [ ] Task: Write failing tests for saving, loading, and listing Context Presets in the project configuration. +- [ ] Task: Implement Context Preset storage logic (e.g., updating TOML schemas in `project_manager.py`) to manage file/screenshot lists. +- [ ] Task: Conductor - User Manual Verification 'Phase 1: Backend Support for Context Presets' (Protocol in workflow.md) + +## Phase 2: GUI Integration & Persona Assignment +- [ ] Task: Write tests for the Context Hub UI components handling preset saving and loading. +- [ ] Task: Implement the UI controls in the Context Hub to save current selections as a preset and load existing presets. +- [ ] Task: Update the Persona configuration UI (`personas.py` / `gui_2.py`) to allow assigning a named Context Preset to an agent persona. +- [ ] Task: Conductor - User Manual Verification 'Phase 2: GUI Integration & Persona Assignment' (Protocol in workflow.md) + +## Phase 3: Transparent Context Visibility +- [ ] Task: Write tests to ensure the initial aggregate markdown, resolved system prompt, and file injection timestamps are accurately recorded in the session state. +- [ ] Task: Implement UI elements in the Session Hub to expose the aggregated markdown and the active system prompt. +- [ ] Task: Enhance the discussion timeline rendering in `gui_2.py` to visually indicate exactly when files and screenshots were injected into the context. +- [ ] Task: Conductor - User Manual Verification 'Phase 3: Transparent Context Visibility' (Protocol in workflow.md) + +## Phase 4: Agent-Focused Session Filtering +- [ ] Task: Write tests for the GUI state filtering logic when focusing on a specific agent's session. +- [ ] Task: Relocate the 'Focus Agent' feature from the Operations Hub to the MMA Dashboard. +- [ ] Task: Implement the action to filter the Session and Discussion hubs based on the selected agent's context. +- [ ] Task: Conductor - User Manual Verification 'Phase 4: Agent-Focused Session Filtering' (Protocol in workflow.md) \ No newline at end of file diff --git a/conductor/tracks/session_context_snapshots_20260311/spec.md b/conductor/tracks/session_context_snapshots_20260311/spec.md new file mode 100644 index 0000000..ab3c39b --- /dev/null +++ b/conductor/tracks/session_context_snapshots_20260311/spec.md @@ -0,0 +1,28 @@ +# Specification: Session Context Snapshots & Visibility + +## 1. Overview +This track focuses on transitioning from global context management to explicit session-scoped context. It introduces transparent visibility into the exact context (system prompts, aggregated markdown, files, and screenshots) used in a session, allows saving context selections as reusable presets, and adds MMA dashboard integration for filtering session hubs by specific agents. + +## 2. Functional Requirements + +### 2.1 Context Presets & Assignment +- **Context Snapshots:** Users can save the current selection of files and screenshots as a named "Context Preset". +- **Preset Swapping:** Users can easily load a Context Preset into an active session. +- **MMA Assignment:** Allow assigning specific Context Presets to individual MMA agent personas, preventing all agents from having access to all files by default. + +### 2.2 Transparent Context Visibility +- **No Hidden Context:** The Session Hub must expose the exact context provided to the model. +- **Initial Payload Visibility:** The aggregated markdown content generated at the start of the discussion must be viewable in the UI. +- **System Prompt State:** Display the fully resolved system prompt that was active for the session. +- **Injection Timeline:** The UI must display *when* specific files or screenshots were injected or included during the progression of the discussion. + +### 2.3 Agent-Focused Session Filtering +- **Dashboard Integration:** Move the "Focus Agent" feature from the Operations Hub to the MMA Dashboard. +- **Agent Context Filtering:** Add a button on any live agent's panel in the MMA Dashboard that automatically filters the other hubs (Session/Discussion) to show only information related to that specific agent's session. + +## 3. Acceptance Criteria +- [ ] Context selections (files/screenshots) can be saved and loaded as Presets. +- [ ] MMA Agent Personas can be configured to use specific Context Presets. +- [ ] The Session Hub displays the generated aggregate markdown and resolved system prompt. +- [ ] The discussion timeline clearly shows when files/screenshots were injected. +- [ ] The MMA Dashboard allows focusing the UI on a specific agent's session data.