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)