Skip to content

Releases: vinikjkkj/wa-diff

AI Bots, Labyrinth Epoch Rotation, Enhanced Calls & Status Publishing

Choose a tag to compare

@github-actions github-actions released this 12 Aug 18:48
🇺🇸 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 WAWebVoipVideoTileLoadingTimings defines 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 ACSCommon module 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 WAWebVoipVideoTileLoadingTimings define 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 ACSCommon centraliza 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

Choose a tag to compare

@github-actions github-actions released this 12 Aug 07:10
🇺🇸 English
  • AI Agent / Business AI: New AB prop ai_3p_bot_product_enabled enables 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 apixfnPlugin information 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, and UNKNOWN.
    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_MUSIC is a new newsletter capability. CometImagePrefetchCache introduces image prefetching for performance. Business Broadcasts Pro now supports 10,000 recipients. New business sensitive actions were added, e.g., BUSINESS_ACTIVATE_TRUSTED_EMAIL.
    CHANNEL_STATUS_MUSIC: 22
    var 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_enabled habilita 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 apixfnPlugin em 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, REFERRAL e UNKNOWN.
    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. CometImagePrefetchCache introduz o pré-carregamento de imagens para desempenho. O Business Broadcasts Pro agora suporta 10.000 destinatários. Novas ações sensíveis de negócios foram adicionadas, por exemplo, BUSINESS_ACTIVATE_TRUSTED_EMAIL.
    CHANNEL_STATUS_MUSIC: 22
    var 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

Choose a tag to compare

@github-actions github-actions released this 11 Aug 18:48
🇺🇸 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 isAskMetaAiMediaForwardEnabled to a broader isAskMetaAiImprovementEnabled for 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_id introduced 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_WID and META_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_control in 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 audioCodecDecodedRedBitrate and audioCodecDecodedRedBitrateDominantSpeaker for 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 WAWebCommsWorkerReady to manage and await backend comms worker readiness, improving robustness during worker restarts.
    l.setCommsWorkerReady = c;
  • Refined reporting token validation by removing isReportingTokenEditReceiveEnabled and updating validateReportingTokenInfo logic.
    (l.validateReportingTokenInfo = F),

Commerce & Media

  • Introduced a dedicated WAWebPaymentLinkWamLogger for 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), enabling getCometImageWidthForSurface for optimized image loading.
    l.default = _;
  • Added sharableEventInvite properties to the message model, indicating new capabilities for sharing event invitations within chats.
    (e.sharableEventInviteId = o("WAWebBaseModel").prop()),
  • Introduced WAWebChatThemeA11yName.js for accessibility names of chat themes and a wallpaperLoggingId function 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 isAskMetaAiMediaForwardEnabled para um isAskMetaAiImprovementEnabled mais 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_id introduzida 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_WID e META_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_control na 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 audioCodecDecodedRedBitrate e audioCodecDecodedRedBitrateDominantSpeaker para 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 WAWebCommsWorkerReady para 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 isReportingTokenEditReceiveEnabled e atualizando a lógica de validateReportingTokenInfo.
    (l.validateReportingTokenInfo = F),

Comércio e Mídia

  • Introduzido um WAWebPaymentLinkWamLogger dedicado 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), ativando getCometImageWidthForSurface para carregamento de imagem otimizado.
    l.default = _;
  • Adicionadas propriedades sharableEventInvite ao WAWebMsgModel.js, indicando novas capacidades para compartilhar convites de eventos em conversas.
    (e.sharableEventInviteId = o("WAWebBaseModel").prop()),
  • Introduzido WAWebChatThemeA11yName.js para nomes de acessibilidade de temas de chat e uma função wallpaperLoggingId para registro WAM relacionado a papéis de parede.
    l.getColorSchemeA11yName = e;

Commit: 852847472e

Bot Profile Management, AI Integration & Advanced Browser Fingerprinting

Choose a tag to compare

@github-actions github-actions released this 11 Aug 06:50
🇺🇸 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) and DELETED, 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 isValidNativeFlowMessage were 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 newClockSkewCalculation feature 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 true logic 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) e DELETED, 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 isValidNativeFlowMessage foram 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" newClockSkewCalculation e 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 true com 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

Choose a tag to compare

@github-actions github-actions released this 10 Aug 18:44
🇺🇸 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

Choose a tag to compare

@github-actions github-actions released this 10 Aug 07:10
🇺🇸 English

AI Features

  • A new A/B prop ai_commentary_standalone_messages_enabled was 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_enabled and ctwa_ae_signal_3pd_field_policy indicate 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_IMPRESSION and HAWK_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_enabled has 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_bootstrap was 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_enabled foi 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_enabled e ctwa_ae_signal_3pd_field_policy indicam 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_IMPRESSION e HAWK_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_enabled foi 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_bootstrap foi 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

Choose a tag to compare

@github-actions github-actions released this 09 Aug 18:26
🇺🇸 English

