Skip to content

v0.9.0

Choose a tag to compare

@nekomeowww nekomeowww released this 10 Apr 07:01
· 361 commits to main since this release
dd284f0
image

New Contributors

What's Changed

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

Full Changelog: v0.8.5-beta.4...v0.9.0