summaryrefslogtreecommitdiff
path: root/makima/docs/REQUIREMENTS-resume-history-system.md
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-15 22:33:47 +0000
committerGitHub <noreply@github.com>2026-01-15 22:33:47 +0000
commit6ee2e75834bff187b8c262e0798ef365bc21cd59 (patch)
treed4bd61c7740835acfc9a9dff952d1d088ff6d535 /makima/docs/REQUIREMENTS-resume-history-system.md
parent908973b5c08a8b7b624880843c512e8bddf37896 (diff)
downloadsoryu-6ee2e75834bff187b8c262e0798ef365bc21cd59.tar.gz
soryu-6ee2e75834bff187b8c262e0798ef365bc21cd59.zip
Add resume and history system for makima (#1)
This PR implements a comprehensive resume and history system that enables: 1. **History Viewing** - View complete conversation history for contracts across all phases - View conversation history for individual tasks - View task output/tool call history with timestamps - View checkpoint history - Timeline view showing all activities 2. **Resume System** - Resume interrupted supervisor conversations with full context - Resume interrupted task conversations - Resume from specific checkpoints - Continue tasks from previous task state (worktree inheritance) 3. **Rewind/Restore Features** - Rewind code to any checkpoint (git restore) - Rewind conversation to any point - Create new branches from historical points - Fork tasks from any point in history - New migration: 20250117000000_history_tables.sql - conversation_snapshots table for storing conversation state - history_events table for unified timeline - Added forking fields to tasks table - Added conversation_snapshot_id to task_checkpoints - ConversationSnapshot, HistoryEvent, ConversationMessage - Request/response types for resume and rewind operations - Query filter types for history endpoints - CRUD functions for conversation_snapshots - CRUD functions for history_events - Task conversation retrieval from task_events - GET /api/v1/contracts/{id}/history - GET /api/v1/contracts/{id}/supervisor/conversation - GET /api/v1/mesh/tasks/{id}/conversation - GET /api/v1/timeline - POST /api/v1/contracts/{id}/supervisor/resume - POST /api/v1/mesh/tasks/{id}/rewind - POST /api/v1/mesh/tasks/{id}/fork - POST /api/v1/mesh/tasks/{id}/checkpoints/{cid}/resume - POST /api/v1/mesh/tasks/{id}/checkpoints/{cid}/branch - POST /api/v1/contracts/{id}/supervisor/conversation/rewind - task-history: View task conversation history - task-checkpoints: List task checkpoints - resume: Resume supervisor after interruption - task-resume-from: Resume task from checkpoint - task-rewind: Rewind task code to checkpoint - task-fork: Fork task from historical point - rewind-conversation: Rewind supervisor conversation
Diffstat (limited to 'makima/docs/REQUIREMENTS-resume-history-system.md')
-rw-r--r--makima/docs/REQUIREMENTS-resume-history-system.md232
1 files changed, 232 insertions, 0 deletions
diff --git a/makima/docs/REQUIREMENTS-resume-history-system.md b/makima/docs/REQUIREMENTS-resume-history-system.md
new file mode 100644
index 0000000..3a7cac9
--- /dev/null
+++ b/makima/docs/REQUIREMENTS-resume-history-system.md
@@ -0,0 +1,232 @@
+# Resume and History System - Requirements Document
+
+## 1. Executive Summary
+
+The Resume and History System enables users to view historical conversations, resume interrupted work, and rewind/restore to previous states within the Makima platform. This system is essential for recovering from interruptions, exploring alternative approaches, and maintaining visibility into AI-assisted development activities.
+
+## 2. Functional Requirements
+
+### 2.1 History Viewing (FR-HV)
+
+| ID | Requirement | Priority |
+|----|-------------|----------|
+| FR-HV-01 | System shall display complete conversation history for contracts across all phases | Must Have |
+| FR-HV-02 | System shall display conversation history for individual tasks | Must Have |
+| FR-HV-03 | System shall display task output/tool call history with timestamps | Must Have |
+| FR-HV-04 | System shall display checkpoint history with git diffs | Must Have |
+| FR-HV-05 | System shall provide a unified timeline view of all activities | Should Have |
+| FR-HV-06 | System shall support filtering history by phase, event type, and time range | Should Have |
+| FR-HV-07 | System shall support pagination for large history datasets | Must Have |
+| FR-HV-08 | System shall display supervisor conversation history including spawned tasks | Must Have |
+
+### 2.2 Resume System (FR-RS)
+
+| ID | Requirement | Priority |
+|----|-------------|----------|
+| FR-RS-01 | System shall resume interrupted supervisor conversations with full context | Must Have |
+| FR-RS-02 | System shall resume interrupted task conversations with context | Must Have |
+| FR-RS-03 | System shall allow resuming from specific checkpoints | Must Have |
+| FR-RS-04 | System shall allow continuing tasks from previous task state (worktree inheritance) | Must Have |
+| FR-RS-05 | System shall support multiple resume modes: continue, restart-phase, from-checkpoint | Should Have |
+| FR-RS-06 | System shall preserve conversation context during resume operations | Must Have |
+| FR-RS-07 | System shall support resuming on different daemons after daemon failures | Must Have |
+
+### 2.3 Rewind/Restore Features (FR-RW)
+
+| ID | Requirement | Priority |
+|----|-------------|----------|
+| FR-RW-01 | System shall rewind code to any checkpoint (git restore) | Must Have |
+| FR-RW-02 | System shall rewind conversation to any point in history | Should Have |
+| FR-RW-03 | System shall create new branches from historical points | Must Have |
+| FR-RW-04 | System shall fork tasks from any point in history | Should Have |
+| FR-RW-05 | System shall preserve current state when rewinding (create branch, stash) | Should Have |
+| FR-RW-06 | System shall support rewinding both code and conversation together | Should Have |
+
+### 2.4 Integration Requirements (FR-INT)
+
+| ID | Requirement | Priority |
+|----|-------------|----------|
+| FR-INT-01 | System shall provide CLI commands for all history/resume/rewind operations | Must Have |
+| FR-INT-02 | System shall provide REST API endpoints for frontend integration | Must Have |
+| FR-INT-03 | System shall integrate with existing task_checkpoints table | Must Have |
+| FR-INT-04 | System shall integrate with existing task_events table | Must Have |
+| FR-INT-05 | System shall integrate with existing supervisor_states table | Must Have |
+| FR-INT-06 | System shall integrate with existing conversation state in tasks | Must Have |
+
+## 3. Non-Functional Requirements
+
+### 3.1 Performance (NFR-P)
+
+| ID | Requirement | Target |
+|----|-------------|--------|
+| NFR-P-01 | History queries shall complete within 500ms for up to 1000 entries | 500ms |
+| NFR-P-02 | Resume operations shall complete within 5 seconds | 5s |
+| NFR-P-03 | Rewind operations shall complete within 10 seconds | 10s |
+| NFR-P-04 | Checkpoint diff generation shall complete within 2 seconds | 2s |
+
+### 3.2 Scalability (NFR-S)
+
+| ID | Requirement | Target |
+|----|-------------|--------|
+| NFR-S-01 | System shall support contracts with 100+ tasks | 100+ tasks |
+| NFR-S-02 | System shall support tasks with 1000+ conversation messages | 1000+ messages |
+| NFR-S-03 | System shall support checkpoints with 500+ file changes | 500+ files |
+
+### 3.3 Security (NFR-SEC)
+
+| ID | Requirement |
+|----|-------------|
+| NFR-SEC-01 | All operations shall verify owner_id authorization |
+| NFR-SEC-02 | Supervisor operations shall require tool key authentication |
+| NFR-SEC-03 | Users shall not access other users' history data |
+| NFR-SEC-04 | All rewind operations shall be logged for audit |
+
+### 3.4 Reliability (NFR-R)
+
+| ID | Requirement |
+|----|-------------|
+| NFR-R-01 | Resume operations shall not lose conversation context |
+| NFR-R-02 | Rewind operations shall be atomic (all-or-nothing) |
+| NFR-R-03 | System shall handle daemon disconnects gracefully |
+
+## 4. Data Requirements
+
+### 4.1 New Data Entities
+
+#### Conversation Snapshots
+- Store conversation state at specific points
+- Link to checkpoints for combined code+conversation restore
+- Support manual and automatic snapshot creation
+
+#### History Events
+- Unified event stream for timeline views
+- Include task events, chat messages, checkpoints, phase changes
+- Support efficient querying by contract, task, or owner
+
+### 4.2 Data Retention
+
+| Data Type | Retention Period | Notes |
+|-----------|-----------------|-------|
+| Conversation history | Indefinite | Core to resume functionality |
+| Conversation snapshots | 90 days | Configurable by user |
+| History events | 1 year | Configurable by user |
+| Checkpoint diffs | Indefinite | Git-based, low overhead |
+
+## 5. API Requirements
+
+### 5.1 New Endpoints Required
+
+| Method | Path | Description |
+|--------|------|-------------|
+| GET | `/contracts/{id}/history` | Contract history timeline |
+| GET | `/contracts/{id}/supervisor/conversation` | Supervisor conversation |
+| POST | `/contracts/{id}/supervisor/resume` | Resume supervisor |
+| POST | `/contracts/{id}/supervisor/conversation/rewind` | Rewind conversation |
+| GET | `/mesh/tasks/{id}/conversation` | Task conversation |
+| GET | `/mesh/tasks/{id}/checkpoints/{cid}/diff` | Checkpoint diff |
+| POST | `/mesh/tasks/{id}/checkpoints/{cid}/resume` | Resume from checkpoint |
+| POST | `/mesh/tasks/{id}/checkpoints/{cid}/branch` | Branch from checkpoint |
+| POST | `/mesh/tasks/{id}/rewind` | Rewind task code |
+| POST | `/mesh/tasks/{id}/fork` | Fork from history |
+| GET | `/timeline` | Unified timeline |
+
+### 5.2 Enhanced Existing Endpoints
+
+| Method | Path | Enhancement |
+|--------|------|-------------|
+| POST | `/mesh/tasks/{id}/continue` | Add resumeMode and contextOptions |
+| POST | `/mesh/tasks` | Document checkpoint_sha and continueFromTaskId usage |
+
+## 6. CLI Requirements
+
+### 6.1 New Commands
+
+| Command | Description |
+|---------|-------------|
+| `makima contract history` | View contract history timeline |
+| `makima task history` | View task conversation history |
+| `makima task checkpoints` | List task checkpoints |
+| `makima task checkpoint-diff` | View checkpoint diff |
+| `makima supervisor resume` | Resume interrupted supervisor |
+| `makima task resume` | Resume interrupted task |
+| `makima task resume-from` | Resume from specific checkpoint |
+| `makima task rewind` | Rewind code to checkpoint |
+| `makima supervisor rewind-conversation` | Rewind supervisor conversation |
+| `makima task fork` | Fork task from historical point |
+
+## 7. User Interface Requirements
+
+### 7.1 Frontend Components
+
+| Component | Description |
+|-----------|-------------|
+| ContractTimeline | Visual timeline of contract activities |
+| ConversationViewer | Display conversation history |
+| CheckpointBrowser | Browse and select checkpoints |
+| DiffViewer | Display git diffs |
+| RewindControls | UI for rewind operations |
+| ForkDialog | Modal for forking from history |
+| ResumeDialog | Modal for resume options |
+
+### 7.2 Frontend Routes
+
+| Route | Description |
+|-------|-------------|
+| `/contracts/:id/history` | Contract history page |
+| `/contracts/:id/supervisor` | Supervisor conversation view |
+| `/tasks/:id/conversation` | Task conversation view |
+| `/tasks/:id/checkpoints` | Checkpoint browser |
+| `/tasks/:id/checkpoints/:cid` | Checkpoint detail with diff |
+
+## 8. Dependencies
+
+### 8.1 Existing System Dependencies
+
+| Dependency | Usage |
+|------------|-------|
+| supervisor_states table | Store/retrieve supervisor conversation |
+| task_checkpoints table | Git checkpoint tracking |
+| task_events table | Task output history |
+| tasks.conversation_state | Task conversation context |
+| tasks.continue_from_task_id | Worktree inheritance |
+
+### 8.2 External Dependencies
+
+| Dependency | Usage |
+|------------|-------|
+| Git | Checkpoint restore, branching, diffing |
+| PostgreSQL JSONB | Conversation storage and querying |
+
+## 9. Acceptance Criteria Summary
+
+### 9.1 History Viewing
+- [ ] User can view complete contract history across all phases
+- [ ] User can view task conversation with tool calls
+- [ ] User can view checkpoint history with diffs
+- [ ] Timeline view shows all activities chronologically
+- [ ] Pagination works for large datasets
+
+### 9.2 Resume System
+- [ ] Supervisor can be resumed after daemon disconnect
+- [ ] Task can be resumed with full conversation context
+- [ ] Resume from specific checkpoint works correctly
+- [ ] Task continuation preserves worktree state
+
+### 9.3 Rewind/Restore
+- [ ] Code can be rewound to any checkpoint
+- [ ] Conversation can be rewound to any point
+- [ ] Branch can be created from any checkpoint
+- [ ] Fork creates new task with correct state
+- [ ] Original state can be preserved during rewind
+
+## 10. Out of Scope
+
+The following are explicitly out of scope for the initial implementation:
+
+1. Full-text search within conversation history
+2. History comparison/diffing between two points
+3. Interactive replay mode
+4. History export functionality
+5. AI-powered history summaries
+6. Cross-user history sharing
+7. Real-time history synchronization