Sandboxed openwrk instances now bind-mount the host's global opencode config directory into /persist/.config/opencode (read-only) so provider configuration matches the host.
* fix(session): hide reverted messages immediately
Apply session.revert.messageID as a UI visibility boundary and update local session state from revert/unrevert responses so undo/redo takes effect without waiting for SSE.
* fix(session): abort before undo/redo
Attempt session.abort before revert/unrevert to avoid 'Session is busy' errors when local status is stale.
Root cause: On macOS, GUI applications don't inherit shell profile modifications (.zshrc, .bashrc). When OpenWork spawns the opencode engine, the PATH doesn't include paths like
/opt/homebrew/bin where Homebrew-installed tools like npx reside.
The fix (packages/desktop/src-tauri/src/paths.rs): Added a common_tool_paths() function that returns typical locations where user-installed tools are found:
- macOS: /opt/homebrew/bin, /usr/local/bin, ~/.nvm/current/bin, ~/.volta/bin, ~/.bun/bin, ~/.cargo/bin, etc.
- Linux: Similar paths adapted for Linux conventions
- Windows: volta, pnpm, cargo, npm global paths
These paths are now prepended to the PATH environment variable when spawning processes.
To test the fix: Build and run the app, then try enabling your Playwright MCP server - it should now find npx correctly without needing to specify the full path.
- Replace loadSessions/refreshSidebarWorkspaceSessions with local store
removal in deleteSessionById to prevent reconcile() from wiping
unrelated sessions
- Remove loadSessionsWithReady calls from sendPrompt to eliminate the
same race condition on message send
- Inject new sessions directly into store and sidebar in
createSessionAndOpen instead of relying on server round-trip
- Make applySessionAgent auto-create a session when none is selected
- Add shell:true to bun spawns in prepare-sidecar.mjs for Windows
Co-authored-by: = <=>
Replace the old markdown artifact sidebar with the Obsidian-style live preview editor panel and wire Artifacts clicks to open it. Remove the scratchpad placeholder editor.
* feat(session): add live-preview notes scratchpad
Add a Notes panel between chat and right nav with a CodeMirror-based markdown editor that hides heading and emphasis markers unless the cursor is on that line/segment.
* fix(notes): render live-preview decorations
Switch markdown live-preview styling to a StateField-backed decorations pipeline and use a zero-width widget for marker hiding. Update evidence screenshots to show headings/emphasis rendering.
* fix(app): streamline automation and setup onboarding
Shift automations and skills flows toward clearer non-technical onboarding and fix the template click path to open the creation modal instead of jumping sessions. Also remove default Control Chrome seeding to avoid shipping a brittle MCP default and add clearer Telegram BotFather guidance with direct bot-link follow-ups.
* fix(app): restore control-chrome defaults and startup update cadence