fix(messenger): sent messages no longer show Seen instantly (SDK 0.1.14)

Receipts now prefer userId over the IIOS actor UUID, so the SDK can actually
tell your own read receipt from the other party's.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-25 17:47:16 +05:30
parent b733dfbe69
commit 384690f84d
3 changed files with 8 additions and 6 deletions
+4 -4
View File
@@ -12,7 +12,7 @@
"@huggingface/transformers": "^4.2.0",
"@imgly/background-removal": "^1.7.0",
"@insignia/iios-kernel-client": "^0.1.4",
"@insignia/iios-messaging-ui": "^0.1.13",
"@insignia/iios-messaging-ui": "^0.1.14",
"@photo-gallery/sdk": "file:./vendor/photo-gallery-sdk",
"@tensorflow-models/coco-ssd": "^2.2.3",
"@tensorflow/tfjs": "^4.22.0",
@@ -1087,9 +1087,9 @@
}
},
"node_modules/@insignia/iios-messaging-ui": {
"version": "0.1.13",
"resolved": "https://git.lynkedup.cloud/api/packages/insignia/npm/%40insignia%2Fiios-messaging-ui/-/0.1.13/iios-messaging-ui-0.1.13.tgz",
"integrity": "sha512-ZJxn/E7P5mx/rCFjbXlCetl75KWStqSAeZHqvV4zKuYhPw6aDtOW5hVZW7x05qTyYvkHFdZlx+DkT1j0aalCzw==",
"version": "0.1.14",
"resolved": "https://git.lynkedup.cloud/api/packages/insignia/npm/%40insignia%2Fiios-messaging-ui/-/0.1.14/iios-messaging-ui-0.1.14.tgz",
"integrity": "sha512-ywm0DuOxoddlmi48tU27N3jtTF3pMGwnw9M/BhluPPcnJSlwy6aN03BynCGkWRrkXrxGY7c+3G1EMX/eUr7Ffw==",
"peerDependencies": {
"@insignia/iios-kernel-client": "*",
"react": ">=18",
+1 -1
View File
@@ -14,7 +14,7 @@
"@huggingface/transformers": "^4.2.0",
"@imgly/background-removal": "^1.7.0",
"@insignia/iios-kernel-client": "^0.1.4",
"@insignia/iios-messaging-ui": "^0.1.13",
"@insignia/iios-messaging-ui": "^0.1.14",
"@photo-gallery/sdk": "file:./vendor/photo-gallery-sdk",
"@tensorflow-models/coco-ssd": "^2.2.3",
"@tensorflow/tfjs": "^4.22.0",
+3 -1
View File
@@ -69,7 +69,9 @@ export class CrmMessagingAdapter implements MessagingAdapter {
});
socket.on("typing", (e) => this.emit(e.threadId, { kind: "typing", userId: e.userId }));
// Receipts carry no threadId → fan to all open threads; the UI filters by messageId.
socket.on("receipt", (e) => this.broadcast({ kind: "receipt", messageId: e.interactionId, actorId: e.actorId }));
// Prefer userId: the SDK compares this against currentActorId(), which is a userId. e.actorId
// is an IIOS actor UUID, so using it made "is this my own receipt?" always answer no.
socket.on("receipt", (e) => this.broadcast({ kind: "receipt", messageId: e.interactionId, actorId: e.userId ?? e.actorId }));
socket.on("annotation", (e) => {
if (e.type !== REACTION) return;
this.setReactionUsers(e.interactionId, e.value, e.users);