CodeNomad/dev-docs/build-roadmap.md
Pascal André 07f29d08d5
feat(opencode): migrate CodeNomad to native V2
Replace the V1 SDK, custom plugin, and per-workspace runtimes with the pinned OpenCode V2 client and one shared service. Model workspaces through native locations and route sessions, messages, events, files, VCS, permissions, questions, providers, commands, and MCP directly through V2 APIs.

Remove the legacy plugin and background-process layers, use native Shell and PTY support, preserve server-side Git mutations where V2 lacks parity, and update the UI, packaging, CI, architecture documentation, and translations for the new model.

Add focused coverage for shared-service ownership, Windows and WSL startup, proxy boundaries, worktree event routing, native event normalization, provider authentication, voice instructions, and location-scoped requests. Server and UI typechecks pass; remaining security review items and the real opencode2 smoke test are documented in MIGRATION_V2.md and will be completed before the draft PR is marked ready.
2026-08-12 20:09:44 +02:00

8.7 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 desktop app connected to one shared OpenCode service

Tasks

  1. 001-project-setup - Electron + SolidJS + Vite boilerplate
  2. 002-empty-state-ui - Empty state UI with folder selection
  3. 003-process-manager - Discover/start and manage the shared OpenCode service
  4. 004-sdk-integration - Connect through the native OpenCode client
  5. 005-session-picker-modal - Select/create session modal

Deliverables

  • App launches successfully
  • Can select folder
  • Shared service starts or reconnects automatically
  • Session picker appears
  • Can create/select session

Success Criteria

  • User can launch app → select folder → see session picker
  • Workspace location is ready on the shared service
  • Sessions fetch from API successfully

Phase 2: Core Chat Interface (Week 2)

Goal: Display messages and send basic prompts

Tasks

  1. 006-instance-session-tabs - Two-level tab navigation
  2. 007-message-display - Render user and assistant messages
  3. 008-sse-integration - Real-time message streaming
  4. 009-prompt-input-basic - Text input with send functionality
  5. 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

  1. 011-agent-model-selectors - Dropdown for agent/model switching
  2. 012-markdown-rendering - Proper markdown with code highlighting
  3. 013-logs-tab - View server logs
  4. 014-error-handling - Comprehensive error states and recovery
  5. 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

  1. 016-instance-tabs - Instance-level tab management
  2. 017-instance-state-persistence - Remember instances across restarts
  3. 018-child-session-handling - Auto-create tabs for child sessions
  4. 019-instance-lifecycle - Stop, restart, reconnect instances
  5. 020-multiple-sdk-clients - Location-scoped clients over one shared service

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

  1. 021-slash-commands - Command palette with autocomplete
  2. 022-file-attachments - @ mention file picker
  3. 023-drag-drop-files - Drag files onto input
  4. 024-attachment-chips - Display and manage attachments
  5. 025-input-history - Up/down arrow message history

Deliverables

  • /command autocomplete works
  • @file picker 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

  1. 026-message-actions - Copy, edit, regenerate messages
  2. 027-search-in-session - Find text in conversation
  3. 028-session-management - Rename, share, export sessions
  4. 029-settings-ui - Preferences and configuration
  5. 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

  1. 031-system-tray - Background running with tray icon
  2. 032-notifications - Desktop notifications for events
  3. 033-auto-updater - In-app update mechanism
  4. 034-crash-reporting - Error reporting and recovery
  5. 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

  1. 036-virtual-scrolling - Handle 1000+ message sessions
  2. 037-message-search-advanced - Full-text search across sessions
  3. 038-workspace-management - Save/load workspace configurations
  4. 039-theme-customization - Custom themes and UI tweaks
  5. 040-native-capabilities - Integrate additional native OpenCode capabilities

Deliverables

  • Virtual scrolling for performance
  • Cross-session search
  • Workspace persistence
  • Theme editor
  • Native capability integration

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-ai/client contract 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