Changelog
HexClaw Desktop version history.
v0.4.0 (2026-04-18)
- Image/Video/Voice generation trio: ImageGenComposer / VideoGenComposer / VoiceChatComposer, auto-switching per model capability, outputs persisted to session
- Native Save dialog: image download uses Tauri dialog.save() + Rust writer commands, bypassing WKWebView download restrictions; default filename HexClaw-yyyymmdd-hhmmss-XXXX.{ext} avoids collisions
- Session persistence 403 fix: appendSessionMessage/Batch now pass user_id via URL query (backend sessionUserIDFromRequest reads query only); root cause of generated-image messages not reappearing after session reload
- Generation mode toolbar: top-right text-only chip switches back to chat models from image/video/voice modes without leaving the conversation
- Apple HIG polish: trio Composer padding 12→20, gap 8→14, font 11→13–14, radius 10/16, 0.5px hairline, focus 0 0 0 3px accent ring; bottom-left engine label renamed to "Hexagon engine"
- Ollama warmup 4-tier tag matching: exact tag → stripped base → provider.selectedModelId → downloaded[0]
- Provider key hardcode fix: generation services now resolve Provider by BaseURL signature, solving Chinese provider names (e.g. "智谱 AI") failing lookup
- 63 new error-path tests: cron-errors / skills-errors / mcp-errors; structural guard test prevents bare apiPost/apiGet from bypassing sessionPost wrappers
- Backend hexclaw v0.4.0: transactional batch message writes / atomic tmp+Rename in genstore / videogen singleflight + LRU / imagegen/videogen/voicechat persisted as file_path
v0.3.8 (2026-04-14)
- Image generation: ZhipuAI CogView-4 support, images embedded as data URI (never expire), new ImageProvider interface in ai-core
- Video generation: ZhipuAI CogVideoX-2 support, async task polling, cover embedded + inline video player, new VideoProvider interface in ai-core
- Tool name i18n: 15 built-in tools mapped to localized names (code_exec → Sandbox, etc.), unknown MCP/custom tools fallback to raw name
- Default model fix: normal chat no longer overridden by default Agent model preference, Agent mode shows agent name attribution
- Multiline memory fix: memory entries with newlines no longer split into multiple entries, delete/update/archive support multiline blocks
- Ollama download optimization: large models no longer timeout (ResponseHeaderTimeout replaces global Timeout), download status localized
- Smart routing UI: strategy dropdown hidden when routing is disabled
- Feishu reactions: changed from social emojis (💪☕🔥) to semantic Typing ⌨️ / THINKING 🤔
v0.3.7 (2026-04-13)
- Thinking duration persistence: backend precisely records reasoning start/end time, persisted in DB meta field
- Auto session title: backend generates title from first user message on SaveUserMessage (no LLM dependency)
- Metadata persistence: provider, model, agent_name saved to message meta — survives app restart
- ChatGPT-style thinking display: "● Thought for Xm Ys" with left border on expanded content
- UI: assistant messages without bubble, meta footer (time · model · agent) in one line, adaptive width
- Sandbox network hot-reload: full pipeline from Settings toggle → API → CodeExecSkill.UpdateNetwork
- File tools workspace constraint: file_edit/grep/glob restricted to workspace with symlink escape prevention
- Self-correction loop: tool errors include full reason for LLM to self-correct
- Context compression: LLM + heuristic summarization preserving user constraints
- Gemma 4 thinking support: isLocalThinkingModel for timeout protection, no /no_think injection
- 70+ new backend tests, 3542 frontend tests passing
v0.3.6 (2026-04-11)
- Streaming scroll: allow upward scrolling during streaming output without auto-scroll interruption
- Agent/IM UI: optimized Agent selector and IM channel configuration interface
- New session send fix: resolved bug where first message in new session failed to send
v0.3.5 (2026-04-06)
- Ollama auto-warmup: automatically load first downloaded model on startup, reducing first-chat latency
- Historical message think tag fallback: strip <think> tags when loading messages from backend, preventing raw reasoning text exposure
- MCP filesystem dynamic home dir: auto-append user home directory when installing filesystem MCP server, compatible with macOS/Windows/Linux
- TS2532 non-null assertion fixes: type-safe array index access for models[0] / chips[0]
v0.3.4 (2026-04-06)
- Sidebar engine version display fix: watch sidecar ready state before fetching version info
- Unified version management: sync Cargo.toml / package.json / Sidebar / AboutModal versions
v0.3.3 (2026-04-06)
- Version display overhaul: Sidebar, About modal, and System Status all use Tauri App version API
- API type alignment: getVersion return type includes engine_version field
- MCP filesystem dynamic home dir: resolveUserHome cross-platform home directory detection
v0.3.2 (2026-04-06)
- <think> tag fallback extraction: models like glm-z1-airx embed reasoning in content, frontend auto-splits to reasoning field
- Adaptive dialog width: Settings dialogs auto-resize based on content
- Sidecar restart retry: automatic retry on failure for improved stability
- CI test robustness: existsSync guard, localStorage getItem verification, .at() to [0] index
v0.3.1 (2026-04-06)
- Chip-style model selector: replaces dropdown menu, visually displays configured models with quick switching
- Dynamic model discovery: cloud providers auto-fetch available model lists
- 210 TypeScript type errors fixed + 139 lint errors fixed
- 61 failing tests fixed
v0.3.0 (2026-04-05)
- MCP marketplace & tool fixes: tool call pipeline fully connected, error messages properly returned
- Skill trigger optimization: improved keyword matching accuracy
- Ollama global warmup: auto-load models into memory after startup
- Ollama model management UI: download progress bar, running status panel
v0.2.6 (2026-04-01)
- Structured trace logging: Go slog-based request-scoped logs with trace_id across WebSocket → gateway → engine → LLM pipeline, frontend log panel displays trace_id + structured field tags
- Fix SessionLock deadlock: consecutive messages in same session no longer block (P0 bug — pipeStream missing unlock)
- Fix cloud model MCP tool calls lost: pipeStreamWithTools now extracts tool_calls from LLM stream result
- Thinking toggle: Brain icon in chat input bar for one-click thinking mode control, auto /no_think injection for local thinking models
- Stream cancel now works: WebSocket cancel message actually cancels backend context, stops wasting LLM tokens
- E2E test suite: TypeScript + Playwright with 41 integration tests covering 11 subsystems
- Fix SettingsView flaky test
v0.2.5 (2026-04-01)
- Thinking/Reasoning UI: stream thinking process for Qwen3/DeepSeek-R1 reasoning models with auto-expand/collapse, timer, and persistence
- Ollama local model full-chain fix: model selector shows local models, WebSocket user auth, streaming timeout optimization
- Splash screen follows system Light/Dark appearance, waits for engine ready
- CI fix: release/package workflows read HEXCLAW_REF from Makefile to lock sidecar version
- Knowledge upload UX: dialog auto-closes after file selection
- Message edit button i18n fix + size optimization
- Remove unavailable System Status tab and microphone button (Tauri WebView lacks Web Speech API)
- Homebrew install first-chat error fix (sidecar version mismatch + embedder nil panic)
v0.2.4 (2026-03-29)
- MCP Marketplace: load mcp-registry.json, type filter for skill/mcp, one-click MCP Server install
- MCP status display fix: compatible with backend servers array format, shows "connected" correctly
- Sidecar PATH injection: auto-inject Homebrew/nvm/cargo paths on macOS GUI apps
- MCP enabled by default: Manager initializes without pre-configured Servers for dynamic add
- 6-round code audit: 42 bug fixes + 8 feature completions + 474 new tests (542→1016)
- Security hardening: CSP tightened, MCP command allowlist, knowledge zip bomb protection, atomic config writes
- hexclaw-hub upgraded to v0.0.2
v0.2.2 (2026-03-29)
- LLM Provider Select with logos — 14 providers total, 6 new Chinese providers: Zhipu AI, Kimi (Moonshot), Wenxin Yiyan (Baidu), Tencent Hunyuan, iFlytek Spark, MiniMax
- Ollama one-click install flow: detect → install → auto-poll → associate model
- MCP Tab mutual exclusion fix + i18n completion
- macOS one-line install script + Homebrew Cask support
- ProviderSelect Apple HIG compliance (keyboard navigation, ARIA, viewport flip)
- 79 new tests (OllamaCard + ProviderSelect + McpView)
- Full CI lint/TS fix (83 ESLint + 59 TS errors → 0)
v0.1.0-beta (2026-03-23) - Desktop Beta Release
- Shipped the desktop beta installers for macOS, Windows, and Linux, along with first-run onboarding and default role setup
- Expanded model provider support across OpenAI, DeepSeek, Anthropic, Gemini, Qwen, Doubao, Ollama, and custom OpenAI-compatible endpoints
- Upgraded the chat workspace with multi-model switching, artifact preview, document parsing, export, and deep research mode
- Rounded out advanced capabilities including MCP tool integration, RAG knowledge bases, semantic memory, scheduled jobs, the ClawHub skill marketplace, IM channels, and security controls
v0.0.1 (2026-03-19) - Initial Release
- Multi-model chat (OpenAI / DeepSeek / Anthropic / Gemini / Qwen / Ollama)
- Agent orchestration and multi-Agent meetings
- Visual workflow canvas
- MCP protocol integration
- Knowledge base (RAG)
- Semantic memory system
- Scheduled task dispatch
- Security gateway
- IM channels (Feishu / DingTalk / WeCom / WeChat / Slack / Discord / Telegram)
- Deep research mode
- Native support for three platforms (macOS / Windows / Linux)