kage-baileys 3.0.6 → 3.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/Example/connection.cjs +4 -0
  2. package/README.MD +4726 -48
  3. package/WAProto/WAProto.proto +3395 -415
  4. package/WAProto/compat.cjs +12 -0
  5. package/WAProto/index.d.ts +47104 -19888
  6. package/WAProto/index.js +131979 -57361
  7. package/lib/Addon/http-error.js +43 -0
  8. package/lib/Addon/index.js +32 -0
  9. package/lib/Addon/keyed-db.js +250 -0
  10. package/lib/Addon/link-preview.js +82 -0
  11. package/lib/Defaults/baileys-version.json +3 -0
  12. package/lib/Defaults/connection.js +110 -0
  13. package/lib/Defaults/constants.js +156 -0
  14. package/lib/Defaults/history.js +46 -0
  15. package/lib/Defaults/index.js +230 -0
  16. package/lib/Defaults/media.js +104 -0
  17. package/lib/Defaults/phonenumber-mcc.json +223 -0
  18. package/lib/Defaults/prefix.js +44 -0
  19. package/lib/Extensions/business-advanced.js +382 -0
  20. package/lib/Extensions/business.js +159 -0
  21. package/lib/Extensions/chats-advanced.js +1106 -0
  22. package/lib/Extensions/chats.js +349 -0
  23. package/lib/Extensions/communities-advanced.js +430 -0
  24. package/lib/Extensions/community.js +94 -0
  25. package/lib/Extensions/groups-advanced.js +343 -0
  26. package/lib/Extensions/index.js +30 -0
  27. package/lib/Extensions/messages-recv-advanced.js +1690 -0
  28. package/lib/Extensions/messages-send-advanced.js +622 -0
  29. package/lib/Extensions/messages-send.js +1380 -0
  30. package/lib/Extensions/newsletter-advanced.js +228 -0
  31. package/lib/Extensions/newsletter.js +72 -0
  32. package/lib/Extensions/socket.js +389 -0
  33. package/lib/Modded/message_builder.js +2084 -4
  34. package/lib/Signal/Group/ciphertext-message.js +54 -0
  35. package/lib/Signal/Group/group-session-builder.js +124 -0
  36. package/lib/Signal/Group/group_cipher.js +216 -0
  37. package/lib/Signal/Group/index.js +124 -0
  38. package/lib/Signal/Group/keyhelper.js +108 -0
  39. package/lib/Signal/Group/sender-chain-key.js +83 -0
  40. package/lib/Signal/Group/sender-key-distribution-message.js +157 -0
  41. package/lib/Signal/Group/sender-key-message.js +166 -0
  42. package/lib/Signal/Group/sender-key-name.js +130 -0
  43. package/lib/Signal/Group/sender-key-record.js +113 -0
  44. package/lib/Signal/Group/sender-key-state.js +208 -0
  45. package/lib/Signal/Group/sender-message-key.js +82 -0
  46. package/lib/Signal/libsignal.js +935 -0
  47. package/lib/Signal/lid-mapping.js +545 -1
  48. package/lib/Socket/Client/index.js +60 -0
  49. package/lib/Socket/Client/types.js +51 -0
  50. package/lib/Socket/Client/websocket.js +152 -0
  51. package/lib/Socket/business.js +831 -0
  52. package/lib/Socket/chats.js +2535 -49
  53. package/lib/Socket/communities.js +450 -1
  54. package/lib/Socket/community.js +1022 -0
  55. package/lib/Socket/dugong.js +1 -1
  56. package/lib/Socket/groups.js +747 -0
  57. package/lib/Socket/index.js +60 -2
  58. package/lib/Socket/messages-recv.js +3450 -5
  59. package/lib/Socket/messages-send.js +3123 -0
  60. package/lib/Socket/mex.js +126 -1
  61. package/lib/Socket/newsletter.js +465 -0
  62. package/lib/Socket/socket.js +2217 -1
  63. package/lib/Store/index.js +79 -0
  64. package/lib/Store/make-cache-manager-store.js +186 -0
  65. package/lib/Store/make-in-memory-store.js +878 -0
  66. package/lib/Store/make-ordered-dictionary.js +187 -0
  67. package/lib/Store/object-repository.js +78 -0
  68. package/lib/Types/Auth.js +25 -0
  69. package/lib/Types/Bussines.js +25 -1
  70. package/lib/Types/Call.js +25 -0
  71. package/lib/Types/Chat.js +39 -0
  72. package/lib/Types/Contact.js +25 -0
  73. package/lib/Types/Events.js +25 -0
  74. package/lib/Types/GroupMetadata.js +25 -0
  75. package/lib/Types/Label.js +76 -0
  76. package/lib/Types/LabelAssociation.js +40 -0
  77. package/lib/Types/Message.js +57 -0
  78. package/lib/Types/Mex.js +56 -1
  79. package/lib/Types/MexUpdates.js +46 -0
  80. package/lib/Types/Newsletter.js +56 -0
  81. package/lib/Types/Product.js +25 -0
  82. package/lib/Types/RichType.js +23 -0
  83. package/lib/Types/Signal.js +25 -0
  84. package/lib/Types/Socket.js +25 -0
  85. package/lib/Types/State.js +92 -0
  86. package/lib/Types/USync.js +25 -0
  87. package/lib/Types/index.js +133 -0
  88. package/lib/Utils/auth-utils.js +703 -0
  89. package/lib/Utils/automation-tools.js +51 -16
  90. package/lib/Utils/baileys-event-stream.js +146 -0
  91. package/lib/Utils/browser-utils.js +95 -0
  92. package/lib/Utils/business.js +525 -0
  93. package/lib/Utils/chat-utils.js +1861 -0
  94. package/lib/Utils/companion-reg-client-utils.js +55 -1
  95. package/lib/Utils/crypto.js +355 -0
  96. package/lib/Utils/decode-wa-message.js +709 -0
  97. package/lib/Utils/event-buffer.js +1323 -8
  98. package/lib/Utils/generics.js +945 -1
  99. package/lib/Utils/history.js +266 -0
  100. package/lib/Utils/identity-change-handler.js +62 -1
  101. package/lib/Utils/index.js +114 -0
  102. package/lib/Utils/link-preview.js +179 -0
  103. package/lib/Utils/logger.js +42 -0
  104. package/lib/Utils/lt-hash.js +73 -0
  105. package/lib/Utils/make-mutex.js +104 -0
  106. package/lib/Utils/message-inspector.js +110 -0
  107. package/lib/Utils/message-retry-manager.js +507 -2
  108. package/lib/Utils/messages-media.js +1931 -1
  109. package/lib/Utils/messages.js +3748 -0
  110. package/lib/Utils/noise-handler.js +423 -0
  111. package/lib/Utils/offline-node-processor.js +53 -1
  112. package/lib/Utils/pre-key-manager.js +255 -1
  113. package/lib/Utils/process-message.js +1592 -0
  114. package/lib/Utils/reporting-utils.js +272 -1
  115. package/lib/Utils/rich-message-utils.js +377 -0
  116. package/lib/Utils/rich-messages.js +1 -1
  117. package/lib/Utils/signal.js +437 -0
  118. package/lib/Utils/stanza-ack.js +51 -1
  119. package/lib/Utils/status-refresh.js +37 -0
  120. package/lib/Utils/status-tools.js +4 -2
  121. package/lib/Utils/sync-action-utils.js +63 -1
  122. package/lib/Utils/tc-token-utils.js +185 -1
  123. package/lib/Utils/terminal-banner.js +31 -0
  124. package/lib/Utils/use-multi-file-auth-state.js +271 -0
  125. package/lib/Utils/use-single-file-auth-state.js +108 -0
  126. package/lib/Utils/use-sqlite-auth-state.js +142 -0
  127. package/lib/Utils/validate-connection.js +497 -1
  128. package/lib/Utils/view-once-compat.js +13 -5
  129. package/lib/VoIP/audio-feeder.js +150 -0
  130. package/lib/VoIP/index.js +289 -0
  131. package/lib/VoIP/relay-transport.js +608 -0
  132. package/lib/VoIP/signaling.js +583 -0
  133. package/lib/VoIP/types.js +30 -0
  134. package/lib/VoIP/wasm-engine.js +1261 -2
  135. package/lib/VoIP/worker-bootstrap.js +1090 -2
  136. package/lib/WABinary/constants.js +2805 -0
  137. package/lib/WABinary/decode.js +649 -2
  138. package/lib/WABinary/encode.js +564 -2
  139. package/lib/WABinary/generic-utils.js +401 -0
  140. package/lib/WABinary/index.js +82 -0
  141. package/lib/WABinary/jid-utils.js +290 -0
  142. package/lib/WABinary/types.js +25 -0
  143. package/lib/WAM/BinaryInfo.js +50 -0
  144. package/lib/WAM/constants.js +45747 -0
  145. package/lib/WAM/encode.js +393 -0
  146. package/lib/WAM/index.js +78 -0
  147. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +135 -0
  148. package/lib/WAUSync/Protocols/USyncContactProtocol.js +110 -0
  149. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +142 -0
  150. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +85 -0
  151. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +69 -0
  152. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +107 -0
  153. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +38 -1
  154. package/lib/WAUSync/Protocols/index.js +83 -0
  155. package/lib/WAUSync/USyncQuery.js +241 -2
  156. package/lib/WAUSync/USyncUser.js +86 -0
  157. package/lib/WAUSync/index.js +78 -0
  158. package/lib/assets/wasm/loader.js +1875 -1
  159. package/lib/assets/wasm/worker-modules.js +11047 -1
  160. package/lib/index.d.ts +126 -0
  161. package/lib/index.js +53 -21
  162. package/lib/index.mjs +437 -0
  163. package/licenses/upstream-MIT.txt +22 -0
  164. package/maintenance/api-coverage.json +1642 -0
  165. package/maintenance/archivos-sha256.json +207 -0
  166. package/maintenance/consumer-validation.log +3 -0
  167. package/maintenance/dependency-audit.json +4 -4
  168. package/maintenance/extension-inventory.json +57 -0
  169. package/maintenance/protocol-update.json +1101 -0
  170. package/maintenance/protocol-wire-audit.json +4 -0
  171. package/maintenance/reference-socket-surface.json +209 -0
  172. package/maintenance/resumen-validacion.json +50 -0
  173. package/maintenance/validation.log +2725 -0
  174. package/maintenance/verification.json +566 -0
  175. package/package.json +107 -9
  176. package/scripts/check-imports.cjs +10 -0
  177. package/scripts/check-package.cjs +40 -0
  178. package/scripts/check-syntax.cjs +1 -1
  179. package/scripts/generate-protobuf.cjs +6 -1
  180. package/scripts/generate-public-types.cjs +9 -0
  181. package/scripts/kage-base64-fix.cjs +45 -0
  182. package/scripts/maintenance.cjs +10 -0
  183. package/test/advanced.test.cjs +24 -0
  184. package/test/base64-fix.test.cjs +49 -0
  185. package/test/maintenance.test.cjs +1 -1
  186. package/test/npm-publication.test.cjs +141 -0
  187. package/test/recepcion-reparada.test.cjs +98 -0
  188. package/test/resilience-binary.test.cjs +69 -0
  189. package/test/resilience-transport.test.cjs +34 -0
  190. package/test/types.test.ts +5 -0
  191. package/test/upgrade.test.cjs +104 -0
  192. package/tsconfig.json +20 -0
  193. package/WAProto/p.html +0 -1
  194. package/lib/KageExtra/Modded/message_builder.js +0 -2330
  195. package/lib/KageExtra/VoIP/audio-feeder.js +0 -136
  196. package/lib/KageExtra/VoIP/index.js +0 -282
  197. package/lib/KageExtra/VoIP/relay-transport.js +0 -559
  198. package/lib/KageExtra/VoIP/signaling.js +0 -603
  199. package/lib/KageExtra/VoIP/types.js +0 -17
  200. package/lib/KageExtra/VoIP/wasm-engine.js +0 -1214
  201. package/lib/KageExtra/VoIP/worker-bootstrap.js +0 -1042
  202. package/lib/KageExtra/assets/wasm/loader.js +0 -5
  203. package/lib/KageExtra/assets/wasm/whatsapp.wasm +0 -0
  204. package/lib/KageExtra/assets/wasm/worker-modules.js +0 -273
  205. package/lib/KageExtra/index.js +0 -3
  206. package/lib/KageExtra/package.json +0 -1
  207. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +0 -53
  208. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +0 -24
  209. package/maintenance/revision-full-check.txt +0 -1097
  210. package/maintenance/revision-library-tests.tap +0 -1088
  211. package/maintenance/revision-protobuf.txt +0 -5
  212. package/maintenance/revision-syntax.txt +0 -5
  213. package/maintenance/schema-coverage.json +0 -23
  214. package/maintenance/schema-merge.json +0 -30
  215. package/maintenance/validation-node20.txt +0 -191
  216. package/maintenance/validation-node22.txt +0 -237
