Skip to content

Releases: iOfficeAI/AionUi

v1.9.5

01 Apr 04:07
5b2c741

Choose a tag to compare

✨ What's New

🧠 ACP Inline Thinking & Plan Display

image

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

image

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

image

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 type field 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 markdownToTelegramHtml for 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 ENOENT crash
  • Validate URL and prevent TDZ crash in testConnection

Platform

  • Add getLogsDir fallback for inline platform services
  • Add fallback when app.getPath('logs') fails

Adapter / Bridge

  • Catch JSON.stringify RangeError on oversized bridge data

WebUI

  • Force headless Ozone backend on Linux to fix rendering issues

Media

  • Retry image loading in FilePreview to 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

v1.9.4

30 Mar 16:32
34ad258

Choose a tag to compare

✨ What's New

🗓️ Command Queue Workflow

Conversations now support a command queue — queue up multiple instructions and AionUi will execute them in order, one at a time, without manual intervention.

🔐 ACP Session Permission Modes

When starting an ACP session, you can now choose non-YOLO permission modes (e.g. ask / auto-edit) — giving you granular control over what the agent is allowed to do without interrupting.

📜 Preview Scroll Sync

Scroll sync between the editor and preview pane is now smarter and more responsive, with optimized unlock scheduling that reduces jitter when working with long documents.

📱 Mobile Improvements

  • Safe Area support on mobile for better display on notch/island devices
  • Updated app icon

🐛 Bug Fixes

ACP / Agent

  • Extended permission request timeout to 30 minutes to prevent premature rejections
  • Fixed slash commands not appearing during bootstrap
  • Improved error message when CLI exits with code 0 on startup
  • Prevented unhandled promise rejections during bootstrap initialization

Conversation & Chat

  • Fixed conversation creation failing when the type field was invalid
  • Synced renamed conversation titles with the detail view
  • Deduplicated filenames when pasting multiple images

Gemini / Codex

  • Fixed Gemini losing context after stopping a reply mid-stream
  • Guarded against EACCES errors during workspace realpath init
  • Fixed Codex start promise not rejecting immediately when the process exits during startup

Channels / WeChat

  • Fixed model restore retrying infinitely on a stale provider (now capped)
  • Fixed WeChat WebUI login sending wrong QR ticket in SSE
  • Fixed Weixin channel not awaiting Gemini tool continuations

Snapshot / Workspace

  • Guarded against non-existent workspace during snapshot init
  • Handled permission-denied files in snapshot init
  • Added maxBuffer to git add/commit calls to prevent buffer overflow on large repos

File & Preview

  • Guarded readFile against oversized files that exceed the V8 string limit
  • Fixed CodeMirror mapPos RangeError in editor preview (ELECTRON-3Y)

Other

  • Normalized WebSocket test URL for remote agents
  • Normalized language code to ISO 639-1 for OpenAI Whisper STT
  • Fixed sendMessage and databaseBridge providers crashing on undefined params
  • Preserved preset agents when saving custom agent settings

