diff --git a/backend/open_webui/models/groups.py b/backend/open_webui/models/groups.py index 1c84f4c1ae..cde336bb7b 100644 --- a/backend/open_webui/models/groups.py +++ b/backend/open_webui/models/groups.py @@ -289,13 +289,16 @@ class GroupTable: if not group: return None - if not group.user_ids: - group.user_ids = [] + group_user_ids = group.user_ids + + if not group_user_ids or not isinstance(group_user_ids, list): + group_user_ids = [] for user_id in user_ids: - if user_id not in group.user_ids: - group.user_ids.append(user_id) + if user_id not in group_user_ids: + group_user_ids.append(user_id) + group.user_ids = group_user_ids group.updated_at = int(time.time()) db.commit() db.refresh(group) @@ -313,14 +316,18 @@ class GroupTable: if not group: return None - if not group.user_ids: + group_user_ids = group.user_ids + + if not group_user_ids or not isinstance(group_user_ids, list): return GroupModel.model_validate(group) for user_id in user_ids: - if user_id in group.user_ids: - group.user_ids.remove(user_id) + if user_id in group_user_ids: + group_user_ids.remove(user_id) + group.user_ids = group_user_ids group.updated_at = int(time.time()) + db.commit() db.refresh(group) return GroupModel.model_validate(group) diff --git a/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte b/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte index be12d8d54f..c5c0b43e88 100644 --- a/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte +++ b/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte @@ -201,6 +201,7 @@ id={`${id}-${tokenIdx}`} tokens={token.tokens} {done} + {editCodeBlock} {onTaskClick} {onSourceClick} /> @@ -234,6 +235,7 @@ tokens={item.tokens} top={token.loose} {done} + {editCodeBlock} {onTaskClick} {onSourceClick} /> @@ -267,6 +269,7 @@ tokens={item.tokens} top={token.loose} {done} + {editCodeBlock} {onTaskClick} {onSourceClick} /> @@ -277,6 +280,7 @@ tokens={item.tokens} top={token.loose} {done} + {editCodeBlock} {onTaskClick} {onSourceClick} /> @@ -299,6 +303,7 @@ tokens={marked.lexer(token.text)} attributes={token?.attributes} {done} + {editCodeBlock} {onTaskClick} {onSourceClick} />