Commit Graph
4265 Commits
Author SHA1 Message Date
Neko d0bf3eb286 fix(stage-ui): preserve chat state across Electron windows (#2347) 2026-08-24 02:05:57 +08:00
Neko 0229c4f1d7 fix(stage-ui): use validator from provider definition for validating (#2346) 2026-08-24 01:36:29 +08:00
Neko f65e55bafc fix(stage-ui): persist provider validation status (#2345) 2026-08-23 18:24:30 +08:00
Neko f790a96d70 feat(stage-ui): add thinking model option (#2343) 2026-08-23 05:24:33 +08:00
Neko 30eeb8bd40 fix(stage-web): improve performance visualizer (#2344) 2026-08-23 05:23:03 +08:00
Weathercoldandgithub-actions[bot] 273cbd338a chore(nix): update pnpmDeps hash (#2342)
Auto-generated by CI to keep Nix pnpmDeps hash up-to-date.

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-22 18:39:34 +00:00
Weathercold 69e7f7ee1f chore(nix): update pnpmDeps hash (#2341) 2026-08-23 02:30:06 +08:00
Neko Ayaka cf31b695d9 fix(deps): added required eslint-plugin-format 2026-08-23 00:40:14 +08:00
Neko Ayaka bf74806024 fix(stage-web): better input and font 2026-08-23 00:39:50 +08:00
Neko 9694f282d6 fix(stage-web): better chat bubble animation (#2340) 2026-08-22 19:54:24 +08:00
Neko 67a0410c4d fix(stage-web): stabilize mobile keyboard layout (#2338) 2026-08-22 14:38:22 +08:00
Neko b6d0809ecb perf(stage-ui): virtualize chat history (#2334) 2026-08-21 05:32:21 +08:00
Neko a24d2496e4 fix(stage-ui): normalize tool schemas per provider (#2330) 2026-08-20 21:40:13 +08:00
Neko 00240e2535 fix(stage-layouts): clarify active view controls (#2331) 2026-08-20 16:59:17 +08:00
leafyy 7756d921a7 fix(stage-ui): define deterministic chat math syntax (#2328) 2026-08-20 16:30:01 +08:00
RainbowBird f6969d07c5 feat(chat-ws): authenticate v2 after connect (#2309)
Signed-off-by: RainbowBird <git@luoling.moe>
2026-08-20 14:24:41 +08:00
Weathercoldandgithub-actions[bot] ca61935282 chore(nix): update pnpmDeps hash (#2329)
Auto-generated by CI to keep Nix pnpmDeps hash up-to-date.

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-20 04:34:05 +00:00
RainbowBird d22daf6b4c feat(chat-ws): add versioned Eventa protocols (#2308)
Signed-off-by: RainbowBird <git@luoling.moe>
2026-08-20 12:24:47 +08:00
Neko Ayaka 702b4c862d feat(stage-tamagotchi): adaptive controls island 2026-08-19 23:30:57 +08:00
RainbowBird ae170f1ee0 fix(analytics): trim automatic product events (#2325) 2026-08-19 22:30:32 +08:00
Neko 4d68da4310 fix(stage-ui): unify module settings panels (#2327) 2026-08-19 18:14:38 +08:00
Mark Xianand冼健聪 db89aaeee3 fix(stage-ui): incorrect DeepSeek provider instance normalized (#2287)
## Summary
- show the DeepSeek thinking-mode control for configured provider
instances whose id is generated
- compare provider configs after filling omitted schema defaults so new
defaults like `thinkingMode: auto` do not mark old empty DeepSeek
configs as configured

## Tests
- `pnpm -rF @proj-airi/stage-ui run test:run
src/stores/providers/config-defaults.test.ts
src/libs/providers/providers/deepseek/index.test.ts`
- `pnpm exec moeru-lint
packages/stage-ui/src/stores/providers/config-defaults.ts
packages/stage-ui/src/stores/providers/config-defaults.test.ts
packages/stage-ui/src/stores/providers/provider.ts
packages/stage-pages/src/pages/settings/providers/chat/[providerId].vue`
- `git diff --check`

Co-authored-by: 冼健聪 <mark.xian@evenrealities.com>
2026-08-19 17:27:41 +08:00
Weathercold 75277ce901 chore(nix): update pnpmDeps hash (#2270) 2026-08-19 17:26:26 +08:00
葱姜蒜 abc8b62f9e fix(stage-ui): localize Volcengine model descriptions (#2323) 2026-08-19 17:17:32 +08:00
Neko Ayaka d67056435a docs(AGENTS.md): updated 2026-08-19 17:14:42 +08:00
Neko Ayaka 91829034a2 chore(.gitignore): updated 2026-08-19 17:14:28 +08:00
RainbowBird 0062070d7d fix(api): correct gateway and database pool alerts (#2324) 2026-08-19 08:30:55 +00:00
葱姜蒜 7de1f9d3a9 fix(stage-ui): update Volcengine Coding Plan models (#2321) 2026-08-19 14:18:33 +08:00
Neko 2bc1c51c29 feat(stage-tamagotchi): animate tray window alignment (#2319) 2026-08-19 14:17:39 +08:00
Neko 5e95e56d62 fix(stage-ui,stage-web,stage-tamagotchi): capture imported Live2D models in Polaroid (#2320) 2026-08-19 14:17:03 +08:00
Neko Ayaka 5c0916baa3 fix(stage-ui,stage-tamagotchi,stage-web,stage-pocket): incorrectly initialized 2026-08-19 04:17:21 +08:00
Neko 8322727f9b feat(stage-tamagotchi): move connection status into controls island (#2317) 2026-08-19 03:58:18 +08:00
Neko c595fd645c fix(i18n): remove Neko from default ReLU prompt (#2316) 2026-08-19 03:58:07 +08:00
Neko 2770267dc7 fix(stage-tamagotchi): sync pairing settings and QR state (#2318) 2026-08-18 19:55:15 +00:00
mullung e45fca041c docs(ko): sync Korean docs with English manual restructure (#2296) 2026-08-19 03:34:27 +08:00
Neko Ayaka d2b837fa01 fix(stage-ui,stage-tamagotchi,stage-web): infinite write config causing forever loading 2026-08-19 01:07:30 +08:00
Neko 677329427f fix(plugin-sdk-tamagotchi): allow nullable enum tool parameters (#2314) 2026-08-18 20:28:55 +08:00
RainbowBird d832137fde fix(analytics): remove model discovery events (#2312) 2026-08-18 11:41:10 +08:00
RainbowBird 5ea7bb1083 feat(auth): add lastSeenAt field to user schema and tests 2026-08-17 21:57:25 +08:00
RainbowBird bd790098d2 fix(api): load Drizzle migrations at runtime (#2307) 2026-08-17 11:19:53 +00:00
RainbowBird 07b26b530f fix(analytics): remove TS product events table (#2306) 2026-08-17 10:16:44 +00:00
AdairLi c4778686ff fix(stage-ui): flashing and unreadable validator (#2302)
## Description

Fix the flashing validator on the provider setting page which is unable
to read and interface. Now it is stable to show the status of the
provider and help users to do the further config.

## Linked Issues

#2301 


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Improved credential validation stability by preventing repeated
validation for equivalent credential values.
* Preserved debounced validation behavior and manual test state resets.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-08-17 11:24:20 +08:00
Neko 73c05d37eb fix(stage-tamagotchi): prevent auxiliary renderer request storms (#2304) 2026-08-16 22:08:18 +08:00
yzxcj797 d768f5a334 docs: fix three groups of dead links (#2300) 2026-08-16 20:44:21 +08:00
RainbowBird 85a3f08987 fix(docker): update drizzle-migration build process to prevent virtual import issues 2026-08-16 17:03:38 +08:00
RainbowBird c25791a357 refactor(auth): replace admin plugin with ban guard (#2303) 2026-08-16 16:16:36 +08:00
RainbowBird 88625a8d84 feat(api): hot-reload ConfigKV from Postgres (#2289)
## Summary

- Add the `config_kv` schema and Drizzle migration `0020`.
- Keep the ConfigKV schema, cache store, and invalidation contract in
the Resource API.
- Read ConfigKV through a five-minute Redis cache with PostgreSQL
fallback.
- Reload Router and TTS voice state through `configkv:invalidate`.
- Keep Auth rate limits fixed at 20 requests per 60 seconds.

## Stack

- Depends on #2294 for the Redis test implementation.
- This PR adds ConfigKV-specific cache-aside and Pub/Sub tests on top of
that implementation.

## Deployment

Run migration `0020` before this runtime reaches production traffic.

Then freeze ConfigKV writes. Audit and backfill the data with
[proj-airi/backend#2](https://github.com/proj-airi/backend/pull/2).
Merge
[proj-airi/backend#4](https://github.com/proj-airi/backend/pull/4)
first, so
the fixed Auth rate-limit keys are skipped.

Keep writes frozen until the hashes match and two API instances pass the
Pub/Sub reload check. This PR does not run production DDL or data
migration.

## Verification

- `pnpm exec vitest run <ConfigKV cache store, sync subscriber, and Auth
rate-limit tests>` (12 tests passed)
- `pnpm -F @proj-airi/api-server typecheck`
- `git diff --check`

See #2294 for its frozen-install, ESLint, and 73-test verification.

## Visual changes

None. This PR changes backend persistence and rate-limit wiring only.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Added centralized configuration storage with validation, caching,
refresh, and automatic synchronization across services.
- Configuration updates now refresh related language-model and
text-to-speech settings automatically.

- **Bug Fixes**
- Improved recovery after service reconnects by clearing stale
configuration and reloading current values.
- Invalid or unavailable configuration data now produces clearer
service-unavailable responses.

- **Changes**
- Authentication rate limiting now uses a consistent limit of 20
requests per minute per client.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: RainbowBird <git@luoling.moe>
Signed-off-by: RainbowBird <rbxin2003@outlook.com>
2026-08-15 22:24:32 +08:00
RainbowBirdandautofix-ci[bot] ab5e43ae0c test(server): use ioredis-mock for Redis behavior (#2294)
## Summary

- Replace Redis command fakes with `ioredis-mock` in API tests.
- Run the production Lua scripts through `EVAL`.
- Keep Redis behavior tests on the same command and Pub/Sub
implementation used by production code.

## Stack

- This PR is the base for #2289.
- It replaces #2291 as the merge-to-`main` unit. #2291 merged into the
old
  ConfigKV branch before the stack could be reordered.

## Tests

- `pnpm install --frozen-lockfile --offline --ignore-scripts`
- `pnpm exec vitest run <6 changed API test files>` (73 tests passed)
- `pnpm exec eslint <7 changed API TypeScript files>`
- `git diff --check`

## Visual changes

None. This PR changes test infrastructure only.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Tests**
  * Added isolated in-memory Redis support for automated testing.
* Updated billing, Stripe, flux, concurrency, and user-deletion tests to
use a shared Redis test setup.
* Improved verification of Redis operations while preserving existing
test coverage and expected outcomes.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: RainbowBird <rbxin2003@outlook.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-15 21:43:30 +08:00
RainbowBird 44cd0cfe68 fix(stage-ui): normalize streaming transcription audio chunks (#2285) 2026-08-15 19:37:45 +08:00
RainbowBird 3da1ce163c chore(server): remove admin routes 2026-08-15 14:27:59 +08:00