{
if (chunk.type === 'user') {
console.log('[CHUNK DEBUG] User chunk received:', {
type: chunk.type,
clientMessageId: chunk.clientMessageId,
status: chunk.status,
content: (chunk.content || '').substring(0, 30) + '...'
});
}
});
// Handle server confirmation for user messages
chunks.forEach(chunk => {
if (chunk.type === 'user' && chunk.clientMessageId && chunk.status === 'sent') {
console.log('[CHUNK DEBUG] Calling handleServerConfirmation for:', chunk.clientMessageId);
$data.handleServerConfirmation(chunk.clientMessageId);
}
});
$data.handleResponse($event.detail.chunks)
"
@system-message-received.window="
console.log('📣 Messages Component: Received system-message-received event', $event.detail);
$data.handleSystemMessage($event.detail.chunk)
"
@instant-message.window="
const timestamp = new Date().toISOString();
console.log(`📣 Messages Component: Received instant-message event at ${timestamp}`, $event.detail);
// Bypass all queue processing for instant display
const messageData = $event.detail;
const existingIndex = $data.findMessageByClientId(messageData.clientMessageId);
// Debug: Log current message array state
console.log('[MESSAGE_ARRAY_DEBUG] Before instant-message add:', {
timestamp: timestamp,
currentLength: $data.messages.length,
lastMessage: $data.messages[$data.messages.length - 1],
existingIndex: existingIndex,
clientMessageId: messageData.clientMessageId
});
if (existingIndex === -1) { // Only add if not found
$data.messages.push({
id: Date.now() + Math.random(),
type: messageData.type,
content: messageData.content,
clientMessageId: messageData.clientMessageId,
status: messageData.status || 'sending',
emoji: false,
noTail: false,
attachment: messageData.attachment
});
// Debug: Log after adding message
console.log('[MESSAGE_ARRAY_DEBUG] After instant-message add:', {
newLength: $data.messages.length,
addedMessageIndex: $data.messages.length - 1,
lastMessage: $data.messages[$data.messages.length - 1]
});
// Show status immediately for instant messages
if (messageData.type === 'user') {
$data.showStatus = true;
$data.currentStatus = 'Sending...';
console.log('[STATUS DEBUG] Instant user message added - showing status immediately');
// Force a DOM update to ensure visibility
$data.$nextTick(() => {
console.log('[STATUS DEBUG] After nextTick in instant-message:', {
showStatus: $data.showStatus,
currentStatus: $data.currentStatus
});
});
}
window.dispatchEvent(new CustomEvent('scroll-to-bottom'));
} else {
// Optional: Update status or log that it already exists
// $data.messages[existingIndex].status = messageData.status || 'sending';
console.log('Instant message already exists, not re-adding:', messageData.clientMessageId);
}
"
>
COMPONENT