Do not regenerate group greeting messages in tainted chats
| @@ -226,6 +226,7 @@ export async function getGroupChat(groupId, reload = false) { | ||
| 226 | 226 | const chat_id = group.chat_id; |
| 227 | 227 | const data = await loadGroupChat(chat_id); |
| 228 | 228 | let freshChat = false; |
| 229 | + let metadata = group.chat_metadata ?? {}; | |
| 229 | 230 | |
| 230 | 231 | await loadItemizedPrompts(getCurrentChatId()); |
| 231 | 232 | |
| @@ -234,7 +235,8 @@ export async function getGroupChat(groupId, reload = false) { | ||
| 234 | 235 | chat.splice(0, chat.length, ...data); |
| 235 | 236 | await printMessages(); |
| 236 | 237 | } else { |
| 237 | - if (group && Array.isArray(group.members)) { | |
| 238 | + freshChat = !metadata.tainted; | |
| 239 | + if (group && Array.isArray(group.members) && freshChat) { | |
| 238 | 240 | for (let member of group.members) { |
| 239 | 241 | const character = characters.find(x => x.avatar === member || x.name === member); |
| 240 | 242 | if (!character) { |
| @@ -253,12 +255,10 @@ export async function getGroupChat(groupId, reload = false) { | ||
| 253 | 255 | addOneMessage(mes); |
| 254 | 256 | await eventSource.emit(event_types.CHARACTER_MESSAGE_RENDERED, (chat.length - 1), 'first_message'); |
| 255 | 257 | } |
| 256 | - } | |
| 257 | 258 | await saveGroupChat(groupId, false); |
| 258 | - freshChat = true; | |
| 259 | + } | |
| 259 | 260 | } |
| 260 | 261 | |
| 261 | - let metadata = group.chat_metadata ?? {}; | |
| 262 | 262 | updateChatMetadata(metadata, true); |
| 263 | 263 | |
| 264 | 264 | if (reload) { |