* fix(owpenbot): make token saves fast and resilient
Persist Telegram/Slack tokens even when owpenbot is offline, bound adapter restarts to avoid long hangs, and refresh UI status with apply warnings.
* chore: update Cargo.lock
Keep desktop Cargo.lock in sync with the crate version so CI cargo --locked passes.
* feat(server): expose all workspaces and support mounted baseUrl
* feat(ui): keep tasks visible across workspaces
* feat(desktop): default engine runtime to openwrk
* feat(owpenbot): route chats by directory bindings
Stop pinning OpenCode in package metadata and resolve the latest release during sidecar bundling/runtime, while still allowing OPENCODE_VERSION to pin for reproducible builds.
* feat(workspace): add Share modal in workspace menu
* feat(workspace): share workspace from session view
* feat(workspace): store OpenWork token per workspace
* feat(workspace): scope OpenWork sharing via /w/:id mounts
* fix(app): scope and defer reload prompts
Avoid reload-required spam by ignoring .opencode/openwork.json, scoping detection to the active workspace, and deferring prompts until sessions go idle. Add per-workspace auto-reload + optional resume so agent/skill/command updates apply without tearing down the UX.
* chore(desktop): sync Cargo.lock
Keep Cargo.lock consistent with the desktop crate version so CI can run cargo test --locked on Linux.
* fix(app): include full prompt text for mentions
* fix(app): send valid file parts for mentions
* chore(desktop): update Cargo.lock
* chore(desktop): regenerate Cargo.lock for linux
* chore(desktop): update Cargo.lock
* fix(desktop): isolate OPENCODE_BIN_PATH in doctor tests
Add a setting in Settings → Advanced → Appearance to hide the native
window titlebar. This is useful for tiling window managers on Linux
(Hyprland, i3, sway, etc.) where window controls are typically handled
via keybinds, making the titlebar redundant.
Implementation:
- Add HIDE_TITLEBAR_PREF_KEY constant for localStorage persistence
- Add Tauri command `set_window_decorations` to toggle decorations
- Add TypeScript binding for the new Tauri command
- Add UI toggle in Settings → Advanced → Appearance section
- Apply setting on change and restore from localStorage on startup
The setting is only shown in the desktop (Tauri) environment and
persists across sessions via localStorage.
Closes#441
- Add openwrk to externalBin in tauri.conf.json
- Update prepare-sidecar.mjs to build openwrk binary alongside other sidecars
- Add --allow-external flag when spawning openwrk daemon to allow custom opencode-bin path
Fixes 'Failed to start openwrk: No such file or directory' error when using
Openwrk orchestrator mode.
- Add /opus, /codex commands to switch models in Telegram/WhatsApp
- Add /model, /reset, /help bot commands
- Improve error messages with specific HTTP status codes (401, 403, etc.)
- Add health endpoint fallback to detect externally running owpenbot
- Add restart/stop buttons for owpenbot in Settings > Debug
- Fix URL parsing in health server for /config/telegram-token endpoint
- Pass OpenCode credentials when restarting owpenbot from UI