You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Server reconnection: Implemented automatic server reconnection logic in OpenCodeExecutor with health monitoring escalation in ChatProvider — if the server drops, PrimeCode now detects the failure and re-establishes the connection without user intervention.
Canonical SSE event pipeline: Removed the backendRuntimeStatus side-channel entirely. Session status now flows through a single canonical path: SSE events → opencodeEvent → eventReducer → sessionStatus. Eliminates race conditions and stuck-state bugs.
Session subtree processing: Processing state is now derived across the full parent/child session tree (via collectSessionSubtreeIds), not a single session flag. Queued follow-ups flush through the full session lineage when child work completes.
File ownership tracking: Extraction of owned file paths from mutating tool parts, filtering out files owned by sibling sessions from diffs — only relevant changes are displayed per session.
Stability & Fixes
Fixed infinite re-render loop (React error #185) caused by getSessionRuntimeStatus() returning a new object reference on every selector call — now uses stable constant references.
Startup no longer calls instance.dispose() on the OpenCode server, which was destroying all active sessions (including children) on every extension reload.
Removed destructive killZombieOpenCodeProcesses — it could kill servers used by other VS Code windows.
Fixed abort propagation: stop button now always aborts the requested session and any known processing children, regardless of child status reflection in the store.
Fixed session stability after reconnect by bringing up the backend status bridge before webview hydration, with defensive status re-sync after hydrate/abort.
Handle early session.idle while awaitingBackendBusy to prevent stuck processing state.
Fixed agent ordering — preserve runtime agent order from OpenCode API instead of sorting alphabetically.
Auto-scroll no longer triggers user-detach on programmatic scrolls.
Architecture & Refactoring
Migrated permission API from deprecated respond() to reply() with explicit sessionId passing instead of activeSessionId fallback.
MCP management reworked: fetches tools/resources via experimental API, adds hot-add and targeted connect/disconnect to avoid full instance dispose on server changes.
Config file changes use soft reload (cache clear + resync) instead of instance dispose. Only explicit user actions trigger dispose.
Simplified OutboundBridge by removing unused queueUpdate method.
Removed pendingPartDeltas from session store — event reducer no longer manages unnecessary pending delta state.
Enhanced chatStore with queued message management: enqueue, dequeue, cancel, and flush through eventRuntime.
Improved tool grouping logic to prevent absorption of messages containing system reminders or multiline summaries.
UX & UI
GenerationStatus crossfade transitions: Smooth crossfade animations between generation states with stable tool activity handling during processing.
ErrorBoundary redesign: Centered notification layout with copy-to-clipboard functionality for error details.
Live tool output streaming: Bash/MCP output streams during execution via state.metadata.output with auto-expanding tool card body while running.
Elapsed timer restore: Added fallbackMs to useElapsedTimer for restored completed tools showing correct elapsed time.
CopyButton extraction: Reusable CopyButton component with copy support added to task results.
Agent toolbar: Shows effective agent (configured/primary) in toolbar; handles agent names with spaces; syncs sessionAgent from first assistant message.
SimpleTool animations: Smoother transitions and animations for tool status changes.
Edit message now validates agent against current resources before dispatch, falling back to default instead of sending invalid runtime identities.
Tests
Added tests for collectSessionSubtreeIds, queued message flush, file ownership extraction, tool grouping edge cases, and reconnect orchestration.
Extended BackendStatusBridge, eventRuntime, opencodeRuntime, and chatStore test suites with reconnect and subtree scenarios.
Added projector.test.ts for derived state calculations and fileOwnership.test.ts for ownership logic.
Added ToolHandler permission policy tests with project config hydration.