Browse Source

fix: enable `enableInjectSystemPrompts` attribute for old sessions

imldy 1 year ago
parent
commit
fd058cc693
1 changed files with 13 additions and 1 deletions
  1. 13 1
      app/store/chat.ts

+ 13 - 1
app/store/chat.ts

@@ -590,7 +590,7 @@ export const useChatStore = create<ChatStore>()(
     }),
     {
       name: StoreKey.Chat,
-      version: 3,
+      version: 3.1,
       migrate(persistedState, version) {
         const state = persistedState as any;
         const newState = JSON.parse(JSON.stringify(state)) as ChatStore;
@@ -618,6 +618,18 @@ export const useChatStore = create<ChatStore>()(
           });
         }
 
+        // Enable `enableInjectSystemPrompts` attribute for old sessions.
+        // Resolve issue of old sessions not automatically enabling.
+        if (version < 3.1) {
+          newState.sessions.forEach((s) => {
+            if (
+              !s.mask.modelConfig.hasOwnProperty("enableInjectSystemPrompts")
+            ) {
+              s.mask.modelConfig.enableInjectSystemPrompts = true;
+            }
+          });
+        }
+
         return newState;
       },
     },