Releases: stephengolub/opencode-workspaces
Release list
v0.2.1
v0.2.0 — Lean on built-in workspace UI
v0.2.0
Breaking change
Requires OPENCODE_EXPERIMENTAL_WORKSPACES=1 (or OPENCODE_EXPERIMENTAL=1). The plugin now delegates workspace list, create, delete, and reset to OpenCode's built-in UI and focuses on the UX gaps it fills uniquely.
What's removed (now handled by built-in)
- Toggle enable/disable (
command.workspace.toggleis built-in) - Delete workspace dialog (built-in
/workspaceshas better UX with unmerged-change detection) - Reset workspace dialog (built-in handles session archiving)
- Sidebar workspace list (
sidebar_contentslot — built-in renders its own list) - Worktree API fallback and synthetic workspace fabrication
What's kept (plugin-unique)
- Switch workspace dialog with status indicators
- Rename workspace (KV-persisted display names)
- Home dashboard card (
home_bottomslot) - Prompt badge showing current workspace (
home_prompt_rightslot) - Sidebar footer actions: + new / ⎇ switch / ≡ manage
- Full manage route (
/workspaces) - Slash commands:
/ws,/ws-new,/ws-switch,/ws-sessions,/wsm,/wsc,/wsl - Session browser grouped by workspace
What's new
createWorkspace()now callsexperimental.workspace.create()directly (was usingworktree.create())
v0.1.5
Fix npm plugin loading: use actual .ts/.tsx extensions in imports
OpenCode's bun-plugin-solid calls readFileSync() on import paths during analysis. The TypeScript ESM convention of using .js extensions (e.g. './components.js') was causing ENOENT errors since the actual files are .tsx/.ts. This was the root cause of the silent plugin load failure when installed from npm.
v0.1.4
Fix: Add @jsxImportSource pragma to all JSX source files.
Without the per-file JSX pragma, Bun cannot determine the JSX transform when loading source files from the npm cache (no tsconfig.json is available in the installed package). This caused the plugin to silently fail when configured as an npm plugin.
The fix matches the pattern used by oc-plugin-rainbow and other working TUI plugins.
v0.1.3
Fix: mark tui peer deps as required so npm installs solid-js and @OpenTui
Root cause: @opentui/solid, @opentui/core and solid-js were marked as optional peer deps, causing npm to skip them during installation. Without these packages, the Bun JSX transform plugin and solid-js cannot be resolved at runtime, silently preventing the TUI plugin from loading.
Fix: Only @opencode-ai/plugin remains optional (it's provided by the OpenCode host). The three TUI framework packages are now required peer deps and will be installed automatically.
v0.1.2
Fixes
- npm plugin loading: Align
package.jsonwith TUI plugin ecosystem conventions so OpenCode can resolve and load the plugin when configured as"plugin": ["opencode-workspaces"]intui.json- Simplify
./tuiexport to plain string./src/index.tsx(matches 79% of working plugins) - Move
@opencode-ai/pluginfromdependencies→peerDependencies+devDependencies(eliminates 27-package transitive dep bloat in cached install) - Remove
dist/from published files (entry point is nowsrc/directly) - Fix
prepublishOnlyscript: usenpm run buildinstead ofbun run build
- Simplify
v0.1.1
Fix npm plugin loading by pointing ./tui export at source (src/index.tsx) instead of compiled dist/index.jsx.
OpenCode's Bun runtime loads TUI plugins directly from source — aligned with the 79% of ecosystem TUI plugins that use this convention.
v0.1.0
Initial release of opencode-workspaces — TUI workspace management plugin for OpenCode.
Features
- Git worktree management in the TUI (no terminal spawning)
- Create, switch, rename, reset, delete workspaces
- Sidebar workspace list with current session highlighted
- Home screen dashboard and workspace badge
- Full-screen manage route with keyboard navigation
- Session browser grouped by workspace
- Slash commands:
/ws,/ws-new,/ws-switch,/ws-session,/ws-sessions,/workspaces - Session scoping — new sessions created in the correct worktree directory