v0.7.2-beta.3
moeru-ai/airiv0.7.2-beta.3Sep 11, 2025by nekomeowww
AI Summary
This feature-rich release introduces syntax highlighting for code blocks, new AI providers like Modelscope, and Linux package support (deb/rpm). It also enhances the chat experience with multimodality and improves the visual quality of the 3D environment.
Key Highlights
- Syntax highlighting and horizontal scroll for chat code blocks
- Modelscope provider support
- Linux deb and rpm packages as installation formats
- Transparent window for Tamagotchi
- VRM skybox environmental lighting functionality
New Features
- Syntax highlighting
- Modelscope provider
- Linux packages
- Transparent window
- VRM skybox lighting
Full Release Notes
### 🚀 Features - Add syntax highlighting and horizontal scroll to chat code blocks - by **Arjun Mehta** in https://github.com/moeru-ai/airi/issues/394 [<samp>(31daa)</samp>](https://github.com/moeru-ai/airi/commit/31daae13) - Refactor Font Configuration for Consistency and Correctness - by **Ilya Bogdanov** in https://github.com/moeru-ai/airi/issues/409 [<samp>(5c1eb)</samp>](https://github.com/moeru-ai/airi/commit/5c1eb33a) - Improve onboarding model selection - by **Typed SIGTERM** and **Neko Ayaka** in https://github.com/moeru-ai/airi/issues/416 [<samp>(2f545)</samp>](https://github.com/moeru-ai/airi/commit/2f54547e) - More clear error message for baseUrl - by **MisakaKumomi 御坂云见** in https://github.com/moeru-ai/airi/issues/479 [<samp>(b169c)</samp>](https://github.com/moeru-ai/airi/commit/b169cd99) - Improve status indicator accessibility in settings - by **Arjun Mehta** and **Typed SIGTERM** in https://github.com/moeru-ai/airi/issues/441 [<samp>(261c5)</samp>](https://github.com/moeru-ai/airi/commit/261c5c57) - Modelscope provider - by **yrk111222** in https://github.com/moeru-ai/airi/issues/493 [<samp>(252ca)</samp>](https://github.com/moeru-ai/airi/commit/252ca8ef) - Ollama setting pages now has validating animation - by **MisakaKumomi 御坂云见** in https://github.com/moeru-ai/airi/issues/523 [<samp>(698bf)</samp>](https://github.com/moeru-ai/airi/commit/698bfb06) - **chat**: - Enhanced Chat Experience with Multimodality and Optimized Streaming - by **Ilya Bogdanov** in https://github.com/moeru-ai/airi/issues/445 [<samp>(5ec5b)</samp>](https://github.com/moeru-ai/airi/commit/5ec5b24f) - Store message in localstorage, add a button for cleanup - by **RainbowBird** in https://github.com/moeru-ai/airi/issues/560 [<samp>(92e9e)</samp>](https://github.com/moeru-ai/airi/commit/92e9e084) - **ci**: - Proper Dockerfile for current project setup & release workflow - by **Neko Ayaka** [<samp>(d8b5d)</samp>](https://github.com/moeru-ai/airi/commit/d8b5d3f2) - **client**: - Optimize WebSocket client performance & reliability - by **Iro** in https://github.com/moeru-ai/airi/issues/516 [<samp>(009a4)</samp>](https://github.com/moeru-ai/airi/commit/009a4342) - **devlog**: - Add nms example for devlog-2026-08-26 - by **LemonNeko** in https://github.com/moeru-ai/airi/issues/537 [<samp>(a1f13)</samp>](https://github.com/moeru-ai/airi/commit/a1f13e4c) - **linux**: - Add deb, rpm packages as installation formats - by **hobbycoder** in https://github.com/moeru-ai/airi/issues/524 [<samp>(f0ef1)</samp>](https://github.com/moeru-ai/airi/commit/f0ef1bb0) - **nix**: - Auto-update pnpmDeps hash - by **Weathercold** in https://github.com/moeru-ai/airi/issues/490 [<samp>(52596)</samp>](https://github.com/moeru-ai/airi/commit/525964ba) - **services/telegram-bot**: - Better o11y - by **Neko Ayaka** [<samp>(cda0e)</samp>](https://github.com/moeru-ai/airi/commit/cda0ec12) - **stage-tamagotchi**: - Make window passthrough outside of Live2D and VRM models - by **Ilya Bogdanov** in https://github.com/moeru-ai/airi/issues/437 [<samp>(ed322)</samp>](https://github.com/moeru-ai/airi/commit/ed322d49) - **stage-tamagotchi-electron**: - Transparent - by **Neko Ayaka** [<samp>(cf27d)</samp>](https://github.com/moeru-ai/airi/commit/cf27d3f8) - Always on top & loading - by **Neko Ayaka** [<samp>(3d1e3)</samp>](https://github.com/moeru-ai/airi/commit/3d1e317b) - Use eventa for type safe event & invoke - by **Neko Ayaka** [<samp>(5139d)</samp>](https://github.com/moeru-ai/airi/commit/5139d44d) - **stage-ui**: - NPR skybox environmental lighting functionality added - by **Lilia_Chen** in https://github.com/moeru-ai/airi/issues/457 [<samp>(f6d63)</samp>](https://github.com/moeru-ai/airi/commit/f6d63495) - Refactor providers and add credential validation - by **Ilya Bogdanov** in https://github.com/moeru-ai/airi/issues/474 [<samp>(ea80e)</samp>](https://github.com/moeru-ai/airi/commit/ea80efdb) - **stage-web**: - Added audit recorder demo as devtools - by **Neko Ayaka** [<samp>(606aa)</samp>](https://github.com/moeru-ai/airi/commit/606aae2c) - Add dark mode toggle button - by **RainbowBird** in https://github.com/moeru-ai/airi/issues/562 [<samp>(f2ff0)</samp>](https://github.com/moeru-ai/airi/commit/f2ff0c7b) - **tamagotchi**: - Generate preview image when import live2d model - by **LemonNeko** in https://github.com/moeru-ai/airi/issues/555 [<samp>(d55cd)</samp>](https://github.com/moeru-ai/airi/commit/d55cdc22) ### 🐞 Bug Fixes - Avoid historical messages be shown as loading - by **Lee Yunjin** [<samp>(a739e)</samp>](https://github.com/moeru-ai/airi/commit/a739e10d) - Lint - by **Neko Ayaka** [<samp>(0c127)</samp>](https://github.com/moeru-ai/airi/commit/0c127d3b) - Remove duplicate pitch adjustment and replace hardcoded message - by **Pranav Yerramaneni** in https://github.com/moeru-ai/airi/issues/506 [<samp>(6142d)</samp>](https://github.com/moeru-ai/airi/commit/6142d16d) - Lint - by **Neko Ayaka** [<samp>(77958)</samp>](https://github.com/moeru-ai/airi/commit/77958ff0) - Ollama config page error - by **MisakaKumomi 御坂云见** in https://github.com/moeru-ai/airi/issues/522 [<samp>(8b0c1)</samp>](https://github.com/moeru-ai/airi/commit/8b0c1802) - TTS lags behind conversation - by **Iro** and **Makito** in https://github.com/moeru-ai/airi/issues/494 [<samp>(24d67)</samp>](https://github.com/moeru-ai/airi/commit/24d678b3) - Typecheck - by **Neko Ayaka** [<samp>(a6347)</samp>](https://github.com/moeru-ai/airi/commit/a63478eb) - Typecheck - by **Neko Ayaka** [<samp>(a76a8)</samp>](https://github.com/moeru-ai/airi/commit/a76a8306) - Build - by **Neko Ayaka** [<samp>(da2e8)</samp>](https://github.com/moeru-ai/airi/commit/da2e8d51) - Build - by **Neko Ayaka** [<samp>(33a09)</samp>](https://github.com/moeru-ai/airi/commit/33a09f99) - Wrong alibaba speech name - by **dass90** in https://github.com/moeru-ai/airi/issues/568 [<samp>(34665)</samp>](https://github.com/moeru-ai/airi/commit/34665d79) - UsLogg from @guiiai/logg error - by **Neko Ayaka** [<samp>(20cb2)</samp>](https://github.com/moeru-ai/airi/commit/20cb21f8) - Sanitize v-html inputs with DOMPurify - by **Makito** in https://github.com/moeru-ai/airi/issues/573 [<samp>(33156)</samp>](https://github.com/moeru-ai/airi/commit/33156349) - Build for x86_64 darwin - by **Neko Ayaka** [<samp>(d196d)</samp>](https://github.com/moeru-ai/airi/commit/d196d3b0) - Added missing deps - by **Neko Ayaka** [<samp>(60b85)</samp>](https://github.com/moeru-ai/airi/commit/60b855d5) - **audio**: - Wrap buffer in Float32Array to allow safe indexing - by **Iro** in https://github.com/moeru-ai/airi/issues/543 [<samp>(5408b)</samp>](https://github.com/moeru-ai/airi/commit/5408b890) - **audio-analyzer**: - Improve stability and typings - by **Iro** in https://github.com/moeru-ai/airi/issues/551 [<samp>(7af50)</samp>](https://github.com/moeru-ai/airi/commit/7af50133) - **audio-recorder**: - Resolve bugs and ensure proper recording behavior - by **Iro** in https://github.com/moeru-ai/airi/issues/561 [<samp>(3536f)</samp>](https://github.com/moeru-ai/airi/commit/3536f798) - **chat**: - Handle IME composition in chat input - by **Ilya Bogdanov** in https://github.com/moeru-ai/airi/issues/512 [<samp>(52c54)</samp>](https://github.com/moeru-ai/airi/commit/52c5492a) - **docs**: - Bad prose style - by **Neko Ayaka** [<samp>(696b9)</samp>](https://github.com/moeru-ai/airi/commit/696b97bd) - **speech**: - Update custom voice name handling and input label - by **Pranav Yerramaneni** in https://github.com/moeru-ai/airi/issues/529 [<samp>(e90cb)</samp>](https://github.com/moeru-ai/airi/commit/e90cb608) - **stage-tamagotchi**: - Typecheck - by **Makito** [<samp>(1eed2)</samp>](https://github.com/moeru-ai/airi/commit/1eed214c) - Fix first time initialization blank and an overlook - by **Ilya Bogdanov** in https://github.com/moeru-ai/airi/issues/466 [<samp>(e6048)</samp>](https://github.com/moeru-ai/airi/commit/e6048f5a) - Override `isClickThrough` when mouse is in - by **hobbycoder** in https://github.com/moeru-ai/airi/issues/482 [<samp>(fdd46)</samp>](https://github.com/moeru-ai/airi/commit/fdd46408) - Focus settings window if already exist - by **Makito** [<samp>(9e226)</samp>](https://github.com/moeru-ai/airi/commit/9e226184) - **stage-tamagotchi-electron**: - Build - by **Neko Ayaka** [<samp>(31872)</samp>](https://github.com/moeru-ai/airi/commit/3187281a) - Id & name - by **Neko Ayaka** [<samp>(16527)</samp>](https://github.com/moeru-ai/airi/commit/16527bd3) - **stage-ui**: - Ensure display model data consistency across windows - by **Ilya Bogdanov** in https://github.com/moeru-ai/airi/issues/438 [<samp>(e6cb8)</samp>](https://github.com/moeru-ai/airi/commit/e6cb8d4a) - Add back reset button to transcription provider settings - by **Makito** [<samp>(9ea04)</samp>](https://github.com/moeru-ai/airi/commit/9ea0419c) - **stage-ui,stage-web**: - Emit literals asap and show streaming messages - by **Makito** in https://github.com/moeru-ai/airi/issues/451 [<samp>(36d74)</samp>](https://github.com/moeru-ai/airi/commit/36d74ca3) - **stage-web**: - Fetch model on active provider change - by **Makito** [<samp>(99242)</samp>](https://github.com/moeru-ai/airi/commit/9924282e) - Typecheck - by **Makito** [<samp>(af61a)</samp>](https://github.com/moeru-ai/airi/commit/af61a847) - Condition to render the streaming message - by **Makito** [<samp>(dc897)</samp>](https://github.com/moeru-ai/airi/commit/dc8977a0) - Remove extra text - by **Typed SIGTERM** [<samp>(8c814)</samp>](https://github.com/moeru-ai/airi/commit/8c814ca2) - Support on pc submit with enter - by **Ricardo Miss** in https://github.com/moeru-ai/airi/issues/549 [<samp>(e4758)</samp>](https://github.com/moeru-ai/airi/commit/e4758f83) - Adjust padding and layout in ChatHistory and InteractiveArea components - by **RainbowBird** in https://github.com/moeru-ai/airi/issues/559 [<samp>(2ef82)</samp>](https://github.com/moeru-ai/airi/commit/2ef827dd) - **stage-web,i18n**: - Description for hearing provider selection - by **Makito** [<samp>(0deb8)</samp>](https://github.com/moeru-ai/airi/commit/0deb808a) - **whisper**: - Improve robustness and fix decoder prefix handling - by **Iro** in https://github.com/moeru-ai/airi/issues/550 [<samp>(fe87b)</samp>](https://github.com/moeru-ai/airi/commit/fe87be39) ## New Contributors * @Arjunmehta312 made their first contribution in https://github.com/moeru-ai/airi/pull/394 * @rjeczalik made their first contribution in https://github.com/moeru-ai/airi/pull/442 * @kirisakisama made their first contribution in https://github.com/moeru-ai/airi/pull/450 * @Iro96 made their first contribution in https://github.com/moeru-ai/airi/pull/459 * @xn80a32 made their first contribution in https://github.com/moeru-ai/airi/pull/460 * @Neko-233 made their first contribution in https://github.com/moeru-ai/airi/pull/486 * @gg582 made their first contribution in https://github.com/moeru-ai/airi/pull/482 * @yrk111222 made their first contribution in https://github.com/moeru-ai/airi/pull/493 * @DevMello made their first contribution in https://github.com/moeru-ai/airi/pull/506 * @ChenyangLi4288 made their first contribution in https://github.com/moeru-ai/airi/pull/528 * @sss22213 made their first contribution in https://github.com/moeru-ai/airi/pull/534 * @ricardomiss made their first contribution in https://github.com/moeru-ai/airi/pull/549 * @yanghui1-arch made their first contribution in https://github.com/moeru-ai/airi/pull/568 ##### [View changes on GitHub](https://github.com/moeru-ai/airi/compare/v0.7.2-beta.2...v0.7.2-beta.3)