Skip to content

Contextual/NativeInput: Add unifiedInputSurface for voice chat and voice search clicks - #9383

Open
karlenDimla wants to merge 2 commits into
developfrom
feature/karl/contextual-pixel
Open

Contextual/NativeInput: Add unifiedInputSurface for voice chat and voice search clicks#9383
karlenDimla wants to merge 2 commits into
developfrom
feature/karl/contextual-pixel

Conversation

@karlenDimla

@karlenDimla karlenDimla commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Task/Issue URL: https://app.asana.com/1/137249556945/task/1217108456740157?focus=true
Tech Design URL (if applicable):
API Proposals URL(s) (if applicable):

Description

  • New m_aichat_unified_input_voice_search_tapped pixel (count + daily), fired when the in-field microphone is tapped in the Unified Input — distinct from the existing voice-chat pixel fired by the voice-chat chip.
  • Added the unifiedInputSurface (surface) parameter to both m_aichat_unified_input_voice_tapped and m_aichat_unified_input_voice_search_tapped, reporting address_bar / duck_ai / contextual_chat based on the native input widget's current input context.
  • DuckChatPixels.fireVoiceTapped / fireVoiceSearchTapped now take a DuckChatPixelSurface, with the ViewModel deriving it via currentSurface().

Steps to test this PR

Filter pixel sent: m_aichat_unified_input_voice_ on your logcat

  • Open new tab and focus native input
  • Click on microphone icon
  • Verify pixel is emitted Pixel sent: m_aichat_unified_input_voice_search_tapped_count with params: {surface=address_bar} {}
  • Close the voice search
  • Click on the voice chat icon (wave icon)
  • Verify pixel is emitted Pixel sent: m_aichat_unified_input_voice_tapped_count with params: {surface= address_bar} {}
  • Close voice chat
  • Open a website on a new tab
  • Open contextual sheet
  • Click on microphone icon
  • Verify pixel is emitted Pixel sent: m_aichat_unified_input_voice_search_tapped_count with params: {surface=contextual_chat} {}
  • Close the voice search
  • Click on the voice chat icon (wave icon)
  • Verify pixel is emitted Pixel sent: m_aichat_unified_input_voice_tapped_count with params: {surface= contextual_chat} {}

Note

Low Risk
Telemetry-only changes to pixel definitions and firing paths; no auth, data handling, or core user flows modified.

Overview
Unified Input analytics now distinguish voice chat (bottom-row button) from in-field microphone taps, and both include unifiedInputSurface so events can be broken down by address bar, Duck.ai tab, or contextual sheet.

Voice chat pixels (m_aichat_unified_input_voice_tapped_*) gain the unifiedInputSurface parameter and updated descriptions; fireVoiceTapped now requires a DuckChatPixelSurface and sends surface via surfaceParams.

New voice search count/daily pixels (m_aichat_unified_input_voice_search_tapped_*) track in-field mic taps when the Duck.ai/chat tab is selected. NativeInputModeWidget routes those mic taps to fireVoiceSearchTapped instead of fireVoiceTapped (voice chat button still uses voice tapped).

Tests cover surface parameters and the new voice-search firing path.

Reviewed by Cursor Bugbot for commit fba1b76. Bugbot is set up for automated code reviews on this repo. Configure here.

karlenDimla and others added 2 commits August 4, 2026 10:26
Fire a dedicated m_aichat_unified_input_voice_search_tapped count/daily
pixel when the in-field microphone is tapped, distinct from the voice
chat pixel fired by the voice-chat chip.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Send the surface (address_bar / duck_ai / contextual_chat) with the
m_aichat_unified_input_voice_tapped and m_aichat_unified_input_voice_search_tapped
pixels, derived from the native input widget's current input context.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Privacy Review task: https://app.asana.com/0/69071770703008/1217162363528016

@joshliebe joshliebe self-assigned this Aug 4, 2026

@joshliebe joshliebe left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants