From 2fe5f34c5cbcefa9c780b4580f59309d3e82b9f7 Mon Sep 17 00:00:00 2001 From: evgeny Date: Tue, 6 Oct 2026 12:37:25 +0200 Subject: [PATCH] Trace avatar discovery and profile events for integration checks --- tools/chatgui/src/avatars/avatarmanager.cpp | 3 +++ tools/chatgui/tests/test_avatars.cpp | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/tools/chatgui/src/avatars/avatarmanager.cpp b/tools/chatgui/src/avatars/avatarmanager.cpp index 9d59c1fb..4af14e98 100644 --- a/tools/chatgui/src/avatars/avatarmanager.cpp +++ b/tools/chatgui/src/avatars/avatarmanager.cpp @@ -68,6 +68,7 @@ void AvatarManager::initialize() { void AvatarManager::refreshMembers() { if (!m_db || !m_db->isOpen() || !gui_bridge_is_uasync_ready()) return; for (const auto& channel : m_db->getChannels()) { + DEBUG_DEBUG(DEBUG_CATEGORY_MEDIA, "avatar: request member snapshot channel=%s", qPrintable(channel.channelId)); auto* q = (chat_member_list_req*)u_calloc(1, sizeof(chat_member_list_req)); if (!q) { DEBUG_ERROR(DEBUG_CATEGORY_MEDIA, "avatar: member request allocation failed"); return; } q->inst = gui_bridge_get_inst(); const QByteArray id = channel.channelId.toLatin1(); @@ -100,6 +101,8 @@ void AvatarManager::onMembers(const QString& channel, int count, const uint8_t* if (full) for (const auto& context : m_refs.keys()) if (m_refs[context].group == group && !seen.contains(context)) removeMember(channel, m_refs[context].owner); emit serversChanged(); scheduleOwn(group); pump(); + DEBUG_DEBUG(DEBUG_CATEGORY_MEDIA, "avatar: member snapshot channel=%s count=%d full=%d servers=%d refs=%d", + qPrintable(channel), count, int(full), m_servers.value(group).size(), m_refs.size()); } void AvatarManager::removeMember(const QString& channel, quint64 owner) { diff --git a/tools/chatgui/tests/test_avatars.cpp b/tools/chatgui/tests/test_avatars.cpp index e7d5d8b0..cbba7ee8 100644 --- a/tools/chatgui/tests/test_avatars.cpp +++ b/tools/chatgui/tests/test_avatars.cpp @@ -27,6 +27,7 @@ extern "C" void gui_bridge_post_uasync_fn(void (*fn)(void*), void* arg) { uasync_call_soon(testInstance->ua, arg, fn); } static void avatarEvent(UTUN_INSTANCE*, int type, const uint8_t* data, int length) { + DEBUG_DEBUG(DEBUG_CATEGORY_MEDIA, "avatar test: event type=%d bytes=%d", type, length); auto* manager = AvatarManager::instance(); if (!manager) return; if (type == CHAT_EVT_MEMBER_FILES_RESPONSE) manager->onResponse(data, length); if (type == CHAT_EVT_MEMBER_FILES_TRANSFER) manager->onTransfer(data, length); @@ -66,6 +67,9 @@ private slots: void uploadReplicateCacheRestartAndRemove() { debug_config_init(); debug_set_level(DEBUG_LEVEL_INFO); + debug_set_category_level(DEBUG_CATEGORY_CHAT_SYNC, DEBUG_LEVEL_DEBUG); + debug_set_category_level(DEBUG_CATEGORY_MEDIA, DEBUG_LEVEL_DEBUG); + debug_set_category_level(DEBUG_CATEGORY_SYS, DEBUG_LEVEL_ERROR); QTemporaryDir directory; QVERIFY(directory.isValid()); UASYNC* ua = uasync_create(); QVERIFY(ua); const QByteArray config = "[global]\nmy_private_key=704f2e012c8fa8768130cb0f988a997dccb628372bc5ceccacc78dcbfec5916f\n"