What's Changed

  • chore(pr-automation): add database service dir to CRITICAL_PATH_PATTERN by @piorpua in #1895
  • fix(i18n): add WeChat channel i18n support with weixin namespace by @gobylor in #1891
  • feat(agent): support non-YOLO session modes at ACP start by @gobylor in #1894
  • fix(ci): allow edited events to trigger full CI run by @piorpua in #1897
  • refactor(agents): hide custom agent UI entry points by @piorpua in #1903
  • fix(guid): add dismiss button to skills market banner by @amanharshx in #1848
  • fix(channels): await persisted session hydration before enabling plugins by @amanharshx in #1888
  • chore(pr-automation): expand CRITICAL_PATH_PATTERN to cover config and docs files by @piorpua in #1915
  • fix(guid): show upload progress on new chat by @JerryLiu369 in #1905
  • fix(settings): preserve preset agents when saving custom agents by @kaizhou-lab in #1908
  • chore(agents): add i18n validation to agent context and pre-PR workflow by @piorpua in #1923
  • fix(snapshot): guard against non-existent workspace in init by @kaizhou-lab in #1906
  • fix(snapshot): handle permission-denied files in workspace snapshot init by @kaizhou-lab in #1907
  • fix(bridge): guard against undefined params in sendMessage provider by @kaizhou-lab in #1909
  • chore(pr-automation): verify auto-merge success with 10s retry by @piorpua in #1930
  • fix(channels): send raw QR ticket in WeChat WebUI login SSE by @kaizhou-lab in #1910
  • fix(gemini): guard against EACCES in workspace realpath during init by @kaizhou-lab in #1912
  • refactor(acp): consolidate AGENT_SKILLS_DIRS into ACP_BACKENDS_ALL by @kaizhou-lab in #1913
  • fix(snapshot): add maxBuffer to git add/commit exec calls by @kaizhou-lab in #1914
  • fix(conversation): validate type field before creating conversation by @kaizhou-lab in #1921
  • docs(officecli): update assistant demo GIFs (PPT/Word/Excel) by @ringringlin in #1919
  • fix(database): add error handling to getRemoteAgents and getRemoteAgent by @kaizhou-lab in #1922
  • fix(database): guard against undefined params in databaseBridge providers by @kaizhou-lab in #1924
  • fix(mobile): add SafeArea support and update app icon by @kaizhou-lab in #1926
  • fix(paste): deduplicate filenames when pasting multiple images by @kaizhou-lab in #1931
  • fix(conversation): sync renamed titles with detail view by @cdxiaodong in #1927
  • fix(codex): reject start promise immediately on process exit during startup by @kaizhou-lab in #1929
  • fix(gemini): restore context after stopping a reply by @cdxiaodong in #1932
  • fix(agents): prevent unhandled promise rejection in bootstrap initialization by @kaizhou-lab in #1933
  • fix(fsBridge): guard readFile against oversized files exceeding V8 string limit by @kaizhou-lab in #1934
  • fix(channels): cap model restore retries to prevent freeze on stale provider by @kaizhou-lab in #1935
  • fix(remote-agent): normalize websocket test url by @cdxiaodong in #1937
  • fix(stt): normalize language code to ISO 639-1 for OpenAI Whisper by @kaizhou-lab in #1939
  • fix(acp): extend permission request timeout to 30 minutes by @kaizhou-lab in #1942
  • fix(acp): improve error message when CLI exits with code 0 during ACP startup by @kaizhou-lab in #1943
  • fix(preview): catch CodeMirror mapPos RangeError in editors (ELECTRON-3Y) by @kaizhou-lab in #1940
  • fix(weixin): wait for gemini tool continuations by @JerryLiu369 in #1946
  • fix(acp): slash commands not showing during bootstrap by @kaizhou-lab in #1949
  • feat(conversation): implement command queue workflow by @Ericwong5021 in #1856
  • feat(renderer): optimize preview scroll sync unlock scheduling by @yejiming in #1951
  • chore: bump version to 1.9.4 by @piorpua in #1954
  • refactor(settings): remove custom agents UI from LocalAgents by @piorpua in #1956

New Contributors

Full Changelog: v1.9.3...v1.9.4

v1.9.3

29 Mar 15:45
868624f

Choose a tag to compare

✨ What's New

📄 Office Suite Assistants

New built-in assistants powered by OfficeCLI let you create, edit, and preview documents directly in chat:

  • Word Creator — Generate and edit Word documents with AI
  • PPT Creator — Build PowerPoint presentations from prompts
  • Excel Creator — Create spreadsheets and tables
  • Pitch Deck Creator — Design investor-ready pitch deck presentations
  • Dashboard Creator — Generate visual data dashboards
  • Academic Paper Creator — Draft structured research papers
  • Financial Model Creator — Build financial models and reports
image The Word / PPT / Excel trio is **enabled by default** for all new sessions.

👁️ Live Document Preview

Word and Excel files now support live preview via officecli watch mode. When an agent generates a file, a preview opens automatically — no need to switch apps.
image
image

🎤 Voice Input

  • Press the microphone button to use speech-to-text input in the chat box — no typing required.
