From 779e51b0379278d1e72c434fff999c5136b957e1 Mon Sep 17 00:00:00 2001 From: Maksim Sukharev Date: Fri, 14 Aug 2026 16:33:04 +0200 Subject: [PATCH 1/3] fix(chat): do not separate edited messages from the group Assisted-by: ClaudeCode:claude-sonnet-5 Signed-off-by: Maksim Sukharev --- .../MessagesList/MessagesList.spec.js | 18 ++++++++++++++---- src/components/MessagesList/MessagesList.vue | 4 ---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/components/MessagesList/MessagesList.spec.js b/src/components/MessagesList/MessagesList.spec.js index 2758d7ef50d..6a66d2ad263 100644 --- a/src/components/MessagesList/MessagesList.spec.js +++ b/src/components/MessagesList/MessagesList.spec.js @@ -201,6 +201,16 @@ describe('MessagesList.vue', () => { /** * @param {Array} messagesGroups List of messages that should be grouped */ + /** + * Merge MessagesGroup and MessagesSystemGroup instances, sorted by DOM order. + * + * @param {object} wrapper The mounted MessagesList wrapper + */ + function findAllGroups(wrapper) { + return [...wrapper.findAllComponents(MessagesGroup), ...wrapper.findAllComponents(MessagesSystemGroup)] + .sort((a, b) => (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1)) + } + function testGrouped(...messagesGroups) { store.commit('addConversation', { token: TOKEN, @@ -212,7 +222,7 @@ describe('MessagesList.vue', () => { const wrapper = mountMessagesList() - const groups = wrapper.findAllComponents('li.wrapper') + const groups = findAllGroups(wrapper) groups.forEach((group, index) => { expect(group.props('messages')).toStrictEqual(messagesGroups[index]) }) @@ -234,7 +244,7 @@ describe('MessagesList.vue', () => { const wrapper = mountMessagesList() - const groups = wrapper.findAll('.messages-group') + const groups = findAllGroups(wrapper) groups.forEach((group, index) => { expect(group.props('messages')).toStrictEqual([messages[index]]) }) @@ -426,8 +436,8 @@ describe('MessagesList.vue', () => { }]) }) - test('does not group edited messages', () => { - testNotGrouped([{ + test('groups edited messages', () => { + testGrouped([{ id: 100, token: TOKEN, actorId: 'alice', diff --git a/src/components/MessagesList/MessagesList.vue b/src/components/MessagesList/MessagesList.vue index 0f498ce8de8..b045182264e 100644 --- a/src/components/MessagesList/MessagesList.vue +++ b/src/components/MessagesList/MessagesList.vue @@ -592,10 +592,6 @@ export default { return false } - if (!!message1.lastEditTimestamp || !!message2.lastEditTimestamp) { - return false // Edited messages are not grouped - } - if (message1.actorType === ATTENDEE.ACTOR_TYPE.BOTS // Don't group messages of bots && message1.actorId !== ATTENDEE.CHANGELOG_BOT_ID // Apart from the changelog bot && message1.actorId !== ATTENDEE.SAMPLE_BOT_ID) { // Apart from the sample message From 8646e62310c441e79576abaf45dcd41c0f6ba42f Mon Sep 17 00:00:00 2001 From: Maksim Sukharev Date: Fri, 14 Aug 2026 16:34:11 +0200 Subject: [PATCH 2/3] fix(chat): fix condition for showing editor avatar - if both are users, avatar wasn't shown Assisted-by: ClaudeCode:claude-sonnet-5 Signed-off-by: Maksim Sukharev --- .../MessagesGroup/Message/MessagePart/MessageBody.vue | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/components/MessagesList/MessagesGroup/Message/MessagePart/MessageBody.vue b/src/components/MessagesList/MessagesGroup/Message/MessagePart/MessageBody.vue index 99f8c0eb880..dc1a6a3c5fa 100644 --- a/src/components/MessagesList/MessagesGroup/Message/MessagePart/MessageBody.vue +++ b/src/components/MessagesList/MessagesGroup/Message/MessagePart/MessageBody.vue @@ -503,9 +503,8 @@ export default { isEditorDifferentThenAuthor() { return this.message.lastEditActorId - && this.message.lastEditActorId !== this.message.actorId - && this.message.lastEditActorDisplayName !== this.message.actorDisplayName - && this.message.lastEditActorType !== this.message.actorType + && !(this.message.lastEditActorId === this.message.actorId + && this.message.lastEditActorType === this.message.actorType) }, isMessagePinned() { From 62c39e5c13b472038f13aed69c83f4f88b294c2b Mon Sep 17 00:00:00 2001 From: Maksim Sukharev Date: Fri, 14 Aug 2026 16:52:18 +0200 Subject: [PATCH 3/3] fix(chat): show pencil icon for all messages - including list view - remove duplicate string next to display name Assisted-by: ClaudeCode:claude-sonnet-5 Signed-off-by: Maksim Sukharev --- .../Message/MessagePart/MessageBody.vue | 31 ++++++++++++++----- .../MessagesGroup/MessagesGroup.vue | 3 +- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/components/MessagesList/MessagesGroup/Message/MessagePart/MessageBody.vue b/src/components/MessagesList/MessagesGroup/Message/MessagePart/MessageBody.vue index dc1a6a3c5fa..b677dda276f 100644 --- a/src/components/MessagesList/MessagesGroup/Message/MessagePart/MessageBody.vue +++ b/src/components/MessagesList/MessagesGroup/Message/MessagePart/MessageBody.vue @@ -84,7 +84,11 @@
- + messages.value[0]) const { remoteServer, - lastEditor, actorDisplayName, actorDisplayNameWithFallback, } = useMessageInfo(firstMessage) const isSidebar = inject('chatView:isSidebar', false) const actorInfo = computed(() => { - return [actorDisplayNameWithFallback.value, remoteServer.value, lastEditor.value] + return [actorDisplayNameWithFallback.value, remoteServer.value] .filter((value) => value).join(' ') })