collapseTeammateShutdowns static method
Collapses consecutive in-process teammate shutdown task_status attachments into a single batch attachment with a count.
Implementation
static List<RenderableMessage> collapseTeammateShutdowns(
List<RenderableMessage> messages,
) {
final result = <RenderableMessage>[];
var i = 0;
while (i < messages.length) {
final msg = messages[i];
if (_isTeammateShutdownAttachment(msg)) {
var count = 0;
while (i < messages.length &&
_isTeammateShutdownAttachment(messages[i])) {
count++;
i++;
}
if (count == 1) {
result.add(msg);
} else {
result.add(
RenderableMessage(
type: 'attachment',
uuid: msg.uuid,
timestamp: msg.timestamp,
attachment: AttachmentData(
type: 'teammate_shutdown_batch',
count: count,
),
),
);
}
} else {
result.add(msg);
i++;
}
}
return result;
}