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
- Add MCP Server modal (remote URL or local command) with validation
- Remove confirmation dialog before deleting MCP servers
- Default remote servers to oauth: true so OAuth flows auto-trigger
- Update placeholders to GitHub Copilot MCP and sequential-thinking
- Fix Docker dev stack bun --compile EXDEV error (cross-device rename)
- i18n support for en and zh locales
* fix(headless): align openwrk compile path with OpenTUI Solid
Use the upstream @opentui/solid build plugin and preload/tsconfig wiring so compiled openwrk binaries keep TUI runtime compatibility instead of emitting broken React runtime behavior.
* ci: run openwrk checks on feature branch pushes
Trigger CI for fix/openwrk-react-shim and add an openwrk binary build job so bundling regressions are caught before merging to dev.
* ci: relax binary validation to runtime smoke
Use openwrk --version/--help checks instead of grepping embedded strings so the branch CI validates bundling without false failures from defensive error text.
* fix(desktop): build openwrk sidecar via headless build script
Route desktop sidecar preparation through packages/headless/script/build.ts so OpenTUI plugin settings are applied consistently and Linux CI no longer compiles openwrk with incompatible JSX defaults.
* fix(headless): disable compiled-binary TUI by default
Avoid the runtime 'React is not defined' crash in compiled openwrk builds by auto-disabling TUI in bunfs binaries and falling back to plain output.
* fix(headless): keep TUI default and harden non-TUI fallback
Default start to TUI on tty, keep serve/non-tty as plain mode, and add a bundled Solid transform path for compiled binaries while handling TUI startup failures with a plain-output fallback.