fix(messages): add message to existing 1:1 conversation from compose modal
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
When composing a new message to someone you already have a conversation with, the dedup logic returned the existing conversation without adding the message. Now it creates the message and publishes SSE notification. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
7402f3dc52
commit
0c9ea2e69f
@ -271,7 +271,33 @@ def api_conversations_create():
|
||||
for conv in existing:
|
||||
conv_member_ids = {m.user_id for m in conv.members}
|
||||
if conv_member_ids == {current_user.id, other_id}:
|
||||
# Return existing conversation
|
||||
# Existing 1:1 — add message if provided
|
||||
if message_text:
|
||||
now = datetime.now()
|
||||
msg = ConvMessage(
|
||||
conversation_id=conv.id,
|
||||
sender_id=current_user.id,
|
||||
content=message_text,
|
||||
created_at=now,
|
||||
)
|
||||
db.add(msg)
|
||||
db.flush()
|
||||
conv.last_message_id = msg.id
|
||||
conv.updated_at = now
|
||||
db.commit()
|
||||
db.refresh(conv)
|
||||
|
||||
sender_name = current_user.name or current_user.email.split('@')[0]
|
||||
_publish_to_conv(db, conv.id, 'new_message', {
|
||||
'conversation_id': conv.id,
|
||||
'message': {
|
||||
'id': msg.id,
|
||||
'content_preview': strip_html(message_text)[:100],
|
||||
'sender_name': sender_name,
|
||||
'sender_id': current_user.id,
|
||||
},
|
||||
}, exclude_user_id=current_user.id)
|
||||
|
||||
membership = db.query(ConversationMember).filter_by(
|
||||
conversation_id=conv.id,
|
||||
user_id=current_user.id,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user