Skip to content

v1.3.139

Choose a tag to compare

@topcheer topcheer released this 08 Jul 16:57
· 3683 commits to main since this release

v1.3.139

IM (Instant Messaging)

  • Session-scoped binding ownership (LastSessionID): each instance independently owns different adapters instead of workspace-level mutual exclusion. Mute/unmute/disable/enable all persist ownership changes.
  • Cross-process file lock for IM binding store (flock) to prevent concurrent write corruption
  • Matrix image support via m.image events
  • Signal text formatting (*bold*, _italic_, ~strike~, ||spoiler||)
  • Slack markdown fixes: italic/strikethrough false positives, code block protection, media link preview suppression
  • WhatsApp: protect code blocks from markdown conversion
  • DingTalk: markdown-aware splitter, TriggerTyping via robot reaction API, markdown images to clickable links
  • Feishu: increase message limit to 28000 chars
  • Twitch: increase inter-message delay to 1500ms
  • Mattermost: reactive ACK, code-block-aware splitting

Desktop

  • Agent lifecycle fixes: Cancel() and Close() now cascade to sub-agents and swarm teammates
  • Session ownership: adapters start after session ownership resolved (not before)
  • Context-aware agent activity indicator with elapsed timer
  • Response duration display on assistant messages
  • Dynamic window title showing workspace, model, and activity
  • Task completion title flash when window not focused
  • New Session button in chat header
  • Scroll position memory for session switching
  • StatusBar: error state red dot, elapsed timer when agent working
  • FileBrowser: lazy-load mermaid to fix code-splitting
  • NavRail hover effects

MCP

  • 403 fallback to OAuth DCR: insufficient permissions now triggers OAuth discovery (not just 401)
  • Auth mode switch: OAuth success permanently removes API key header
  • SSE notification handling: skip non-Response SSE events when parsing initialize response

LAN Chat

  • 3-layer UDP fallback transport: TCP → UDP unicast (with ACK) → UDP multicast
  • Gzip compression for all UDP payloads
  • Fragmentation for messages >32KB after compression
  • ACK-based retry for unicast, fragment reassembly with timeout
  • Multicast DM filtering: only target node processes message

TUI

  • Ctrl+L clear screen
  • Shift+Tab permission mode cycling
  • startOwnedAdapters: start session-owned adapters after ownership resolved

Agent Intelligence

  • Non-blocking context compaction (background goroutine + deferred application)

Bug Fixes

  • Desktop Cancel/Close not cascading to sub-agents and swarm teammates
  • Daemon/Desktop RegisterInstance timing (deferred to after session available)
  • claimUnclaimedBindings not syncing currentBindings after store write
  • MuteBinding clearing LastSessionID (breaking multi-instance ownership)
  • reloadBindingLocked prevMuted overriding session ownership
  • Dead WebSocket write methods removed from WebUI server

Full Slot Rotation Completed

All 5 review slots (0-4) completed since v1.3.138.