Highlights
Mobile Sendbox Redesign
- The mobile sendbox is now a single-line input with a compact
+button that opens a bottom action sheet — model selection, permission mode, attachments, and Skills are all reachable from one place instead of being crammed into the input bar. - Skills in the action sheet now show the conversation's loaded skills and one tap inserts
/skill-namedirectly into the input. - Desktop behavior is unchanged: model and permission switching still go through the same dropdowns and propagate across team chats as before.
Reliability & Crash Fixes
- Deleted providers and assistants no longer resurrect on the next launch. Legacy
model.configmigration was running every startup and silently re-inserting any provider you had removed; it now records a one-time completion flag and stops, while keeping the legacy data on disk for safe downgrades. - The desktop window now stays open if the aioncore backend fails to start, so you can read the failure dialog (with optional diagnostic report) instead of the app vanishing on launch. WebUI/headless modes keep their fail-fast behavior.
- Quit cleanup is now serialized on Linux/desktop — backend shutdown, tray, and pet teardown happen in order before the app actually quits, fixing a class of races during shutdown.
- Native GPU crashpad fatals (
GPU process isn't usable. Goodbye) are filtered from Sentry so the dashboard isn't flooded with unrecoverable Chromium GPU crashes, while real Linux shutdown crashes still get reported.
Bug Fixes
- Pasting an image or dragging a file into the prompt no longer kicks you out of "Work in project" mode — paste/drag now preserves the selected workspace, matching the dialog upload flow.
- Streaming chat replies render more reliably when tools interrupt a response: separate text and thinking segments are preserved, the thinking timer finalizes on the next non-thinking event instead of waiting for a trailing
done, and reopening a conversation no longer restarts the thinking counter. - Tool call records that arrive without a call ID are now dropped with a warning instead of leaking orphaned UI state into the conversation.
- Polished feedback/issue-reporting entry naming across the homepage, settings, and error alerts to consistently say "Report Issue" / "反馈问题"; removed the redundant feedback button from agent detection error alerts. Updated the English app slogan to "One desktop. Your AI agents, actually coworking."
What's Changed
- fix(config-migration): stop deleted providers/assistants from resurrecting on launch (ELECTRON-1KT) by @TCP404 in #3018
- fix(startup): keep desktop open when backend startup fails by @piorpua in #3030
- fix(desktop): serialize quit cleanup by @piorpua in #3031
- chore(skill): rewrite bump-version for post-separation workflow by @piorpua in #3032
- fix(sentry): filter native GPU crashpad fatals by @piorpua in #3033
- chore(ui): polish feedback naming and remove error alert buttons by @IceyLiu in #3034
- fix(tool-calls): ignore calls without call IDs by @piorpua in #3035
- fix: preserve chat stream boundaries and thinking timers by @kaizhou-lab in #3036
- feat(sendbox): mobile sendbox redesign with action sheet by @IceyLiu in #3039
- fix(guid): keep workspace dir when pasting/dropping files (ELECTRON-1K6) by @TCP404 in #3040
- chore: bump version to 2.1.3 and aioncore to v0.1.13 by @piorpua in #3043
Full Changelog: v2.1.2...v2.1.3