image

🚀 Codex Full Auto Mode

  • New no-sandbox full auto mode for Codex — ideal for automated, unattended workflows.
image

🗂️ Chat History Improvements

  • Use /export to export the current conversation
  • The send box now remembers your message history — scroll through previous inputs with the arrow keys
  • Right-click in the send box to access history entries quickly

🔒 Per-Agent TLS Verification

Each agent can now have its own TLS certificate verification setting — useful when connecting to internal services or endpoints with self-signed certificates.

💬 WeChat Integration

  • Log in to WeChat WebUI by scanning a QR code directly in AionUi
  • Receive and handle incoming image and file attachments from WeChat contacts

🐛 Bug Fixes

  • Fixed database locking errors that could stall agent operations
  • Resolved unhandled promise rejections causing silent failures
  • Fixed WebSocket crashes on unstable connections
  • Prevented white-screen crashes caused by stale session restoration
  • Fixed errors triggered by unmounted component contexts
  • Various UI polish and stability improvements

What's Changed

  • fix(guid): pill bar + button should navigate to assistant settings by @IceyLiu in #1814
  • feat(assistant): add Word/PPT/Excel Creator assistants powered by officecli by @IceyLiu in #1815
  • feat(weixin): add WebUI QR-code login via SSE by @JerryLiu369 in #1744
  • update data-dashboard skills by @IceyLiu in #1827
  • feat(assistant): add academic-paper & dashboard-creator, enable office trio by default by @IceyLiu in #1831
  • fix(guid): swap plus button settings targets by @JerryLiu369 in #1832
  • fix(settings): align mobile settings nav labels by @JerryLiu369 in #1842
  • feat(assistant): add Financial Model Creator assistant by @IceyLiu in #1853
  • feat(skill): add officecli-financial-model skill to resources by @IceyLiu in #1855
  • chore(skills): fix markdown table alignment in officecli skill files by @piorpua in #1861
  • fix(webui): inline NODE_ENV in main process build to ensure correct default port by @Jassy930 in #1748
  • fix(settings): guard JSON.parse in JsonImportModal to prevent unhandled SyntaxError by @kaizhou-lab in #1772
  • fix(weixin): fix channel mode model selection and Google OAuth fallback by @JerryLiu369 in #1764
  • feat(weixin): support incoming image and file attachments by @JerryLiu369 in #1765
  • feat(chat): add /export slash command for conversation export by @amanharshx in #1684
  • fix(database): set busy_timeout to prevent "database is locked" errors by @kaizhou-lab in #1777
  • fix(settings): catch form validation rejection in EditModeModal by @kaizhou-lab in #1779
  • fix(preview): use static Message API to prevent addInstance crash in OfficeDocViewer by @kaizhou-lab in #1781
  • fix(window): guard close handler against destroyed BrowserWindow by @kaizhou-lab in #1783
  • chore(fix-sentry): add skip-list for cross-session dedup and refine triage rules by @kaizhou-lab in #1785
  • chore(ci): add docs-only pr checks workflow and fix branch protection gap by @piorpua in #1863
  • feat(workspace): add file changes tracking panel by @kaizhou-lab in #1789
  • fix(gemini): ensure workspace dir exists before initialization by @kaizhou-lab in #1784
  • fix(acp): prevent white-screen crash from stale session restore by @kaizhou-lab in #1791
  • fix(preview): guard messageApi calls against unmounted context holder by @kaizhou-lab in #1793
  • fix(task): prevent unhandled rejection in getOrBuildTask (ELECTRON-A) by @kaizhou-lab in #1787
  • chore(ci): disable Windows Defender before unit tests by @piorpua in #1865
  • fix(pptPreview): handle promise rejection in startWatch ENOENT path by @kaizhou-lab in #1795
  • fix(modelBridge): move OpenAI constructor inside try-catch (ELECTRON-6X) by @kaizhou-lab in #1797
  • fix(assistant): use dynamic backend list in assistant editor dropdown by @kaizhou-lab in #1798
  • feat(server): add standalone resetpass command by @JAVA-LW in #1801
  • feat(skill): sync morph-ppt Python migration from OfficeCLI by @IceyLiu in #1860
  • fix(mcp): use static Message API to prevent null context crash by @kaizhou-lab in #1775
  • fix(shellBridge): handle shell.openPath errors to prevent unhandled rejections by @kaizhou-lab in #1806
  • chore(docs): update WeChat group QR code image to wx-5 by @IceyLiu in #1871
  • chore(ci): enable bun cache in all pr-checks jobs by @piorpua in #1872
  • feat(agent): add per-agent TLS certificate verification toggle by @TCP404 in #1812
  • feat(chat): add btw side question flow for Claude Code by @amanharshx in #1818
  • feat(pr-automation): add PR automation orchestrator with label state machine by @piorpua in #1874
  • fix(settings): persist display zoom across app restarts by @amanharshx in #1820
  • fix(websocket): guard ws.send/close in checkClients against EPIPE by @kaizhou-lab in #1821
  • fix(fsBridge): prevent unhandled rejection in downloadRemoteBuffer by @kaizhou-lab in #1825
  • fix(gemini,acp): sanitize Gemini tool names and decode Windows taskkill errors by @kaizhou-lab in #1828
  • fix(gemini): catch bootstrap rejection in send() to prevent worker crash by @kaizhou-lab in #1830
  • chore(docs): remove AI-generated plans/specs and ignore docs/superpowers by @piorpua in #1875
  • fix(openclaw): catch write errors in deviceAuthStore (ELECTRON-6F) by @kaizhou-lab in #1835
  • fix(skills): align SKILL.md name fields with directory names by @IceyLiu in #1833
  • feat(tools): add speech-to-text voice input by @cdxiaodong in #1838
  • fix(openclaw): prevent duplicate replies from late chat events by @kaizhou-lab in #1844
  • fix(test): repair broken layout_theme and getNpxCacheDir tests by @IceyLiu in #1849
  • feat(assistant): add pitch-deck-creator assistant by @IceyLiu in #1846
  • fix(webui): use public directory icon for favicon by @kaizhou-lab in #1857
  • fix(weixin): accept voice transcription text by @JerryLiu369 in #1864
  • feat(office): word/excel live preview via officecli watch + auto-preview on file generation by @IceyLiu in #1869
  • add: kiro by @djunny in https://github.com/iO...
