v0.7.0

moeru-ai/airiv0.7.0Aug 4, 2025by nekomeowww

AI Summary

This major version introduces a complete build system overhaul using Turborepo and ROLLDOWN, along with the migration to VitePress for documentation. It loads Whisper and VAD models for voice capabilities and adds comprehensive i18n support.

Key Highlights

  • Turborepo build system migration
  • VitePress documentation migration
  • Whisper and VAD model loading
  • Comprehensive i18n package
  • ROLLDOWN build tool instead of Vite

New Features

  • Turborepo build system
  • VitePress documentation
  • Whisper and VAD models
  • i18n package
  • ROLLDOWN build tool

Full Release Notes

## What's Changed

* perf(packages/ccc): buildless by @kwaa in https://github.com/moeru-ai/airi/pull/211
* perf: use turborepo for build by @kwaa in https://github.com/moeru-ai/airi/pull/212
* ci: set turborepo cache by @kwaa in https://github.com/moeru-ai/airi/pull/213
* perf(ui): buildless by @kwaa in https://github.com/moeru-ai/airi/pull/215
* perf(ui-loading-screens): buildless by @kwaa in https://github.com/moeru-ai/airi/pull/216
* perf(ui-transitions): buildless by @kwaa in https://github.com/moeru-ai/airi/pull/217
* perf(stage-ui): buildless by @kwaa in https://github.com/moeru-ai/airi/pull/218
* refactor(ui,stage-ui,stage-app,stage-tamagotchi): migrate to use `@proj-airi/unocss-preset-chromatic` by @nekomeowww in https://github.com/moeru-ai/airi/pull/219
* perf(apps): use `rolldown-vite` instead of `vite` by @kwaa in https://github.com/moeru-ai/airi/pull/214
* fix(i18n): add MCP Server module title and description to en/zh-CN locales by @SliverKeigo in https://github.com/moeru-ai/airi/pull/221
* feat(stage-tamagotchi): allow visible on all workspace by @LemonNekoGH in https://github.com/moeru-ai/airi/pull/223
* install unplugin-unused as non-optional dep by @jokester in https://github.com/moeru-ai/airi/pull/225
* refactor: use `@moeru/std` by @kwaa in https://github.com/moeru-ai/airi/pull/226
* fix(settings): unify dark theme background color for content area and header by @SliverKeigo in https://github.com/moeru-ai/airi/pull/229
* perf(eslint): use moeru config & oxlint by @kwaa in https://github.com/moeru-ai/airi/pull/227
* Revert "perf(eslint): use moeru config & oxlint" by @nekomeowww in https://github.com/moeru-ai/airi/pull/231
* chore: add candle deps by @luoling8192 in https://github.com/moeru-ai/airi/pull/232
* chore: update rust fmt rules by @luoling8192 in https://github.com/moeru-ai/airi/pull/235
* feat: load whisper by @luoling8192 in https://github.com/moeru-ai/airi/pull/234
* chore: replace println! to info! by @luoling8192 in https://github.com/moeru-ai/airi/pull/236
* fix: Client retry logic, redundant listener set by @Mirza-Samad-Ahmed-Baig in https://github.com/moeru-ai/airi/pull/233
* feat: progress emitter by @luoling8192 in https://github.com/moeru-ai/airi/pull/237
* fix: cargo toolchain by @luoling8192 in https://github.com/moeru-ai/airi/pull/238
* refactor: dynamic import `@tauri-apps/plugin-os` by @luoling8192 in https://github.com/moeru-ai/airi/pull/239
* fix: settings style by @luoling8192 in https://github.com/moeru-ai/airi/pull/240
* fix: progress by @luoling8192 in https://github.com/moeru-ai/airi/pull/242
* refactor: rename icon-animation by @luoling8192 in https://github.com/moeru-ai/airi/pull/243
* feat: resource progress store by @luoling8192 in https://github.com/moeru-ai/airi/pull/244
* fix(stage-web,stage-tamagotchi): i18n by @liliumneko in https://github.com/moeru-ai/airi/pull/246
* feat: load vad model by @luoling8192 in https://github.com/moeru-ai/airi/pull/247
* feat(playground): detect circle by @luoling8192 in https://github.com/moeru-ai/airi/pull/245
* refactor(stage-tamagotchi): make all small components into inline plugins by @nekomeowww in https://github.com/moeru-ai/airi/pull/248
* chore(ci): improve build test CI by @nekomeowww in https://github.com/moeru-ai/airi/pull/250
* feat(i18n): new package for locales by @nekomeowww in https://github.com/moeru-ai/airi/pull/249
* feat(i18n): translate for many keys by @liliumneko in https://github.com/moeru-ai/airi/pull/251
* feat: shiny loading progress ✨ by @Menci in https://github.com/moeru-ai/airi/pull/252
* chore(stage-web): Player2 speech by @lorisj in https://github.com/moeru-ai/airi/pull/253
* feat(ci): support nightly build by @nekomeowww in https://github.com/moeru-ai/airi/pull/256
* feat(ci): build only by @nekomeowww in https://github.com/moeru-ai/airi/pull/257
* refactor(stage-tamagotchi): type-safe commands codegen poc by @sumimakito in https://github.com/moeru-ai/airi/pull/258
* chore(gemini): add the initial style guide for suggestions by @sumimakito in https://github.com/moeru-ai/airi/pull/260
* feat(stage-web): launch setup by @Me1td0wn76 in https://github.com/moeru-ai/airi/pull/259
* fix(stage-web): failed to launch when `localhost.crt` and `localhost.pem` is missing. by @qyl27 in https://github.com/moeru-ai/airi/pull/262
* fix: update paths for relocated docs in .github director by @AprilNEA in https://github.com/moeru-ai/airi/pull/266
* feat(stage-ui): Chat Bubble with minimalism theme by @nekomeowww in https://github.com/moeru-ai/airi/pull/267
* fix(ci): ETIMEDOUT for ipv4 & ENETUNREACH for ipv6 when fetching fonts from `@unocss/preset-web-fonts` by @nekomeowww in https://github.com/moeru-ai/airi/pull/268
* fix(workspace): missing fonts by @nekomeowww in https://github.com/moeru-ai/airi/pull/269
* feat(docs): migrate to vitepress with @unovue/reka-ui's theme by @nekomeowww in https://github.com/moeru-ai/airi/pull/224
* fix(docs): auto redirect to target language by @nekomeowww in https://github.com/moeru-ai/airi/pull/270
* fix(docs): blog links by @nekomeowww in https://github.com/moeru-ai/airi/pull/271
* feat(stage): change scale and position of live2d model by @LemonNekoGH in https://github.com/moeru-ai/airi/pull/275
* refactor(stage(live2d(settings))): merge ui, extract store by @LemonNekoGH in https://github.com/moeru-ai/airi/pull/277
* style(stage-web,stage-tamagotchi): improved model settings page, use standard components by @nekomeowww in https://github.com/moeru-ai/airi/pull/278
* docs(README): add disclaimer by @sumimakito in https://github.com/moeru-ai/airi/pull/286
* docs(README): typos by @Shiuki in https://github.com/moeru-ai/airi/pull/287
* i18n(docs): contribution guide by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/285
* docs(devlog): DevLog @ 2025.07.18 by @LemonNekoGH in https://github.com/moeru-ai/airi/pull/289
* feat: show placeholder when lists has no data by @typed-sigterm in https://github.com/moeru-ai/airi/pull/293
* refactor(stage-ui): `<Alert> <ErrorContainer>` by @typed-sigterm in https://github.com/moeru-ai/airi/pull/295
* feat(stage-ui): Live2D vs VRM page switch botton and VRM model uploading functionality by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/290
* chore(deps): bump rustix from 0.38.17 to 0.38.44 in /apps/stage-tamagotchi/src-tauri/libs/esaxx-rs by @dependabot[bot] in https://github.com/moeru-ai/airi/pull/274
* fix: model base url input & deepseek default base url by @typed-sigterm in https://github.com/moeru-ai/airi/pull/300
* fix: pwa service worker registering by @typed-sigterm in https://github.com/moeru-ai/airi/pull/299
* fix(stage-*): passed `tools` without check & discovery for provider by @nekomeowww in https://github.com/moeru-ai/airi/pull/296
* chore: use AVIF instead of PNG/JPG as more as possible by @typed-sigterm in https://github.com/moeru-ai/airi/pull/301
* feat(stage-ui): VRM model postioning functionalities by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/302
* debug(workspace): unocss fonts split shared testing by @nekomeowww in https://github.com/moeru-ai/airi/pull/282
* feat(airi-plugin-web-extension): init by @nekomeowww in https://github.com/moeru-ai/airi/pull/276
* feat(stage-ui): better tts input chunking by @sumimakito in https://github.com/moeru-ai/airi/pull/306
* feat: Add Azure AI Foundry provider for consciousness by @Inokinoki in https://github.com/moeru-ai/airi/pull/272
* feat(stage-ui): VRM model setting page: FOV and Rotation by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/307
* refactor(stage-ui): replace grapheme cluster reader from clustr by @sumimakito in https://github.com/moeru-ai/airi/pull/308
* feat(stage-ui): VRM model setting: camera psotion (view scale) by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/309
* feat(stage-ui) add player2 to onboarding and fix config by @lorisj-elefant in https://github.com/moeru-ai/airi/pull/311
* feat(docs): implement parallax for cover and home page by @sumimakito in https://github.com/moeru-ai/airi/pull/313
* feat(stage-ui): animation start coordinate anchor + vrm position logic fix by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/314
* feat(stage-ui): allow user to disable Live2D mouse tracking by @baysonfox in https://github.com/moeru-ai/airi/pull/303
* fix(stage-ui): In the prod, the camera was not being set correct pos and target by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/317
* fix(docs): Changed the "注意" into `tip` by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/320
* fix(docs): mark toggles as client-only by @sumimakito in https://github.com/moeru-ai/airi/pull/321
* refactor(stage-tamagotchi,crates): no more cuda required and candle removed by @nekomeowww in https://github.com/moeru-ai/airi/pull/323
* feat(stage-ui): Now the VRM model can always look to the camera! by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/322
* chore(vscode): disable rust-analyzer cache priming by @sumimakito in https://github.com/moeru-ai/airi/pull/324
* fix(docs): window not defined by @nekomeowww in https://github.com/moeru-ai/airi/pull/325
* feat(docs): support specifying cover image for blog posts by @nekomeowww in https://github.com/moeru-ai/airi/pull/288
* fix(stage-ui): clean up models on HMR by @sumimakito in https://github.com/moeru-ai/airi/pull/327
* feat(stage-ui): LookAt 3 functions: looking at camera; looking at mouse; looking forward (tracking disabled) by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/326
* feat(nix): add nix flake and package by @Weathercold in https://github.com/moeru-ai/airi/pull/319
* fix(nix): bump version, remove cuda support by @Weathercold in https://github.com/moeru-ai/airi/pull/329
* refactor(stage-web): remove chat tabs by @kwaa in https://github.com/moeru-ai/airi/pull/331
* fix(docs): call writeHead before write and remove next() by @sumimakito in https://github.com/moeru-ai/airi/pull/332
* fix(stage-ui): correctly chunk tokens streamed to tts pipeline by @sumimakito in https://github.com/moeru-ai/airi/pull/330
* fix(docs): width not constraint for cover by @nekomeowww in https://github.com/moeru-ai/airi/pull/333
* fix(stage-web): Now only the last AIRI's chat will be showing as 3 dots loading status. by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/334
* feat(stage-ui): introduce helpers for stream and tts chunking by @sumimakito in https://github.com/moeru-ai/airi/pull/335
* chore(deps): bump xsai, std by @kwaa in https://github.com/moeru-ai/airi/pull/338
* fix(stage-ui) TTS decimals are now retained, AIRI will no longer say "25" if it's "2.5" by @Lilia-Chen in https://github.com/moeru-ai/airi/pull/340
* fix(stage-ui): enqueue 2x TTS_FLUSH_INSTRUCTION tokens by @sumimakito in https://github.com/moeru-ai/airi/pull/342
* docs(devlog): DevLog @ 2025.08.01 by @sumimakito in https://github.com/moeru-ai/airi/pull/339
* docs(devlog): refactor and apply previous suggestions by @sumimakito in https://github.com/moeru-ai/airi/pull/343
* fix(stage-tamagotchi): use rdev for keyboard events monitoring by @nekomeowww in https://github.com/moeru-ai/airi/pull/344

## New Contributors

* @jokester made their first contribution in https://github.com/moeru-ai/airi/pull/225
* @Mirza-Samad-Ahmed-Baig made their first contribution in https://github.com/moeru-ai/airi/pull/233
* @liliumneko made their first contribution in https://github.com/moeru-ai/airi/pull/246
* @Me1td0wn76 made their first contribution in https://github.com/moeru-ai/airi/pull/259
* @AprilNEA made their first contribution in https://github.com/moeru-ai/airi/pull/266
* @Shiuki made their first contribution in https://github.com/moeru-ai/airi/pull/287
* @Lilia-Chen made their first contribution in https://github.com/moeru-ai/airi/pull/285
* @dependabot[bot] made their first contribution in https://github.com/moeru-ai/airi/pull/274
* @Inokinoki made their first contribution in https://github.com/moeru-ai/airi/pull/272
* @lorisj-elefant made their first contribution in https://github.com/moeru-ai/airi/pull/311
* @baysonfox made their first contribution in https://github.com/moeru-ai/airi/pull/303

**Full Changelog**: https://github.com/moeru-ai/airi/compare/v0.6.1...v0.7.0