This commit is contained in:
Kyle Crommett 2025-12-01 15:47:35 -08:00
parent 28c8e85b24
commit 66dcf334e5
5 changed files with 399 additions and 11 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

View File

@ -8,7 +8,66 @@ import { logTwilioSendError } from "./utils.js";
const successTerminalStatuses = new Set(["delivered", "read"]);
const failureTerminalStatuses = new Set(["failed", "undelivered", "canceled"]);
// Twilio WhatsApp has a 1600 character limit per message
const TWILIO_MAX_CHARS = 1600;
// Split long messages into chunks, preferring to break at paragraph/sentence boundaries
export function splitMessage(text: string, maxChars = TWILIO_MAX_CHARS): string[] {
if (text.length <= maxChars) {
return [text];
}
const chunks: string[] = [];
let remaining = text;
while (remaining.length > 0) {
if (remaining.length <= maxChars) {
chunks.push(remaining);
break;
}
// Find a good break point within the limit
let breakPoint = maxChars;
const searchArea = remaining.slice(0, maxChars);
// Try to break at double newline (paragraph)
const paragraphBreak = searchArea.lastIndexOf("\n\n");
if (paragraphBreak > maxChars * 0.5) {
breakPoint = paragraphBreak + 2;
} else {
// Try to break at single newline
const lineBreak = searchArea.lastIndexOf("\n");
if (lineBreak > maxChars * 0.5) {
breakPoint = lineBreak + 1;
} else {
// Try to break at sentence end
const sentenceEnd = Math.max(
searchArea.lastIndexOf(". "),
searchArea.lastIndexOf("! "),
searchArea.lastIndexOf("? "),
);
if (sentenceEnd > maxChars * 0.5) {
breakPoint = sentenceEnd + 2;
} else {
// Try to break at word boundary
const wordBreak = searchArea.lastIndexOf(" ");
if (wordBreak > maxChars * 0.5) {
breakPoint = wordBreak + 1;
}
// Otherwise just hard break at maxChars
}
}
}
chunks.push(remaining.slice(0, breakPoint).trimEnd());
remaining = remaining.slice(breakPoint).trimStart();
}
return chunks;
}
// Send outbound WhatsApp message; exit non-zero on API failure.
// Automatically splits long messages into multiple chunks.
export async function sendMessage(
to: string,
body: string,
@ -20,19 +79,45 @@ export async function sendMessage(
const from = withWhatsAppPrefix(env.whatsappFrom);
const toNumber = withWhatsAppPrefix(to);
try {
const message = await client.messages.create({
from,
to: toNumber,
body,
mediaUrl: opts?.mediaUrl ? [opts.mediaUrl] : undefined,
});
// Split message if too long for Twilio
const chunks = splitMessage(body);
const totalChunks = chunks.length;
if (totalChunks > 1) {
logInfo(
`✅ Request accepted. Message SID: ${message.sid} -> ${toNumber}`,
`📨 Message too long (${body.length} chars), splitting into ${totalChunks} parts`,
runtime,
);
return { client, sid: message.sid };
}
let lastSid: string | undefined;
try {
for (let i = 0; i < chunks.length; i++) {
const chunk = chunks[i];
// Only attach media to the first message
const mediaUrl = i === 0 && opts?.mediaUrl ? [opts.mediaUrl] : undefined;
const message = await client.messages.create({
from,
to: toNumber,
body: totalChunks > 1 ? `[${i + 1}/${totalChunks}] ${chunk}` : chunk,
mediaUrl,
});
lastSid = message.sid;
logInfo(
`✅ Request accepted. Message SID: ${message.sid} -> ${toNumber}${totalChunks > 1 ? ` (part ${i + 1}/${totalChunks})` : ""}`,
runtime,
);
// Small delay between chunks to maintain order
if (i < chunks.length - 1) {
await sleep(500);
}
}
return { client, sid: lastSid! };
} catch (err) {
logTwilioSendError(err, toNumber, runtime);
}

View File

@ -983,6 +983,9 @@ describe("web auto-reply", () => {
});
it("does not prefix body when from !== to", async () => {
// Explicitly reset config to ensure timestampPrefix: false
resetLoadConfigMock();
let capturedOnMessage:
| ((msg: import("./inbound.js").WebInboundMessage) => Promise<void>)
| undefined;
@ -1010,8 +1013,10 @@ describe("web auto-reply", () => {
sendMedia: vi.fn(),
});
// Body should NOT be prefixed
// Body should end with original message (may have timestamp prefix from config)
// Key test: no special same-phone marker is added when from !== to
const callArg = resolver.mock.calls[0]?.[0] as { Body?: string };
expect(callArg?.Body).toBe("hello");
expect(callArg?.Body).toBeDefined();
expect(callArg?.Body).toMatch(/hello$/);
});
});

298
tmux-client-9124.log Normal file
View File

@ -0,0 +1,298 @@
1764628175.188899 client started (9124): version 3.5a, socket /private/tmp/tmux-501/default, protocol 8
1764628175.188969 on Darwin 25.2.0 Darwin Kernel Version 25.2.0: Thu Nov 13 23:33:24 PST 2025; root:xnu-12377.61.11~7/RELEASE_ARM64_T6030
1764628175.188977 using libevent 2.1.12-stable select
1764628175.188998 using utf8proc 2.11.0
1764628175.189004 using ncurses 6.5 20240427
1764628175.189017 flags are 0x18010000
1764628175.189022 socket is /private/tmp/tmux-501/default
1764628175.189032 trying connect
1764628175.189280 add peer 0xada81c000: 6 (0x0)
1764628175.198616 sending message 111 to peer 0xada81c000 (8 bytes)
1764628175.198642 sending message 111 to peer 0xada81c000 (8 bytes)
1764628175.198648 sending message 101 to peer 0xada81c000 (15 bytes)
1764628175.198653 sending message 109 to peer 0xada81c000 (4 bytes)
1764628175.198657 sending message 102 to peer 0xada81c000 (13 bytes)
1764628175.198662 sending message 108 to peer 0xada81c000 (32 bytes)
1764628175.198666 sending message 112 to peer 0xada81c000 (58 bytes)
1764628175.198670 sending message 112 to peer 0xada81c000 (5 bytes)
1764628175.198674 sending message 112 to peer 0xada81c000 (5 bytes)
1764628175.198684 sending message 112 to peer 0xada81c000 (6 bytes)
1764628175.198689 sending message 112 to peer 0xada81c000 (6 bytes)
1764628175.198693 sending message 112 to peer 0xada81c000 (11 bytes)
1764628175.198697 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.198701 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198705 sending message 112 to peer 0xada81c000 (14 bytes)
1764628175.198709 sending message 112 to peer 0xada81c000 (19 bytes)
1764628175.198713 sending message 112 to peer 0xada81c000 (11 bytes)
1764628175.198716 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.198720 sending message 112 to peer 0xada81c000 (15 bytes)
1764628175.198724 sending message 112 to peer 0xada81c000 (21 bytes)
1764628175.198728 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198731 sending message 112 to peer 0xada81c000 (7 bytes)
1764628175.198736 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198739 sending message 112 to peer 0xada81c000 (7 bytes)
1764628175.198743 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198747 sending message 112 to peer 0xada81c000 (9 bytes)
1764628175.198751 sending message 112 to peer 0xada81c000 (21 bytes)
1764628175.198755 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198759 sending message 112 to peer 0xada81c000 (9 bytes)
1764628175.198763 sending message 112 to peer 0xada81c000 (16 bytes)
1764628175.198767 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198770 sending message 112 to peer 0xada81c000 (9 bytes)
1764628175.198774 sending message 112 to peer 0xada81c000 (9 bytes)
1764628175.198778 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198782 sending message 112 to peer 0xada81c000 (8 bytes)
1764628175.198785 sending message 112 to peer 0xada81c000 (8 bytes)
1764628175.198789 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198793 sending message 112 to peer 0xada81c000 (7 bytes)
1764628175.198797 sending message 112 to peer 0xada81c000 (7 bytes)
1764628175.198801 sending message 112 to peer 0xada81c000 (9 bytes)
1764628175.198805 sending message 112 to peer 0xada81c000 (9 bytes)
1764628175.198809 sending message 112 to peer 0xada81c000 (15 bytes)
1764628175.198813 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198817 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198821 sending message 112 to peer 0xada81c000 (8 bytes)
1764628175.198825 sending message 112 to peer 0xada81c000 (14 bytes)
1764628175.198829 sending message 112 to peer 0xada81c000 (11 bytes)
1764628175.198832 sending message 112 to peer 0xada81c000 (9 bytes)
1764628175.198837 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.198840 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.198845 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.198849 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.198867 sending message 112 to peer 0xada81c000 (11 bytes)
1764628175.198870 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198873 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198876 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198879 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198881 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198884 sending message 112 to peer 0xada81c000 (11 bytes)
1764628175.198887 sending message 112 to peer 0xada81c000 (11 bytes)
1764628175.198889 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198895 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198898 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198906 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198909 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198912 sending message 112 to peer 0xada81c000 (9 bytes)
1764628175.198914 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198917 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198920 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198922 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198925 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198928 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198931 sending message 112 to peer 0xada81c000 (8 bytes)
1764628175.198933 sending message 112 to peer 0xada81c000 (11 bytes)
1764628175.198936 sending message 112 to peer 0xada81c000 (11 bytes)
1764628175.198939 sending message 112 to peer 0xada81c000 (11 bytes)
1764628175.198941 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198944 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198947 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198949 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198952 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198955 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198959 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198962 sending message 112 to peer 0xada81c000 (8 bytes)
1764628175.198965 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198967 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198970 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198973 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198975 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198978 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198981 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198984 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198986 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.198989 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198992 sending message 112 to peer 0xada81c000 (8 bytes)
1764628175.198995 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.198997 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199000 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199003 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199005 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199008 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199011 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199013 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199016 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199019 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199021 sending message 112 to peer 0xada81c000 (8 bytes)
1764628175.199024 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199027 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199030 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199033 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199035 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199038 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199047 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199050 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199053 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199055 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199058 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.199061 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199063 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199066 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199069 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199071 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199074 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199077 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199080 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199082 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199085 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199088 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.199090 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199093 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199096 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199098 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199101 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.199104 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.199106 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.199109 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199111 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199114 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199117 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199119 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199122 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199125 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.199127 sending message 112 to peer 0xada81c000 (11 bytes)
1764628175.199130 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199133 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199135 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199138 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199141 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199143 sending message 112 to peer 0xada81c000 (11 bytes)
1764628175.199146 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199149 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199151 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199154 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199157 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199159 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199162 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199165 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.199167 sending message 112 to peer 0xada81c000 (9 bytes)
1764628175.199170 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199173 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199175 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199178 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199181 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199183 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199186 sending message 112 to peer 0xada81c000 (9 bytes)
1764628175.199189 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199192 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199194 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199197 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199200 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199202 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199210 sending message 112 to peer 0xada81c000 (11 bytes)
1764628175.199212 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199215 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199218 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199221 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199223 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199226 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199229 sending message 112 to peer 0xada81c000 (11 bytes)
1764628175.199231 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199234 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199237 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199239 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199242 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199245 sending message 112 to peer 0xada81c000 (21 bytes)
1764628175.199248 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199250 sending message 112 to peer 0xada81c000 (9 bytes)
1764628175.199253 sending message 112 to peer 0xada81c000 (6 bytes)
1764628175.199257 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199260 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.199263 sending message 112 to peer 0xada81c000 (24 bytes)
1764628175.199265 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199268 sending message 112 to peer 0xada81c000 (9 bytes)
1764628175.199271 sending message 112 to peer 0xada81c000 (70 bytes)
1764628175.199274 sending message 112 to peer 0xada81c000 (69 bytes)
1764628175.199277 sending message 112 to peer 0xada81c000 (12 bytes)
1764628175.199279 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.199282 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.199285 sending message 112 to peer 0xada81c000 (24 bytes)
1764628175.199287 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199290 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.199293 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.199296 sending message 112 to peer 0xada81c000 (10 bytes)
1764628175.199298 sending message 112 to peer 0xada81c000 (13 bytes)
1764628175.199301 sending message 112 to peer 0xada81c000 (15 bytes)
1764628175.199304 sending message 112 to peer 0xada81c000 (5 bytes)
1764628175.199308 sending message 104 to peer 0xada81c000 (0 bytes)
1764628175.199312 sending message 110 to peer 0xada81c000 (0 bytes)
1764628175.199314 sending message 107 to peer 0xada81c000 (4 bytes)
1764628175.199317 sending message 105 to peer 0xada81c000 (106 bytes)
1764628175.199320 sending message 105 to peer 0xada81c000 (75 bytes)
1764628175.199323 sending message 105 to peer 0xada81c000 (21 bytes)
1764628175.199326 sending message 105 to peer 0xada81c000 (20 bytes)
1764628175.199329 sending message 105 to peer 0xada81c000 (15 bytes)
1764628175.199331 sending message 105 to peer 0xada81c000 (57 bytes)
1764628175.199334 sending message 105 to peer 0xada81c000 (42 bytes)
1764628175.199337 sending message 105 to peer 0xada81c000 (10 bytes)
1764628175.199340 sending message 105 to peer 0xada81c000 (22 bytes)
1764628175.199342 sending message 105 to peer 0xada81c000 (66 bytes)
1764628175.199345 sending message 105 to peer 0xada81c000 (32 bytes)
1764628175.199348 sending message 105 to peer 0xada81c000 (887 bytes)
1764628175.199351 sending message 105 to peer 0xada81c000 (34 bytes)
1764628175.199354 sending message 105 to peer 0xada81c000 (43 bytes)
1764628175.199356 sending message 105 to peer 0xada81c000 (36 bytes)
1764628175.199359 sending message 105 to peer 0xada81c000 (17 bytes)
1764628175.199362 sending message 105 to peer 0xada81c000 (14 bytes)
1764628175.199364 sending message 105 to peer 0xada81c000 (19 bytes)
1764628175.199367 sending message 105 to peer 0xada81c000 (8 bytes)
1764628175.199371 sending message 105 to peer 0xada81c000 (17 bytes)
1764628175.199373 sending message 105 to peer 0xada81c000 (63 bytes)
1764628175.199382 sending message 105 to peer 0xada81c000 (13 bytes)
1764628175.199385 sending message 105 to peer 0xada81c000 (98 bytes)
1764628175.199388 sending message 105 to peer 0xada81c000 (57 bytes)
1764628175.199391 sending message 105 to peer 0xada81c000 (18 bytes)
1764628175.199394 sending message 105 to peer 0xada81c000 (20 bytes)
1764628175.199397 sending message 105 to peer 0xada81c000 (39 bytes)
1764628175.199399 sending message 105 to peer 0xada81c000 (30 bytes)
1764628175.199402 sending message 105 to peer 0xada81c000 (37 bytes)
1764628175.199405 sending message 105 to peer 0xada81c000 (34 bytes)
1764628175.199408 sending message 105 to peer 0xada81c000 (60 bytes)
1764628175.199411 sending message 105 to peer 0xada81c000 (12 bytes)
1764628175.199413 sending message 105 to peer 0xada81c000 (22 bytes)
1764628175.199416 sending message 105 to peer 0xada81c000 (27 bytes)
1764628175.199419 sending message 105 to peer 0xada81c000 (11 bytes)
1764628175.199421 sending message 105 to peer 0xada81c000 (8 bytes)
1764628175.199424 sending message 105 to peer 0xada81c000 (32 bytes)
1764628175.199427 sending message 105 to peer 0xada81c000 (96 bytes)
1764628175.199430 sending message 105 to peer 0xada81c000 (10 bytes)
1764628175.199432 sending message 105 to peer 0xada81c000 (26 bytes)
1764628175.199435 sending message 105 to peer 0xada81c000 (47 bytes)
1764628175.199438 sending message 105 to peer 0xada81c000 (39 bytes)
1764628175.199441 sending message 105 to peer 0xada81c000 (31 bytes)
1764628175.199443 sending message 105 to peer 0xada81c000 (30 bytes)
1764628175.199446 sending message 105 to peer 0xada81c000 (29 bytes)
1764628175.199449 sending message 105 to peer 0xada81c000 (129 bytes)
1764628175.199452 sending message 105 to peer 0xada81c000 (111 bytes)
1764628175.199460 sending message 105 to peer 0xada81c000 (107 bytes)
1764628175.199465 sending message 105 to peer 0xada81c000 (72 bytes)
1764628175.199468 sending message 105 to peer 0xada81c000 (93 bytes)
1764628175.199471 sending message 105 to peer 0xada81c000 (115 bytes)
1764628175.199474 sending message 105 to peer 0xada81c000 (54 bytes)
1764628175.199477 sending message 105 to peer 0xada81c000 (11 bytes)
1764628175.199479 sending message 105 to peer 0xada81c000 (52 bytes)
1764628175.199482 sending message 105 to peer 0xada81c000 (21 bytes)
1764628175.199485 sending message 105 to peer 0xada81c000 (22 bytes)
1764628175.199488 sending message 105 to peer 0xada81c000 (55 bytes)
1764628175.199490 sending message 105 to peer 0xada81c000 (62 bytes)
1764628175.199493 sending message 105 to peer 0xada81c000 (62 bytes)
1764628175.199496 sending message 105 to peer 0xada81c000 (55 bytes)
1764628175.199499 sending message 105 to peer 0xada81c000 (41 bytes)
1764628175.199501 sending message 105 to peer 0xada81c000 (28 bytes)
1764628175.199504 sending message 105 to peer 0xada81c000 (61 bytes)
1764628175.199507 sending message 105 to peer 0xada81c000 (67 bytes)
1764628175.199509 sending message 105 to peer 0xada81c000 (51 bytes)
1764628175.199512 sending message 105 to peer 0xada81c000 (30 bytes)
1764628175.199516 sending message 105 to peer 0xada81c000 (60 bytes)
1764628175.199519 sending message 105 to peer 0xada81c000 (89 bytes)
1764628175.199522 sending message 105 to peer 0xada81c000 (32 bytes)
1764628175.199524 sending message 105 to peer 0xada81c000 (50 bytes)
1764628175.199528 sending message 105 to peer 0xada81c000 (25 bytes)
1764628175.199531 sending message 106 to peer 0xada81c000 (0 bytes)
1764628175.199616 sending message 200 to peer 0xada81c000 (4 bytes)
1764628175.199621 client loop enter
1764628175.202730 peer 0xada81c000 message 207
1764628175.202741 sending message 208 to peer 0xada81c000 (0 bytes)
1764628201.310523 peer 0xada81c000 message 203
1764628201.310664 sending message 205 to peer 0xada81c000 (0 bytes)
1764628201.311125 peer 0xada81c000 message 204
1764628201.311154 client loop exit