Commit Graph
1458 Commits
Author SHA1 Message Date
RainbowBird f8d1fa7a64 refactor(server): drop redis stream + worker role (#1792)
The Redis Stream `billing-events` + `worker` Railway role +
advisory-lock poller layered together didn't actually buy us reliability
— `debitFlux` swallowed XADD failures, leaving the door open to "balance
updated, ledger row never written". Collapse the whole thing back to:
`creditFlux` and `debitFlux` write `flux_transaction` ledger rows inline
within the same DB transaction that mutates `user_flux`, and `(user_id,
request_id)` remains the partial unique index that keeps retries safe.

Concrete changes:
- Inline ledger inserts in `BillingService.{debitFlux, creditFlux,
creditFluxFromStripeCheckout, creditFluxFromInvoice}`; drop `billingMq`
and `publishEvent` plumbing entirely.
- `routes/openai/v1` writes `llm_request_log` synchronously via the
existing `requestLogService`; the duplicate `llm-request-log.ts` service
module is removed.
- `bin/run-worker.ts`, `libs/mq/*`,
`services/billing/billing-events.ts`,
`services/billing/billing-consumer-handler.ts`, and matching tests are
deleted. CLI now exposes only `api`.
- `BILLING_EVENTS_*` env vars and the `DEFAULT_BILLING_EVENTS_STREAM`
helper are dropped; `docker-compose.yml` no longer ships a worker
service.
- `docs/ai-context/{workers-and-runtime, billing-architecture,
redis-boundaries-and-pubsub, data-model-and-state,
architecture-overview, README}.md`, `CLAUDE.md`, and the existing
verification docs are updated to describe the single-process synchronous
pipeline.

Tests: 29 files / 247 cases pass. Production deployments need to drop
the worker Railway service after this lands.
2026-05-08 21:14:01 +08:00
hahaqwq eba047328a revert(server): remove .well-known/assetlinks.json (revert #1772) (#1789) 2026-05-08 21:14:01 +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
hahaqwqandRainbowBird ae8552695b feat(server): add .well-known/assetlinks.json for Android deeplinks (#1772)
Co-authored-by: RainbowBird <rbxin2003@outlook.com>
2026-05-08 21:14:00 +08:00
hahaqwq 4ecd51076d fix(stage-pocket,stage-server): correct Android deep link scheme (#1794) 2026-05-08 20:48:55 +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 AyakaandLovehsigure_520 e86ee2f135 fix(stage-tamagotchi): should register handlers before window load
Co-authored-by: Lovehsigure_520 <62863834+Neko-233@users.noreply.github.com>
2026-05-07 18:57:56 +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 35c3471ecd fix(stage-tamagotchi): plugin tools should have faster fail 2026-05-07 16:01:08 +08:00
DrHuangMHT 85627d34ad feat(stage-*): allow setting character offset in landscape (#1696) 2026-05-06 17:04:18 +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
hahaqwq c6e2f727d6 fix(stage-ui): add missing translations (#1773) 2026-05-06 03:37:24 +08:00
Neko Ayaka 6dd370433a release: v0.10.1 2026-05-05 14:10:55 +08:00
RainbowBird 40284514d4 fix(stage-*): isDev constant 2026-05-04 20:04:24 +08:00
RainbowBird 7edfa4291e chore(stage-*): only show status-island in dev mode 2026-05-04 19:56:59 +08:00
RainbowBird 250e7e2eb0 chore(pocket): exclude build and public folder in tsconfig 2026-05-04 19:47:38 +08:00
Neko Ayaka ca722f69b7 release: v0.10.0 2026-05-03 23:17:03 +08:00
felix tremblay 3d848c9914 fix(stage-tamagotchi): add xwayland dev script for Wayland Electron deadlock (#1764) 2026-05-02 16:15:39 +08:00
刘梓恒 5bd0b19e84 fix(stage-tamagotchi): harden overlay isolation and iframe coordinates (#1751)
---------

Co-authored-by-agent: Antigravity <antigravity@gemini.com>
2026-04-29 22:52:00 +08:00
Neko Ayaka 09b0390aba refactor(stage-ui): advanced tool rendering, error handling, and ui improvements 2026-04-29 06:05:49 +08:00
Neko Ayaka c9fbbfd783 fix(stage-ui,stage-tamagotchi,core-agent): tool error should be handled 2026-04-29 00:45:05 +08:00
Neko Ayaka 1ca972f362 refactor(stage-tamagotchi): consolidate electron plugin static assets 2026-04-29 00:45:04 +08:00
RainbowBird 6f0b7e0b9b feat(auth): delete account (#1756) 2026-04-28 20:53:00 +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
Makito d413225346 chore(ci): change code sign style to manual for pocket-ios release build 2026-04-28 03:03:17 +09:00
RainbowBird 5d5f739eba revert(server/docker): restore assets distribution image 2026-04-28 00:54:13 +08:00
RainbowBird 924d3e3005 fix(server/docker): switch from alpine to slim for ui-build to support canvas dependencies 2026-04-28 00:47:39 +08:00
RainbowBird e36f015c7c fix(server/docker): remove cache mount for pnpm install in Dockerfile 2026-04-28 00:39:38 +08:00
RainbowBird c0859c9798 fix(server/docker): squash auth ui to server image 2026-04-28 00:34:14 +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 0c8c99dae3 Revert "fix(stage-ui): correct stream reuse when switching sources + improve capture pipeline" (#1741)
Reverts moeru-ai/airi#1731
2026-04-27 15:22:19 +08:00
4ba5b13c0d fix(stage-ui): correct stream reuse when switching sources + improve capture pipeline (#1731)
---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-04-27 15:14:10 +08:00
Neko 06fd6d9223 chore(stage-web): added Web Haptics devtools (#1736) 2026-04-27 01:57:08 +08:00
Makito 3566e8b4a8 feat(stage-tamagotchi,stage-shared): essentials for global shortcut 2026-04-25 21:30:10 +09:00
RainbowBird f292ab9b99 feat(ui): add ErrorBoundary component for error handling in Vue 2026-04-25 17:23:43 +08:00
Neko Ayaka 2b125d5fff fix(plugin-sdk-tamagotchi): improved naming, use @moeru/eventa offered window-message adapter 2026-04-25 06:50:47 +08:00
Neko Ayaka 0f0d88a8aa chore(stage-ui,stage-tamagotchi): removed useless 2026-04-25 06:34:55 +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
Asish Kumar 4b133b169f fix(stage-tamagotchi): render server-channel QR always as dark-on-light (#1725) 2026-04-25 04:05:29 +08:00
Asish Kumar fe568e8e99 fix(stage-tamagotchi): show friendly empty state when widgets window has no id (#1726) 2026-04-25 04:04:17 +08:00
Lilia_Chenandautofix-ci[bot] c6c0494998 feat(stage-tamagotchi-godot): add Godot stage G0 sidecar preview (#1724)
## Summary

Add the G0 Godot Stage sidecar preview for `stage-tamagotchi`.

## Design

- Keep Electron as the desktop host and run Godot as a separate sidecar
window by design.
- Use the settings window as the entry point for starting/stopping the
experimental Godot Stage.
- Require explicit `GODOT4` in development mode instead of
auto-discovering local Godot installs.
- Use the packaged sidecar under `process.resourcesPath/godot-stage` in
the packaged runtime.
- Close the Godot WebSocket lifecycle channel on startup failure and
stage shutdown.

## Changes

- Add the Electron main-side Godot Stage lifecycle service.
- Add renderer/settings wiring for switching to the experimental Godot
Stage.
- Add the minimal Godot stage runtime skeleton and WebSocket handshake
path.
- Add Godot export presets for sidecar builds.
- Add sidecar path verification for the Godot export preset and
`electron-builder` resource contract.
- Document the development runtime setup and packaging expectations.

## CI/CD

- Align Godot CI to `4.6.2`.
- Add Linux Godot export smoke coverage as the fastest CI export path.
- Add sidecar contract verification to CI.
- Run packaged sidecar verification after `electron-builder --dir`.

CD is intentionally deferred in this PR. The release workflow still
needs a later step to export the Godot sidecar before packaging release
artefacts.

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-04-25 00:56:03 +08:00
刘梓恒 255ce71cba feat(stage-tamagotchi,computer-use-mcp): implement browser-native DOM action routing (#1648)
---------

Co-authored-by-agent: Antigravity <antigravity@gemini.com>
Co-authored-by-agent: Codex <267193182+codex@users.noreply.github.com>
2026-04-25 00:08:22 +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
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 3cc9c87b0f fix(stage-tamagotchi): stage widget tool was broken 2026-04-24 04:12:26 +08:00
Neko Ayaka 47074021c0 chore(deps): updated eventa 2026-04-24 04:12:25 +08:00