Built-in Messaging Channels — 13 platforms, zero setup
The old external messaging gateway is gone. OpenYak now runs an async channel runtime directly inside the desktop process, so hooking the assistant up to Telegram, Discord, Slack, WhatsApp, WeChat, Feishu, DingTalk, WeCom, QQ, Email, Matrix, MoChat, or raw WebSocket is a one-click toggle in Settings → Channels. No separate Node daemon to install, update, or keep alive. The WhatsApp QR-login flow is bundled. If you were running the legacy gateway alongside OpenYak, you can stop that daemon — all credentials re-enter in the new built-in UI and channel state is per-session.
Manual Context Compaction — prune on demand
Long conversations used to force you to restart or wait for automatic summarization at the very edge of the context window. 1.1.0 adds a clickable progress ring in the chat header: once you pass roughly half of the model's safe operating window, one click triggers a two-phase compaction (prune + summarize) with visible inline summaries and per-phase SSE progress. Works with large-context models (GPT-5.4 at 258k effective, Kimi K2.6, etc.) whose effective windows are now tracked per-model rather than hard-capped.
Redesigned Sidebar — projects, palette, hover-revealed actions
Sessions are now grouped Pinned → Projects → Chats with project headers and collapsible children. A new ⌘/Ctrl+K command palette surfaces recents, full-text results, and ⌘+1..5 quick-jumps. Rows are slimmer with relative timestamps that fade into a kebab menu on hover; the footer collapses to a single Settings link and the nav is a single palette-launcher button. A refreshed palette (blue accent #339CFF, translucent workspace cards) replaces the old pure black-and-white theme.
Resilient Streaming — reconnects cleanly, never desyncs
SSE now recovers from disconnects without losing in-flight assistant content: native EventSource reconnect via Last-Event-ID, DB-backed finalization via /chat/active polling when replay buffers desync, 1.2s debounced terminal step-finish (down from a 30s safety timeout), and an explicit DESYNC event instead of crashes on buffer overflow. Step finish reasons are normalized across providers so tool-use loops don't terminate spuriously.
Upgrading from 1.0.8
Users already on 1.0.8 will receive this update automatically through the in-app updater. If you were running the legacy external gateway alongside OpenYak for messaging channels, you can stop that daemon — the equivalent UI now lives under Settings → Channels and the channel runtime is bundled. Mobile PWA remote access (fixed in 1.0.8) continues to work; the verify-bundle gate still runs on every release so the 1.0.7-class bundling regression cannot reappear.