WebBloks Components

  • Introduced a new WebBloks component, FixedWrapper, designed for positioning elements with position: fixed.
    "bk.components.webbloks.FixedWrapper": r("WebBloksFixedWrapper"),
  • The FixedWrapper supports setting CSS properties like bottom, left, right, top, and zIndex.
    position: "fixed",
    zIndex: b,
  • Added traversal keys for the new bk.components.webbloks.FixedWrapper component, defining its subnodes and plural_subnodes.
    "bk.components.webbloks.FixedWrapper": {
        subnodes: ["_style"],
        plural_subnodes: ["extensions", "children", "child_templates"],
    },

WebBloks Performance

  • Added a new environment configuration enableNoOpVariableWriteFilter to optimize variable updates within WebBloks.
    enableNoOpVariableWriteFilter: !1,
  • The WebBloksTreeManager now uses enableNoOpVariableWriteFilter to prevent unnecessary re-renders when variables are written with the same value or if they are not bound (i.e., not present in this.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 $InternalEnum to $InternalEnumUtils and 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 com position: fixed.
    "bk.components.webbloks.FixedWrapper": r("WebBloksFixedWrapper"),
  • O FixedWrapper suporta a definição de propriedades CSS como bottom, left, right, top e zIndex.
    position: "fixed",
    zIndex: b,
  • Adicionadas chaves de travessia para o novo componente bk.components.webbloks.FixedWrapper, definindo seus subnodes e plural_subnodes.
    "bk.components.webbloks.FixedWrapper": {
        subnodes: ["_style"],
        plural_subnodes: ["extensions", "children", "child_templates"],
    },

Desempenho WebBloks

  • Adicionada uma nova configuração de ambiente enableNoOpVariableWriteFilter para otimizar as atualizações de variáveis dentro do WebBloks.
    enableNoOpVariableWriteFilter: !1,
  • O WebBloksTreeManager agora usa enableNoOpVariableWriteFilter para 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 em this.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 $InternalEnum para $InternalEnumUtils e 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

Choose a tag to compare

@github-actions github-actions released this 08 Aug 18:24
🇺🇸 English
  • Animation Types
    • Added a new Animate type to a message dataclass, likely enabling new UI animation states.
      Animate: "ANIMATE",
  • 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),
  • VoIP Gating
    • Simplified VoIP feature gating conditions by removing a justknobx feature flag check, potentially broadening access to VoIP features.
      !g() || window.OffscreenCanvas === void 0 || document === void 0)
  • Logging Improvements
    • Generalized the logging event for unknown users, removing the specific 'employee' tag.
      .sendLogs("unknown-user-displayed")
🇧🇷 Português
  • Tipos de Animação
    • Adicionado um novo tipo Animate a uma dataclass de mensagem, provavelmente habilitando novos estados de animação de UI.
      Animate: "ANIMATE",
  • 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),
  • 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)
  • Melhorias no Registro (Logging)
    • Generalizado o evento de registro para usuários desconhecidos, removendo a tag específica 'employee'.
      .sendLogs("unknown-user-displayed")

Commit: 00ee2695ae

VoIP System Overhaul with WebAssembly & Enhanced Messaging Features

Choose a tag to compare

@github-actions github-actions released this 08 Aug 06:36
🇺🇸 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

Choose a tag to compare

@github-actions github-actions released this 07 Aug 18:41
🇺🇸 English

Windows Hybrid App Enhancements

  • Introduced a new WAWebWindowsHybridBridgeInitiator module 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 firstInitiator and retryInitiator to 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_enabled indicates 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 auxVideoNackRtpRetransmitRecvdCount and dualStreamCameraAutoOffReason, suggesting advanced tracking for video call performance and behavior.
    auxVideoNackRtpRetransmitRecvdCount: [3094, e.TYPES.INTEGER],
  • Introduced BizAiSettingsSync in device capabilities, hinting at new settings for AI-powered business features.
    bizAiSettingsSync: [8, e.TYPES.MESSAGE, m],

Chat Loading & UI/UX Improvements

  • A new WAWebRegionReadinessSignals module helps manage and signal UI readiness, particularly for optimizing chat list display during loading.
    l.chatlistRowsReadySignal = v;
  • Feature flag message_partial_selection_in_bubble suggests 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_bitmap flag 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 WAWebDBCreateLidPnMappings to 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-47 library to a new, custom WAWebParseLocaleSubtags module.
    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 WAWebWindowsHybridBridgeInitiator para 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 firstInitiator e retryInitiator para 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_enabled indica 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 auxVideoNackRtpRetransmitRecvdCount e dualStreamCameraAutoOffReason, sugerindo rastreamento avançado para o desempenho e comportamento de chamadas de vídeo.
    auxVideoNackRtpRetransmitRecvdCount: [3094, e.TYPES.INTEGER],
  • Introduzido BizAiSettingsSync nas 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 WAWebRegionReadinessSignals ajuda 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_bubble sugere 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_bitmap foi 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 WAWebDBCreateLidPnMappings para 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 biblioteca bcp-47 para um novo módulo personalizado WAWebParseLocaleSubtags.
    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