Read more

v1.9.2

27 Mar 15:54
0e5a8cf

Choose a tag to compare

New Features

Remote Agent Support

You can now connect to remote AI agents via the OpenClaw protocol. A new Agent management page with Local / Remote tabs lets you add, configure, and switch between local and remote agents in one place.
image

Upload Progress Indicator

File uploads now display a real-time progress bar. The send button is automatically disabled while files are still uploading, so you'll never accidentally send an incomplete message again.

PWA Support for WebUI

AionUi WebUI can now be installed as a Progressive Web App. Add it to your home screen on mobile or install it on desktop for a native app-like experience — faster launches and offline-ready.

Smarter Timeout Handling

Long-running tasks (like generating large documents or complex presentations) will no longer falsely time out. AionUi now checks whether the agent process is actually still working before triggering a timeout, so your big tasks can finish reliably.

Improvements

  • Cmd+F search works everywhere — Find-in-chat now works correctly when the conversation is inside a folder or when using the mobile interface.
  • Built-in skills always available — Skills like office-cli are now reliably injected regardless of which backend is in use.
  • Added MiniMax models — MiniMax model options are now available in the model selector.
  • Codex startup improved — Better fallback handling when starting the packaged Codex backend.

Bug Fixes

  • Fixed multiple crash scenarios reported via Sentry, significantly improving overall stability:
    • App no longer crashes when the workspace directory is missing or inaccessible
    • Fixed crash when storage directory doesn't exist on first launch
    • Fixed crash when opening an invalid URL from the app
    • Fixed crash when the API key is empty or invalid
    • Fixed file read errors when a file is temporarily locked by another process
    • Fixed PPT preview crash when the rendering provider encounters an error
    • Fixed WebUI server crash when the default port is already in use
    • Fixed WeChat plugin crash when the login QR code scan times out
    • Fixed Gemini backend crash when initialization fails
    • Fixed health check crash when the connection times out

