Commit Graph
1827 Commits
Author SHA1 Message Date
Lilia_Chenandautofix-ci[bot] bc7dda3d5f feat(stage-tamagotchi): add experimental Godot stage sidecar (#1830)
## Summary

Adds the experimental Godot stage sidecar path for `stage-tamagotchi`.

This PR wires the existing Tamagotchi model selection flow into an
external Godot runtime window. The renderer gates Godot scene input to
VRM models, Electron main materialises the selected model bytes to a
local file, and the Godot sidecar receives the native path over a local
WebSocket bridge before importing and displaying the avatar at runtime.

## What Changed

- Added a typed Godot scene input contract with `format: "vrm"`.
- Added renderer-side VRM-only gating before sending selected model data
to Electron main.
- Added Electron main sidecar management for:
  - launching Godot
  - starting the local WebSocket bridge
  - materialising selected VRM bytes under app `userData`
  - forwarding scene apply messages to Godot
  - optional remote debugging support
- Added Godot runtime scripts for:
  - sidecar startup and WebSocket orchestration
  - message envelope parsing
  - avatar import and atomic replacement
  - runtime VRM import through Godot `GLTFDocument`
- Added engine-local docs for runtime import, live debugging, vendor
patches, and current VRM support boundaries.
- Removed temporary tests after using them to verify the glue behaviour
locally, to keep the review surface smaller.

## Vendor Code Note

A large part of this PR is vendored Godot add-on code, not AIRI business
logic.

The bulk of the added files under:

- `engines/stage-tamagotchi-godot/addons/vrm/**`
- `engines/stage-tamagotchi-godot/addons/Godot-MToon-Shader/**`

comes from V-Sekai Godot VRM / MToon add-ons. These files are required
because Godot plugins are project-local source/assets rather than
package-manager dependencies.

The intended review scope for vendor code is limited to:

- source baseline metadata
- license/plugin config
- Godot-generated metadata notes
- the documented local patch in `addons/vrm/vrm_extension.gd`

The application/runtime code to review is mainly under:

- `apps/stage-tamagotchi/src/shared/eventa/index.ts`
- `apps/stage-tamagotchi/src/renderer/pages/settings/models/`
- `apps/stage-tamagotchi/src/main/services/airi/godot-stage/`
- `engines/stage-tamagotchi-godot/scripts/`

## Current Boundary

This is still an experimental G1 Godot sidecar path.

The runtime scene input contract accepts `.vrm` files only. The current
Godot runtime importer covers the VRM 0.x path used by the local fixture
through AIRI’s runtime bridge over the vendored VRM extension. VRM 1.0
editor import support exists in the vendored add-on, but the sidecar
runtime importer does not yet register the full `VRMC_*` extension set,
so this PR does not claim full VRM 1.0 runtime support.

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-05-15 14:37:32 +08:00
RainbowBird eada7e8c4e chore: update @moeru/eventa to version 1.0.0-beta.5 in pnpm-workspace.yaml 2026-05-15 02:51:23 +08:00
Neko 541b9fa53c fix(server-runtime): ignore duplicate websocket listener (#1829) 2026-05-14 01:53:41 +08:00
ArkandNeko a161badad8 feat(stage-ui): add copy feedback to chat action menu (#1689)
---------

Co-authored-by: Neko <neko@ayaka.moe>
Co-authored-by-agent: Unknown <unknown@example.com>
2026-05-13 12:39:44 +08:00
Asish Kumar cb30e41dc6 fix(stage-tamagotchi): shorten websocket status tooltip (#1822) 2026-05-13 12:11:13 +08:00
felix tremblayandautofix-ci[bot] 7b7fb0f238 fix(stage-ui-live2d): prevent motions from overriding lip sync mouth values (#1783)
---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by-agent: Unknown <unknown@example.com>
2026-05-13 12:10:03 +08:00
LiaoZiqi-GZFLS 0086eee9d6 fix(stage-tamagotchi): language persistence electron fix for #1658 (#1812) 2026-05-13 12:07:25 +08:00
Doji 2c432fc1c8 refactor(stage-web,stage-ui): replace warpdrive plugin with unplugin-basemove (#1818) 2026-05-13 12:03:30 +08:00
Nashchennc e882ba7dd6 feat(core-agent): harden registry buckets and bridge ingest isolation (#1819) 2026-05-13 12:02:35 +08:00
github-actions[bot]andCrowdin Bot 3b3c5f6aaf chore(i18n): update translations (#1813)
This PR contains updated translations from Crowdin. Created from [GitHub
Actions](https://github.com/moeru-ai/airi/blob/main/.github/workflows/crowdin-cron-sync.yml).

You can review the source of translations
[here](https://crowdin.com/project/proj-airi)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-05-12 23:13:33 +08:00
Makitoandautofix-ci[bot] d02a76f944 feat(stage-tamagotchi,stage-shared): wire up global shortcut service and devtools (#1811)
1. Introduce the global shortcut service
1. Add more concrete failure reasons for shortcut registration attempts
1. Add a devtool page to test (un) registering and triggering shortcuts

--- 

<img width="1174" height="921" alt="Screenshot 2026-05-10 at 19 33 45"
src="https://github.com/user-attachments/assets/10712013-fd49-4285-bdc9-4e6955d9c3a7"
/>

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-05-10 20:38:47 +09:00
Ryan Leiandleiyutian 37807b84d6 fix(ui): add openOnClick prop to Combobox for reliable dropdown opening (#1795)
---------

Co-authored-by: leiyutian <leiyutian@echo.tech>
Co-authored-by-agent: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-09 22:44:27 +08:00
github-actions[bot]andCrowdin Bot 24cc7a3e12 chore(i18n): update translations (#1799)
This PR contains updated translations from Crowdin. Created from [GitHub
Actions](https://github.com/moeru-ai/airi/blob/main/.github/workflows/crowdin-cron-sync.yml).

You can review the source of translations
[here](https://crowdin.com/project/proj-airi)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-05-09 20:08:32 +08:00
DrHuangMHT 24da875aa6 refactor(stage-*): improve transcription UX and DX (#1685) 2026-05-09 19:09:39 +08:00
Neko Ayaka 7bc3781ee2 fix(stage-tamagotchi): missing bridge for spark:notify 2026-05-09 03:42:45 +08:00
RainbowBird 9d2d43855c refactor(chat): update datetime prefixing logic for user messages and improve formatting 2026-05-09 00:38:50 +08:00
RainbowBird 54b0af0a08 chore(stage-pages): resolve type 2026-05-08 21:34:11 +08:00
RainbowBird 99956014fa feat(server): admin api (#1788) 2026-05-08 21:14:00 +08:00
RainbowBird d0e2b450cd feat(stage-ui): chat sync (#1775) 2026-05-08 21:14:00 +08:00
RainbowBird 9d6d99192c feat(auth): enhance token refresh handling and clear auth state on errors 2026-05-08 21:14:00 +08:00
Neko Ayaka 13566667e1 fix(stage-ui): error item should fit content width, reasoing should not have pt 2026-05-08 21:10:32 +08:00
hahaqwq 4ecd51076d fix(stage-pocket,stage-server): correct Android deep link scheme (#1794) 2026-05-08 20:48:55 +08:00
github-actions[bot]andCrowdin Bot bbaf0c99f6 chore(i18n): update translations (#1790)
This PR contains updated translations from Crowdin. Created from [GitHub
Actions](https://github.com/moeru-ai/airi/blob/main/.github/workflows/crowdin-cron-sync.yml).

You can review the source of translations
[here](https://crowdin.com/project/proj-airi)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-05-08 20:26:49 +08:00
hahaqwq ef54ce0c7c feat(stage-pocket,stage-server): support Android deep link for official server login (#1786) 2026-05-08 18:38:03 +08:00
Neko Ayaka 37433b98a2 refactor(stage-ui): new structure for models, services, stores 2026-05-08 17:03:46 +08:00
Neko Ayaka 6d61699d10 release: v0.10.2 2026-05-07 19:36:33 +08:00
Neko Ayaka 99bb1eaddd test: migrate more test into browser mode, fix all existing tests 2026-05-07 18:48:39 +08:00
Neko Ayaka ef60c157dc fix(stage-ui): staled loaded model, desync character card model selection 2026-05-07 17:27:34 +08:00
Ryan Lei 39b119641f chore(i18n): add zh-Hans translations for scenes settings (#1784) 2026-05-07 14:38:24 +08:00
Neko Ayaka 8e691cfc13 feat(airi-screenshot): added 2026-05-06 17:33:34 +08:00
DrHuangMHT 85627d34ad feat(stage-*): allow setting character offset in landscape (#1696) 2026-05-06 17:04:18 +08:00
Sambhram 33cd61111f fix(stage-ui): expose silence duration and correct threshold display (#1774) 2026-05-06 17:02:30 +08:00
github-actions[bot] abc4341525 chore(i18n): update translations (#1781) 2026-05-06 17:01:46 +08:00
gaoyiman 48d52a2dbd feat(stage-ui): add ARK chat providers (#1670) 2026-05-06 03:45:46 +08:00
Doji 81dbd71c31 feat(stage-tamagotchi,stage-ui): rewrite mcp server settings page and normalize tool registration (#1722) 2026-05-06 03:39:50 +08:00
kmiit 5205f369bc feat(providers): add Xiaomi Mimo (#1760) 2026-05-06 03:39:10 +08:00
felix tremblay e50e140a70 feat(stage-ui,core-agent): show reasoning-delta events for thinking models (#1770) 2026-05-06 03:38:17 +08:00
hahaqwq c6e2f727d6 fix(stage-ui): add missing translations (#1773) 2026-05-06 03:37:24 +08:00
icefair 1e80470f02 chore(docs): new updated manual for setup and use (#1776) 2026-05-06 03:36:57 +08:00
Neko Ayaka 6dd370433a release: v0.10.1 2026-05-05 14:10:55 +08:00
Neko Ayaka a9ed0c180c fix(stage-ui): rollback to previous implementation of model selector 2026-05-05 04:17:17 +08:00
Neko Ayaka 8a88d233f2 refactor(server-runtime): split modules 2026-05-05 02:30:45 +08:00
RainbowBird 40284514d4 fix(stage-*): isDev constant 2026-05-04 20:04:24 +08:00
github-actions[bot]andCrowdin Bot de9bc52f75 chore(i18n): update translations (#1771)
This PR contains updated translations from Crowdin. Created from [GitHub
Actions](https://github.com/moeru-ai/airi/blob/main/.github/workflows/crowdin-cron-sync.yml).

You can review the source of translations
[here](https://crowdin.com/project/proj-airi)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-05-04 13:39:50 +08:00
Ryanba a5d45bdd77 fix(server-runtime): preserve explicit empty data destinations (#1635) 2026-05-04 06:40:13 +08:00
Pratyush Sharma af9c0203e7 fix(stage-ui): auto-degrade content arrays for strict providers (#1740) 2026-05-04 06:38:33 +08:00
Neko Ayaka ca722f69b7 release: v0.10.0 2026-05-03 23:17:03 +08:00
github-actions[bot]andCrowdin Bot ce9b808b5f chore(i18n): update translations (#1767)
This PR contains updated translations from Crowdin. Created from [GitHub
Actions](https://github.com/moeru-ai/airi/blob/main/.github/workflows/crowdin-cron-sync.yml).

You can review the source of translations
[here](https://crowdin.com/project/proj-airi)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-05-03 16:33:49 +08:00
Neko Ayaka 32087c05de feat(docs): authors region, published at, more tweaks on ui, @assets() fix 2026-05-02 22:47:35 +08:00
Neko Ayaka 755550915f chore(docs): indentation of nested sidebar 2026-05-02 14:38:15 +08:00