Highlights
This release introduces a major Assistant Mode with deep OpenCode server integration, a new OpenCodeSupervisor for resilient server lifecycle management, and a host of mobile and model-selection improvements.
Features
Assistant Mode & OpenCode Integration (#214)
- Assistant Workspace: New assistant mode with internal token authentication, dedicated routes, and session management
- SSE Streaming: Real-time event streaming from the OpenCode server, aggregated through a new SSE pipeline
- OpenCode Server Auth: Settings UI and backend resolver for OpenCode server credentials, including SSE password resolution
- Server Health Monitoring: Continuous health checks integrated with the new supervisor
- Internal API: New internal routes for notifications and settings, plus internal token authentication
- Skills Dialog: New
RepoSkillsDialogfor managing repo-scoped skills
Assistant Workspace UX
- Session List (#198): Dedicated assistant session list view
- New Session CTA: Quick-start button in assistant workspace sidebar
- Welcome Message: Auto-seeded welcome message on new assistant session creation
- Configurable Default Agent: Set a default agent with smart resolution logic
- Session Activity Separation (#202): Decoupled session activity state from streaming state for cleaner UI
Model Selection
- Favorites System (#201): Star and quick-access favorite models in
ModelQuickSelectandModelSelectDialog - Model State Persistence (#209): Selected model now persists across sessions with improved sync
- Provider Disambiguation: Provider name prefix shown when model display names are ambiguous
Repo & Worktree Management
- Base Branch Support (#197): New
CreateWorktreeDialogwith base branch selection for worktree creation - Repo URL & Worktree Props:
SourceControlPanelnow receivesrepoUrlandisRepoWorktreefor richer source control UX - Repo Quick Switch in Sidebar: Restructured sidebar navigation with integrated repo quick switching
- Improved Repo List: Better path handling, controls, and component structure (#196)
Mobile Improvements
- Mobile Session Actions (#206): Touch-optimized session management actions
- Tap-First Speech-to-Text (#207): Reworked STT to a tap-first interaction model, replacing hold-to-record
- Mobile STT Feedback (#203): Improved speech-to-text feedback on mobile
- Permission Polling: React Query–based permission synchronization for live updates
Navigation & Layout
- Desktop Sidebar Navigation (#199): New desktop sidebar with consolidated header actions
- Settings Back Navigation (#210): Extracted navigation helpers and improved settings back behavior
Refactoring
- OpenCodeSupervisor (#200): New lifecycle state machine (idle → starting → healthy/unhealthy → recovering → failed) with:
- Operation locking to prevent concurrent start/stop/restart/reload races
- 4-step recovery pipeline: restart → debug capture → rollback last known good → seed default config
- Health polling with configurable interval, threshold, and toggle (
HEALTH_POLL_MS,HEALTH_FAILURE_THRESHOLD,HEALTH_WATCH_ENABLED) archiveBrokenConfigmethod onSettingsServicefor backup before rollback
parseModelStringhelper: Extracted inuseOpenCodehook for reuse and clarity- Navigation helpers (#210): Extracted from inline component logic
Fixes
- Swipe-Back Suspension (#215, #216): Suspend swipe-back gesture on the More drawer; remove unused variables
- Permission Removal (#205): Remove permissions immediately after responding instead of waiting for a poll
- Pending Question Reconciliation (#204): Reconcile pending questions by directory; improve TTS fallback
getProvidersAsync Wrapping: Wrapped in async lambda for React QueryqueryFncorrectness- JSX Structural Issues: Fixed in
RepoDetailcomponent
Reverts
- Reverted
feat: seed Assistant workspace with update-configuration skill and improved docspending follow-up
Chore
- Bump version to 0.10.0
Full Changelog: v0.9.21...v0.10.0