What's Changed

  • fix(skills): fallback to prompt injection for custom workspaces by @kaizhou-lab in #1717
  • fix(model): add missing MiniMax models by @FencyJay in #1637
  • fix(acp): clear cronBusyGuard and status on sendMessage failure by @JerryLiu369 in #1700
  • test(skills): add tests for customWorkspace skill injection fallback by @kaizhou-lab in #1722
  • fix(acp): address review issues from PR #1700 by @piorpua in #1723
  • feat(acp): add process-liveness keepalive to prevent false prompt timeouts by @JerryLiu369 in #1702
  • fix(skills): always inject _builtin skills for native-skill backends by @JerryLiu369 in #1718
  • fix(acp): address review issues from PR #1702 by @piorpua in #1725
  • fix(pptPreview): return error result instead of throwing in provider callback by @kaizhou-lab in #1731
  • fix(webui): handle EADDRINUSE when starting server in WebUI mode by @kaizhou-lab in #1733
  • fix(weixin): clear poll interval on timeout to prevent accessing destroyed BrowserWindow by @kaizhou-lab in #1728
  • feat(upload): add progress indicator and disable send during upload by @JerryLiu369 in #1705
  • chore: bump @office-ai/aioncli-core to 0.30.2 by @kaizhou-lab in #1751
  • fix(fsBridge): handle EBUSY in readFile/readFileBuffer by @kaizhou-lab in #1754
  • fix(health-check): prevent unhandled rejection on timeout by @kaizhou-lab in #1756
  • fix(model-bridge): validate apiKey before creating OpenAI client in new-api branch by @kaizhou-lab in #1758
  • chore(fix-sentry): add daemon script and single-issue mode by @kaizhou-lab in #1759
  • fix(initStorage): ensure parent directory exists before WriteFile (ELECTRON-68) by @kaizhou-lab in #1761
  • fix(workspace): prevent unhandled rejection on missing workspace directory by @kaizhou-lab in #1763
  • fix(shellBridge): validate URL before openExternal to prevent Invalid URL errors by @kaizhou-lab in #1767
  • refactor(fix-sentry): migrate Sentry API logic from daemon to skill by @kaizhou-lab in #1770
  • fix(gemini): prevent unhandled rejection when bootstrap fails by @kaizhou-lab in #1769
  • fix(acp): improve packaged codex startup fallback by @JAVA-LW in #1594
  • feat(webui): add pwa support by @Ericwong5021 in #1688
  • fix(search): make Cmd+F work when chat is in a folder or on mobile by @amanharshx in #1692
  • feat(agent): add remote agent support with OpenClaw protocol by @TCP404 in #1739
  • chore: bump version to 1.9.2 by @kaizhou-lab in #1802
  • fix(agent): apply missing remote agent UI updates from #1739 by @TCP404 in #1807

New Contributors

Full Changelog: v1.9.1...v1.9.2

v1.9.1

25 Mar 14:04
80b3d51

Choose a tag to compare

What's New

  • feat(weixin): add WeChat channel plugin with QR login and UI by @piorpua in #1704
image
  • fix(acp): improve prompt timeout handling with cancel support and configurable duration by @kaizhou-lab in #1709
image

