10 Commits
Author SHA1 Message Date
Ilya Bogdanov 8d9abc1a04 fix(stage-*) Fix Inablility to verify openrouter and remove api key requirement on OpenAI compatible #566 (#582) 2025-09-14 20:55:24 +08:00
Ilya Bogdanov ea80efdb5f feat(stage-ui): Refactor providers and add credential validation (#474) 2025-09-03 12:53:05 +08:00
Ilya Bogdanov 52c5492a95 fix(chat): Handle IME composition in chat input (#512) 2025-08-29 01:03:10 +08:00
Ilya Bogdanov 5ec5b24f07 feat(chat): Enhanced Chat Experience with Multimodality and Optimized Streaming (#445)
* feat(chat): Refactor streaming message handling and add math support
* feat(chat): Basic multimodalities
* fix: language regex and python as default
* fix: refactor llm stream event as one onStreamEvent
2025-08-26 16:53:46 +08:00
Ilya Bogdanov e6048f5af8 fix(stage-tamagotchi): fix first time initialization blank and an overlook (#466) 2025-08-26 14:18:12 +08:00
Ilya BogdanovandNeko ed322d4959 feat(stage-tamagotchi): Make window passthrough outside of Live2D and VRM models (#437)
---------

Co-authored-by: Neko <neko@ayaka.moe>
2025-08-25 13:49:15 +08:00
Ilya BogdanovandNeko 5c1eb33ad8 feat: Refactor Font Configuration for Consistency and Correctness (#409)
* feat(unocss): centralize font configuration and fix cyrillic font handling (#389)

This commit refactors the UnoCSS font configuration to establish a single source of truth and resolve issues with Cyrillic character rendering.

- Centralizes all font definitions within the root uno.config.ts.
- Updates the theme.fontFamily to use a correct fallback chain, ensuring "Comfortaa" is used for Cyrillic characters.
- Restricts the "Kiwi Maru" font to Latin and Japanese character subsets to prevent incorrect application.
- Simplifies application-specific uno.config.ts files by removing redundant local font overrides.

* fix(ui): ensure provider models reload reactively (#407)

This commit resolves a persistent reactivity issue where the model list would not update automatically after changing provider credentials. This was a recurring problem reported by users on Discord.

Previously, the model list was only fetched when the consciousness settings page was first mounted. This meant that if a user updated an API key and navigated back, the page would still display the old, stale model list until the application was fully restarted.

The fix introduces two key changes:

1.  A `watch` effect has been added to the `providers.ts` store. It now monitors `providerCredentials` and automatically refetches the model list for a specific provider whenever its credentials change.
2.  The `consciousness.vue` component now uses the `onActivated` lifecycle hook in addition to `onMounted`. This ensures that the model list is refreshed every time the component becomes active, such as when navigating back to it. A `watch` on the `activeProvider` was also added to handle provider switching within the page.

These changes ensure that the model list is always synchronized with the current provider configuration, providing a much smoother and more intuitive user experience.

Closes #407

---------

Co-authored-by: Neko <neko@ayaka.moe>
2025-08-25 11:44:10 +08:00
Ilya Bogdanov e6cb8d4a12 fix(stage-ui): Ensure display model data consistency across windows (#438) 2025-08-25 11:41:08 +08:00
Ilya BogdanovandNeko bde909fd64 feat: Add generic OpenAI-compatible provider for chat and audio (#415)
This commit introduces a new "OpenAI Compatible" provider, allowing users to connect to any service that implements the OpenAI API specification.

Previously, users were limited to the pre-defined list of providers. With the proliferation of many new AI services and local models (like LM Studio, vLLM, etc.) that expose an OpenAI-compatible endpoint, it has become impractical to add and maintain a separate integration for each one.

This new generic provider solves that problem by offering a single, flexible solution. It clarifies the user's choice by separating the official OpenAI service from other compatible alternatives, improving the overall user experience.

Closes #401, #388

Co-authored-by: Neko <neko@ayaka.moe>

---------

Co-authored-by: Neko <neko@ayaka.moe>
2025-08-25 02:49:31 +08:00
Ilya Bogdanov 8ea98037e5 fix(composables): Correct inverted logic in version check causing infinite loop thus OOM (#421)
Corrects the `satisfiesVersionBy` logic in the `useVersionedLocalStorage` composable. The previous implementation (`v !== '1.0.2'`) was inverted, causing it to return `false` for the valid version. This triggered the `onVersionMismatch` handler, which reset the data, re-triggered the `watch` effect, and resulted in an infinite recursive update loop, crashing the application.

The condition has been changed to `v === '1.0.2' to correctly validate the version and prevent the loop.

I though this is tauri fault, but kek just silly mistake

Fix #414 #375 #400
2025-08-25 01:31:27 +08:00