diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json
index dacdabb9..f5b49223 100644
--- a/src-tauri/tauri.conf.json
+++ b/src-tauri/tauri.conf.json
@@ -29,7 +29,7 @@
},
"productName": "RisuAI",
"mainBinaryName": "RisuAI",
- "version": "152.0.1",
+ "version": "153.0.0",
"identifier": "co.aiclient.risu",
"plugins": {
"updater": {
diff --git a/src/lang/en.ts b/src/lang/en.ts
index 147bdd81..9ca9dbdc 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -174,6 +174,8 @@ export const languageEnglish = {
presetChain: "If it is not blank, the preset will be changed and applied randomly every time when user sends a message in the preset list in this input. preset list should be seperated by comma, for example, `preset1,preset2`.",
legacyMediaFindings: "If enabled, it will use the old method to find media assets, without using the additional search algorithm.",
comfyWorkflow: "Put the API workflow of comfy UI. you can get your API workflow in comfy UI by pressing the 'Workflow > Export (API)' button. you must also put {{risu_prompt}} in you workflow text. the {{risu_prompt}} will be replaced with the prompt provided by the Risu.",
+ automaticCachePoint: "Automatically creates cache point after the chat ends, if the caching point doesn't exist.",
+ experimentalChatCompressionDesc: "Compresses the unused chat data and saves in seperate file. this greatly reduces the size of the chat data, and greatly improves the performance, however its experimental and can be unstable, causing issues in backup feature and more.",
},
setup: {
chooseProvider: "Choose AI Provider",
@@ -1068,7 +1070,6 @@ export const languageEnglish = {
claudeCachingRetrival: "Claude Caching Retrival",
claudeCachingRetrivalDesc: "Extends the cache time for Claude Caching, by requesting every 4 minutes. this can reduce the cache miss rate, but it can increase the cost if its not used properly.",
automaticCachePoint: "Automatic Cache Point",
- automaticCachePointDesc: "Automatically creates cache point after the chat ends, if the caching point doesn't exist.",
experimentalChatCompression: "Experimental Chat Data Handling",
- experimentalChatCompressionDesc: "Compresses the unused chat data and saves in seperate file.",
+ loadingChatData: "Loading Chat Data",
}
diff --git a/src/lib/ChatScreens/DefaultChatScreen.svelte b/src/lib/ChatScreens/DefaultChatScreen.svelte
index 991d9410..c6bb3834 100644
--- a/src/lib/ChatScreens/DefaultChatScreen.svelte
+++ b/src/lib/ChatScreens/DefaultChatScreen.svelte
@@ -28,6 +28,7 @@
import { getInlayAsset } from 'src/ts/process/files/inlays';
import PlaygroundMenu from '../Playground/PlaygroundMenu.svelte';
import { ConnectionOpenStore } from 'src/ts/sync/multiuser';
+ import { coldStorageHeader, preLoadChat } from 'src/ts/process/coldstorage.svelte';
let messageInput:string = $state('')
let messageInputTranslate:string = $state('')
@@ -639,6 +640,15 @@
)} {send}/>
{/if}
+ {#if DBState.db.characters[$selectedCharID].chats[DBState.db.characters[$selectedCharID].chatPage].message?.[0]?.data?.startsWith(coldStorageHeader) }
+ {#await preLoadChat($selectedCharID, DBState.db.characters[$selectedCharID].chatPage)}
+