What's Changed

  • refactor(morph-ppt): switch to remote style source and add localized Morph README showcase by @ringringlin in #1681
  • chore(readme): replace WeChat group QR image by @IceyLiu in #1690
  • docs(readme): mention OfficeCLI in Morph sections by @ringringlin in #1683
  • chore: fix test local env isolation and cleanup tooling by @piorpua in #1694
  • test: mock UserRepository in webuiQR unit test by @piorpua in #1695
  • fix: ensure SQLite WAL is checkpointed on graceful shutdown by @piorpua in #1696
  • perf(warmup): add conversation bootstrap preheating on input focus by @kaizhou-lab in #1703
  • chore(oss-pr): add quality checks and test steps to workflow by @piorpua in #1706
  • fix(acp): improve prompt timeout handling with cancel support and configurable duration by @kaizhou-lab in #1709
  • feat(weixin): add WeChat channel plugin with QR login and UI by @piorpua in #1704
  • fix(guid): use effective backend type for preset agent config lookups by @kaizhou-lab in #1711
  • feat(preview): auto-refresh preview when external tools modify files by @luanruisong in #1686
  • fix(skills): complete native skill symlink mapping and add prompt injection fallback by @kaizhou-lab in #1713
  • test(preview): add mtime polling tests for PreviewContext file watch by @piorpua in #1714
  • chore: bump version to 1.9.1 by @piorpua in #1715

New Contributors

Full Changelog: v1.9.0...v1.9.1

v1.9.0

24 Mar 12:50
4f7616e

Choose a tag to compare

✨ Highlights

1) AionUi Morph PPT with real-time rendering, powerred by OfficeCLI x AionUi

effortless

  • Expanded morph-ppt capabilities for a more visual and transparent slide-building workflow.
  • Added clearer preview and system-app warning messages to reduce confusion during generation.
  • Improved WebUI/Server-mode support for PPT preview and shell-open actions, making local and remote usage more consistent.
  • Result: users can see the PPT being produced step by step instead of waiting for a black-box final output.
image

2) OfficeCli now includes built-in Skills

  • OfficeCli ships with built-in skills to reduce setup friction and speed up onboarding.
  • Skills sync reliability improved by separating built-in and user skill directories.
  • Better end-to-end flow from intent → generation → preview → iteration in PPT workflows.
image

🚀 Other Improvements

  • i18n: replaced Chinese fallback strings with English in t() calls.
  • Search: added Cmd/Ctrl + Shift + F history shortcut.
  • Conversation UX: cycle visible sessions with Ctrl + Tab.
  • Server: added webserver standalone mode.
  • UI polish: formatting fixes in channel config forms and skills hub settings.
  • Mobile: mobile-related enhancements and fixes.

What's Changed

  • fix(i18n): replace Chinese fallback strings with English in t() calls by @amanharshx in #1651
  • feat(search): add Cmd/Ctrl+Shift+F history shortcut by @Eric-Song-Nop in #1625
  • fix(morph-ppt): clarify preview and system app warning by @IceyLiu in #1664
  • refactor(morph-ppt): remove hardcoded inspiration topics by @IceyLiu in #1666
  • style: fix formatting issues in channel config forms and skills hub settings by @piorpua in #1668
  • feat(server): webserver standalone mode by @piorpua in #1665
  • fix(skills): separate builtin and user skills directories for reliable sync by @kaizhou-lab in #1673
  • fix(conversation): cycle visible sessions with ctrl+tab by @Eric-Song-Nop in #1623
  • Mobile by @xavierliang in #1506
  • fix(webui): support PPT preview and shell open in server mode by @piorpua in #1679
  • chore: bump version to 1.9.0 by @piorpua in #1680

New Contributors

Full Changelog: v1.8.33...v1.9.0

v1.8.32

20 Mar 14:22
9bef67d

Choose a tag to compare

New Features

  • feat(display-settings): add CSS theme presets by @Asunfly in #1598
image image

What's Changed

  • chore(tooling): migrate from ESLint + Prettier to oxc ecosystem (oxlint + oxfmt) by @loonghao in #1488
  • fix(coverage): switch from whitelist to full-source coverage reporting by @loonghao in #1491
  • docs(skills): update coverage config references for glob-based include by @piorpua in #1576
  • refactor: reorganize src/ directory structure (835 files, 0 TS errors) by @kaizhou-lab in #1583
  • fix(builtin-mcp): make image-gen server runnable by external node in packaged app by @piorpua in #1584
  • refactor(settings): restructure SystemModalContent, fix CDP switch, hide dev tools in production by @kaizhou-lab in #1587
  • fix(utils): replace runtime require with static import for initStorage by @kaizhou-lab in #1600
  • fix(mcp): align image generation agent badges with dynamic registration state by @Castor6 in #1505
  • fix(image-generation-mcp): address review issues from PR #1505 by @piorpua in #1601
  • feat(display-settings): add CSS theme presets by @Asunfly in #1598
  • chore: bump version to 1.8.32 by @piorpua in #1603

