Commit Graph

2359 Commits

Author SHA1 Message Date
Kwaroran
e8ec986f65 Add server backup 2025-01-30 13:50:16 +09:00
Kwaroran
7446e7fc83 chore: update application version to 148.0.0 2025-01-29 05:39:26 +09:00
Kwaroran
338d1cfec2 Add models 2025-01-29 05:38:26 +09:00
Kwaroran
62ea10cc32 fix: remove logit_bias from request body if empty 2025-01-29 04:25:59 +09:00
kwaroran
342def3824 feat: improve HypaV3 (#727)
# PR Checklist
- [x] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [x] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [x] Have you added type definitions?

# Description
- fix: handle null case for firstMessage in HypaV3 modal
- fix: resolve mobile dual-action translation in HypaV3 modal
  - Implements shift+click (desktop) and double tap (mobile) for
regenerating translations while maintaining regular click/tap for cached
translations.
- feat: add auto-scroll to translations in HypaV3 modal
- feat: add settings button to HypaV3 modal header
- feat: add cut-after button in HypaV3 summary header
- feat: add HypaV2 to V3 conversion in HypaV3 modal
- feat: add process regex script option in HypaV3 modal
  - when enabled, reroll function will process regex script.
- fix: improve HypaV3 modal responsive for mobile
- feat: add search button in HypaV3 modal
2025-01-26 22:44:06 +09:00
Bo26fhmC5M
f0d2c3e0ed feat: add setArg to plugin v2 2025-01-24 01:54:00 +09:00
Bo26fhmC5M
cd65eaf400 feat: add process regex script option in HypaV3 modal 2025-01-19 18:05:11 +09:00
Kwaroran
46eed96c86 feat: update application version to 147.0.0 2025-01-17 22:58:30 +09:00
kwaroran
e073d66bca feat: improve HypaV3 (#721)
# PR Checklist
- [x] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [x] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [x] Have you added type definitions?

# Description
- feat: add translate button to HypaV3 modal
- feat: add dual-action translation (cached/regenerate) in HypaV3 modal
- Implements shift+click (desktop) and double tap (mobile) for
regenerating translations while maintaining regular click/tap for cached
translations.
- feat: improve ratio sliders interaction in HypaV3 settings
- feat: add lastSelectedSummaries property to store selected memory
indices
- feat: display next message to be summarized in HypaV3 modal
2025-01-17 22:54:08 +09:00
kwaroran
1d98a63d4c feat: apply positionParser to alternate global note (#724)
# PR Checklist
- [ ] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [ ] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [ ] Have you added type definitions?

# Description
This PR ensures that the 'position' lorebook decorator is correctly
applied to alternate (replaced) GlobalNotes.
Thank you for your time and consideration.
2025-01-17 22:53:45 +09:00
bangonicdd
172efe4d68 suggestion: apply 'processScriptFull()' to 'editprocess' mode regex script 2025-01-17 03:58:20 +09:00
bangonicdd
23fd706d9b feat: apply positionParser to alternate global note 2025-01-17 00:23:14 +09:00
Bo26fhmC5M
3c62317f3a feat: add lastSelectedSummaries property to store selected memory indices 2025-01-17 00:17:12 +09:00
Bo26fhmC5M
6a13b33103 refactor: extract repeated summarization logic into retryableSummarize function 2025-01-16 23:36:32 +09:00
Bo26fhmC5M
fac11bfe67 fix: improve HypaV3 logging 2025-01-16 22:40:08 +09:00
Bo26fhmC5M
3e234dcb15 feat: add dual-action translation (cached/regenerate) in HypaV3 modal
Implements shift+click (desktop) and double tap (mobile) for regenerating translations while maintaining regular click/tap for cached translations.
2025-01-15 13:45:34 +09:00
Bo26fhmC5M
a10a2c5502 refactor: extract HypaV3 modal into separate component 2025-01-14 13:01:14 +09:00
Bo26fhmC5M
f3c6278d21 feat: add important button in HypaV3 Data modal 2025-01-13 23:30:18 +09:00
Bo26fhmC5M
4176a647a5 fix: restore undefined value from null after importing hypaDataV3 2025-01-13 19:31:24 +09:00
Bo26fhmC5M
a1158ebdb1 fix: adjust memory selection order 2025-01-13 14:09:18 +09:00
Bo26fhmC5M
cfdd5d6bf5 fix: resolve summarize function issues with instruct35 2025-01-13 13:30:10 +09:00
Bo26fhmC5M
04e640a791 refactor: improve array conversion and sorting syntax 2025-01-13 13:02:22 +09:00
Bo26fhmC5M
ab7a2aa499 feat: add resummarize button to HypaV3 Data modal 2025-01-12 23:32:20 +09:00
Bo26fhmC5M
f08c31612b fix: prevent over-summarization and improve logging 2025-01-12 17:15:11 +09:00
Bo26fhmC5M
6e49970b76 fix: correct targetTokens calculation in summarization and improve logging 2025-01-12 14:49:01 +09:00
Bo26fhmC5M
85bdf1d544 fix: improve memory token tracking and logging 2025-01-12 13:17:56 +09:00
Bo26fhmC5M
50361d7aa2 feat: Implement HypaV3 ratio-based memory 2025-01-12 11:05:18 +09:00
kwaroran
3b533e911f fix backup in non-tauri environment (#713)
# PR Checklist
- [ ] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [ ] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [ ] Have you added type definitions?

# Description
EN
fix non-tauri environment backup issue. (e.g. backwards reset issue)
fix applying duplicate backup file.

KR
Tauri 환경(로컬리스)가 아닌 상황에서 과거 20개의 백업본 이외에 나머지 백업본을 저장하지 않던 문제를 수정합니다.
(뒤로가기 이슈)
백업본 적용 시 모든 백업본을 적용해보던 로직을 개선합니다.
2025-01-11 01:44:58 +09:00
kwaroran
c363d50aa3 fix: gemini multimodal (#712)
# PR Checklist
- [ ] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [ ] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [ ] Have you added type definitions?

# Description
fix gemini multimodal error.
ERROR MESSAGE : Invalid value at 'contents[6].parts[1]' (oneof), oneof
field 'data' is already set. Cannot set 'text'
2025-01-11 01:44:30 +09:00
kwaroran
edb4964da7 fix: Fix message handling and summarization in HypaV2 (#711)
# PR Checklist
- [x] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [x] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [ ] Have you added type definitions?

# Description
This PR addresses several issues in the HypaV2 memory system:

1. Improved Summarization Error Handling
- Before: When unable to summarize messages while exceeding context
size, HypaV2 would continue and make API requests with unintentionally
truncated context
- After: HypaV2 now provides clear error messages asking users to adjust
their settings when:
  - Unable to summarize last 4 messages
  - A single message exceeds chunk size

2. Message Order Preservation
- Before: lastTwoChats logic was causing the first message (index 1) and
user input (index 2) to appear in the wrong order
- After: Fixed by adjusting the initial index to preserve the original
message sequence

3. Message Filtering
- Added logic to skip unnecessary messages during summarization:
  - Excludes [Start a new chat] message at index 0
  - Skips empty messages
<br>
Requesting review from @LightningHyperBlaze45654
2025-01-11 01:44:10 +09:00
kwaroran
9896b68b7a fix: resolve state_unsafe_mutation in getChatVar() (#707)
# PR Checklist
- [ ] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [ ] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [ ] Have you added type definitions?

# Description
While investigating an issue where `{{getvar::A}}` didn't work properly
in background embedding, I encountered a `state_unsafe_mutation` error.
It appears that modifying the null check operator on the relevant line
can resolve this issue. Thank for your time.
2025-01-11 01:44:01 +09:00
Bo26fhmC5M
7c1faee6f4 fix: Fix message handling and summarization in HypaV2
- Add clear error messages when summarization is not possible
- Fix message order issues caused by lastTwoChats logic
- Skip [Start a new chat] and empty messages during summarization
2025-01-08 20:45:19 +09:00
jinook518
07817c9d8b fix backup 2025-01-08 00:37:31 +09:00
donmarble
2d11b05e6c fix: gemini multimodal text 2025-01-07 23:45:01 +09:00
Kwaroran
64b9b89220 fix: remove geminiBlockOff flag from LLM models 2025-01-07 00:14:58 +09:00
Kwaroran
708faeaea8 chore: update application version to 146.1.0 2025-01-07 00:07:24 +09:00
Kwaroran
9fc8978d1d Add GeminiBlockOff 2025-01-07 00:05:20 +09:00
Kwaroran
59d33a9c8b fix: enhance content-type handling in downloadRisuHub function 2025-01-06 23:13:42 +09:00
bangonicdd
6537e0926c fix: add missing check for regex order flag 2025-01-06 15:39:57 +09:00
bangonicdd
806ec4bc97 fix: resolve state_unsafe_mutation in getChatVar() 2025-01-06 09:32:35 +09:00
Kwaroran
3849d1e781 chore: update application version to 146.0.0 2025-01-06 00:30:59 +09:00
Kwaroran
2ec13a4550 Modify some parts of PR 2025-01-06 00:30:33 +09:00
Kwaroran
c0e1311568 Add branches 2025-01-06 00:24:03 +09:00
kwaroran
aacb60eed9 fix: HypaV2 serialization and token calculation (#701)
# PR Checklist
- [x] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [x] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [x] Have you added type definitions?

# Description
This PR addresses two issues in HypaV2:

1. Fixes JSON serialization of chatMemos in HypaV2Data by converting Set
to string array
2. Corrects token calculation by subtracting tokens from previously
summarized chats

Changes:
- Added SerializableHypaV2Data interface with string[] instead of
Set<string>
- Added conversion functions between HypaV2Data and
SerializableHypaV2Data
- Fixed token calculation by properly accounting for removed chats

Note:
I'm not entirely confident about the token calculation changes. A
thorough review would be appreciated, particularly regarding:
- Whether token subtraction for removed chats is the correct approach
- Potential edge cases in the current implementation 

Please review these changes, especially the token calculation logic, to
ensure it aligns with the intended behavior of the memory system.
2025-01-06 00:11:03 +09:00
LightningHyperBlaze45654
48b377b1ad fix: backup size limit
## Issue track
Previously, the backup loading was depending on ArrayBuffer. In chromium based browsers, ArrayBuffer's size is limited to 2GB, and anything more will fail to read the data.

This affects Tauri too, as Tauri uses Edge webview2 which also is based on chromium.

The proposed change uses file stream instead of ArrayBuffer, effectively ignoring file size limit/
2025-01-02 11:52:32 -08:00
Bo26fhmC5M
0317a941f1 fix: token calculation for HypaV2 2025-01-02 20:52:37 +09:00
Bo26fhmC5M
2b92582df4 fix: resolve chatMemos serialization issue in HypaV2Data 2025-01-02 18:47:16 +09:00
Kwaroran
821ba1812f Merge branch 'main' of https://github.com/kwaroran/RisuAI 2025-01-02 03:03:03 +09:00
Kwaroran
866996ba1e chore: update version to 145.3.0 2025-01-02 03:02:54 +09:00
kwaroran
e97715843b Add Custom Character Folder Image Feature Using Global Module Assets (#697)
# PR Checklist
- [ ] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [x] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [x] Have you added type definitions?

# Description
This PR adds a new feature that allows users to add custom images to
character folders. Instead of uploading images directly, this feature
utilizes the existing image pool from **the global module**. Users can
either select from existing images in the global module or upload new
images to the module.

The users can use a context menu on a folder to update its image.

## Why Use the Global Module?

The global module was chosen for several reasons:  
1. It allows the reuse of existing functions and code, minimizing the
need for new implementations.
2. Users can easily select existing images without re-uploading them.  
3. The global module provides reliable support for image upload and
deletion.
4. Images uploaded via the global module are accessible across all
platforms where the shared data is available.

## Note

To retrieve the list of assets from the global module, I used the
following code:

```typescript
let assetPaths: { [key: string]: { path: string } } = {};

const moduleAssets = getModuleAssets();
if (moduleAssets.length > 0) {
  for (const asset of moduleAssets) {
    const assetPath = await getFileSrc(asset[1]);
    assetPaths[asset[0].toLocaleLowerCase()] = {
      path: assetPath,
    };
  }
}
```

I reused the `parseAdditionalAssets` code from
`/src/ts/parser.svelte.ts` because it seemed simple and practical for
this feature. I thought about refactoring it into a shared function but
decided to keep it simple for now. I’m not sure if this is the best
approach, but it can always be changed later if needed.

---

If you are already working on a similar feature, find any issues with
this code, or feel this PR does not align with the project's direction,
I fully understand if this PR is not accepted.

Thank you!

---

One last note: With *transparent background images* and the existing
folder color functionality, users can differentiate categories even when
using the same image by applying different colors!
2025-01-02 02:56:49 +09:00