Skip to content

v1.5.8

Latest

Choose a tag to compare

@github-actions github-actions released this 24 May 03:11

PrimeCode v1.5.8

Features

  • Forwarded SSE Events: Direct SSE connection from webview to OpenCode CLI, bypassing extension host for event processing — reduces latency and improves session status, permission request, and error propagation.
  • RuntimeReloadService: New deferred reload mechanism with session-aware lifecycle, enabling safe configuration-dependent restarts without disrupting active sessions.
  • PrimeCode Configuration Management: Persistent state management via primecode.json with schema-driven validation (Zod), atomic file writes to prevent corruption, and caching layer.
  • Server Management in ChatProvider: Managed runtime restart, health monitoring, and connection/disconnection state tracking in CLIExecutor and ChatProvider.
  • Proxy Provider Synchronization: Enhanced provider config synchronization across ConfigFileWatcherService, OpenCodeClientService, and ProviderHandler.
  • Permission & Auto-Respond Refactor: Streamlined permission handling in OpenCodeExecutor and ToolHandler with improved auto-respond logic and test coverage.

Performance & UI

  • ScrollContainer Optimization: Replaced MutationObserver + polling with ResizeObserver for layout-aware scroll behavior — eliminates forced reflows during token streaming.
  • SettingsPage Rendering Fix: Colocated apiKeyInput state to prevent full panel re-renders on keystroke; replaced JS-based ResizeObserver with CSS Container Queries.
  • MessageItem Re-render Reduction: SimpleToolGroup now queries parts statically from Zustand store instead of recursive re-renders of all tool groups during streaming.
  • Chat Input Latency: Zustand store actions skip deep Immer mutations on keystroke events, significantly reducing typing lag.
  • App Exit Transitions Removed: Disabled AnimatePresence to prevent concurrent rendering of two heavy message lists during session switches.
  • React Compiler: Babel plugin for React Compiler enabled in Vite config; wdyr.ts removed.

Robustness

  • Background Process Teardown: Process group targeting on Unix/macOS for zero zombie daemon processes on extension deactivation.
  • Config File Watcher Fixes: Workspace watcher lifecycle corrections to prevent memory leaks during folder changes.
  • Safe Config Writes: Atomic file writes protect against corruption and Windows file-locking conflicts.
  • Session Status Enhancements: Improved session status propagation, error handling, and reconnect stability.

Refactoring

  • Code cleanup across common/, core/, webview/ — removed dead exports, unused schemas (normalizedTypes.ts, proxyEndpoints.ts), unused component files, and wdyr.ts.
  • Consolidated tool registry and token stats utilities.
  • Moved volatile model selections into workspace-level state, decoupling from global config.

Chore

  • Switched package scripts to bun runner.
  • Updated dependencies (package.json, bun.lock).
  • Enhanced TypeScript config for webview with vite/client types.
  • Updated Vite configuration with Babel plugin for React Compiler.