Full Changelog: v1.8.31...v1.8.32

v1.8.31

19 Mar 13:40

Choose a tag to compare

What's Changed

  • ci(pr-checks): cancel runs on PR close and add skip_build_test option by @piorpua in #1418
  • docs: add project skills for architecture, commit, PR, testing, and i18n by @kaizhou-lab in #1420
  • fix(tray): hide app to tray from tray menu by @cdxiaodong in #1404
  • fix(tray): refresh recent chats after conversation changes by @cdxiaodong in #1398
  • fix(shellEnv): 修复Windows环境下npx路径验证逻辑 by @JAVA-LW in #1427
  • feat: add Novita provider integration by @Alex-wuhu in #1359
  • fix(chatLib): replace throw with console.warn for unsupported message types by @kaizhou-lab in #1428
  • docs(skills): require test coverage verification in commit workflow by @kaizhou-lab in #1431
  • refactor(commands): migrate pr-review to skill, remove pr-assess by @piorpua in #1432
  • feat(mcp): add built-in image generation MCP server by @Castor6 in #1243
  • fix(sentry): rewrite source map paths for GitHub code mapping by @kaizhou-lab in #1435
  • fix(image-gen-mcp): address follow-up review issues from #1243 by @piorpua in #1441
  • fix(fs): handle ENOENT in readDirectoryRecursive and bridge providers by @kaizhou-lab in #1450
  • chore(skills): add pr-fix skill and update oss-pr and pr-review skills by @piorpua in #1453
  • docs(architecture): add testability rules and test file mapping by @kaizhou-lab in #1457
  • refactor(process): main process decoupling phase 2 — full DI for all bridge/service modules by @piorpua in #1447
  • docs(architecture): add testability rules and restructure skill by @kaizhou-lab in #1460
  • refactor(skills): use native workspace symlinks instead of prompt injection by @audichuang in #1246
  • docs(pr-fix): add path routing for internal branch vs fork PRs by @piorpua in #1467
  • feat(pr-review): add CI status gate before code review by @piorpua in #1480
  • docs(pr-review): handle missing CI jobs when workflow skipped by paths-ignore by @piorpua in #1481
  • refactor(renderer): restructure directory layout by @kaizhou-lab in #1449
  • chore: bump version to 1.8.31 by @piorpua in #1484

New Contributors

Full Changelog: v1.8.30...v1.8.31

v1.8.30

18 Mar 13:32
9adc4b9

Choose a tag to compare

