Changelog
New updates and improvements to OpenCode
Core
- Add initial support for workspaces into the TUI
- Send context-1m-2025-08-07 beta header to GitLab to enable 1M context window(@Krule)
- Add Copilot GPT-5.4 xhigh support
Desktop
- Fix scroll jitter and loop issues in app
- Session title turn spinner now displays correctly
- Dismiss toast notifications when questions or permissions are resolved(@neriousy)
Core
- Disable fallback to free nano for small model requests
Desktop
- Remove oc-1 theme from app
- Fix sidebar workspace container sizing to prevent content overflow
- Don't animate review panel in/out
- Revert "Stupid Sexy Timeline" feature
- Sanitize workspace store filenames on Windows
- Generate color palettes in app
Core
- Canonicalize current working directory after changing directories in TUI
- Fix broken MCP toggling in TUI(@natewill)
- Update database path test to verify correct channel-based filename
- Allow beta channel to share database with stable channel
- Add OPENCODE_SKIP_MIGRATIONS flag to bypass database migrations
TUI
- Guard TUI exit to prevent premature termination
- Avoid TTY corruption from double cleanup(@tobwen)
Desktop
- Fix sidebar background color when collapsed
- Suppress hover when opening project menu or right-clicking to prevent flickering
- Trim retained desktop terminal buffers
- Messages not loading reliably
- Prune and evict stale app session caches
- Restore new-session logo on dev so users recognize OpenCode immediately
- Revert new session logo on dev branch to ship UI change with auto-accept-permissions feature
- Add OpenCode logo to new session screen for immediate app identification
- Revert prompt control docking in TUI
- Dock auto-accept after thinking and move Add file to bottom-left
- Balance titlebar columns so center content doesn't get squeezed by long side content
- Center empty states vertically in session view and improve review panel messaging for projects without version control
- Review panel transition fixed in app
Core
- Preserve original line endings in edit tool(@ranqn)
- Fix Git path resolution for modified files across Git Bash, MSYS2, and Cygwin on Windows
- Fix PTY session handle leak(@kikuchan)
- Sanitize preview database filenames
- Log stack trace when schema validation fails
- I need to see the actual commit diff to understand what was fixed and provide an accurate changelog entry.
- Add project git init API
- Update Drizzle and channel database handling
- Speed up share loads
- Enable auto-accept keybind regardless of permission config(@luisfelipesena)
Desktop
- Guard session-header current() against undefined when options is empty(@cyberprophet)
- Preserve file tree tab on reopen and fix e2e test regressions(@neriousy)
- Remove close button from project hover popover
- New session uses agent model/variant
- Model sticks to session after being changed
- Based on the commit message "fix(app): all panels transition", here's the changelog entry:
- Can't scroll files in app
- Fix maximum width on timeline component
- Align session empty states in TUI
- Add interactive timeline visualization feature
- Share workspace slug wait helper across e2e specs
- Abort sessions and wait for idle before e2e cleanup
- Show skill issue when snapshotting is off in desktop app
- Fix portal positioning for sidebar menus and tooltips by removing conditional mount logic
- Add end-to-end tests for app (part 67)(@neriousy)
- Add sidebar reveal animation, hover peek overlay, and weaker dividers to app
- Better review and file tree empty states
- Enable Safari autocorrect in normal mode, disable in shell mode(@alexandrereyes)
- Revert stale read error fix in app
- Add English to locale matchers(@KirillTregubov)
Core
- Stop leaking fsmonitor daemons that caused 60GB+ of committed memory after running tests
- Replace Bun.which with npm which in OpenCode
TUI
- Restore Bun stdin reads for prompt input
Core
- Add GPT-5.4 to Codex allowed models list(@msadiks)
- Replace Bun.stderr and Bun.color with Node.js equivalents
- Replace Bun.connect with net.createConnection for better compatibility
- Use SHA1 for hash instead of unsupported xxHash3-XXH64
- Replace Bun.hash with Hash.fast using xxhash3-xxh64
- Replace Bun.write with Filesystem.write in config files
- Replace Bun.write/file with Filesystem utilities in snapshot
- Replace Bun.sleep with Node.js timers for better compatibility
TUI
- Use node:stream/consumers for stdin reading
- Replace Bun.stdin.text with Node.js stream reading for better compatibility
Desktop
- Fix stale show in app(@neriousy)
- Remove keyboard shortcut tooltips from new session and new workspace buttons in the sidebar
- Load tab when opening file
Core
- Handle SIGHUP signal and kill process gracefully
TUI
- Add onClick handler to InlineTool and Task components
- Add options to auth login command to skip interactive questions(@dbpolito)
- Don't let Dax touch the UI
Desktop
- Fork Ghostty for web-based terminal implementation
- Show errors for stale keyed components
- Fixed locale error in app
- Resolve stale read error in app
- Improve provider settings consistency in app
- Preserve question dock state across session switches(@ualtinok)
- Fix icon jiggle in app
- Open search with Mod+F even when editor is not focused
- Improve error handling and translation in desktop server error formatting(@OpeOginni)
- Improve agent selection logic to correctly pass configured models and variants(@OpeOginni)
- Remove unnecessary macOS entitlements
- Add desktop deep link support for creating new sessions
- Prefer using useLocation hook instead of window.location in app
Core
- Rework workspace integration and adaptor interface
- Clarify output capture guidance in bash tool documentation
TUI
- Show scrollbar by default
- Prevent orphaned opencode subprocesses on shutdown
- Validate agent when running with attach flag(@alberti42)
Desktop
- Remove blur from todos in app
- Delay dock animation on session load
- Remove diff lines from sessions in sidebar
- Loading session should be scrolled to the bottom
- Close terminal tabs properly
Core
- Normalize trailing slashes in auth login URLs(@elithrar)
- Upgrade OpenTUI to v0.1.86 and enable markdown rendering by default
- Avoid Gemini combiner schema sibling injection
- Forward metadata options to Cloudflare AI Gateway provider(@ryanskidmore)
- Clone part data in Bus event to preserve token values(@ryanskidmore)
- Recover from 413 Request Entity Too Large errors via automatic compaction(@bentrd)
- Show human-readable message for HTML error responses(@rianvdm)
- Kill orphaned MCP child processes and expose OPENCODE_PID on shutdown(@ryanwyler)
- Add workspace_id to session table
- Add WorkspaceContext to core
- Basic implementation of remote workspace support
- Change keybindings to navigate between child sessions
- Fixed test issues
- Fixed terminal rendering and interaction issues in the application
TUI
- Replace curved arrow with straight arrow for better terminal compatibility
- Show pending tool call count in TUI instead of generic 'Running...' message
- Use arrow indicator for active tool execution in TUI
- Disable session navigation commands when no parent session(@jerome-benoit)
- Fixed project ID conflict and updated handling for same session ID(@noamzbr)
- Improve task tool display with subagent keybind hints and spinner animations
- Add Go provider list command
Desktop
- Defer diff rendering
- Fixed timeline performance jank in the application
- Tighten up header elements in the app
- Stabilize project close navigation
- Add comprehensive animation system with multiple easing functions and transition utilities
- Default auto-respond to false
- Refactor app to use SolidJS
- Move session review bottom padding to UI layer
- Fix latest.json finalizer in desktop application
- Revert Polish Turkish translations
- Use correct download link in finalize-latest-json script
- Faster session switching via windowed rendering and staged timeline
- Add compact UI to the app(@neriousy)
- Polish Turkish translations(@vaur94)
- Fallback to synthetic icon for unknown provider IDs(@rexdotsh)
- Fixed scroll issues in the app
- Synchronize internationalization translations
- Add Warp to the open menu
- Add latest.json finalizer script for desktop builds
- Auto-accept permissions in app
- Add Turkish locale support for app and UI packages(@vaur94)
- Add recent projects section to command palette(@neriousy)
- Move desktop open_path functionality to Rust
- Allow providing username and password when connecting to remote server
- Fixed permission indicator in app
- Add permission notifications to app
- Show keybind on context tab close button
- Better diff and code comments in app
- Deduplicate file tree scroll state management
- Align review changes select height
- Mute inactive file tab icons
- Set max-width on session when review is closed but file tree is open
- Add border to file tree on scroll
- Fix session tab alignment in compact view to prevent vertical overflow
- New tabs styling in the app
- Auto-accept all permissions mode
- Enhance project tile interaction with suppress hover functionality(@OpeOginni)
- Simplify review layout
- Restore shell path environment for desktop sidecar
- Open app in PowerShell instead of Command Prompt on Windows(@neriousy)
Core
- Fix most segfaults on Windows with Bun v1.3.10 stable
- Split TUI and server configuration
Desktop
- Remove interactive shell flag from sidecar spawn to prevent hang on macOS(@kilhyeonjun)
- Fixed permissions and questions handling from child sessions in the app
- Fixed keyboard navigation for previous/next message(@neriousy)
- Correct Copilot provider description in i18n files(@Oleksii-Pavliuk)
TUI
- Consume stdout concurrently with process exit in auth login(@Ayushlm10)
Core
- Synchronize changes
- Temporarily disable plan enter tool to prevent unintended mode switches during task execution
- Migrate Bun.spawn to Process utility with timeout and cleanup
- Disable Bun config cache in CI
- Await git ID cache write in project module
- Import custom tools via file URL
TUI
- Add Go SDK code generation script
- Show LSP errors for apply_patch tool
Desktop
- Enhance Windows app resolution and UI loading states(@neriousy)
- Update desktop README for accuracy
Core
- Add workspace-serve command (experimental)
- ACP both live and load share synthetic pending status preceding actual data(@noamzbr)
- Replace structuredClone with spread operator for process.env in tests
- Add 50ms tolerance for NTFS mtime precision in Windows FileTime assertions
- Replace Unix-only test assumptions with cross-platform alternatives
- Use path.sep in discovery test for cross-platform path matching
- Normalize backslash paths in config rel() and file ignore on Windows
- Fix plugin resolution with createRequire fallback on Windows
- Harden preload cleanup against Windows EBUSY errors
- Normalize git excludesFile path for Windows in tests
- Stream bash output and add synthetic pending events to ACP(@noamzbr)
- Add git flags for snapshot operations and fix tests for cross-platform on Windows
- Handle CRLF line endings in markdown frontmatter parsing on Windows
- Use path.join for cross-platform glob test assertions
- Upgrade to Bun 1.3.10 canary and force baseline builds always
- Normalize paths at permission boundaries on Windows
- Windows path support and canonicalization(@edemaine)
- Upgrade OpenTUI to v0.1.81
- Change detection on Windows, especially Cygwin(@edemaine)
- Cache platform binary in postinstall for faster startup
- Revert caching platform binary in postinstall for faster startup
- Cache platform binary in postinstall for faster startup
- Publish desktop beta releases to a separate repository
- Add experimental endpoint to list all sessions
- Fixed terminal issues in the app
- Respect info exclude in snapshot staging
- Missing plugin dependencies cause TUI to black screen(@elithrar)
TUI
- Support variant parameter in GitHub Actions and OpenCode GitHub run command(@elithrar)
Desktop
- Ignore stale part deltas in the application
- Fix bug where lines remain highlighted after canceling a comment(@neriousy)
- Replace error handling with serverErrorMessage utility and add ConfigInvalidError checks(@OpeOginni)
- Preserve native path separators in file path helpers
- Remove file tree tooltips
- Update createOpenReviewFile test to match new call order
- Wait for loadFile to complete before opening file tab
- Windows E2E test failures due to IPv6 networking issues resolved
- Correct inverted chevron direction in todo list(@kevinWangSheng)
- Feed customization options
- Add beta icon to desktop application
- E2E test updated to current version
- Remove double-border in share button
- Better sound effect disabling UX
- Add custom scroll view to app
- Show and hide reasoning summaries in the app
- Stay pinned with auto-scroll on todos, questions, and permissions
- Bring back -i flag in sidecar arguments for desktop
- Large text pasted into prompt input no longer causes main thread to lock
SDK
- Scripts using Turbo commands would not run on Windows
Desktop
- Don't spawn sidecar if default is localhost server
SDK
- Build SDK to dist/ instead of dist/src
Core
- Add missing id, sessionID, and messageID to MCP tool attachments(@NatChung)
- Remove unnecessary deep clones from session loop and LLM stream
- Remove User-Agent header assertion from LLM test to fix failing test
TUI
- Use structuredClone instead of remeda's clone for better performance and native support(@mhart)
Desktop
- Restore settings header mask
Core
- Support adaptive thinking for Claude Sonnet 4.6(@tctev)
TUI
- Add custom tool and MCP call responses that are visible and collapsible(@yanosh-k)
Desktop
- Black screen on launch with sidecar server fixed
- Clear todos on abort
Core
- Add dfmt formatter support for D language files(@burner)
- Bump GitLab provider and auth plugin for mid-session token refresh(@vglafirov)
- Remove unnecessary per-message title LLM calls(@rmk40)
- Prioritize user-defined variables over environment variables in Google Vertex AI configuration
- Add OpenAI-compatible endpoint support for Google Vertex provider(@leehack)
- Add Venice support for temperature, topP, topK, and smallOption parameters(@dpuyosa)
- Add cljfmt formatter support for Clojure files(@finalfantasia)
TUI
- Make use of server directory path for file references in prompts(@OpeOginni)
- Add database migration command to convert JSON storage to SQLite
- Add --continue and --fork flags to attach command
- Fixed inaccurate tips in TUI(@imanolmzd-svg)
Desktop
- Normalize Linux Wayland/X11 backend and decoration policy(@bnema)
- Use process-wrap library instead of manual job object handling in desktop(@Brendonovich)
Core
- Ensure SQLite migration logs to stderr instead of stdout