* refactor(repo): move OpenWork apps into apps and ee layout
Rebase the monorepo layout migration onto the latest dev changes so the moved app, desktop, share, and cloud surfaces keep working from their new paths. Carry the latest deeplink, token persistence, build, Vercel, and docs updates forward to avoid stale references and broken deploy tooling.
* chore(repo): drop generated desktop artifacts
Ignore the moved Tauri target and sidecar paths so local cargo checks do not pollute the branch. Remove the accidentally committed outputs from the repo while keeping the layout migration intact.
* fix(release): drop built server cli artifact
Stop tracking the locally built apps/server/cli binary so generated server outputs do not leak into commits. Also update the release workflow to check the published scoped package name for @openwork/server before deciding whether npm publish is needed.
* fix(workspace): add stable CLI bin wrappers
Point the server and router package bins at committed wrapper scripts so workspace installs can create shims before dist outputs exist. Keep the wrappers compatible with built binaries and source checkouts to avoid Vercel install warnings without changing runtime behavior.
* fix(settings): move runtime status into General
Surface OpenCode and OpenWork status where users manage connection settings, and keep the footer focused on tips and entry points.
* fix(settings): move runtime status into Advanced
Keep the General tab focused on everyday preferences and place engine/server status in the Advanced panel with matching validation screenshots.
* feat(app): unify status bar indicators into single clickable status
Replace the separate OpenCode Engine and OpenWork Server status indicators
with a single "Ready"/"Unavailable" indicator. Clicking it opens a popover
showing per-service breakdown with colored dots and explanations.
* fix(app): polish status popover z-index, labels, and remove explanation text
* feat(app): show Local Server or Remote Server label in status popover
Use startupPreference to display "Local Server" or "Remote Server"
in the status detail popover instead of the generic "OpenWork Server".
* fix(app): add z-index to status bar container
* docs(app): add PRD for unified status bar indicator
* fix(app): auto-close status popover after 5s and fix outside click
* fix(app): use window click listener for popover outside click dismiss
* feat(app,docs): apply Orbita session layout direction
* fix(app): restore session contrast with theme-safe colors
* docs(pr): refresh Orbita session screenshot evidence
* fix(app): correct dark mode contrast for composer gradient and user bubble
* docs(pr): update screenshot evidence after dark mode contrast fix
* fix(app): revert assistant message back to sans-serif font
Prevent unsolicited Telegram chats from auto-linking to a workspace by requiring /pair <code> for private identities and exposing pairing setup in OpenWork UI.
Introduce a keyboard-first command palette so users can jump between sessions and adjust model/thinking settings without leaving chat context. Include screenshot-based proof of the full flow for faster review.
Move connection and developer controls under Advanced, show connected provider names, remove /models copy, and hide workspace Advanced navigation unless developer mode is enabled.
* 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.
* 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