v0.9.0
phiresky/ripgrep-allv0.9.0Apr 10, 2026by nekomeowww
AI Summary
A significant update for the Airi VRM chatbot framework focusing on 3D model rendering, Tamagotchi improvements, and new provider integrations like NVIDIA NIM.
Key Highlights
- Added NVIDIA NIM provider support
- Improved VRM expression rendering and emotion mappings
- Added Ollama thinking mode configuration
- Added anti-aliasing support for 3D models
- Fixed user-sent message loss issues
New Features
- Add Ollama thinking mode config and provider-side think mapping
- Add anti-aliasing support for 3D models
- feat(stage-ui): add nvidia nim provider
- feat(stage-pages): add model selection navigation
- feat(stage-tamagotchi): popup controls island
Full Release Notes
<img width="250" height="250" alt="image" src="https://github.com/user-attachments/assets/05a5aae6-ac15-443e-ab53-b7fb3d769ae3" /> ## New Contributors * @YoungUsing made their first contribution in https://github.com/moeru-ai/airi/pull/1109 * @Gujiassh made their first contribution in https://github.com/moeru-ai/airi/pull/1162 * @04cb made their first contribution in https://github.com/moeru-ai/airi/pull/1182 * @dongguacute made their first contribution in https://github.com/moeru-ai/airi/pull/1169 * @SakataRyuichi made their first contribution in https://github.com/moeru-ai/airi/pull/1187 * @JasonOA888 made their first contribution in https://github.com/moeru-ai/airi/pull/1203 * @Ver-zhzh made their first contribution in https://github.com/moeru-ai/airi/pull/1196 * @Minnzen made their first contribution in https://github.com/moeru-ai/airi/pull/1214 * @kbhujbal made their first contribution in https://github.com/moeru-ai/airi/pull/1213 * @pratyush618 made their first contribution in https://github.com/moeru-ai/airi/pull/1156 * @freezinlove made their first contribution in https://github.com/moeru-ai/airi/pull/1243 * @fordelkon made their first contribution in https://github.com/moeru-ai/airi/pull/1231 * @hobostay made their first contribution in https://github.com/moeru-ai/airi/pull/1261 * @stablegenius49 made their first contribution in https://github.com/moeru-ai/airi/pull/1316 * @Oldcircle made their first contribution in https://github.com/moeru-ai/airi/pull/1333 * @Reisenbug made their first contribution in https://github.com/moeru-ai/airi/pull/1341 * @mvanhorn made their first contribution in https://github.com/moeru-ai/airi/pull/1392 * @jim139129 made their first contribution in https://github.com/moeru-ai/airi/pull/1412 * @monolithic827 made their first contribution in https://github.com/moeru-ai/airi/pull/1302 * @PurCHES5 made their first contribution in https://github.com/moeru-ai/airi/pull/1457 * @spidershield-contrib made their first contribution in https://github.com/moeru-ai/airi/pull/1445 * @howtomakeaname made their first contribution in https://github.com/moeru-ai/airi/pull/1437 * @breezy89757 made their first contribution in https://github.com/moeru-ai/airi/pull/1057 * @areong made their first contribution in https://github.com/moeru-ai/airi/pull/1483 * @xuan0x0 made their first contribution in https://github.com/moeru-ai/airi/pull/1494 * @jensenhuangfan made their first contribution in https://github.com/moeru-ai/airi/pull/1506 * @cheesemori made their first contribution in https://github.com/moeru-ai/airi/pull/851 * @you06 made their first contribution in https://github.com/moeru-ai/airi/pull/1513 * @youetube made their first contribution in https://github.com/moeru-ai/airi/pull/1033 * @JhIcefair made their first contribution in https://github.com/moeru-ai/airi/pull/1559 * @PhoenixForrestLin made their first contribution in https://github.com/moeru-ai/airi/pull/1563 * @dasilva333 made their first contribution in https://github.com/moeru-ai/airi/pull/1582 ## What's Changed * fix(docs): typo in instructions for Chat window by @YoungUsing in https://github.com/moeru-ai/airi/pull/1109 * feat(stage-*): basic mcp implementation by @BeanDz in https://github.com/moeru-ai/airi/pull/1115 * feat(stage-tamagotchi): popup controls island and better tray with window opts by @lietblue in https://github.com/moeru-ai/airi/pull/1106 * fix(stage-tamagotchi): improve controls island tooltip placement by @lietblue in https://github.com/moeru-ai/airi/pull/1119 * chore(docs): updated supported LLM API providers by @Neko-233 in https://github.com/moeru-ai/airi/pull/1114 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1120 * feat(stage-ui): add missing icon for gaming-factorio module by @lietblue in https://github.com/moeru-ai/airi/pull/1130 * feat: add Ollama thinking mode config and provider-side think mapping by @Garfield550 in https://github.com/moeru-ai/airi/pull/1140 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1157 * refactor(satori-bot): migrate persistence to adapter by @NashChennc in https://github.com/moeru-ai/airi/pull/1155 * feat: add anti-aliasing support for 3D models by @NJX-njx in https://github.com/moeru-ai/airi/pull/1150 * fix: improve VRM expression rendering and add missing emotion mappings by @NJX-njx in https://github.com/moeru-ai/airi/pull/1147 * fix(stage-ui): guard against undefined voices in ElevenLabs listVoices by @NJX-njx in https://github.com/moeru-ai/airi/pull/1142 * fix(ui): raise ComboboxContent z-index above Dialog overlay by @NJX-njx in https://github.com/moeru-ai/airi/pull/1143 * fix(stage-ui): auto-mark provider as added after successful validation on settings page by @NJX-njx in https://github.com/moeru-ai/airi/pull/1144 * feat(stage-pages): add manual model input fallback when model list fails to load by @NJX-njx in https://github.com/moeru-ai/airi/pull/1145 * chore(stage-pages): add Minecraft integration unavailability notice with WIP bot setup instructions by @shinohara-rin in https://github.com/moeru-ai/airi/pull/1161 * fix(telegram-bot): guard structured message fallback by @Gujiassh in https://github.com/moeru-ai/airi/pull/1162 * refactor(minecraft): migrate reflex runtime to alien-signals, harden zod validation, and unify skill utilities by @s3d-i in https://github.com/moeru-ai/airi/pull/1092 * fix(stage-pages,stage-ui): surface provider transcription errors by @liuxiaopai-ai in https://github.com/moeru-ai/airi/pull/1070 * fix(stage-ui): add model list for index-tts-vllm by @liuxiaopai-ai in https://github.com/moeru-ai/airi/pull/1066 * fix(ci): with outputHashAlgo to output non-empty output by @04cb in https://github.com/moeru-ai/airi/pull/1182 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1177 * fix(stage-layouts): replace Tooltip with Popover for microphone controls by @dongguacute in https://github.com/moeru-ai/airi/pull/1169 * fix(stage-*): can’t get mcp servers when use remote api by @BeanDz in https://github.com/moeru-ai/airi/pull/1181 * fix(minecraft): downgrade to mitigate upstream issue and mcp cleanup by @shinohara-rin in https://github.com/moeru-ai/airi/pull/1192 * fix(server-runtime): use superjson.parse for incoming WebSocket messages by @SakataRyuichi in https://github.com/moeru-ai/airi/pull/1187 * feat(minecraft): disable debug servers by default by @shinohara-rin in https://github.com/moeru-ai/airi/pull/1193 * fix(stage-ui): LM studio validation problem and add CORS note by @shinohara-rin in https://github.com/moeru-ai/airi/pull/1175 * fix(discord): prevent VoiceManager memory leaks on join/leave cycles by @JasonOA888 in https://github.com/moeru-ai/airi/pull/1203 * chore(docs): reorganize content by @NashChennc in https://github.com/moeru-ai/airi/pull/1170 * fix(telegram-bot): guard malformed structured messages by @Gujiassh in https://github.com/moeru-ai/airi/pull/1179 * Revert "fix(stage-*): can’t get mcp servers when use remote api" by @nekomeowww in https://github.com/moeru-ai/airi/pull/1204 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1209 * feat(stage-ui): add nvidia nim provider by @Ver-zhzh in https://github.com/moeru-ai/airi/pull/1196 * feat(stage-pages): add model selection navigation after provider validation by @Minnzen in https://github.com/moeru-ai/airi/pull/1214 * fix(stage-ui): user-sent message lost by @typed-sigterm in https://github.com/moeru-ai/airi/pull/1215 * fix(minecraft): add stop method to Ticker to prevent resource leak by @kbhujbal in https://github.com/moeru-ai/airi/pull/1213 * feat(tamagotchi): add "Pin on top" toggle to controls island by @lietblue in https://github.com/moeru-ai/airi/pull/1183 * fix(stage-tamagotchi): bring back onboarding dialog by @shinohara-rin in https://github.com/moeru-ai/airi/pull/1104 * fix(stage-ui): reset always-on-top via manual reset by @Garfield550 in https://github.com/moeru-ai/airi/pull/1218 * fix(stage-pocket): use system mkcert to work around feaxios download crash by @Minnzen in https://github.com/moeru-ai/airi/pull/1220 * fix(stage-ui-live2d): require `.model.json` or `.model3.json` for Live2D files by @pratyush618 in https://github.com/moeru-ai/airi/pull/1156 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1226 * fix(server-runtime,server-sdk): accept plain JSON from external WebSocket clients by @pratyush618 in https://github.com/moeru-ai/airi/pull/1234 * refactor(stage-ui): steps of onboarding dialog by @LemonNekoGH in https://github.com/moeru-ai/airi/pull/1224 * fix(stage-tamagotchi): disable hoverable content of control button by @LemonNekoGH in https://github.com/moeru-ai/airi/pull/1240 * fix(stage-ui-live2d,stage-tamagotchi): use temp file to prevent config loss and handle more Live2D model load failures by @pratyush618 in https://github.com/moeru-ai/airi/pull/1233 * fix(stage-tamagotchi): double close caused crash, simplified onboarding, added `safeClose` by @freezinlove in https://github.com/moeru-ai/airi/pull/1243 * feat(stage-tamagotchi): add top drag area to move window by @fordelkon in https://github.com/moeru-ai/airi/pull/1231 * feat(nix): add FHS devShell for running Electron on NixOS by @lietblue in https://github.com/moeru-ai/airi/pull/1245 * fix(stage-ui): use lightweight fetch for connectivity check by @Minnzen in https://github.com/moeru-ai/airi/pull/1238 * feat(stage-tamagotchi): add electron main process file logger hook by @Garfield550 in https://github.com/moeru-ai/airi/pull/1247 * fix(stage-tamagotchi): crash on onboarding save by bump electron to v40.8.0, bring back auto-popup by @sumimakito in https://github.com/moeru-ai/airi/pull/1246 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1251 * chore: update pnpm version to 10.32.1 by @Garfield550 in https://github.com/moeru-ai/airi/pull/1252 * fix(services): resolve lint issues by @hobostay in https://github.com/moeru-ai/airi/pull/1261 * fix(stage-tamagotchi): dependency missing for h3 by @nekomeowww in https://github.com/moeru-ai/airi/pull/1265 * fix(stage-ui): remove SSML support for Volcengine speech provider by @pratyush618 in https://github.com/moeru-ai/airi/pull/1232 * fix(stage-ui): deduplicate provider models by id by @lietblue in https://github.com/moeru-ai/airi/pull/1282 * fix(stage-tamagotchi): provide the missing core components to createCoreContext by @sumimakito in https://github.com/moeru-ai/airi/pull/1288 * fix(stage-tamagotchi): move @intlify/core from devDeps to deps by @sumimakito in https://github.com/moeru-ai/airi/pull/1291 * feat(stage-ui): optimize card many select component layout styles by @horizonzzzz in https://github.com/moeru-ai/airi/pull/1096 * refactor: vrm performance tracing and better lifecycle management by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/1194 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1301 * fix(stage-ui): skip optimistic updates before apply by @Gujiassh in https://github.com/moeru-ai/airi/pull/1304 * feat(stage-pocket): request permissions onboarding by @LemonNekoGH in https://github.com/moeru-ai/airi/pull/1292 * fix(plugin-sdk): trim negotiated compatibility versions by @Gujiassh in https://github.com/moeru-ai/airi/pull/1305 * fix(stage-tamagotchi): handle app exit correctly by @sumimakito in https://github.com/moeru-ai/airi/pull/1319 * fix: let tray menu close caption overlay by @stablegenius49 in https://github.com/moeru-ai/airi/pull/1316 * feat(stage-tamagotchi): show connection status by @LemonNekoGH in https://github.com/moeru-ai/airi/pull/1311 * fix(stage-ui): flip canvas pixel reads on Y axis by @Gujiassh in https://github.com/moeru-ai/airi/pull/1309 * fix(stage-tamagotchi): make handleAppExit more robust by @sumimakito in https://github.com/moeru-ai/airi/pull/1321 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1325 * fix(stage-ui): use stable chat history keys in the stage UI by @stablegenius49 in https://github.com/moeru-ai/airi/pull/1312 * fix(telegram-bot): fix velin rendering, action loop, and LLM compatibility by @Oldcircle in https://github.com/moeru-ai/airi/pull/1333 * docs: update CLAUDE.md to use @AGENTS.md directive by @lietblue in https://github.com/moeru-ai/airi/pull/1335 * feat(stage-tamagotchi): add profile switcher to controls island and web header by @lietblue in https://github.com/moeru-ai/airi/pull/1328 * fix(speech): prevent speech provider config reset on startup by removing premature immediate watcher by @lietblue in https://github.com/moeru-ai/airi/pull/1340 * fix(minecraft): xss mitigation for minecraft debug dashboard by @shinohara-rin in https://github.com/moeru-ai/airi/pull/1344 * fix(stage-ui): fix hash scroll on SPA navigation to providers page by @shinohara-rin in https://github.com/moeru-ai/airi/pull/1347 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1349 * fix(stage-tamagotchi): fix model flickering and jumping on window resize by @Reisenbug in https://github.com/moeru-ai/airi/pull/1341 * fix(server-runtime): shutdown server on interruption properly by @shinohara-rin in https://github.com/moeru-ai/airi/pull/1356 * fix(stage-tamagotchi): quit app on Live2D close button to cleanup background processes by @Reisenbug in https://github.com/moeru-ai/airi/pull/1361 * fix(stage-ui): keep nested reasoning out of speech by @Gujiassh in https://github.com/moeru-ai/airi/pull/1322 * fix(plugin-sdk): preserve absolute plugin entrypoints by @Gujiassh in https://github.com/moeru-ai/airi/pull/1323 * fix(server-runtime): preserve explicit empty route destinations by @Gujiassh in https://github.com/moeru-ai/airi/pull/1324 * Revert "fix(stage-tamagotchi): fix model flickering and jumping on window resize" by @nekomeowww in https://github.com/moeru-ai/airi/pull/1364 * chore(ci): added Scoop bucket manifest by @stablegenius49 in https://github.com/moeru-ai/airi/pull/1262 * feat(stage-pages,stage-ui,i18n): disable auto trigger for chatcompletion check and use explict button by @shinohara-rin in https://github.com/moeru-ai/airi/pull/1336 * chore: disable PostHog telemetry in development mode by @shinohara-rin in https://github.com/moeru-ai/airi/pull/1365 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1369 * fix(stage-ui): use nullish coalescing for errorMessageFrom fallback by @Garfield550 in https://github.com/moeru-ai/airi/pull/1370 * docs(AGENTS.md): use `errorMesageFrom` by @shinohara-rin in https://github.com/moeru-ai/airi/pull/1372 * feat(stage-pocket): add Android target by @lietblue in https://github.com/moeru-ai/airi/pull/1326 * chore: add project-level skills by @Garfield550 in https://github.com/moeru-ai/airi/pull/1373 * chore(docs): new DevLog for VRM & three.js refactor by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/1368 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1388 * fix(llm): flatten content array for OpenAI-compatible providers by @Reisenbug in https://github.com/moeru-ai/airi/pull/1222 * fix(docs): fix typo in landing page by @qyl27 in https://github.com/moeru-ai/airi/pull/1399 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1403 * fix(stage-tamagotchi): harden caption overlay follow+mouse handling by @Iro96 in https://github.com/moeru-ai/airi/pull/1402 * fix(bucket): fix scoop manifest decompress error for NSIS installer by @mvanhorn in https://github.com/moeru-ai/airi/pull/1392 * fix(stage-pages): use placeholderLocalized from provider config for API key input by @mvanhorn in https://github.com/moeru-ai/airi/pull/1391 * fix(stage-ui-live2d): animate model position and scale on resize with animejs by @Reisenbug in https://github.com/moeru-ai/airi/pull/1395 * refactor(docs): home layout component by @qyl27 in https://github.com/moeru-ai/airi/pull/1404 * fix(stage-tamagotchi): do not pause Live2D on visibility change by @Iro96 in https://github.com/moeru-ai/airi/pull/1410 * fix(docs): incorrect button link by @qyl27 in https://github.com/moeru-ai/airi/pull/1411 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1415 * docs: update contributing docs by @jim139129 in https://github.com/moeru-ai/airi/pull/1412 * feat: upgrade MiniMax default model to M2.7 by @octo-patch in https://github.com/moeru-ai/airi/pull/1417 * feat(stage-pages,stage-ui,i18n): add OpenRouter as a speech (TTS) provider by @monolithic827 in https://github.com/moeru-ai/airi/pull/1302 * feat(docs): add a simple web version guide by @jim139129 in https://github.com/moeru-ai/airi/pull/1420 * fix(stage-pages): prevent airi card dialogs from closing on outside click by @Reisenbug in https://github.com/moeru-ai/airi/pull/1419 * fix(stage-ui): settings fallback route, and guard navigate back to home in tamagotchi by @leaft in https://github.com/moeru-ai/airi/pull/1413 * chore(readme): sync QR download buttons and migrate supporters section to SponsorKit by @Neko-233 in https://github.com/moeru-ai/airi/pull/1407 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1424 * feat(plugin-sdk): much better refactor, and new permission model by @nekomeowww in https://github.com/moeru-ai/airi/pull/1423 * feat(stage-tamagotchi): vision by @nekomeowww in https://github.com/moeru-ai/airi/pull/917 * feat(stage-pages): reorder sections and add danger zone red background by @Garfield550 in https://github.com/moeru-ai/airi/pull/1435 * feat(stage-ui): Include OpenRouter attribution headers by @monolithic827 in https://github.com/moeru-ai/airi/pull/1436 * fix(bucket): update Scoop manifest to v0.9.0-alpha.18 by @mvanhorn in https://github.com/moeru-ai/airi/pull/1430 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1443 * chore: switch zh-CN desktop download links to GitHub releases by @Neko-233 in https://github.com/moeru-ai/airi/pull/1442 * feat: refactor settings data page and add app data folder action by @Garfield550 in https://github.com/moeru-ai/airi/pull/1447 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1448 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1454 * chore: replace CLAUDE.md symlink with @AGENTS.md reference by @lietblue in https://github.com/moeru-ai/airi/pull/1455 * feat(docs): added new DevLog 2026-03-23 by @PurCHES5 in https://github.com/moeru-ai/airi/pull/1457 * fix(nix/common): ignore editor config by @kwaa in https://github.com/moeru-ai/airi/pull/1459 * feat(cap-vite): use platform-specific device id by @LemonNekoGH in https://github.com/moeru-ai/airi/pull/1458 * refactor(tamagotchi/stage-*): remove duplicated scene in the setting page for tamagotchi by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/1460 * feat(stage-tamagotchi): hide header in desktop by @lietblue in https://github.com/moeru-ai/airi/pull/1462 * fix(docs): fix Try Live button opening 404 in VitePress SPA router by @Garfield550 in https://github.com/moeru-ai/airi/pull/1461 * chore(docs): added comment for target field by @qyl27 in https://github.com/moeru-ai/airi/pull/1465 * refactor(stage-*): analytics and telemetry, including consent by @shinohara-rin in https://github.com/moeru-ai/airi/pull/1414 * fix(server-runtime): use constant-time comparison for auth token by @spidershield-contrib in https://github.com/moeru-ai/airi/pull/1445 * fix(stage-ui): improve profile switcher popover UI by @lietblue in https://github.com/moeru-ai/airi/pull/1425 * fix(stage-layouts): align web chat tools discovery with Tamagotchi (immediate watch)) by @lulu0119 in https://github.com/moeru-ai/airi/pull/1466 * fix(stage-ui): tools not available when using remote API by @BeanDz in https://github.com/moeru-ai/airi/pull/1468 * fix(stage-ui-three): cutout bug fix by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/1471 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1473 * fix(stage-ui): bind cursor floating css vars by @Gujiassh in https://github.com/moeru-ai/airi/pull/1472 * fix(stage-ui): use normalized audio spectrum values by @Gujiassh in https://github.com/moeru-ai/airi/pull/1474 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1478 * chore(docs): added Visual Studio 2026 suggestion by @jim139129 in https://github.com/moeru-ai/airi/pull/1476 * fix(stage-ui): allow custom model input when model list is empty by @howtomakeaname in https://github.com/moeru-ai/airi/pull/1437 * feat(providers): add Z.ai provider by @AdairLi2504 in https://github.com/moeru-ai/airi/pull/1409 * feat(providers): add Azure OpenAI support by @breezy89757 in https://github.com/moeru-ai/airi/pull/1057 * chore(deps): move drizzle-orm to catalog by @luoling8192 in https://github.com/moeru-ai/airi/pull/1480 * fix(docs): links to other doc pages by @areong in https://github.com/moeru-ai/airi/pull/1483 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1484 * fix: rollback electron version by @Misaka-0x447f in https://github.com/moeru-ai/airi/pull/1490 * Server v1 by @Neko-233 in https://github.com/moeru-ai/airi/pull/1376 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1493 * chore(ci): bump GitHub Actions actions by @salmanmkc in https://github.com/moeru-ai/airi/pull/1048 * fix(ui): forward default slot in InputFile to BasicInputFile by @xuan0x0 in https://github.com/moeru-ai/airi/pull/1494 * fix(stage-ui): return empty string instead of empty array in mcp_list_tools error fallback by @lietblue in https://github.com/moeru-ai/airi/pull/1497 * feat(auth): Bearer token handling and OAuth token extraction by @luoling8192 in https://github.com/moeru-ai/airi/pull/1501 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1508 * refactor: replace status check string literal with enum; add chat pin… by @Misaka-0x447f in https://github.com/moeru-ai/airi/pull/1486 * fix(stage-tamagotchi): autoUpdater should have channel selected by @jensenhuangfan in https://github.com/moeru-ai/airi/pull/1506 * feat(stage-tamagotchi): add option for chat area send key by @cheesemori in https://github.com/moeru-ai/airi/pull/851 * typo(i18n): correct xsai-transformers URL typo in Japanese locale by @you06 in https://github.com/moeru-ai/airi/pull/1513 * fix(stage-layouts): clear voice auto-send input before ingest resolves by @lulu0119 in https://github.com/moeru-ai/airi/pull/1510 * feat(ui,stage-ui,stage-pages,i18n): transcription confidence filter by @Reisenbug in https://github.com/moeru-ai/airi/pull/1148 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1520 * fix(stage-*): remove unused json format and platform checking by @LemonNekoGH in https://github.com/moeru-ai/airi/pull/1523 * fix(server-runtime): preserve explicit empty route destinations by @Gujiassh in https://github.com/moeru-ai/airi/pull/1521 * fix(pwa): show update toast when new version is available by @JasonOA888 in https://github.com/moeru-ai/airi/pull/1517 * fix(stage-ui,stage-tamagotchi): bring back i18n, improved settings data ui by @nekomeowww in https://github.com/moeru-ai/airi/pull/1525 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1528 * feat(stage-ui-live2d): exp3 expression system + auto-blink rework by @youetube in https://github.com/moeru-ai/airi/pull/1033 * fix(stage-ui): keep onboarding save button visible by @Ver-zhzh in https://github.com/moeru-ai/airi/pull/1280 * chore(tauri-*,crates): now maintaining tauri and rust packages in another repo by @nekomeowww in https://github.com/moeru-ai/airi/pull/1533 * refactor(stage-ui-three): improved outline logic by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/1536 * fix(stage-pages): XSS vulnerability in provider definition by @shinohara-rin in https://github.com/moeru-ai/airi/pull/1492 * feat(minecraft,stage-*): airi integration, isolated-vm plus misc updates by @shinohara-rin in https://github.com/moeru-ai/airi/pull/1371 * fix(stage-ui-three/stage-web): model offset and camera position setting is now persistent by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/1543 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1544 * feat(devtool-capture-stage-tamagotchi): tool for interacting the electron apps by @nekomeowww in https://github.com/moeru-ai/airi/pull/1549 * fix(stage-ui): channel-server should handle onReady as well by @nekomeowww in https://github.com/moeru-ai/airi/pull/1550 * feat: lang select now moved to top-right corner - AIRI-209 by @Misaka-0x447f in https://github.com/moeru-ai/airi/pull/1555 * feat: full rollout chat completion check by @Misaka-0x447f in https://github.com/moeru-ai/airi/pull/1557 * feat(stage-ui): add hologram promo banner by @Neko-233 in https://github.com/moeru-ai/airi/pull/1514 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1562 * feat(docs): setup and use manual by @JhIcefair in https://github.com/moeru-ai/airi/pull/1559 * fix(server-*,stage-ui): WebSocket cannot reconnect correctly, improved log by @PhoenixForrestLin in https://github.com/moeru-ai/airi/pull/1563 * feat(stage-ui): scale settings by @lulu0119 in https://github.com/moeru-ai/airi/pull/1554 * chore(ci): add label sync and PR triage workflows by @shinohara-rin in https://github.com/moeru-ai/airi/pull/1575 * feat(docs): add tamagotchi manual screenshots by @Neko-233 in https://github.com/moeru-ai/airi/pull/1574 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1576 * fix(stage-tamagotchi): harden cross-platform auto-updater flow, diagnostics, logs, and cache cleanup by @jensenhuangfan in https://github.com/moeru-ai/airi/pull/1566 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1581 * fix(stage-tamagotchi): add drag region to onboarding layout by @lulu0119 in https://github.com/moeru-ai/airi/pull/1584 * fix(stage-*): onboarding model selection footer overlap and list height by @lulu0119 in https://github.com/moeru-ai/airi/pull/1583 * feat(stage-pocket): WebSocket status indicator + shared i18n by @LemonNekoGH in https://github.com/moeru-ai/airi/pull/1586 * feat(stage-tamagotchi,stage-ui,server-sdk,server-runtime): zero-trust websocket authentication by @dasilva333 in https://github.com/moeru-ai/airi/pull/1582 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1587 * feat(stage-tamagotchi): added weather API + tool for widget calling by @NJX-njx in https://github.com/moeru-ai/airi/pull/1588 * feat(stage-ui): let AIRI see tool failures in LLM context (captureToolErrors + xsai patches) by @lulu0119 in https://github.com/moeru-ai/airi/pull/1602 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1603 * perf(vishot): compress and downscale AVIF screenshots by @Neko-233 in https://github.com/moeru-ai/airi/pull/1598 * fix(stage-ui): improve LLM KV-cache compatibility for datetime context injection by @luoling8192 in https://github.com/moeru-ai/airi/pull/1593 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1608 * fix(stage-tamagotchi): no longer being able to build electron due to nested pack by @nekomeowww in https://github.com/moeru-ai/airi/pull/1609 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1613 * chore(i18n): update translations by @github-actions[bot] in https://github.com/moeru-ai/airi/pull/1616 **Full Changelog**: https://github.com/moeru-ai/airi/compare/v0.8.5-beta.4...v0.9.0