Releases: vinikjkkj/wa-diff
Release list
AI Bots, Labyrinth Epoch Rotation, Enhanced Calls & Status Publishing
🇺🇸 English
AI & Bots Enhancements
- Meta AI now intelligently forwards quoted chat messages, extracting text and replacing mentions with pushnames.
s = o("WAWebMetaAiForwardedText").composeMetaAiForwardedText(s, n)
- Introduced "Biz AI Smart Composer" thinking states and UI placeholders for agent replies.
l.SPINNING_UP_DURATION_MS = e; // 800ms
- Improved bot profile management, enabling the syncing and persistence of third-party bot profile pictures, and added a specific check for "third-party agents."
l.isThirdPartyAgent = s; // new function
- Support for managing AI subscriptions via "Hatch" is now gated by a new ABProp and feature check.
o("WAWebABProps").getABPropConfigValue("ai_hatch_manage_subscription_enabled")
Labyrinth (E2E Backup) & Security
- Implemented "Rotate Epoch" functionality for Labyrinth backups via Wasm and a new GraphQL mutation.
l.rotateEpochWasm = m; // new function
- Labyrinth debug state and backup jobs now store more detailed key material, including virtual device IDs and various public/private keys.
epochStoragePrivateKey: e.device.epochStoragePrivateKey,
Calling & VoIP Improvements
- New WAM event metrics for call performance, including "Cathode" audio path and metered Wi-Fi detection.
caCathodeEmitToWireAvg: [3118, e.TYPES.NUMBER],
- Added logic to redact ICE candidates in logs, enhancing privacy by anonymizing IP addresses (IPv4 and IPv6).
return t.map(function (e, n) { return n === 4 || t[n - 1] === "raddr" ? ze(e) : e; }).join(" ");
- New component
WAWebVoipVideoTileLoadingTimingsdefines delays for self-spinner in video calls.l.SELF_SPINNER_SHOW_DELAY_MS = e; // 300ms
Status & Messaging Refinements
- Status message publishing received an extensive refactor, introducing explicit arguments for fanout, broadcast, and direct publishing.
l.toStatusBroadcastPublishArgs = E; // new function
- WAM events now track "View Once Text Messages" (opened, received, sent), indicating an expansion of this feature.
viewOnceTextMessagesOpened: [147, e.TYPES.INTEGER],
Platform & UI Updates
- A new
ACSCommonmodule centralizes common Access Control Service (ACS) definitions, including a specific error for invalid config IDs.var e = (function (e) { function t(t) { return ( (n = e.call(this, "ACS server rejected config ID " + t) || this), (n.name = "ACSInvalidConfigIdError"), (n.configId = t), n ); })(babelHelpers.wrapNativeSuper(Error));
- New PWA features include a launch queue consumer and improved resolution of PWA deep links for calls.
window.launchQueue.setConsumer(function (t) { var n = t.targetURL; // for PWA deep linking });
- Expanded UI Action WAM events for detailed analytics on user interactions like menu navigation, chat swipes, and pinning/unpinning.
MENU_OPENED: 46,
- New icons added for AI bots, pinning, and specific currencies like Dong.
{ Component: r("WDSIconWdsIcCurrencyDong.react"), name: "WDSIconWdsIcCurrencyDong" },
🇧🇷 Português
Aprimoramentos em IA e Bots
- O Meta AI agora encaminha inteligentemente mensagens de chat citadas, extraindo texto e substituindo menções por pushnames.
s = o("WAWebMetaAiForwardedText").composeMetaAiForwardedText(s, n)
- Introdução de estados de "pensamento" e placeholders de UI para o "Biz AI Smart Composer" para respostas de agentes.
l.SPINNING_UP_DURATION_MS = e; // 800ms
- Melhorias na gestão de perfis de bot, permitindo a sincronização e persistência de fotos de perfil de bots de terceiros, e adicionada uma verificação específica para "agentes de terceiros".
l.isThirdPartyAgent = s; // new function
- O suporte para gerenciar assinaturas de IA via "Hatch" agora é controlado por uma nova ABProp e verificação de recurso.
o("WAWebABProps").getABPropConfigValue("ai_hatch_manage_subscription_enabled")
Labyrinth (Backup E2E) e Segurança
- Funcionalidade de "Rotação de Época" implementada para backups Labyrinth via Wasm e uma nova mutação GraphQL.
l.rotateEpochWasm = m; // new function
- O estado de depuração Labyrinth e os trabalhos de backup agora armazenam material de chave mais detalhado, incluindo IDs de dispositivos virtuais e várias chaves públicas/privadas.
epochStoragePrivateKey: e.device.epochStoragePrivateKey,
Melhorias em Chamadas e VoIP
- Novas métricas de eventos WAM para desempenho de chamadas, incluindo o caminho de áudio "Cathode" e detecção de Wi-Fi medido.
caCathodeEmitToWireAvg: [3118, e.TYPES.NUMBER],
- Adicionada lógica para redigir candidatos ICE em logs, aumentando a privacidade ao anonimizar endereços IP (IPv4 e IPv6).
return t.map(function (e, n) { return n === 4 || t[n - 1] === "raddr" ? ze(e) : e; }).join(" ");
- Novo componente
WAWebVoipVideoTileLoadingTimingsdefine atrasos para o spinner próprio em chamadas de vídeo.l.SELF_SPINNER_SHOW_DELAY_MS = e; // 300ms
Refinamentos em Status e Mensagens
- A publicação de mensagens de status recebeu uma refatoração extensa, introduzindo argumentos explícitos para fanout, broadcast e publicação direta.
l.toStatusBroadcastPublishArgs = E; // new function
- Eventos WAM agora rastreiam "Mensagens de Texto de Visualização Única" (abertas, recebidas, enviadas), indicando uma expansão desse recurso.
viewOnceTextMessagesOpened: [147, e.TYPES.INTEGER],
Atualizações de Plataforma e UI
- Um novo módulo
ACSCommoncentraliza definições comuns do Serviço de Controle de Acesso (ACS), incluindo um erro específico para IDs de configuração inválidas.var e = (function (e) { function t(t) { return ( (n = e.call(this, "ACS server rejected config ID " + t) || this), (n.name = "ACSInvalidConfigIdError"), (n.configId = t), n ); })(babelHelpers.wrapNativeSuper(Error));
- Novos recursos PWA incluem um consumidor de fila de lançamento e resolução aprimorada de deep links PWA para chamadas.
window.launchQueue.setConsumer(function (t) { var n = t.targetURL; // for PWA deep linking });
- Eventos WAM de Ação de UI expandidos para análises detalhadas sobre interações do usuário, como navegação de menu, deslizes de chat e fixação/desfixação.
MENU_OPENED: 46,
- Novos ícones adicionados para bots de IA, fixação e moedas específicas como Dong.
{ Component: r("WDSIconWdsIcCurrencyDong.react"), name: "WDSIconWdsIcCurrencyDong" },
Commit: 366addf6b3
AI Agents, Customer Profiles, VoIP & Bloks UI Improvements
🇺🇸 English
- AI Agent / Business AI: New AB prop
ai_3p_bot_product_enabledenables third-party AI bot products, alongside a new "Agents" section in settings.ai_3p_bot_product_enabled: [33090, "bool", !1, !1]
- Added logging for Google Drive AI agent integration, including value proposition views and connection results.
l.logViewGoogleDriveValueProp = _e
- API Function plugins for AI agents now include detailed
apixfnPlugininformation in queries.apixfnPlugin: s == null ? null : s
- Enhanced AI agent onboarding observation and status utilities with
useObserveAiAgentOnboarding.l.useObserveAiAgentOnboarding = m
- Customer Profile Management: A comprehensive system for managing customer profiles, enabling fetching of acquisition source, birthday, and lead stage.
l.fetchCustomerProfile = u;
- Introduced the ability to upsert individual customer profile fields, such as email, address, or birthday.
l.upsertCustomerProfileFieldToServer = h;
- Defined various acquisition sources for customer profiles, including
CTWA,ORGANIC,REFERRAL, andUNKNOWN.i.PROFILE_ACQUISITION_SOURCE_CTWA = e
- VoIP Improvements: Enabled context menu optimizations for 1-on-1 call info with
call_info_optimizations_1on1_context_menu.call_info_optimizations_1on1_context_menu: [34450, "bool", !1, !1]
- Added mechanisms to track and report SCTP fallback outcomes, particularly for IPv4-only recovery in WebTransport fallback scenarios.
).markSctpEnteredViaWebTransportFallback()
- Implemented peer ICE restart handling for P2P connections to improve call reliability with
registerOnPeerIceRestart.o("WAWebVoipP2PConnectionManager").registerOnPeerIceRestart(ye)
- Bloks UI / Stacked Screens: Introduced support for stacked screens in Bloks applications, allowing multiple UI layers with
stacked_screens.stacked_screens: o.server_data) == null ? void 0 : n.stacked_screens
- Platform & Business Features:
CHANNEL_STATUS_MUSICis a new newsletter capability.CometImagePrefetchCacheintroduces image prefetching for performance. Business Broadcasts Pro now supports10,000recipients. New business sensitive actions were added, e.g.,BUSINESS_ACTIVATE_TRUSTED_EMAIL.CHANNEL_STATUS_MUSIC: 22var e = 5e3; // default cache size
var e = 1e4; // recipient limit
BUSINESS_ACTIVATE_TRUSTED_EMAIL
🇧🇷 Português
- Agente de IA / IA para Negócios: Novo AB prop
ai_3p_bot_product_enabledhabilita produtos de bot de IA de terceiros, juntamente com uma nova seção de "Agentes" nas configurações.ai_3p_bot_product_enabled: [33090, "bool", !1, !1]
- Adicionado registro para integração de agentes de IA do Google Drive, incluindo visualizações da proposta de valor e resultados de conexão.
l.logViewGoogleDriveValueProp = _e
- Plugins de Função de API para agentes de IA agora incluem informações detalhadas de
apixfnPluginem consultas.apixfnPlugin: s == null ? null : s
- Observação de integração e utilitários de status de agentes de IA aprimorados com
useObserveAiAgentOnboarding.l.useObserveAiAgentOnboarding = m
- Gerenciamento de Perfil do Cliente: Um sistema abrangente para gerenciar perfis de clientes, permitindo a busca de fonte de aquisição, data de nascimento e estágio de lead.
l.fetchCustomerProfile = u;
- Introduzida a capacidade de realizar upsert de campos de perfil de cliente individuais, como e-mail, endereço ou data de nascimento.
l.upsertCustomerProfileFieldToServer = h;
- Definidas várias fontes de aquisição para perfis de clientes, incluindo
CTWA,ORGANIC,REFERRALeUNKNOWN.i.PROFILE_ACQUISITION_SOURCE_CTWA = e
- Melhorias no VoIP: Otimizações de menu de contexto para informações de chamadas 1-para-1 habilitadas com
call_info_optimizations_1on1_context_menu.call_info_optimizations_1on1_context_menu: [34450, "bool", !1, !1]
- Adicionados mecanismos para rastrear e relatar resultados de fallback SCTP, particularmente para recuperação somente IPv4 em cenários de fallback do WebTransport.
).markSctpEnteredViaWebTransportFallback()
- Implementado o tratamento de reinício de ICE de pares para conexões P2P para melhorar a confiabilidade da chamada com
registerOnPeerIceRestart.o("WAWebVoipP2PConnectionManager").registerOnPeerIceRestart(ye)
- UI Bloks / Telas Empilhadas: Introduzido suporte para telas empilhadas em aplicativos Bloks, permitindo múltiplas camadas de UI com
stacked_screens.stacked_screens: o.server_data) == null ? void 0 : n.stacked_screens
- Recursos de Plataforma e Negócios:
CHANNEL_STATUS_MUSICé uma nova capacidade de newsletter.CometImagePrefetchCacheintroduz o pré-carregamento de imagens para desempenho. O Business Broadcasts Pro agora suporta10.000destinatários. Novas ações sensíveis de negócios foram adicionadas, por exemplo,BUSINESS_ACTIVATE_TRUSTED_EMAIL.CHANNEL_STATUS_MUSIC: 22var e = 5e3; // default cache size
var e = 1e4; // recipient limit
BUSINESS_ACTIVATE_TRUSTED_EMAIL
Commit: 52764c63e8
Major Windows Hybrid App Overhaul, Enhanced Meta AI, and VoIP Audio Improvements
🇺🇸 English
Windows Hybrid App Integration
- Massive overhaul of the Windows Hybrid Bridge, upgrading to version 2632 with numerous new bridge interfaces. This includes extensive features for ABProps, WAM logging, preferences, scaling control, media file handling, advanced media transcoding, app activation, native app state, system integrations (notifications, taskbar badge, startup tasks), browser extensions, seamless migration, advertising verification (ADV), ringtones, meta config, debug features, contacts, SQLite, and VoIP.
l.WindowsHybridBridge_v2632 = e;
Meta AI & Bot Features
- Expanded Meta AI capabilities with a new ABProp for managing AI Hatch subscriptions and refactored gating logic from
isAskMetaAiMediaForwardEnabledto a broaderisAskMetaAiImprovementEnabledfor media queries. Also introduced a new module for composing forwarded text with a specific separator for Meta AI chats.ai_hatch_manage_subscription_enabled: [34521, "bool", !1, !0],
- New ABProp
smb_meta_ai_tos_notice_idintroduced for handling Meta AI Terms of Service for businesses.smb_meta_ai_tos_notice_id: [14628, "string", "", ""],
- New bot WIDs for SMB Meta AI, including
META_BOT_SMB_PN_WIDandMETA_BOT_SMB_FBID_WID, along with a new debug tool to assign chats to the current device for agent chat assignment testing.(l.META_BOT_SMB_PN_WID = d), (l.META_BOT_SMB_FBID_WID = m);
VoIP & Calling
- Enhanced audio processing in VoIP calls with support for
auto_gain_controlin media stream acquisition and audio capture parameters.Ke(e, (n == null ? void 0 : n.autoGainControl) !== !1);
- New ABProps for calling features, such as chatlist activation banners, push notifications on call end, mic health, and input level experiences.
wa_web_calling_chatlist_activation_banner_enabled: [34762, "bool", !1, !1],
- Added new WAM event fields
audioCodecDecodedRedBitrateandaudioCodecDecodedRedBitrateDominantSpeakerfor more detailed audio codec logging during calls.audioCodecDecodedRedBitrate: [3114, e.TYPES.NUMBER],
- Introduced new ABProps for guest calling features, including representation and waiting room admin/approval experiences.
web_guest_calling_representation_enabled: [31533, "bool", !1, !1],
Platform Stability & Infrastructure
- Implemented
WAWebCommsWorkerReadyto manage and await backend comms worker readiness, improving robustness during worker restarts.l.setCommsWorkerReady = c;
- Refined reporting token validation by removing
isReportingTokenEditReceiveEnabledand updatingvalidateReportingTokenInfologic.(l.validateReportingTokenInfo = F),
Commerce & Media
- Introduced a dedicated
WAWebPaymentLinkWamLoggerfor comprehensive logging of payment link interactions (send, receive, click events) for both buyers and merchants.l.shouldLogReceiverEvent = f;
- Added new modules for more sophisticated image prefetching and display logic (
CometFeedAdImageWidths,CometImagePrefetchSurfaces,getCometFeedImageWidth,getCometRHCAdImageWidth), enablinggetCometImageWidthForSurfacefor optimized image loading.l.default = _;
- Added
sharableEventInviteproperties to the message model, indicating new capabilities for sharing event invitations within chats.(e.sharableEventInviteId = o("WAWebBaseModel").prop()),
- Introduced
WAWebChatThemeA11yName.jsfor accessibility names of chat themes and awallpaperLoggingIdfunction for WAM logging related to wallpapers.l.getColorSchemeA11yName = e;
🇧🇷 Português
Integração do Aplicativo Híbrido Windows
- Grande reformulação da Ponte Híbrida do Windows, atualizando para a versão 2632 com inúmeras novas interfaces de ponte. Isso inclui recursos extensivos para ABProps, registro WAM, preferências, controle de escala, manipulação de arquivos de mídia, transcodificação avançada de mídia, ativação de aplicativos, estado nativo de aplicativos, integrações de sistema (notificações, selo da barra de tarefas, tarefas de inicialização), extensões de navegador, migração perfeita, verificação de publicidade (ADV), toques, meta configuração, recursos de depuração, contatos, SQLite e VoIP.
l.WindowsHybridBridge_v2632 = e;
Recursos de Meta AI e Bots
- Capacidades de Meta AI expandidas com uma nova ABProp para gerenciar assinaturas AI Hatch e lógica de controle refatorada de
isAskMetaAiMediaForwardEnabledpara umisAskMetaAiImprovementEnabledmais abrangente para consultas de mídia. Também foi introduzido um novo módulo para compor texto encaminhado com um separador específico para conversas de Meta AI.ai_hatch_manage_subscription_enabled: [34521, "bool", !1, !0],
- Nova ABProp
smb_meta_ai_tos_notice_idintroduzida para gerenciar os Termos de Serviço da Meta AI para empresas.smb_meta_ai_tos_notice_id: [14628, "string", "", ""],
- Novos WIDs de bot para SMB Meta AI, incluindo
META_BOT_SMB_PN_WIDeMETA_BOT_SMB_FBID_WID, juntamente com uma nova ferramenta de depuração para atribuir conversas ao dispositivo atual para testes de atribuição de conversas de agente.(l.META_BOT_SMB_PN_WID = d), (l.META_BOT_SMB_FBID_WID = m);
VoIP e Chamadas
- Processamento de áudio aprimorado em chamadas VoIP com suporte para
auto_gain_controlna aquisição de fluxo de mídia e parâmetros de captura de áudio.Ke(e, (n == null ? void 0 : n.autoGainControl) !== !1);
- Novas ABProps para recursos de chamada, como banners de ativação de lista de conversas, notificações push no final da chamada e experiências de saúde/nível de entrada do microfone.
wa_web_calling_chatlist_activation_banner_enabled: [34762, "bool", !1, !1],
- Adicionados novos campos de evento WAM
audioCodecDecodedRedBitrateeaudioCodecDecodedRedBitrateDominantSpeakerpara registro mais detalhado do codec de áudio durante as chamadas.audioCodecDecodedRedBitrate: [3114, e.TYPES.NUMBER],
- Introduzidas novas ABProps para recursos de chamada de convidado, incluindo representação e experiências de administrador/aprovação de sala de espera.
web_guest_calling_representation_enabled: [31533, "bool", !1, !1],
Estabilidade e Infraestrutura da Plataforma
- Implementado
WAWebCommsWorkerReadypara gerenciar e aguardar a prontidão do worker de comunicações de backend, melhorando a robustez durante reinicializações do worker.l.setCommsWorkerReady = c;
- Validação de token de relatório refinada, removendo
isReportingTokenEditReceiveEnablede atualizando a lógica devalidateReportingTokenInfo.(l.validateReportingTokenInfo = F),
Comércio e Mídia
- Introduzido um
WAWebPaymentLinkWamLoggerdedicado para registro abrangente de interações de links de pagamento (eventos de envio, recebimento, clique) para compradores e comerciantes.l.shouldLogReceiverEvent = f;
- Adicionados novos módulos para lógica mais sofisticada de pré-busca e exibição de imagens (
CometFeedAdImageWidths,CometImagePrefetchSurfaces,getCometFeedImageWidth,getCometRHCAdImageWidth), ativandogetCometImageWidthForSurfacepara carregamento de imagem otimizado.l.default = _;
- Adicionadas propriedades
sharableEventInviteaoWAWebMsgModel.js, indicando novas capacidades para compartilhar convites de eventos em conversas.(e.sharableEventInviteId = o("WAWebBaseModel").prop()),
- Introduzido
WAWebChatThemeA11yName.jspara nomes de acessibilidade de temas de chat e uma funçãowallpaperLoggingIdpara registro WAM relacionado a papéis de parede.l.getColorSchemeA11yName = e;
Commit: 852847472e
Bot Profile Management, AI Integration & Advanced Browser Fingerprinting
🇺🇸 English
Bot Profile & AI Integration
- Comprehensive Bot Profile Management: Introduced new GraphQL queries for fetching lists and individual bot profiles from WASS (WhatsApp Account Support System), along with a reconciliation process to keep cached profiles in sync and mark delisted ones as deleted.
l.fetchWassBotListProfilesGQL = c; l.reconcileBotSupportFields = m;
- Enhanced Bot Support Logic & UI Control: Expanded bot support states to include
DEPRECATED(for bots without a defined product) andDELETED, which now directly influences composer UI, blocking message composition for unsupported bots.if (t.product == null || t.product === "") return { kind: e.DEPRECATED }; var e = n("$InternalEnum").Mirrored([ /* "COMPOSE", "UPGRADE", "DEPRECATED", "DELETED" */ ]);
- Dynamic Bot Name Display: Bot profiles can now dynamically update contact names to a generic "Unknown account" if their support status dictates a view-only mode.
this.contact.set({ name: i, verifiedName: i, shortName: i, pushname: i, });
- Updated AI Notification & FAQ Links: AI-related notification messages have been refined to emphasize secure Meta service handling, and a new FAQ link specifically for standard bot profiles was added.
/*BTDS*/ "Messages in this chat are sent through a secure Meta service. Learn more about how these chats work.", l.getStandardBotProfileLearnMoreUrl = Dt;
- Business AI OAuth Integration: Implemented a new OAuth token exchange flow for Business AI, utilizing a BroadcastChannel for secure callback handling across browser contexts.
var e = "wa_web_biz_ai_oauth_complete", var e = { BIZ_AI_OAUTH_CALLBACK: "biz_ai_oauth_callback" },
- Third-Party AI Bot Gating: A new feature gate was added to control the rendering of chat products for third-party AI bots.
"ai_3p_bot_product_chat_rendering_enabled",
Advanced Browser Fingerprinting
- Expanded Canvas ID Fingerprinting: The Canvas ID generation now incorporates a wider array of system information, including detailed hardware specifications, runtime environment data, and CSS feature support.
var N = [ /* media queries */ ]; function A() { /* collects navigator details */ } function F() { /* collects CSS feature support */ }
- New "Stable" Canvas ID: Introduced
genStableCanvasID, a new method for generating a more robust and persistent browser fingerprint by combining multiple collected signals.var U = "stable1"; var K = { genCanvasID: H, genStableCanvasID: z },
System Refinements
- Parameter Passing Modernization: Functions like
isValidNativeFlowMessagewere refactored to accept parameters as a single object, improving readability and future extensibility.function e(e) { var t = e.baseMessage, n = e.bizSource, a = e.fromMe, i = e.msg;
- Time Skew Calculation Removal: Removed the
newClockSkewCalculationfeature flag and associated logic, streamlining time synchronization mechanisms.(l.getMyUserJid = m)); // removed newClockSkewCalculation
- Improved Toast Undo Behavior: "Undo" actions on toast messages now automatically dismiss the toast, providing a smoother user experience.
onAction: function () { (r(), o("WAWebToastManager").ToastManager.close(t)); },
- Minor Text & Utility Enhancements: Consolidated multiple "Could not" to "Couldn't" message string updates, and standardized
return truelogic with a shared utility function./*BTDS*/ "Couldn't create the community. Check your internet connection and try again.", isEnabled: o("WAWebBoolFunc").returnTrue,
🇧🇷 Português
Integração de IA e Gerenciamento de Perfis de Bots
- Gerenciamento Abrangente de Perfis de Bots: Introduzidas novas consultas GraphQL para buscar listas e perfis individuais de bots do WASS (WhatsApp Account Support System), juntamente com um processo de reconciliação para manter os perfis em cache sincronizados e marcar como excluídos aqueles que foram removidos da lista.
l.fetchWassBotListProfilesGQL = c; l.reconcileBotSupportFields = m;
- Lógica Aprimorada de Suporte a Bots e Controle da UI: Os estados de suporte a bots foram expandidos para incluir
DEPRECATED(para bots sem um produto definido) eDELETED, o que agora influencia diretamente a UI do editor de texto, bloqueando a composição de mensagens para bots não suportados.if (t.product == null || t.product === "") return { kind: e.DEPRECATED }; var e = n("$InternalEnum").Mirrored([ /* "COMPOSE", "UPGRADE", "DEPRECATED", "DELETED" */ ]);
- Exibição Dinâmica do Nome do Bot: Os perfis de bots agora podem atualizar dinamicamente os nomes de contato para um genérico "Unknown account" se seu status de suporte determinar um modo somente leitura.
this.contact.set({ name: i, verifiedName: i, shortName: i, pushname: i, });
- Notificações de IA e Links de FAQ Atualizados: As mensagens de notificação relacionadas à IA foram refinadas para enfatizar o tratamento seguro do serviço Meta, e um novo link de FAQ especificamente para perfis de bots padrão foi adicionado.
/*BTDS*/ "Messages in this chat are sent through a secure Meta service. Learn more about how these chats work.", l.getStandardBotProfileLearnMoreUrl = Dt;
- Integração OAuth para IA de Negócios: Implementado um novo fluxo de troca de tokens OAuth para IA de Negócios, utilizando um BroadcastChannel para manipulação segura de callbacks entre contextos do navegador.
var e = "wa_web_biz_ai_oauth_complete", var e = { BIZ_AI_OAUTH_CALLBACK: "biz_ai_oauth_callback" },
- Controle de Bots de IA de Terceiros: Um novo "feature gate" foi adicionado para controlar a renderização de produtos de chat para bots de IA de terceiros.
"ai_3p_bot_product_chat_rendering_enabled",
Impressão Digital Avançada do Navegador
- Impressão Digital Expandida do Canvas ID: A geração do Canvas ID agora incorpora uma gama mais ampla de informações do sistema, incluindo especificações detalhadas de hardware, dados do ambiente de tempo de execução e suporte a recursos CSS.
var N = [ /* media queries */ ]; function A() { /* collects navigator details */ } function F() { /* collects CSS feature support */ }
- Novo Canvas ID "Estável": Introduzido
genStableCanvasID, um novo método para gerar uma impressão digital do navegador mais robusta e persistente, combinando múltiplos sinais coletados.var U = "stable1"; var K = { genCanvasID: H, genStableCanvasID: z },
Refinamentos do Sistema
- Modernização da Passagem de Parâmetros: Funções como
isValidNativeFlowMessageforam refatoradas para aceitar parâmetros como um único objeto, melhorando a legibilidade e a extensibilidade futura.function e(e) { var t = e.baseMessage, n = e.bizSource, a = e.fromMe, i = e.msg;
- Remoção do Cálculo de Desvio de Tempo: Removida a "feature flag"
newClockSkewCalculatione a lógica associada, simplificando os mecanismos de sincronização de tempo.(l.getMyUserJid = m)); // removed newClockSkewCalculation
- Comportamento Aprimorado de Desfazer em Toasts: As ações de "Desfazer" em mensagens toast agora fecham automaticamente o toast, proporcionando uma experiência de usuário mais suave.
onAction: function () { (r(), o("WAWebToastManager").ToastManager.close(t)); },
- Melhorias Menores de Texto e Utilidades: Consolidada a atualização de várias strings de mensagem de "Could not" para "Couldn't", e padronizada a lógica de
return truecom uma função de utilidade compartilhada./*BTDS*/ "Couldn't create the community. Check your internet connection and try again.", isEnabled: o("WAWebBoolFunc").returnTrue,
Commit: c6e293e802
Enhanced Lexical Editor & VoIP; AI Features and Message Editing Improvements
🇺🇸 English
Lexical Editor Updates
- Extensive updates to the core Lexical editor, affecting selection, history, and HTML handling.
VoIP System Improvements
- Major refactoring of the VoIP stack interface and connection management.
- New initialization process for VoIP calls.
- Enhanced tracking for VoIP call events and metrics.
AI and Bot Features
- New functionality for AI-assisted replies and handling quoted media.
- Updates to bot forwarding capabilities and bot type definitions.
Message Editing
- Improved creation, processing, and sending of edited messages, including encrypted data.
- Refinements in parsing and database handling for message edits.
Advertising & Business
- Updates to advertisement handling within messages and API.
- New payment action targets and small business order management features.
Miscellaneous
- New logic introduced for determining link preview eligibility.
- Minor updates to conversation menus and message secret location utilities.
🇧🇷 Português
Atualizações do Editor Lexical
- Atualizações extensivas para o editor Lexical principal, afetando seleção, histórico e manipulação de HTML.
Melhorias no Sistema VoIP
- Reestruturação importante da interface da pilha VoIP e gerenciamento de conexão.
- Novo processo de inicialização para chamadas VoIP.
- Rastreamento aprimorado para eventos e métricas de chamadas VoIP.
Recursos de IA e Bots
- Nova funcionalidade para respostas assistidas por IA e manipulação de mídia citada.
- Atualizações nas capacidades de encaminhamento de bots e definições de tipos de bot.
Edição de Mensagens
- Criação, processamento e envio aprimorados de mensagens editadas, incluindo dados criptografados.
- Refinamentos na análise e manipulação de banco de dados para edições de mensagens.
Publicidade e Negócios
- Atualizações no tratamento de anúncios dentro de mensagens e da API.
- Novos alvos de ação de pagamento e recursos de gerenciamento de pedidos para pequenas empresas.
Diversos
- Nova lógica introduzida para determinar a elegibilidade da pré-visualização de links.
- Atualizações menores nos menus de conversa e utilitários de localização secreta de mensagens.
Commit: adbecd1da5
AI Commentary, Enhanced CTWA Signals & VoIP Improvements
🇺🇸 English
AI Features
- A new A/B prop
ai_commentary_standalone_messages_enabledwas added, suggesting upcoming support for standalone AI-generated commentary messages.ai_commentary_standalone_messages_enabled: [34670, "bool", !1, !1],
Business Tools & Advertising (CTWA)
- New A/B props
ctwa_ae_signal_3pd_enabledandctwa_ae_signal_3pd_field_policyindicate the development of sending "Ad Engagement" signals to third-party services for "Click-to-WhatsApp Ads".ctwa_ae_signal_3pd_enabled: [34663, "bool", !1, !1],
- Two new event types,
HAWK_GUIDANCE_CARD_RESET_ROW_IMPRESSIONandHAWK_GUIDANCE_CARD_RESET_ROW_CLICK, were added, likely for tracking user interactions with "Hawk Guidance Cards," possibly related to business or advertising guidance within the app.HAWK_GUIDANCE_CARD_RESET_ROW_IMPRESSION: "hawk_guidance_card_reset_row_impression",
- The A/B prop
ctwa_custom_label_signals_enabledhas been removed, along with associated gating logic, suggesting a change in the rollout or control mechanism for custom label signals in CTWA flows.- "WAWebListsLabelGatingUtils",
VoIP Enhancements
- A new A/B prop
web_voip_pre_init_worker_bootstrapwas added, potentially allowing the pre-initialization of VoIP workers for faster call setup.web_voip_pre_init_worker_bootstrap: [34685, "bool", !1, !1],
- Another VoIP A/B prop,
attach_invitee_user_pn_in_offer, was introduced, likely to include the invitee's push name in the call offer signaling, enhancing call context.abProp: "attach_invitee_user_pn_in_offer",
- Improved logging messages for VoIP indicate better diagnostics for web-only fallback scenarios when the stack interface or the VoIP stack itself is unavailable.
"voip: web-only fallback, voip stack unavailable",
🇧🇷 Português
Recursos de IA
- Uma nova prop A/B
ai_commentary_standalone_messages_enabledfoi adicionada, sugerindo suporte futuro para mensagens de comentários geradas por IA de forma autônoma.ai_commentary_standalone_messages_enabled: [34670, "bool", !1, !1],
Ferramentas Empresariais e Publicidade (CTWA)
- Novas props A/B
ctwa_ae_signal_3pd_enabledectwa_ae_signal_3pd_field_policyindicam o desenvolvimento do envio de sinais de "Engajamento de Anúncio" para serviços de terceiros em fluxos de "Anúncios para o WhatsApp" (CTWA).ctwa_ae_signal_3pd_enabled: [34663, "bool", !1, !1],
- Dois novos tipos de evento,
HAWK_GUIDANCE_CARD_RESET_ROW_IMPRESSIONeHAWK_GUIDANCE_CARD_RESET_ROW_CLICK, foram adicionados, provavelmente para rastrear interações do usuário com "Cartões de Orientação Hawk", possivelmente relacionados a orientações de negócios ou publicidade dentro do aplicativo.HAWK_GUIDANCE_CARD_RESET_ROW_IMPRESSION: "hawk_guidance_card_reset_row_impression",
- A prop A/B
ctwa_custom_label_signals_enabledfoi removida, juntamente com a lógica de gating associada, sugerindo uma mudança no mecanismo de lançamento ou controle para sinais de rótulos personalizados em fluxos CTWA.- "WAWebListsLabelGatingUtils",
Aprimoramentos VoIP
- Uma nova prop A/B
web_voip_pre_init_worker_bootstrapfoi adicionada, potencialmente permitindo a pré-inicialização de workers VoIP para uma configuração de chamada mais rápida.web_voip_pre_init_worker_bootstrap: [34685, "bool", !1, !1],
- Outra prop A/B VoIP,
attach_invitee_user_pn_in_offer, foi introduzida, provavelmente para incluir o nome de exibição do convidado no sinal de oferta de chamada, melhorando o contexto da chamada.abProp: "attach_invitee_user_pn_in_offer",
- Mensagens de log aprimoradas para VoIP indicam melhores diagnósticos para cenários de fallback exclusivos da web quando a interface da pilha ou a própria pilha VoIP não está disponível.
"voip: web-only fallback, voip stack unavailable",
Commit: fd5ca41d84
New WebBloks FixedWrapper & Variable Write Filter
🇺🇸 English
WebBloks Components
- Introduced a new WebBloks component,
FixedWrapper, designed for positioning elements withposition: fixed."bk.components.webbloks.FixedWrapper": r("WebBloksFixedWrapper"),
- The
FixedWrappersupports setting CSS properties likebottom,left,right,top, andzIndex.position: "fixed", zIndex: b,
- Added traversal keys for the new
bk.components.webbloks.FixedWrappercomponent, defining itssubnodesandplural_subnodes."bk.components.webbloks.FixedWrapper": { subnodes: ["_style"], plural_subnodes: ["extensions", "children", "child_templates"], },
WebBloks Performance
- Added a new environment configuration
enableNoOpVariableWriteFilterto optimize variable updates within WebBloks.enableNoOpVariableWriteFilter: !1,
- The
WebBloksTreeManagernow usesenableNoOpVariableWriteFilterto prevent unnecessary re-renders when variables are written with the same value or if they are not bound (i.e., not present inthis.bindResult.dependencies).if ( !(u && n.has(l) && s === n.get(l)) && (a == null || a.has(l)) ) { e = !0; break; }
Internal Refactoring
- Refactored internal enum utility functions, renaming
$InternalEnumto$InternalEnumUtilsand updating their implementation.__d("$InternalEnumUtils", [], function (t, n, r, o, a, i, l) {
🇧🇷 Português
Componentes WebBloks
- Introduzido um novo componente WebBloks,
FixedWrapper, projetado para posicionar elementos composition: fixed."bk.components.webbloks.FixedWrapper": r("WebBloksFixedWrapper"),
- O
FixedWrappersuporta a definição de propriedades CSS comobottom,left,right,topezIndex.position: "fixed", zIndex: b,
- Adicionadas chaves de travessia para o novo componente
bk.components.webbloks.FixedWrapper, definindo seussubnodeseplural_subnodes."bk.components.webbloks.FixedWrapper": { subnodes: ["_style"], plural_subnodes: ["extensions", "children", "child_templates"], },
Desempenho WebBloks
- Adicionada uma nova configuração de ambiente
enableNoOpVariableWriteFilterpara otimizar as atualizações de variáveis dentro do WebBloks.enableNoOpVariableWriteFilter: !1,
- O
WebBloksTreeManageragora usaenableNoOpVariableWriteFilterpara evitar re-renderizações desnecessárias quando as variáveis são escritas com o mesmo valor ou se não estão vinculadas (ou seja, não presentes emthis.bindResult.dependencies).if ( !(u && n.has(l) && s === n.get(l)) && (a == null || a.has(l)) ) { e = !0; break; }
Refatoração Interna
- Refatoradas funções utilitárias de enumeração internas, renomeando
$InternalEnumpara$InternalEnumUtilse atualizando sua implementação.__d("$InternalEnumUtils", [], function (t, n, r, o, a, i, l) {
Commit: 3512d2039e
Refined MEX Username Notifications, VoIP Gating & New Animation Type
🇺🇸 English
- Animation Types
- Added a new
Animatetype to a message dataclass, likely enabling new UI animation states.Animate: "ANIMATE",
- Added a new
- MEX Username Updates
- Introduced a new utility function to classify contact IDs (LID, phone number, or none) based on hash matching during MEX username update handling.
function C(e, t) { if (o("WAWebApiContact").getContactHash(t.toString()) === e) return "pn"; }
- Enhanced logging for non-LID contact issues during MEX username updates, now including the classification type.
.sendLogs("mex-username-side-sub-non-lid-" + l),
- Introduced a new utility function to classify contact IDs (LID, phone number, or none) based on hash matching during MEX username update handling.
- VoIP Gating
- Simplified VoIP feature gating conditions by removing a
justknobxfeature flag check, potentially broadening access to VoIP features.!g() || window.OffscreenCanvas === void 0 || document === void 0)
- Simplified VoIP feature gating conditions by removing a
- Logging Improvements
- Generalized the logging event for unknown users, removing the specific 'employee' tag.
.sendLogs("unknown-user-displayed")
- Generalized the logging event for unknown users, removing the specific 'employee' tag.
🇧🇷 Português
- Tipos de Animação
- Adicionado um novo tipo
Animatea uma dataclass de mensagem, provavelmente habilitando novos estados de animação de UI.Animate: "ANIMATE",
- Adicionado um novo tipo
- Atualizações de Nome de Usuário MEX
- Introduzida uma nova função de utilidade para classificar IDs de contato (LID, número de telefone ou nenhum) com base na correspondência de hash durante o tratamento de notificações de atualização de nome de usuário MEX.
function C(e, t) { if (o("WAWebApiContact").getContactHash(t.toString()) === e) return "pn"; }
- Registro aprimorado para problemas de contato não-LID durante atualizações de nome de usuário MEX, agora incluindo o tipo de classificação.
.sendLogs("mex-username-side-sub-non-lid-" + l),
- Introduzida uma nova função de utilidade para classificar IDs de contato (LID, número de telefone ou nenhum) com base na correspondência de hash durante o tratamento de notificações de atualização de nome de usuário MEX.
- Gating de VoIP
- Simplificadas as condições de gating de recursos de VoIP pela remoção de uma verificação de feature flag
justknobx, potencialmente ampliando o acesso aos recursos de VoIP.!g() || window.OffscreenCanvas === void 0 || document === void 0)
- Simplificadas as condições de gating de recursos de VoIP pela remoção de uma verificação de feature flag
- Melhorias no Registro (Logging)
- Generalizado o evento de registro para usuários desconhecidos, removendo a tag específica 'employee'.
.sendLogs("unknown-user-displayed")
- Generalizado o evento de registro para usuários desconhecidos, removendo a tag específica 'employee'.
Commit: 00ee2695ae
VoIP System Overhaul with WebAssembly & Enhanced Messaging Features
🇺🇸 English
VoIP System Enhancements
- Introduction of new WebAssembly (Wasm) workers (
WAWebVoipWebWasmLoader_worker.js,WAWebVoipWebWasmWorker.js) for potentially more performant real-time audio/video processing. - Significant updates to VoIP call handling, including native call events, P2P connections, and SCTP connection management.
- New components for managing browser audio status and contact lookups within the VoIP system.
Messaging & Chat Management
- Refinements to message sending fanout mechanisms (
WAWebSendMsgCreateFanoutStanza.js) and status message handling. - Updates related to new chat message capping limits, including fetching information and notifications.
- Addition of logic for extracting interactive actions from buttons (
WAWebGetInteractiveActionsFromButtons.js).
User Experience & Platform
- Extensive changes to the Lexical editor (
Lexical_prod.js), suggesting improvements to text input and rich media handling. - Updates to A/B testing configurations, business logging, and user preferences keys.
- Specific enhancements for Brazilian payment requests and consumer Pix strings.
🇧🇷 Português
Melhorias no Sistema VoIP
- Introdução de novos workers WebAssembly (Wasm) (
WAWebVoipWebWasmLoader_worker.js,WAWebVoipWebWasmWorker.js) para processamento de áudio/vídeo em tempo real potencialmente mais performático. - Atualizações significativas no tratamento de chamadas VoIP, incluindo eventos de chamadas nativas, conexões P2P e gerenciamento de conexão SCTP.
- Novos componentes para gerenciar o status de áudio do navegador e a pesquisa de contatos dentro do sistema VoIP.
Gerenciamento de Mensagens e Chat
- Refinamentos nos mecanismos de fanout para envio de mensagens (
WAWebSendMsgCreateFanoutStanza.js) e tratamento de mensagens de status. - Atualizações relacionadas aos limites de novas mensagens de chat, incluindo a obtenção de informações e notificações.
- Adição de lógica para extrair ações interativas de botões (
WAWebGetInteractiveActionsFromButtons.js).
Experiência do Usuário e Plataforma
- Grandes mudanças no editor Lexical (
Lexical_prod.js), sugerindo melhorias na entrada de texto e no tratamento de mídia rica. - Atualizações nas configurações de teste A/B, registro de eventos de negócios e chaves de preferências do usuário.
- Melhorias específicas para solicitações de pagamento brasileiras e strings do Pix do consumidor.
Commit: 611615dda4
Windows App Refinement, AI & VoIP, Chat Loading UX
🇺🇸 English
Windows Hybrid App Enhancements
- Introduced a new
WAWebWindowsHybridBridgeInitiatormodule to specifically track which component initiates the Windows Hybrid Bridge, enhancing debugging and system understanding.var e = n("$InternalEnum").Mirrored(["WAWebApp", "WAWebAppBootstrap", ...]);
- Improved logging for Windows Bridge initialization now captures the
firstInitiatorandretryInitiatorto diagnose issues with multiple bridge init calls."[WinRTBridge: init called ", "x, build=", ", firstInitiator=", ", retryInitiator=", ""
- Added functionality for the Windows app to check if media files are cached, improving performance for media display.
r.mediaFiles.isCachedMediaFileExist(i.mediaFileHash, i.suggestedFileName);
- New logging for "File System Access (FSA) Save As" actions initiated from the Windows app.
r("WAWebODS").incr("web.windows.fsa_save_as.started");
AI & Calling Features
- New feature flag
ai_web_ask_meta_ai_improvement_enabledindicates ongoing development for Meta AI features on the web client.ai_web_ask_meta_ai_improvement_enabled: [34586, "bool", !1, !0],
- Detailed new WAM event metrics for calls, including
auxVideoNackRtpRetransmitRecvdCountanddualStreamCameraAutoOffReason, suggesting advanced tracking for video call performance and behavior.auxVideoNackRtpRetransmitRecvdCount: [3094, e.TYPES.INTEGER],
- Introduced
BizAiSettingsSyncin device capabilities, hinting at new settings for AI-powered business features.bizAiSettingsSync: [8, e.TYPES.MESSAGE, m],
Chat Loading & UI/UX Improvements
- A new
WAWebRegionReadinessSignalsmodule helps manage and signal UI readiness, particularly for optimizing chat list display during loading.l.chatlistRowsReadySignal = v;
- Feature flag
message_partial_selection_in_bubblesuggests upcoming functionality for selecting specific parts of text within chat bubbles.message_partial_selection_in_bubble: [34585, "bool", !1, !1],
- The
enable_lanczos_upscaler_for_vod_bitmapflag was added, which could enable higher quality video on demand upscaling.enable_lanczos_upscaler_for_vod_bitmap: [34626, "int", 0, 0],
Newsletter & Account Management
- Newsletter follower data processing now includes
WAWebDBCreateLidPnMappingsto learn and store LID-PN mappings.yield o("WAWebDBCreateLidPnMappings").createLidPnMappings({ mappings: t, ... });
- More granular WAM event fields were added for LID migration, such as
numberOfPnOnlyGroupsNotMemberAllMapped, to track mapping status in PN-only groups.numberOfPnOnlyGroupsNotMemberAllMapped: [21, e.TYPES.INTEGER],
Core Infrastructure Changes
- The locale parsing mechanism transitioned from the
bcp-47library to a new, customWAWebParseLocaleSubtagsmodule.i.default = c; // from WAWebParseLocaleSubtags.js
- The client-side integrity challenge notification handler logic was replaced with a temporary "kill switch on, skip" log message.
"[mex][integrity-challenge] kill switch on, skip"
🇧🇷 Português
Melhorias no Aplicativo Híbrido do Windows
- Introduzido um novo módulo
WAWebWindowsHybridBridgeInitiatorpara rastrear especificamente qual componente inicia o Windows Hybrid Bridge, melhorando a depuração e o entendimento do sistema.var e = n("$InternalEnum").Mirrored(["WAWebApp", "WAWebAppBootstrap", ...]);
- O registro aprimorado para a inicialização da Bridge do Windows agora captura o
firstInitiatoreretryInitiatorpara diagnosticar problemas com múltiplas chamadas de inicialização da bridge."[WinRTBridge: init called ", "x, build=", ", firstInitiator=", ", retryInitiator=", ""
- Adicionada funcionalidade para o aplicativo Windows verificar se arquivos de mídia estão em cache, melhorando o desempenho para exibição de mídia.
r.mediaFiles.isCachedMediaFileExist(i.mediaFileHash, i.suggestedFileName);
- Novo registro para ações "File System Access (FSA) Salvar como" iniciadas no aplicativo Windows.
r("WAWebODS").incr("web.windows.fsa_save_as.started");
Recursos de IA e Chamadas
- A nova flag de recurso
ai_web_ask_meta_ai_improvement_enabledindica o desenvolvimento contínuo de recursos do Meta AI no cliente web.ai_web_ask_meta_ai_improvement_enabled: [34586, "bool", !1, !0],
- Novas métricas detalhadas de eventos WAM para chamadas, incluindo
auxVideoNackRtpRetransmitRecvdCountedualStreamCameraAutoOffReason, sugerindo rastreamento avançado para o desempenho e comportamento de chamadas de vídeo.auxVideoNackRtpRetransmitRecvdCount: [3094, e.TYPES.INTEGER],
- Introduzido
BizAiSettingsSyncnas capacidades do dispositivo, indicando novas configurações para recursos de negócios impulsionados por IA.bizAiSettingsSync: [8, e.TYPES.MESSAGE, m],
Melhorias no Carregamento de Chats e UI/UX
- Um novo módulo
WAWebRegionReadinessSignalsajuda a gerenciar e sinalizar a prontidão da UI, particularmente para otimizar a exibição da lista de chats durante o carregamento.l.chatlistRowsReadySignal = v;
- A flag de recurso
message_partial_selection_in_bubblesugere uma funcionalidade futura para selecionar partes específicas do texto dentro de balões de chat.message_partial_selection_in_bubble: [34585, "bool", !1, !1],
- A flag
enable_lanczos_upscaler_for_vod_bitmapfoi adicionada, o que pode permitir uma escala de vídeo on-demand de maior qualidade.enable_lanczos_upscaler_for_vod_bitmap: [34626, "int", 0, 0],
Gerenciamento de Newsletter e Conta
- O processamento de dados de seguidores de newsletters agora inclui
WAWebDBCreateLidPnMappingspara aprender e armazenar mapeamentos LID-PN.yield o("WAWebDBCreateLidPnMappings").createLidPnMappings({ mappings: t, ... });
- Campos de evento WAM mais granulares foram adicionados para a migração LID, como
numberOfPnOnlyGroupsNotMemberAllMapped, para rastrear o status de mapeamento em grupos somente PN.numberOfPnOnlyGroupsNotMemberAllMapped: [21, e.TYPES.INTEGER],
Mudanças na Infraestrutura Central
- O mecanismo de análise de localidade (
locale parsing) fez a transição da bibliotecabcp-47para um novo módulo personalizadoWAWebParseLocaleSubtags.i.default = c; // from WAWebParseLocaleSubtags.js
- A lógica do manipulador de notificação de desafio de integridade do lado do cliente foi substituída por uma mensagem de log temporária "kill switch on, skip".
"[mex][integrity-challenge] kill switch on, skip"
Commit: 7a6478e7fc