8.6 KiB
CodeNomad Build Roadmap
Overview
This document outlines the phased approach to building the CodeNomad desktop application. Each phase builds incrementally on the previous, with clear deliverables and milestones.
Status: MVP (Phases 1-3) is complete. Focus now shifts to post-MVP phases starting with multi-instance support and advanced input refinements.
MVP Scope (Phases 1-3)
The minimum viable product includes:
- Single instance management
- Session selection and creation
- Message display (streaming)
- Basic prompt input (text only)
- Agent/model selection
- Process lifecycle management
Target: 3-4 weeks for MVP
Phase 1: Foundation (Week 1)
Goal: Running Electron app that can spawn OpenCode servers
Tasks
- ✅ 001-project-setup - Electron + SolidJS + Vite boilerplate
- ✅ 002-empty-state-ui - Empty state UI with folder selection
- ✅ 003-process-manager - Spawn and manage OpenCode server processes
- ✅ 004-sdk-integration - Connect to server via SDK
- ✅ 005-session-picker-modal - Select/create session modal
Deliverables
- App launches successfully
- Can select folder
- Server spawns automatically
- Session picker appears
- Can create/select session
Success Criteria
- User can launch app → select folder → see session picker
- Server process runs in background
- Sessions fetch from API successfully
Phase 2: Core Chat Interface (Week 2)
Goal: Display messages and send basic prompts
Tasks
- 006-instance-session-tabs - Two-level tab navigation
- 007-message-display - Render user and assistant messages
- 008-sse-integration - Real-time message streaming
- 009-prompt-input-basic - Text input with send functionality
- 010-tool-call-rendering - Display tool executions inline
Deliverables
- Tab navigation works
- Messages display correctly
- Real-time updates via SSE
- Can send text messages
- Tool calls show status
Success Criteria
- User can type message → see response stream in real-time
- Tool executions visible and expandable
- Multiple sessions can be open simultaneously
Phase 3: Essential Features (Week 3)
Goal: Feature parity with basic TUI functionality
Tasks
- 011-agent-model-selectors - Dropdown for agent/model switching
- 012-markdown-rendering - Proper markdown with code highlighting
- 013-logs-tab - View server logs
- 014-error-handling - Comprehensive error states and recovery
- 015-keyboard-shortcuts - Essential keyboard navigation
Deliverables
- Can switch agents and models
- Markdown renders beautifully
- Code blocks have syntax highlighting
- Server logs accessible
- Errors handled gracefully
- Cmd/Ctrl+N, K, L shortcuts work
Success Criteria
- User experience matches TUI quality
- All error cases handled
- Keyboard-first navigation option available
Phase 4: Multi-Instance Support (Week 4)
Goal: Work on multiple projects simultaneously
Tasks
- 016-instance-tabs - Instance-level tab management
- 017-instance-state-persistence - Remember instances across restarts
- 018-child-session-handling - Auto-create tabs for child sessions
- 019-instance-lifecycle - Stop, restart, reconnect instances
- 020-multiple-sdk-clients - One SDK client per instance
Deliverables
- Multiple instance tabs
- Persists across app restarts
- Child sessions appear as new tabs
- Can stop individual instances
- All instances work independently
Success Criteria
- User can work on 3+ projects simultaneously
- App remembers state on restart
- No interference between instances
Phase 5: Advanced Input (Week 5)
Goal: Full input capabilities matching TUI
Tasks
- 021-slash-commands - Command palette with autocomplete
- 022-file-attachments - @ mention file picker
- 023-drag-drop-files - Drag files onto input
- 024-attachment-chips - Display and manage attachments
- 025-input-history - Up/down arrow message history
Deliverables
/commandautocomplete works@filepicker searches files- Drag & drop attaches files
- Attachment chips removable
- Previous messages accessible
Success Criteria
- Input feature parity with TUI
- File context easy to add
- Command discovery intuitive
Phase 6: Polish & UX (Week 6)
Goal: Production-ready user experience
Tasks
- 026-message-actions - Copy, edit, regenerate messages
- 027-search-in-session - Find text in conversation
- 028-session-management - Rename, share, export sessions
- 029-settings-ui - Preferences and configuration
- 030-native-menus - Platform-native menu bar
Deliverables
- Message context menus
- Search within conversation
- Session CRUD operations
- Settings dialog
- Native File/Edit/View menus
Success Criteria
- Feels polished and professional
- All common actions accessible
- Settings discoverable
Phase 7: System Integration (Week 7)
Goal: Native desktop app features
Tasks
- 031-system-tray - Background running with tray icon
- 032-notifications - Desktop notifications for events
- 033-auto-updater - In-app update mechanism
- 034-crash-reporting - Error reporting and recovery
- 035-performance-profiling - Optimize rendering and memory
Deliverables
- Runs in background
- Notifications for session activity
- Auto-updates on launch
- Crash logs captured
- Smooth performance with large sessions
Success Criteria
- App feels native to platform
- Updates seamlessly
- Crashes don't lose data
Phase 8: Advanced Features (Week 8+)
Goal: Beyond MVP, power user features
Tasks
- 036-virtual-scrolling - Handle 1000+ message sessions
- 037-message-search-advanced - Full-text search across sessions
- 038-workspace-management - Save/load workspace configurations
- 039-theme-customization - Custom themes and UI tweaks
- 040-plugin-system - Extension API for custom tools
Deliverables
- Virtual scrolling for performance
- Cross-session search
- Workspace persistence
- Theme editor
- Plugin loader
Success Criteria
- Handles massive sessions (5000+ messages)
- Can search entire project history
- Fully customizable
Parallel Tracks
Some tasks can be worked on independently:
Design Track
- Visual design refinements
- Icon creation
- Brand assets
- Marketing materials
Documentation Track
- User guide
- Keyboard shortcuts reference
- Troubleshooting docs
- Video tutorials
Infrastructure Track
- CI/CD pipeline
- Automated testing
- Release automation
- Analytics integration
Release Strategy
Alpha (After Phase 3)
- Internal testing only
- Frequent bugs expected
- Rapid iteration
Beta (After Phase 6)
- Public beta program
- Feature complete
- Bug fixes and polish
v1.0 (After Phase 7)
- Public release
- Stable and reliable
- Production-ready
v1.x (Phase 8+)
- Regular feature updates
- Community-driven priorities
- Plugin ecosystem
Success Metrics
MVP Success
- 10 internal users daily
- Can complete full coding session
- <5 critical bugs
Beta Success
- 100+ external users
- NPS >50
- <10 bugs per week
v1.0 Success
- 1000+ users
- <1% crash rate
- Feature requests > bug reports
Risk Mitigation
Technical Risks
- Process management complexity
- Mitigation: Extensive testing, graceful degradation
- SSE connection stability
- Mitigation: Robust reconnection logic, offline mode
- Performance with large sessions
- Mitigation: NOT a concern for MVP - defer to Phase 8
- Accept slower performance initially, optimize later based on user feedback
Product Risks
- Feature creep
- Mitigation: Strict MVP scope, user feedback prioritization
- Over-optimization too early
- Mitigation: Focus on functionality first, optimize in Phase 8
- Avoid premature performance optimization
- Platform inconsistencies
- Mitigation: Test on all platforms regularly
Dependencies
External
- OpenCode CLI availability
- OpenCode SDK stability
- Electron framework updates
Internal
- Design assets
- Documentation
- Testing resources
Milestone Checklist
Pre-Alpha
- All Phase 1 tasks complete
- Can create instance and session
- Internal demo successful
Alpha
- All Phase 2-3 tasks complete
- MVP feature complete
- 5+ internal users testing
Beta
- All Phase 4-6 tasks complete
- Multi-instance stable
- 50+ external testers
v1.0
- All Phase 7 tasks complete
- Documentation complete
- <5 known bugs
- Ready for public release