Commit Graph
701 Commits
Author SHA1 Message Date
88fac74702 fix(stage-ui): correct provider source filter categories (#1929)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: LemonNeko <self@lemonneko.moe>
2026-06-02 16:02:00 +00:00
RainbowBird ee3ae8fc31 refactor(server): tts migrate to unspeech 2026-06-02 17:34:08 +08:00
RainbowBird c64e48c233 refactor(server): nanoid 2026-06-02 15:40:05 +08:00
RainbowBird 1936a22c95 refactor(server): split openai v1 route pipeline
Separate OpenAI-compatible route wiring from chat, speech, catalog, billing, and telemetry pipeline code.

Signed-off-by: RainbowBird <git@luoling.moe>

Commit-Message-Assisted-by: Claude (via Claude Code)
2026-06-02 15:39:25 +08:00
RainbowBird 03018a6a1e refactor(server): use es-toolkit clamp for query bounds (#1923) 2026-06-02 15:00:37 +08:00
Lilia_Chenandautofix-ci[bot] cb5c0783e7 feat(stage-tamagotchi-godot): G1.3 default visual baseline (#1904)
## Summary

Add the G1.3 default visual baseline for `stage-tamagotchi-godot`.

This moves the Godot stage from a model-loading/runtime skeleton toward
a default presentation stage: fixed sky environment, visual grid ground,
centre marker, fixed lighting rig, camera ground constraint, and focused
material/rendering verification.

## Changes

- Add a fixed runtime visual preset for the Godot stage
  - WorldEnvironment with the existing stage-ui-three HDRI skybox
  - visual-only grid ground at world `Y=0`
  - centre `T` marker at the world origin
  - fixed directional light rig replacing the old single `OmniLight3D`

- Reuse the existing three-stage HDRI asset
- resolve
`packages/stage-ui-three/src/components/Environment/assets/sky_linekotsi_23_HDRI.hdr`
from a workspace checkout
  - do not copy or move the asset into Godot `assets/`
  - keep release packaging for the shared HDRI as a follow-up

- Add camera ground constraint in view-state rules
  - clamp camera position `Y` during view-state normalisation / commit
- applies uniformly to local input, settings-driven patches, and future
remote/agent patches

- Patch vendored Godot MToon shader behaviour
  - disable implicit WorldEnvironment ambient light for MToon materials
- use Godot alpha scissor / alpha-to-coverage path for cutout MToon
variants
- document the local vendor patch and removal conditions in
`docs/vendor-patches.md`

- Improve Godot rendering defaults
  - enable 3D MSAA
  - render 3D at 2x scale to avoid low-DPI/viewport scaling aliasing

- Add verification harnesses
- C# engine-local checks for camera ground constraint and HDRI asset
resolution
- Godot material rendering check scene for AvatarSample A/B material
import coverage

- Clean stage root presentation
  - remove the old on-screen runtime status label
  - keep Electron bridge and scene/view runtime wiring intact

## Notes

The HDRI path resolution is intentionally workspace-only in this PR.
Release packaging for sharing the three-stage HDRI with the exported
Godot sidecar remains a follow-up.

The MToon shader changes are deliberate vendor patches, recorded in
`docs/vendor-patches.md`, because `ambient_light_disabled`,
`alpha_to_coverage`, and alpha scissor behaviour are shader-level
changes rather than runtime material parameters.

The material rendering check validates imported material structure, not
visual golden output.

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-05-30 22:42:26 +08:00
RainbowBird 6e871253e7 feat(server): langfuse 2026-05-30 19:35:37 +08:00
0xSelenicDoveandautofix-ci[bot] b84d59438c fix(ci): upgrade playwright to ^1.60.0 to resolve install hang on node 24 (#1896)
### Description
Upgrades Playwright from `^1.59.1` to `^1.60.0` across the monorepo
workspace.

### Why is this needed?
In clean CI environments using Node.js 24 (the current LTS), Playwright
versions older than `1.60.0` hang indefinitely during the zip extraction
phase of `playwright install chromium`.

This is a known compatibility issue with Playwright's older extraction
utility (`yauzl`) running on Node 24+. Playwright resolved this bug in
version `1.60.0`. Upgrading ensures the CI test pipeline runs smoothly
without hanging.

### Proposed Changes
- Upgraded `"playwright"` to `^1.60.0` in:
  - Root `package.json`
  - `packages/vishot-runner-browser/package.json`
  - `packages/vishot-runner-electron/package.json`
  - `services/twitter-services/package.json`
- Regenerated `pnpm-lock.yaml` via `pnpm install`.

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-05-29 19:07:58 +08:00
0xSelenicDove 32e4acc89f test: resolve spine typecheck and unit test failures in CI (#1895) 2026-05-28 21:16:33 +08:00
RainbowBird 6abd813cfd chore(server): tracing undici 2026-05-27 18:00:39 +08:00
DrHuangMHT 7f9eeb715d fix(stage-*): improve cursor tracking (#1842) 2026-05-20 22:30:38 +08:00
Makito 4dbf630f32 chore(stage-tamagotchi): patch uiohook-napi to use prebuilt binaries and skip postinstall build 2026-05-20 15:27:22 +09:00
Makito 9ae21307db chore(stage-tamagotchi): skip electron-rebuild on uiohook-napi with minimal edits 2026-05-20 12:10:16 +09:00
Makito 7c76ea680c chore(pnpm): fix pnpm-workspaces issues and update catalog for vitest 2026-05-20 11:38:20 +09:00
MakitoandLilia-Chen d97b40d3bb fix(stage-tamagotchi): move uiohook-napi to deps and externalize from vite
Co-authored-by: Lilia-Chen <chenalenavenger@gmail.com>
2026-05-20 11:30:25 +09:00
Makito f86d86c04c feat(stage-tamagotchi,stage-shared): listen keyup for global shortcut with uiohook 2026-05-20 03:07:54 +09:00
Lovehsigure_520andautofix-ci[bot] 04eb616936 fix(ci): repair pnpm lockfile snapshots (#1847)
## Summary

- Repair two stale Vitest lockfile references left after the current
main branch merge state.
- Restore `pnpm install --frozen-lockfile` so scheduled workflows can
reach their actual jobs.

## Testing

- `pnpm install --frozen-lockfile --ignore-scripts`
- `git diff --check`

## Context

The manually triggered `Update Sponsors SVG` workflow failed before
SponsorKit ran because `pnpm install --frozen-lockfile` could not find
the lockfile entry for a Vitest peer snapshot.

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-05-19 19:27:14 +08:00
nyueki 4542a9d290 feat(stage-ui-spine): add Spine 2D runtime integration (#1810) 2026-05-19 19:13:35 +08:00
Lovehsigure_520 4549be1601 chore(ci): resolve OpenCollective 401 in sponsors workflow (#1843) 2026-05-19 19:11:03 +08:00
Nashchennc 8f1d3c6ab6 feat(core-agent): add chat orchestrator runtime (#1826) 2026-05-19 19:08:36 +08:00
DrHuangMHT c2bf73c95d fix(stage-*): follow-up fix for #1696 (#1809) 2026-05-19 13:54:41 +08:00
RainbowBird a78eaaa4a9 test(server): integration test 2026-05-18 23:33:25 +08:00
RainbowBird bf1aba757c feat(server): stream tts provider 2026-05-18 23:33:24 +08:00
RainbowBird af17e9cbc2 feat(server): llm & tts gateway (#1837) 2026-05-18 23:31:07 +08:00
RainbowBird 3984677b01 feat(analytics): integrate PostHog for server-side event tracking
- Added a new PostHog client for capturing server-side business events such as Stripe webhooks and subscription state changes.
- Implemented various tracking functions for pricing funnel steps, character creation, and chat session starts.
- Enhanced the flux meter tests to handle partial charges and report unbilled flux correctly.
- Updated the CharacterDialog and Flux settings pages to track user interactions with analytics events.
- Introduced a mechanism to identify users on PostHog based on authentication state to ensure accurate funnel tracking.
- Added necessary dependencies for PostHog integration in the project.
2026-05-15 16:20:47 +08:00
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
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
RainbowBird d24b22a561 refactor(server/otel): hono otel integrate 2026-05-11 12:01:57 +08:00
DrHuangMHT 24da875aa6 refactor(stage-*): improve transcription UX and DX (#1685) 2026-05-09 19:09:39 +08:00
RainbowBird d0e2b450cd feat(stage-ui): chat sync (#1775) 2026-05-08 21:14:00 +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 99bb1eaddd test: migrate more test into browser mode, fix all existing tests 2026-05-07 18:48:39 +08:00
Neko Ayaka 8e691cfc13 feat(airi-screenshot): added 2026-05-06 17:33:34 +08:00
Weathercold d9dd2862e9 chore(ci): Remove CI concurrency group & small fixes (#1758)
## Description

<!-- Please insert your description here and especially provide info
about the "what" this PR is solving -->

It has no effect. The actions are run in parallel anyway. They have been
previously updated to not fail when run in parallel.

## Linked Issues

<!-- Optional, if you have any -->

## Additional Context

<!-- e.g. is there anything you'd like reviewers to focus on? -->
2026-05-04 06:37:35 +08:00
RainbowBirdandLiet Blue 0af7d294a8 feat(auth): oidc jwt bearer plugin & linked social accounts (#1753)
Co-authored-by: Liet Blue <127093491+lietblue@users.noreply.github.com>
2026-04-28 16:56:51 +08:00
Iro cb7e058067 fix(stage-ui): correct stream reuse when switching sources + improve capture pipeline (#1744) 2026-04-28 14:50:59 +08:00
RainbowBirdandLiet Blue 172e4ce59c feat(auth): email login & profile (#1745)
Co-authored-by: Liet Blue <127093491+lietblue@users.noreply.github.com>
2026-04-28 00:07:38 +08:00
Neko 06fd6d9223 chore(stage-web): added Web Haptics devtools (#1736) 2026-04-27 01:57:08 +08:00
刘梓恒 2e9020a06f fix(computer-use-mcp): route target clicks through action executor (#1727)
---------

Co-authored-by-agent: Antigravity <antigravity@gemini.com>
2026-04-26 05:53:15 +08:00
刘梓恒 d7402ade9f feat(stage-tamagotchi,stage-ui,computer-use-mcp): intro agent-owned session and ghost pointer phases (#1649) 2026-04-25 04:14:33 +08:00
刘梓恒 632aa1ad99 [1/3] feat(desktop): add desktop observation and overlay baseline (#1647)
---------

Co-authored-by-agent: Antigravity <antigravity@gemini.com>
Co-authored-by-agent: Codex <267193182+codex@users.noreply.github.com>
2026-04-24 23:43:40 +08:00
NJXandautofix-ci[bot] f7ac65289a feat(stage-ui): should handle WebGPU device-loss (#1680)
---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-04-24 23:30:58 +08:00
Richard Pinedo 4e6da5ef04 feat(stage-*): port artistry & chatbox enhancements (#1636)
Co-authored-by-agent: Unknown <unknown@example.com>
2026-04-24 23:25:04 +08:00
Neko Ayaka 47074021c0 chore(deps): updated eventa 2026-04-24 04:12:25 +08:00
Lilia_Chen 6a61248cd4 refactor(stage-tamagotchi-godot): move to engines dir (#1715) 2026-04-23 19:30:53 +08:00
Neko Ayaka a3249ccd68 feat(stage-tamagotchi,stage-ui,ui): input should not flink, added retry for errored item, adjusted button 2026-04-23 01:09:46 +08:00
567fd6666e feat(stage-tamagotchi-godot): initiation of Godot stage (#1697)
## Description

This PR introduces `@proj-airi/stage-tamagotchi-godot` as the initial
Godot C# workspace package for the desktop-only `stage-tamagotchi` stage
runtime track.

The current scope is intentionally limited to G0 bootstrap work:
- add the Godot/.NET project files and workspace wrapper files
- establish the package boundary for the Godot-backed desktop stage
runtime
- add a minimal runnable scene and script so the Godot project can be
opened, built, and executed inside the repo

Concretely, this PR adds:
- the new `packages/stage-tamagotchi-godot` package
- Godot project files (`project.godot`, `.csproj`, `.sln`, editor/config
files)
- a minimal `stage-root` scene and `StageRoot.cs` script
- basic visible scene contents for runtime validation (`Camera3D`,
`OmniLight3D`, `Box`)
- a package README describing scope and ownership boundaries
- minimal package scripts for build/typecheck via `dotnet build`

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: LemonNeko <self@lemonneko.moe>
Co-authored-by: Garfield Lee <Garfield550@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Neko <neko@ayaka.moe>
2026-04-23 01:04:01 +08:00