@@ -1,1097 +0,0 @@
1
-
2
- > kage-baileys@1.1.8 check
3
- > npm run lint && npm test
4
-
5
-
6
- > kage-baileys@1.1.8 lint
7
- > node scripts/check-syntax.cjs
8
-
9
- SYNTAX_OK: 147 JavaScript files
10
-
11
- > kage-baileys@1.1.8 test
12
- > node --test test/*.test.cjs
13
-
14
- TAP version 13
15
- # Subtest: force flush resets buffering state and live events are not trapped
16
- ok 1 - force flush resets buffering state and live events are not trapped
17
- ---
18
- duration_ms: 1.541614
19
- type: 'test'
20
- ...
21
- # Subtest: normal nested buffers still require matching releases
22
- ok 2 - normal nested buffers still require matching releases
23
- ---
24
- duration_ms: 0.192976
25
- type: 'test'
26
- ...
27
- # Subtest: consented viewOnceMessage imageMessage
28
- ok 3 - consented viewOnceMessage imageMessage
29
- ---
30
- duration_ms: 5.066365
31
- type: 'test'
32
- ...
33
- # Subtest: consented viewOnceMessageV2 imageMessage
34
- ok 4 - consented viewOnceMessageV2 imageMessage
35
- ---
36
- duration_ms: 1.08368
37
- type: 'test'
38
- ...
39
- # Subtest: consented viewOnceMessageV2Extension imageMessage
40
- ok 5 - consented viewOnceMessageV2Extension imageMessage
41
- ---
42
- duration_ms: 4.836993
43
- type: 'test'
44
- ...
45
- # Subtest: consented viewOnceMessage videoMessage
46
- ok 6 - consented viewOnceMessage videoMessage
47
- ---
48
- duration_ms: 0.900006
49
- type: 'test'
50
- ...
51
- # Subtest: consented viewOnceMessageV2 videoMessage
52
- ok 7 - consented viewOnceMessageV2 videoMessage
53
- ---
54
- duration_ms: 1.172887
55
- type: 'test'
56
- ...
57
- # Subtest: consented viewOnceMessageV2Extension videoMessage
58
- ok 8 - consented viewOnceMessageV2Extension videoMessage
59
- ---
60
- duration_ms: 0.707722
61
- type: 'test'
62
- ...
63
- # Subtest: consented viewOnceMessage audioMessage
64
- ok 9 - consented viewOnceMessage audioMessage
65
- ---
66
- duration_ms: 1.538298
67
- type: 'test'
68
- ...
69
- # Subtest: consented viewOnceMessageV2 audioMessage
70
- ok 10 - consented viewOnceMessageV2 audioMessage
71
- ---
72
- duration_ms: 0.81396
73
- type: 'test'
74
- ...
75
- # Subtest: consented viewOnceMessageV2Extension audioMessage
76
- ok 11 - consented viewOnceMessageV2Extension audioMessage
77
- ---
78
- duration_ms: 1.54243
79
- type: 'test'
80
- ...
81
- # Subtest: consented viewOnceMessage documentMessage
82
- ok 12 - consented viewOnceMessage documentMessage
83
- ---
84
- duration_ms: 1.059751
85
- type: 'test'
86
- ...
87
- # Subtest: consented viewOnceMessageV2 documentMessage
88
- ok 13 - consented viewOnceMessageV2 documentMessage
89
- ---
90
- duration_ms: 0.60847
91
- type: 'test'
92
- ...
93
- # Subtest: consented viewOnceMessageV2Extension documentMessage
94
- ok 14 - consented viewOnceMessageV2Extension documentMessage
95
- ---
96
- duration_ms: 0.521942
97
- type: 'test'
98
- ...
99
- # Subtest: consented viewOnceMessage stickerMessage
100
- ok 15 - consented viewOnceMessage stickerMessage
101
- ---
102
- duration_ms: 0.493573
103
- type: 'test'
104
- ...
105
- # Subtest: consented viewOnceMessageV2 stickerMessage
106
- ok 16 - consented viewOnceMessageV2 stickerMessage
107
- ---
108
- duration_ms: 0.547275
109
- type: 'test'
110
- ...
111
- # Subtest: consented viewOnceMessageV2Extension stickerMessage
112
- ok 17 - consented viewOnceMessageV2Extension stickerMessage
113
- ---
114
- duration_ms: 0.412521
115
- type: 'test'
116
- ...
117
- # Subtest: view once rejects missing or wrong sender authorization before download
118
- ok 18 - view once rejects missing or wrong sender authorization before download
119
- ---
120
- duration_ms: 0.700335
121
- type: 'test'
122
- ...
123
- # Subtest: view once rejects group and status routes
124
- ok 19 - view once rejects group and status routes
125
- ---
126
- duration_ms: 0.207801
127
- type: 'test'
128
- ...
129
- # Subtest: own outgoing view once can be explicitly authorized by account identity
130
- ok 20 - own outgoing view once can be explicitly authorized by account identity
131
- ---
132
- duration_ms: 0.734852
133
- type: 'test'
134
- ...
135
- # Subtest: consented view once does not invent content for consumed notifications
136
- ok 21 - consented view once does not invent content for consumed notifications
137
- ---
138
- duration_ms: 0.239313
139
- type: 'test'
140
- ...
141
- # Subtest: auto view once is off without explicit chat consent and ignores historical data
142
- ok 22 - auto view once is off without explicit chat consent and ignores historical data
143
- ---
144
- duration_ms: 0.361349
145
- type: 'test'
146
- ...
147
- # Subtest: single canonical proto resolves every message, enum and wire identifier
148
- ok 23 - single canonical proto resolves every message, enum and wire identifier
149
- ---
150
- duration_ms: 197.835229
151
- type: 'test'
152
- ...
153
- # Subtest: restored media, bot and sync fields survive serialization
154
- ok 24 - restored media, bot and sync fields survive serialization
155
- ---
156
- duration_ms: 8.244683
157
- type: 'test'
158
- ...
159
- # Subtest: historical enum aliases and timestamp alias remain usable
160
- ok 25 - historical enum aliases and timestamp alias remain usable
161
- ---
162
- duration_ms: 1.70519
163
- type: 'test'
164
- ...
165
- # Subtest: poll snapshot canonical and legacy tags decode independently
166
- ok 26 - poll snapshot canonical and legacy tags decode independently
167
- ---
168
- duration_ms: 0.730703
169
- type: 'test'
170
- ...
171
- # Subtest: exact supplied event payload round trips including reminder and false flags
172
- ok 27 - exact supplied event payload round trips including reminder and false flags
173
- ---
174
- duration_ms: 5.347408
175
- type: 'test'
176
- ...
177
- # Subtest: event secret is retained across retries and wrappers
178
- ok 28 - event secret is retained across retries and wrappers
179
- ---
180
- duration_ms: 0.767268
181
- type: 'test'
182
- ...
183
- # Subtest: event secret supplied as base64 is normalized without replacement
184
- ok 29 - event secret supplied as base64 is normalized without replacement
185
- ---
186
- duration_ms: 0.329754
187
- type: 'test'
188
- ...
189
- # Subtest: legacy event.messageSecret is moved out of EventMessage
190
- ok 30 - legacy event.messageSecret is moved out of EventMessage
191
- ---
192
- duration_ms: 0.231335
193
- type: 'test'
194
- ...
195
- # Subtest: event validation rejects missing name
196
- ok 31 - event validation rejects missing name
197
- ---
198
- duration_ms: 0.473467
199
- type: 'test'
200
- ...
201
- # Subtest: event validation rejects milliseconds
202
- ok 32 - event validation rejects milliseconds
203
- ---
204
- duration_ms: 0.411077
205
- type: 'test'
206
- ...
207
- # Subtest: event validation rejects invalid latitude
208
- ok 33 - event validation rejects invalid latitude
209
- ---
210
- duration_ms: 0.175859
211
- type: 'test'
212
- ...
213
- # Subtest: event validation rejects end before start
214
- ok 34 - event validation rejects end before start
215
- ---
216
- duration_ms: 0.356084
217
- type: 'test'
218
- ...
219
- # Subtest: event validation rejects string boolean
220
- ok 35 - event validation rejects string boolean
221
- ---
222
- duration_ms: 0.182598
223
- type: 'test'
224
- ...
225
- # Subtest: event validation rejects negative reminder
226
- ok 36 - event validation rejects negative reminder
227
- ---
228
- duration_ms: 0.086823
229
- type: 'test'
230
- ...
231
- # Subtest: event validation rejects decimal timestamp
232
- ok 37 - event validation rejects decimal timestamp
233
- ---
234
- duration_ms: 0.070262
235
- type: 'test'
236
- ...
237
- # Subtest: invalid event secret fails locally
238
- ok 38 - invalid event secret fails locally
239
- ---
240
- duration_ms: 0.5494
241
- type: 'test'
242
- ...
243
- # Subtest: int64 strings and bigint convert without losing precision in toObject
244
- ok 39 - int64 strings and bigint convert without losing precision in toObject
245
- ---
246
- duration_ms: 1.049457
247
- type: 'test'
248
- ...
249
- # Subtest: sendMessage content builder supports event shorthand and preserves mention context
250
- ok 40 - sendMessage content builder supports event shorthand and preserves mention context
251
- ---
252
- duration_ms: 1.854448
253
- type: 'test'
254
- ...
255
- # Subtest: mention handling does not overwrite existing context fields
256
- ok 41 - mention handling does not overwrite existing context fields
257
- ---
258
- duration_ms: 0.827854
259
- type: 'test'
260
- ...
261
- # Subtest: text, reaction, location, poll and revoke messages still serialize
262
- ok 42 - text, reaction, location, poll and revoke messages still serialize
263
- ---
264
- duration_ms: 4.996991
265
- type: 'test'
266
- ...
267
- # Subtest: history skips malformed rows, selects newest message and does not mutate input
268
- ok 43 - history skips malformed rows, selects newest message and does not mutate input
269
- ---
270
- duration_ms: 0.44918
271
- type: 'test'
272
- ...
273
- # Subtest: missing optional history arrays are accepted
274
- ok 44 - missing optional history arrays are accepted
275
- ---
276
- duration_ms: 0.130757
277
- type: 'test'
278
- ...
279
- # Subtest: on-demand history is merged instead of discarded
280
- ok 45 - on-demand history is merged instead of discarded
281
- ---
282
- duration_ms: 2.21517
283
- type: 'test'
284
- ...
285
- # Subtest: initial history does not erase already received live messages by default
286
- ok 46 - initial history does not erase already received live messages by default
287
- ---
288
- duration_ms: 0.436803
289
- type: 'test'
290
- ...
291
- # Subtest: store snapshots preserve bytes and support serialized async atomic writes
292
- ok 47 - store snapshots preserve bytes and support serialized async atomic writes
293
- ---
294
- duration_ms: 32.912434
295
- type: 'test'
296
- ...
297
- # Subtest: auth concurrent saves round trip credentials and Signal keys atomically
298
- ok 48 - auth concurrent saves round trip credentials and Signal keys atomically
299
- ---
300
- duration_ms: 73.664568
301
- type: 'test'
302
- ...
303
- # Subtest: corrupt auth is surfaced instead of silently creating a new identity
304
- ok 49 - corrupt auth is surfaced instead of silently creating a new identity
305
- ---
306
- duration_ms: 2.615108
307
- type: 'test'
308
- ...
309
- # Subtest: updated Jimp thumbnails and profile pictures work without native sharp
310
- ok 50 - updated Jimp thumbnails and profile pictures work without native sharp
311
- ---
312
- duration_ms: 300.49889
313
- type: 'test'
314
- ...
315
- # Subtest: updated music metadata parses generated PCM WAV
316
- ok 51 - updated music metadata parses generated PCM WAV
317
- ---
318
- duration_ms: 38.85452
319
- type: 'test'
320
- ...
321
- # Subtest: queue module supports CommonJS and package exports load
322
- ok 52 - queue module supports CommonJS and package exports load
323
- ---
324
- duration_ms: 219.60692
325
- type: 'test'
326
- ...
327
- # Subtest: relayMessage group pipeline encrypts the supplied event with reminder and secret
328
- ok 53 - relayMessage group pipeline encrypts the supplied event with reminder and secret
329
- ---
330
- duration_ms: 5.729739
331
- type: 'test'
332
- ...
333
- # Subtest: emoji accepted: ❤️
334
- ok 54 - emoji accepted: ❤️
335
- ---
336
- duration_ms: 11.23581
337
- type: 'test'
338
- ...
339
- # Subtest: emoji accepted: 🔥
340
- ok 55 - emoji accepted: 🔥
341
- ---
342
- duration_ms: 0.346336
343
- type: 'test'
344
- ...
345
- # Subtest: emoji accepted: 👍
346
- ok 56 - emoji accepted: 👍
347
- ---
348
- duration_ms: 0.126646
349
- type: 'test'
350
- ...
351
- # Subtest: emoji accepted: 👍🏽
352
- ok 57 - emoji accepted: 👍🏽
353
- ---
354
- duration_ms: 0.108794
355
- type: 'test'
356
- ...
357
- # Subtest: emoji accepted: 👨‍👩‍👧‍👦
358
- ok 58 - emoji accepted: 👨‍👩‍👧‍👦
359
- ---
360
- duration_ms: 0.135592
361
- type: 'test'
362
- ...
363
- # Subtest: emoji accepted: 😊
364
- ok 59 - emoji accepted: 😊
365
- ---
366
- duration_ms: 0.116691
367
- type: 'test'
368
- ...
369
- # Subtest: emoji accepted: 🇵🇪
370
- ok 60 - emoji accepted: 🇵🇪
371
- ---
372
- duration_ms: 0.090849
373
- type: 'test'
374
- ...
375
- # Subtest: emoji accepted: 1️⃣
376
- ok 61 - emoji accepted: 1️⃣
377
- ---
378
- duration_ms: 0.088355
379
- type: 'test'
380
- ...
381
- # Subtest: emoji accepted: 💜
382
- ok 62 - emoji accepted: 💜
383
- ---
384
- duration_ms: 0.280079
385
- type: 'test'
386
- ...
387
- # Subtest: emoji accepted: 👏
388
- ok 63 - emoji accepted: 👏
389
- ---
390
- duration_ms: 0.387383
391
- type: 'test'
392
- ...
393
- # Subtest: emoji accepted: 🌈
394
- ok 64 - emoji accepted: 🌈
395
- ---
396
- duration_ms: 0.21709
397
- type: 'test'
398
- ...
399
- # Subtest: emoji accepted: 🏳️‍🌈
400
- ok 65 - emoji accepted: 🏳️‍🌈
401
- ---
402
- duration_ms: 0.088242
403
- type: 'test'
404
- ...
405
- # Subtest: emoji accepted: 🧑🏽‍💻
406
- ok 66 - emoji accepted: 🧑🏽‍💻
407
- ---
408
- duration_ms: 0.0713
409
- type: 'test'
410
- ...
411
- # Subtest: emoji accepted: 🫶
412
- ok 67 - emoji accepted: 🫶
413
- ---
414
- duration_ms: 0.06659
415
- type: 'test'
416
- ...
417
- # Subtest: emoji accepted: ☀️
418
- ok 68 - emoji accepted: ☀️
419
- ---
420
- duration_ms: 0.106974
421
- type: 'test'
422
- ...
423
- # Subtest: emoji accepted: ⭐
424
- ok 69 - emoji accepted: ⭐
425
- ---
426
- duration_ms: 0.071174
427
- type: 'test'
428
- ...
429
- # Subtest: emoji accepted: 🐕
430
- ok 70 - emoji accepted: 🐕
431
- ---
432
- duration_ms: 0.062627
433
- type: 'test'
434
- ...
435
- # Subtest: emoji accepted: 💯
436
- ok 71 - emoji accepted: 💯
437
- ---
438
- duration_ms: 0.058573
439
- type: 'test'
440
- ...
441
- # Subtest: emoji accepted: 😀
442
- ok 72 - emoji accepted: 😀
443
- ---
444
- duration_ms: 0.058048
445
- type: 'test'
446
- ...
447
- # Subtest: emoji accepted: 🎉
448
- ok 73 - emoji accepted: 🎉
449
- ---
450
- duration_ms: 0.05881
451
- type: 'test'
452
- ...
453
- # Subtest: emoji rejected: ""
454
- ok 74 - emoji rejected: ""
455
- ---
456
- duration_ms: 0.124178
457
- type: 'test'
458
- ...
459
- # Subtest: emoji rejected: "hola"
460
- ok 75 - emoji rejected: "hola"
461
- ---
462
- duration_ms: 0.05881
463
- type: 'test'
464
- ...
465
- # Subtest: emoji rejected: "❤️🔥"
466
- ok 76 - emoji rejected: "❤️🔥"
467
- ---
468
- duration_ms: 0.439645
469
- type: 'test'
470
- ...
471
- # Subtest: emoji rejected: "a❤️"
472
- ok 77 - emoji rejected: "a❤️"
473
- ---
474
- duration_ms: 0.154303
475
- type: 'test'
476
- ...
477
- # Subtest: emoji rejected: "123"
478
- ok 78 - emoji rejected: "123"
479
- ---
480
- duration_ms: 0.076237
481
- type: 'test'
482
- ...
483
- # Subtest: emoji rejected: null
484
- ok 79 - emoji rejected: null
485
- ---
486
- duration_ms: 0.057784
487
- type: 'test'
488
- ...
489
- # Subtest: emoji rejected: 2
490
- ok 80 - emoji rejected: 2
491
- ---
492
- duration_ms: 0.061102
493
- type: 'test'
494
- ...
495
- # Subtest: emoji rejected: " "
496
- ok 81 - emoji rejected: " "
497
- ---
498
- duration_ms: 0.052037
499
- type: 'test'
500
- ...
501
- # Subtest: emoji rejected: "\\n"
502
- ok 82 - emoji rejected: "\\n"
503
- ---
504
- duration_ms: 0.061529
505
- type: 'test'
506
- ...
507
- # Subtest: emoji rejected: "👍 👍"
508
- ok 83 - emoji rejected: "👍 👍"
509
- ---
510
- duration_ms: 0.088767
511
- type: 'test'
512
- ...
513
- # Subtest: emoji rejected: "x"
514
- ok 84 - emoji rejected: "x"
515
- ---
516
- duration_ms: 0.049804
517
- type: 'test'
518
- ...
519
- # Subtest: emoji rejected: "🇵🇪🇲🇽"
520
- ok 85 - emoji rejected: "🇵🇪🇲🇽"
521
- ---
522
- duration_ms: 0.101119
523
- type: 'test'
524
- ...
525
- # Subtest: emoji rejected: "❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️"
526
- ok 86 - emoji rejected: "❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️"
527
- ---
528
- duration_ms: 0.0585
529
- type: 'test'
530
- ...
531
- # Subtest: offline country lookup PE
532
- ok 87 - offline country lookup PE
533
- ---
534
- duration_ms: 8.349424
535
- type: 'test'
536
- ...
537
- # Subtest: offline country lookup MX
538
- ok 88 - offline country lookup MX
539
- ---
540
- duration_ms: 1.29644
541
- type: 'test'
542
- ...
543
- # Subtest: offline country lookup ES
544
- ok 89 - offline country lookup ES
545
- ---
546
- duration_ms: 0.534614
547
- type: 'test'
548
- ...
549
- # Subtest: offline country lookup AR
550
- ok 90 - offline country lookup AR
551
- ---
552
- duration_ms: 1.696824
553
- type: 'test'
554
- ...
555
- # Subtest: offline country lookup CO
556
- ok 91 - offline country lookup CO
557
- ---
558
- duration_ms: 0.546334
559
- type: 'test'
560
- ...
561
- # Subtest: offline country lookup CL
562
- ok 92 - offline country lookup CL
563
- ---
564
- duration_ms: 0.741325
565
- type: 'test'
566
- ...
567
- # Subtest: offline country lookup EC
568
- ok 93 - offline country lookup EC
569
- ---
570
- duration_ms: 0.345777
571
- type: 'test'
572
- ...
573
- # Subtest: offline country lookup BO
574
- ok 94 - offline country lookup BO
575
- ---
576
- duration_ms: 0.453692
577
- type: 'test'
578
- ...
579
- # Subtest: offline country lookup BR
580
- ok 95 - offline country lookup BR
581
- ---
582
- duration_ms: 0.768971
583
- type: 'test'
584
- ...
585
- # Subtest: offline country lookup US
586
- ok 96 - offline country lookup US
587
- ---
588
- duration_ms: 7.215761
589
- type: 'test'
590
- ...
591
- # Subtest: offline country lookup CA
592
- ok 97 - offline country lookup CA
593
- ---
594
- duration_ms: 0.780661
595
- type: 'test'
596
- ...
597
- # Subtest: offline country lookup GB
598
- ok 98 - offline country lookup GB
599
- ---
600
- duration_ms: 1.442386
601
- type: 'test'
602
- ...
603
- # Subtest: offline country lookup FR
604
- ok 99 - offline country lookup FR
605
- ---
606
- duration_ms: 0.462909
607
- type: 'test'
608
- ...
609
- # Subtest: offline country lookup DE
610
- ok 100 - offline country lookup DE
611
- ---
612
- duration_ms: 0.884018
613
- type: 'test'
614
- ...
615
- # Subtest: offline country lookup IT
616
- ok 101 - offline country lookup IT
617
- ---
618
- duration_ms: 0.721416
619
- type: 'test'
620
- ...
621
- # Subtest: offline country lookup JP
622
- ok 102 - offline country lookup JP
623
- ---
624
- duration_ms: 0.782668
625
- type: 'test'
626
- ...
627
- # Subtest: offline country lookup KR
628
- ok 103 - offline country lookup KR
629
- ---
630
- duration_ms: 0.486617
631
- type: 'test'
632
- ...
633
- # Subtest: offline country lookup AU
634
- ok 104 - offline country lookup AU
635
- ---
636
- duration_ms: 0.630868
637
- type: 'test'
638
- ...
639
- # Subtest: offline country lookup NZ
640
- ok 105 - offline country lookup NZ
641
- ---
642
- duration_ms: 0.435348
643
- type: 'test'
644
- ...
645
- # Subtest: offline country lookup IN
646
- ok 106 - offline country lookup IN
647
- ---
648
- duration_ms: 1.582601
649
- type: 'test'
650
- ...
651
- # Subtest: offline country lookup ZA
652
- ok 107 - offline country lookup ZA
653
- ---
654
- duration_ms: 0.553548
655
- type: 'test'
656
- ...
657
- # Subtest: offline country lookup EG
658
- ok 108 - offline country lookup EG
659
- ---
660
- duration_ms: 0.329622
661
- type: 'test'
662
- ...
663
- # Subtest: offline country lookup MA
664
- ok 109 - offline country lookup MA
665
- ---
666
- duration_ms: 0.401081
667
- type: 'test'
668
- ...
669
- # Subtest: offline country lookup UY
670
- ok 110 - offline country lookup UY
671
- ---
672
- duration_ms: 0.29067
673
- type: 'test'
674
- ...
675
- # Subtest: offline country lookup PY
676
- ok 111 - offline country lookup PY
677
- ---
678
- duration_ms: 0.552979
679
- type: 'test'
680
- ...
681
- # Subtest: offline country lookup VE
682
- ok 112 - offline country lookup VE
683
- ---
684
- duration_ms: 0.296467
685
- type: 'test'
686
- ...
687
- # Subtest: offline country lookup CR
688
- ok 113 - offline country lookup CR
689
- ---
690
- duration_ms: 0.314196
691
- type: 'test'
692
- ...
693
- # Subtest: offline country lookup PA
694
- ok 114 - offline country lookup PA
695
- ---
696
- duration_ms: 0.301508
697
- type: 'test'
698
- ...
699
- # Subtest: offline country lookup DO
700
- ok 115 - offline country lookup DO
701
- ---
702
- duration_ms: 0.579078
703
- type: 'test'
704
- ...
705
- # Subtest: offline country lookup GT
706
- ok 116 - offline country lookup GT
707
- ---
708
- duration_ms: 0.264272
709
- type: 'test'
710
- ...
711
- # Subtest: country input rejection "123456@lid"
712
- ok 117 - country input rejection "123456@lid"
713
- ---
714
- duration_ms: 0.1072
715
- type: 'test'
716
- ...
717
- # Subtest: country input rejection "123@g.us"
718
- ok 118 - country input rejection "123@g.us"
719
- ---
720
- duration_ms: 0.06512
721
- type: 'test'
722
- ...
723
- # Subtest: country input rejection "status@broadcast"
724
- ok 119 - country input rejection "status@broadcast"
725
- ---
726
- duration_ms: 0.050259
727
- type: 'test'
728
- ...
729
- # Subtest: country input rejection "foo"
730
- ok 120 - country input rejection "foo"
731
- ---
732
- duration_ms: 0.114706
733
- type: 'test'
734
- ...
735
- # Subtest: country input rejection ""
736
- ok 121 - country input rejection ""
737
- ---
738
- duration_ms: 0.053805
739
- type: 'test'
740
- ...
741
- # Subtest: country input rejection null
742
- ok 122 - country input rejection null
743
- ---
744
- duration_ms: 0.052303
745
- type: 'test'
746
- ...
747
- # Subtest: country input rejection {}
748
- ok 123 - country input rejection {}
749
- ---
750
- duration_ms: 0.050877
751
- type: 'test'
752
- ...
753
- # Subtest: country input rejection "+9999999999999999999"
754
- ok 124 - country input rejection "+9999999999999999999"
755
- ---
756
- duration_ms: 0.051188
757
- type: 'test'
758
- ...
759
- # Subtest: country input rejection "123"
760
- ok 125 - country input rejection "123"
761
- ---
762
- duration_ms: 0.051987
763
- type: 'test'
764
- ...
765
- # Subtest: country input rejection "123:2@lid"
766
- ok 126 - country input rejection "123:2@lid"
767
- ---
768
- duration_ms: 0.05677
769
- type: 'test'
770
- ...
771
- # Subtest: LID mapping uses explicit mapped phone only
772
- ok 127 - LID mapping uses explicit mapped phone only
773
- ---
774
- duration_ms: 0.454312
775
- type: 'test'
776
- ...
777
- # Subtest: country responses do not leak mutable dataset references
778
- ok 128 - country responses do not leak mutable dataset references
779
- ---
780
- duration_ms: 0.962756
781
- type: 'test'
782
- ...
783
- # Subtest: normal media imageMessage / none
784
- ok 129 - normal media imageMessage / none
785
- ---
786
- duration_ms: 3.338913
787
- type: 'test'
788
- ...
789
- # Subtest: normal media imageMessage / ephemeralMessage
790
- ok 130 - normal media imageMessage / ephemeralMessage
791
- ---
792
- duration_ms: 0.874728
793
- type: 'test'
794
- ...
795
- # Subtest: normal media imageMessage / documentWithCaptionMessage
796
- ok 131 - normal media imageMessage / documentWithCaptionMessage
797
- ---
798
- duration_ms: 0.882026
799
- type: 'test'
800
- ...
801
- # Subtest: view-once not archived imageMessage / viewOnceMessage
802
- ok 132 - view-once not archived imageMessage / viewOnceMessage
803
- ---
804
- duration_ms: 0.757237
805
- type: 'test'
806
- ...
807
- # Subtest: view-once not archived imageMessage / viewOnceMessageV2
808
- ok 133 - view-once not archived imageMessage / viewOnceMessageV2
809
- ---
810
- duration_ms: 0.154387
811
- type: 'test'
812
- ...
813
- # Subtest: view-once not archived imageMessage / viewOnceMessageV2Extension
814
- ok 134 - view-once not archived imageMessage / viewOnceMessageV2Extension
815
- ---
816
- duration_ms: 0.090094
817
- type: 'test'
818
- ...
819
- # Subtest: normal media videoMessage / none
820
- ok 135 - normal media videoMessage / none
821
- ---
822
- duration_ms: 0.901256
823
- type: 'test'
824
- ...
825
- # Subtest: normal media videoMessage / ephemeralMessage
826
- ok 136 - normal media videoMessage / ephemeralMessage
827
- ---
828
- duration_ms: 0.982767
829
- type: 'test'
830
- ...
831
- # Subtest: normal media videoMessage / documentWithCaptionMessage
832
- ok 137 - normal media videoMessage / documentWithCaptionMessage
833
- ---
834
- duration_ms: 0.590898
835
- type: 'test'
836
- ...
837
- # Subtest: view-once not archived videoMessage / viewOnceMessage
838
- ok 138 - view-once not archived videoMessage / viewOnceMessage
839
- ---
840
- duration_ms: 0.097551
841
- type: 'test'
842
- ...
843
- # Subtest: view-once not archived videoMessage / viewOnceMessageV2
844
- ok 139 - view-once not archived videoMessage / viewOnceMessageV2
845
- ---
846
- duration_ms: 0.092718
847
- type: 'test'
848
- ...
849
- # Subtest: view-once not archived videoMessage / viewOnceMessageV2Extension
850
- ok 140 - view-once not archived videoMessage / viewOnceMessageV2Extension
851
- ---
852
- duration_ms: 0.064046
853
- type: 'test'
854
- ...
855
- # Subtest: normal media audioMessage / none
856
- ok 141 - normal media audioMessage / none
857
- ---
858
- duration_ms: 0.709888
859
- type: 'test'
860
- ...
861
- # Subtest: normal media audioMessage / ephemeralMessage
862
- ok 142 - normal media audioMessage / ephemeralMessage
863
- ---
864
- duration_ms: 0.683238
865
- type: 'test'
866
- ...
867
- # Subtest: normal media audioMessage / documentWithCaptionMessage
868
- ok 143 - normal media audioMessage / documentWithCaptionMessage
869
- ---
870
- duration_ms: 0.735624
871
- type: 'test'
872
- ...
873
- # Subtest: view-once not archived audioMessage / viewOnceMessage
874
- ok 144 - view-once not archived audioMessage / viewOnceMessage
875
- ---
876
- duration_ms: 0.13902
877
- type: 'test'
878
- ...
879
- # Subtest: view-once not archived audioMessage / viewOnceMessageV2
880
- ok 145 - view-once not archived audioMessage / viewOnceMessageV2
881
- ---
882
- duration_ms: 0.06435
883
- type: 'test'
884
- ...
885
- # Subtest: view-once not archived audioMessage / viewOnceMessageV2Extension
886
- ok 146 - view-once not archived audioMessage / viewOnceMessageV2Extension
887
- ---
888
- duration_ms: 0.114602
889
- type: 'test'
890
- ...
891
- # Subtest: normal media documentMessage / none
892
- ok 147 - normal media documentMessage / none
893
- ---
894
- duration_ms: 0.531726
895
- type: 'test'
896
- ...
897
- # Subtest: normal media documentMessage / ephemeralMessage
898
- ok 148 - normal media documentMessage / ephemeralMessage
899
- ---
900
- duration_ms: 0.524661
901
- type: 'test'
902
- ...
903
- # Subtest: normal media documentMessage / documentWithCaptionMessage
904
- ok 149 - normal media documentMessage / documentWithCaptionMessage
905
- ---
906
- duration_ms: 1.257158
907
- type: 'test'
908
- ...
909
- # Subtest: view-once not archived documentMessage / viewOnceMessage
910
- ok 150 - view-once not archived documentMessage / viewOnceMessage
911
- ---
912
- duration_ms: 0.098478
913
- type: 'test'
914
- ...
915
- # Subtest: view-once not archived documentMessage / viewOnceMessageV2
916
- ok 151 - view-once not archived documentMessage / viewOnceMessageV2
917
- ---
918
- duration_ms: 0.061945
919
- type: 'test'
920
- ...
921
- # Subtest: view-once not archived documentMessage / viewOnceMessageV2Extension
922
- ok 152 - view-once not archived documentMessage / viewOnceMessageV2Extension
923
- ---
924
- duration_ms: 0.05869
925
- type: 'test'
926
- ...
927
- # Subtest: normal media stickerMessage / none
928
- ok 153 - normal media stickerMessage / none
929
- ---
930
- duration_ms: 0.483478
931
- type: 'test'
932
- ...
933
- # Subtest: normal media stickerMessage / ephemeralMessage
934
- ok 154 - normal media stickerMessage / ephemeralMessage
935
- ---
936
- duration_ms: 0.375688
937
- type: 'test'
938
- ...
939
- # Subtest: normal media stickerMessage / documentWithCaptionMessage
940
- ok 155 - normal media stickerMessage / documentWithCaptionMessage
941
- ---
942
- duration_ms: 0.486707
943
- type: 'test'
944
- ...
945
- # Subtest: view-once not archived stickerMessage / viewOnceMessage
946
- ok 156 - view-once not archived stickerMessage / viewOnceMessage
947
- ---
948
- duration_ms: 0.077108
949
- type: 'test'
950
- ...
951
- # Subtest: view-once not archived stickerMessage / viewOnceMessageV2
952
- ok 157 - view-once not archived stickerMessage / viewOnceMessageV2
953
- ---
954
- duration_ms: 0.05757
955
- type: 'test'
956
- ...
957
- # Subtest: view-once not archived stickerMessage / viewOnceMessageV2Extension
958
- ok 158 - view-once not archived stickerMessage / viewOnceMessageV2Extension
959
- ---
960
- duration_ms: 0.050187
961
- type: 'test'
962
- ...
963
- # Subtest: normal media size limit checks actual stream bytes
964
- ok 159 - normal media size limit checks actual stream bytes
965
- ---
966
- duration_ms: 0.863882
967
- type: 'test'
968
- ...
969
- # Subtest: declared oversized media is rejected before download
970
- ok 160 - declared oversized media is rejected before download
971
- ---
972
- duration_ms: 0.164305
973
- type: 'test'
974
- ...
975
- # Subtest: empty media reports an explicit error
976
- ok 161 - empty media reports an explicit error
977
- ---
978
- duration_ms: 0.652289
979
- type: 'test'
980
- ...
981
- # Subtest: download deadline destroys a late stream
982
- ok 162 - download deadline destroys a late stream
983
- ---
984
- duration_ms: 188.130788
985
- type: 'test'
986
- ...
987
- # Subtest: saved files have deterministic safe names and restrictive permissions
988
- ok 163 - saved files have deterministic safe names and restrictive permissions
989
- ---
990
- duration_ms: 6.00794
991
- type: 'test'
992
- ...
993
- # Subtest: autodownload requires allowlist and ignores historical messages
994
- ok 164 - autodownload requires allowlist and ignores historical messages
995
- ---
996
- duration_ms: 0.420538
997
- type: 'test'
998
- ...
999
- # Subtest: status survives a new socket with matching account, binary data intact
1000
- ok 165 - status survives a new socket with matching account, binary data intact
1001
- ---
1002
- duration_ms: 1.999421
1003
- type: 'test'
1004
- ...
1005
- # Subtest: duplicate status retains stable ID
1006
- ok 166 - duplicate status retains stable ID
1007
- ---
1008
- duration_ms: 0.325146
1009
- type: 'test'
1010
- ...
1011
- # Subtest: revoke keeps only metadata tombstone and never restores deleted content
1012
- ok 167 - revoke keeps only metadata tombstone and never restores deleted content
1013
- ---
1014
- duration_ms: 0.291566
1015
- type: 'test'
1016
- ...
1017
- # Subtest: deletion is scoped by author and broadcast route
1018
- ok 168 - deletion is scoped by author and broadcast route
1019
- ---
1020
- duration_ms: 0.406522
1021
- type: 'test'
1022
- ...
1023
- # Subtest: expired status drops content and stays in short metadata history
1024
- ok 169 - expired status drops content and stays in short metadata history
1025
- ---
1026
- duration_ms: 0.166641
1027
- type: 'test'
1028
- ...
1029
- # Subtest: status cache bounded to 500 entries
1030
- ok 170 - status cache bounded to 500 entries
1031
- ---
1032
- duration_ms: 38.476793
1033
- type: 'test'
1034
- ...
1035
- # Subtest: manual reaction uses status route, real message key and emoji
1036
- ok 171 - manual reaction uses status route, real message key and emoji
1037
- ---
1038
- duration_ms: 0.773488
1039
- type: 'test'
1040
- ...
1041
- # Subtest: cannot react to deleted or self statuses
1042
- ok 172 - cannot react to deleted or self statuses
1043
- ---
1044
- duration_ms: 0.539918
1045
- type: 'test'
1046
- ...
1047
- # Subtest: random reaction uses configured emoji pool and deduplicates delivery
1048
- ok 173 - random reaction uses configured emoji pool and deduplicates delivery
1049
- ---
1050
- duration_ms: 0.914345
1051
- type: 'test'
1052
- ...
1053
- # Subtest: socket bindings install and detach status listeners without duplicates
1054
- ok 174 - socket bindings install and detach status listeners without duplicates
1055
- ---
1056
- duration_ms: 8.694211
1057
- type: 'test'
1058
- ...
1059
- # Subtest: AI disclosure is honest text, presence always resets after failure
1060
- ok 175 - AI disclosure is honest text, presence always resets after failure
1061
- ---
1062
- duration_ms: 0.484225
1063
- type: 'test'
1064
- ...
1065
- # Subtest: rich AI envelopes serialize locally without claiming server authentication
1066
- ok 176 - rich AI envelopes serialize locally without claiming server authentication
1067
- ---
1068
- duration_ms: 7.076004
1069
- type: 'test'
1070
- ...
1071
- # Subtest: browser presets support documented calls and missing browser
1072
- ok 177 - browser presets support documented calls and missing browser
1073
- ---
1074
- duration_ms: 0.269583
1075
- type: 'test'
1076
- ...
1077
- # Subtest: automatic reaction queue processes a burst with configured pacing
1078
- ok 178 - automatic reaction queue processes a burst with configured pacing
1079
- ---
1080
- duration_ms: 1002.32707
1081
- type: 'test'
1082
- ...
1083
- # Subtest: detaching status tracking never overwrites persisted activation setting
1084
- ok 179 - detaching status tracking never overwrites persisted activation setting
1085
- ---
1086
- duration_ms: 0.838363
1087
- type: 'test'
1088
- ...
1089
- 1..179
1090
- # tests 179
1091
- # suites 0
1092
- # pass 179
1093
- # fail 0
1094
- # cancelled 0
1095
- # skipped 0
1096
- # todo 0
1097
- # duration_ms 4815.650432