* feat: add OpenWork host orchestration
* fix: resolve host startup errors
* fix: run openwork server sidecar with bun
* feat: default to OpenCode direct
* feat: move status into bottom bar
* feat: auto-start OpenWork server sidecar
* refactor: simplify openwork server host pairing
* chore: prep openwork server sidecar for dev
* chore: allow web CORS in dev
* feat: add workspace config sharing
* Revert "fix: quiet engine doctor for sidecar"
This reverts commit 0d780d272d.
* fix: allow save dialog for export
- Show confirmation dialog instead of silently overwriting existing commands
- Add hint showing the sanitized name when spaces/special chars are used
- Create reusable ConfirmModal component for confirmation dialogs
After saving a command, directly update the local state instead of
relying on loadCommands() which depends on the SDK's cached list.
The SDK doesn't see newly written command files until app restart.
Also add scroll-to-center and highlight animation (2s pulsing indigo
border) to help users locate the newly saved command in the list.
* feat: enable URL-based navigation for web QA and restore workspace switch branding
* fix: use solid router Route list for compatibility
* fix: mount app inside root route for router context
* fix: patch solid router exports
* fix: render views via switch while syncing URL
* push
* fix: allow remote workspace creation in web
* fix: list skills across skill directories
* feat: move context panel to right rail
* fix: align skill paths with opencode docs
* fix: show full-screen boot loader during connect
* fix: improve reload toast UX and allow forcing reload during active runs
* fix: redesign reload toast to be less modal-like and warn about active tasks
* fix: move reload toast to top-center
* chore: refresh tauri Cargo.lock
* fix: start MCP OAuth from the UI
* feat: add manual MCP OAuth callback completion
* fix: clarify MCP reload setup messaging
* chore: allow PORT override for dev server
* fix: show MCP remote callback only for remote workspaces
Previously, workspace templates were only loaded when connecting to remote
workspaces due to a `workspaceType === "remote"` condition. This caused
templates in local workspaces to not appear until a new template was created,
which triggered a reload via saveTemplate().
Removed the restriction so loadWorkspaceTemplates() is called for all workspace
types when a valid targetRoot exists.