New Features

  1. WebUI file upload – Added file upload support in WebUI, making it easier to send files from mobile/remote devices (#1241, Fixes #1233).
image
  1. CSS themes – New Retroma Y2K CSS-only theme + cover, and a Retroma Obsidian Book themed style (#1399, #1401).
image

What's Changed

  • chore(dev): clean renderer cache before starting dev server by @kaizhou-lab in #1382
  • feat(sentry): integrate error tracking with source map support by @kaizhou-lab in #1396
  • fix(build): package bun runtime with cache-first strategy by @loonghao in #1371
  • chore(ci): disable project-automation workflow by @piorpua in #1400
  • fix(webserver): handle special characters in cookies properly by @zhzy0077 in #1321
  • fix(webui): pass custom CLI args correctly for electron-vite 5 by @kaizhou-lab in #1408
  • feat(webui): add file upload for mobile/remote devices (Fixes #1233) by @audichuang in #1241
  • fix(ci): downgrade actions/checkout from v6 to v4 by @piorpua in #1409
  • feat(css-theme): retroma y2k css-only + cover by @ringringlin in #1399
  • Feat/css retroma obsidian book by @ringringlin in #1401
  • fix(ci): remove secrets context from if: conditions in coverage job by @piorpua in #1410
  • refactor: decouple main process modules via interfaces and constructor injection by @piorpua in #1402
  • fix: add @types/cookie and fix prettier formatting by @piorpua in #1412
  • docs(specs): update phase2 design doc post PR #1402 merge by @piorpua in #1413
  • refactor(css-theme): replace base64 covers with Vite static imports and extract CSS by @kaizhou-lab in #1411
  • 修复消息检索bug+Windows对话异常+对话工作中/完成提示 by @JAVA-LW in #1386
  • ci(pr-checks): add workflow_dispatch trigger for manual PR re-runs by @piorpua in #1415
  • chore: bump version to 1.8.30 by @piorpua in #1417

New Contributors

Full Changelog: v1.8.29...v1.8.30

v1.8.29

17 Mar 13:14
6cb397f

Choose a tag to compare

What's New

Features

  • Conversation history – Message search in conversation history (#1203).
image
  • Skills Hub – AionUi Local Skills Management (#1210).
image
  • Settings – CDP settings UI and DevTools toggle Onlfy (#1374).
image
  • Coversation Optimization — Optimize the entrance of the minimap, and allow the user to edit the title on the top
image
  • Environment separation – Separate dev/release environments for simultaneous debugging (#1128).

Fixes

  • Tray – Include app.png in extraResources for production builds (#1348).
  • WebUI – Binary file download no longer returns 0KB; context menu download added (#1324).
  • Download – Extract base64ToBlob utility and fix MIME resolution (#1356).
  • WebUI – Skip symlinks outside allowed paths in directory browse (#1350).
  • Gemini – Clear activeMsgIdRef on stop to fix message filtering (#1354).
  • Gemini – Sync waitingResponseRef on stop and add useGeminiMessage tests (#1370).
  • ACP / log / main – Revert codex-acp 0.10.0, fix log persistence, refactor index.ts (#1368).
  • UI – Polish search popover and settings icon styles (#1365).
  • Guid – Remove add-assistant button hover animation (#1362).
  • Tray / Skills – Stabilize tray test in CI; always show SkillsMarketBanner description/details (#1380).

What's Changed

  • update expired wx group qr code by @IceyLiu in #1346
  • 对话历史消息检索 by @JAVA-LW in #1203
  • fix(tray): include app.png in extraResources for production builds by @kaizhou-lab in #1348
  • chore: fix CSS prettier formatting and document format requirement by @piorpua in #1352
  • Feature/skills hub by @kylinhou in #1210
  • chore: add format auto-fix step to bump-version workflow by @piorpua in #1353
  • fix: binary file download fails with 0KB in WebUI mode + add context menu download by @JerryLiu369 in #1324
  • refactor: extract base64ToBlob utility, fix MIME resolution in download by @piorpua in #1356
  • feat: implement environment separation for simultaneous debugging by @kylinhou in #1128
  • fix(webui): skip symlinks outside allowed paths in directory browse by @piorpua in #1350
  • feat(env): isolate dev/release symlinks with getEnvAwareName by @piorpua in #1364
  • fix(gemini): clear activeMsgIdRef on stop to prevent message filtering bug by @BillionClaw in #1354
  • ci(workflows): add coverage test job to PR checks by @loonghao in #1369
  • fix(gemini): sync waitingResponseRef on stop and add useGeminiMessage tests by @piorpua in #1370
  • fix(acp,log,main): revert codex-acp 0.10.0, fix log persistence, refactor index.ts by @kaizhou-lab in #1368
  • chore(ci): remove AI review and external contributor jobs by @piorpua in #1372
  • feat(settings): add CDP settings UI and DevTools toggle by @kaizhou-lab in #1374
  • fix(ui): polish search popover and settings icon styles by @ringringlin in #1365
  • fix(guid): remove add-assistant button hover animation by @TCP404 in #1362
  • chore: bump version to 1.8.29 by @piorpua in #1377
  • fix: stabilize tray test CI & always show SkillsMarketBanner desc/details by @kaizhou-lab in #1380

New Contributors

Full Changelog: v1.8.28...v1.8.29