Features: - Binary-Free Mode: No OpenCode binary required - NomadArch Native mode with free Zen models - Native session management - Provider routing (Zen, Qwen, Z.AI) - Fixed MCP connection with explicit connectAll() - Updated installers and launchers for all platforms - UI binary selector with Native option Free Models Available: - GPT-5 Nano (400K context) - Grok Code Fast 1 (256K context) - GLM-4.7 (205K context) - Doubao Seed Code (256K context) - Big Pickle (200K context)
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