git » sdk » commit 07efc21

Add localId for outgoing if not specified

author Stephen Paul Weber
2026-03-15 19:55:15 UTC
committer Stephen Paul Weber
2026-03-15 20:06:40 UTC
parent e7c0b537fd5f5df6cd75272312698fdc306960f6

Add localId for outgoing if not specified

borogove/Chat.hx +4 -2
docs/c/index.md +0 -2
docs/js/index.md +0 -2

diff --git a/borogove/Chat.hx b/borogove/Chat.hx
index 9f231b8..58511df 100644
--- a/borogove/Chat.hx
+++ b/borogove/Chat.hx
@@ -1021,13 +1021,14 @@ class DirectChat extends Chat {
 		message.replyTo = [message.sender];
 		message.recipients = counterparts().map((p) -> JID.parse(p));
 		message.to = message.recipients[0];
+		if (message.localId == null) message.localId = ID.long();
 		return message;
 	}
 
 	@HaxeCBridge.noemit // on superclass as abstract
 	public function correctMessage(localId:String, message:ChatMessageBuilder) {
-		final toSendId = message.localId;
 		message = prepareOutgoingMessage(message);
+		final toSendId = message.localId;
 		message.versions = [message.build()]; // This is a correction
 		message.localId = localId;
 		final outboxItem = outbox.newItem();
@@ -1700,13 +1701,14 @@ trace("XYZZY no MUC avatar locally matching so fetch vcard", chatId, avatarSha1H
 		message.replyTo = [message.sender];
 		message.to = JID.parse(chatId);
 		message.recipients = [message.to];
+		if (message.localId == null) message.localId = ID.long();
 		return message;
 	}
 
 	@HaxeCBridge.noemit // on superclass as abstract
 	public function correctMessage(localId:String, message:ChatMessageBuilder) {
-		final toSendId = message.localId;
 		message = prepareOutgoingMessage(message);
+		final toSendId = message.localId;
 		message.versions = [message.build()]; // This is a correction
 		message.localId = localId;
 		final outboxItem = outbox.newItem();
diff --git a/docs/c/index.md b/docs/c/index.md
index f8a7792..bed71da 100644
--- a/docs/c/index.md
+++ b/docs/c/index.md
@@ -86,7 +86,6 @@ Now that we have the chat set up, let's send our first message.
 // Add to available_chats handler
 
 coid *builder = borogove_chat_message_builder_new();
-borogove_chat_message_builder_set_local_id(builder, "UUID");
 borogove_chat_message_builder_set_text(builder, "I would like some tea.");
 borogove_chat_send_message(chat, builder);
 borogove_release(builder);
@@ -113,7 +112,6 @@ and send a reply to one of those:
 
 ```c
 void *builder = borogove_chat_message_reply(msgs[0]);
-borogove_chat_message_builder_set_local_id(builder, "UUID");
 borogove_chat_message_builder_set_text(builder, "I would like some tea.");
 borogove_chat_send_message(chat, builder);
 borogove_release(builder);
diff --git a/docs/js/index.md b/docs/js/index.md
index d659ef9..b0b2fab 100644
--- a/docs/js/index.md
+++ b/docs/js/index.md
@@ -84,7 +84,6 @@ Now that we have the chat set up, let's send our first message.
 
 ```typescript
 chat.sendMessage(new borogove.ChatMessageBuilder({
-	localId: crypto.randomUUID(),
 	text: "I would like some tea."
 }));
 ```
@@ -99,7 +98,6 @@ and send a reply to one of those:
 
 ```typescript
 const reply = messages[0].reply();
-reply.localId = crypto.randomUUID();
 reply.text = "Is that so?";
 chat.sendMessage(reply);
 ```