✨ What's New
🧠 ACP Inline Thinking & Plan Display
AionUi now displays inline thinking as the agent reasons through tasks, deduplicates plan steps to avoid repeated output, and shows a cleaner processing indicator during active agent execution.
🎨 Assistant Homepage & Sidebar Refresh
The assistant homepage has been polished with improved UX and smoother agent switching. The sidebar actions and skills market entry have also been refreshed for a more intuitive layout.
💬 Message Timestamps on Hover
Hover over any message to see its exact timestamp — no more guessing when something was sent.
📁 WeChat Channel File Send
The WeChat channel now supports the file send protocol, allowing files to be sent through the channel alongside messages.
🐛 Bug Fixes
ACP / Agent
- Detect CLI config errors on startup and surface actionable guidance
- Fix inline thinking, plan deduplication, and processing indicator regressions
Conversation & Chat
- Fix failed conversation auto-titles
- Prevent command queue dequeue before status hydration completes
- Prevent duplicate conversation creation under weak network conditions
- Guard against invalid
typefield when creating conversations - Ignore transient info messages from appearing in chat
Sandbox
- Repair Worker→Host message routing
- Add storage backend to sandbox environment
Themes
- Restore Discourse Horizon theme menu scroll
- Restore Y2K skin hover and click interactions
Channels
- Use
markdownToTelegramHtmlfor correct Telegram text formatting
Codex / OpenClaw / Remote Agent
- Handle signal-killed process exit gracefully during Codex startup
- Validate CLI binary exists before spawn to prevent
ENOENTcrash - Validate URL and prevent TDZ crash in
testConnection
Platform
- Add
getLogsDirfallback for inline platform services - Add fallback when
app.getPath('logs')fails
Adapter / Bridge
- Catch
JSON.stringifyRangeErroron oversized bridge data
WebUI
- Force headless Ozone backend on Linux to fix rendering issues
Media
- Retry image loading in
FilePreviewto fix pasted clipboard image race condition
i18n
- Localize WebUI modal buttons and password validation error messages
What's Changed
- refactor(pr-automation): replace git checkout with worktree isolation by @piorpua in #1976
- refactor(chat): remove unused send box draft hooks by @yejiming in #1958
- fix(pr-automation): symlink node_modules in worktree for lint/tsc/test by @piorpua in #1977
- feat(acp): inline thinking display, plan dedup, and processing indicator fixes by @kaizhou-lab in #1953
- fix(preview): clarify scroll sync fallback comments by @yejiming in #1959
- fix(adapter): catch JSON.stringify RangeError on oversized bridge data by @kaizhou-lab in #1960
- fix(codex): handle signal-killed process exit during startup by @kaizhou-lab in #1963
- fix(chat): ignore transient info messages by @cdxiaodong in #1964
- fix(platform): add fallback for app.getPath('logs') failure by @kaizhou-lab in #1967
- chore(renderer): remove unused draft hooks by @cdxiaodong in #1970
- fix(webui): force headless ozone backend on linux by @yejiming in #1973
- fix(docs): correct relative links in localized readmes by @yejiming in #1974
- fix(conversation): prevent duplicate conversation creation under weak network by @kaizhou-lab in #1975
- fix(channels): use markdownToTelegramHtml for Telegram text formatting by @kaizhou-lab in #1978
- fix(remoteAgent): validate URL and prevent TDZ crash in testConnection by @kaizhou-lab in #1823
- fix(openclaw): validate CLI binary exists before spawn to prevent ENOENT crash by @kaizhou-lab in #1837
- fix(i18n): localize WebUI modal buttons and password validation errors by @kaizhou-lab in #1917
- feat(settings): add Playwright MCP config and improve CDP layout by @kaizhou-lab in #1979
- fix(media): retry image loading for pasted clipboard images by @kaizhou-lab in #1928
- fix(acp): detect CLI config errors on startup and provide actionable guidance by @kaizhou-lab in #1947
- feat(guid): refresh sidebar actions and skills market entry by @ringringlin in #1945
- fix(conversation): guard invalid create type by @cdxiaodong in #1936
- fix(platform): add getLogsDir fallback to inline platform services by @kaizhou-lab in #1980
- fix(snapshot): return empty array from getBranches in snapshot mode by @kaizhou-lab in #1982
- fix(conversation): prevent queue dequeue before status hydration by @Ericwong5021 in #1984
- feat(messages): show message timestamp on hover by @kaizhou-lab in #1986
- fix(theme): restore y2k skin interactions by @ringringlin in #1987
- fix(theme): restore discourse horizon menu scroll by @ringringlin in #1989
- fix(conversation): fix failed conversation auto-titles by @Ericwong5021 in #1992
- Fix(sandbox): repair Worker→Host message routing and add storage backend by @TCP404 in #1991
- chore(pr-automation): include matched critical path files in review comment by @piorpua in #1994
- feat(weixin): support channel file send protocol by @JerryLiu369 in #1993
- chore(pr-automation): add configurable Claude model selection by @piorpua in #1996
- feat(guid): polish assistant homepage UX and agent switching by @ringringlin in #1941
- chore: bump version to 1.9.5 by @IceyLiu in #1999
Full Changelog: v1.9.4...v1.9.5