Skip to content

Report Duck.ai capability state on the daily feature-state pixel - #9465

Merged
YoussefKeyrouz merged 2 commits into
developfrom
feature/youssef/duckai_capability_state_pixel
Aug 18, 2026
Merged

Report Duck.ai capability state on the daily feature-state pixel#9465
YoussefKeyrouz merged 2 commits into
developfrom
feature/youssef/duckai_capability_state_pixel

Conversation

@YoussefKeyrouz

@YoussefKeyrouz YoussefKeyrouz commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

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

Description

Extends m_browser_feature_daily_active_user_d the pixel we already send once a day per active
user with each module's feature state — to include Duck.ai, which contributed nothing to it. Three
new params:

Param Values Meaning
duck_ai_input_mode search_and_duck_ai / search_only whether the config has the Search/Duck.ai toggle
duck_ai_native_input 1 / 0 the native input field is the active input surface
duck_ai_contextual 1 / 0 contextual mode is enabled

Note

Low Risk
Read-only analytics on an existing daily pixel pattern; no auth, payments, or user data handling changes.

Overview
Extends the daily m_browser_feature_daily_active_user_d pixel so Duck.ai contributes three new parameters: duck_ai_input_mode (search_and_duck_ai vs search_only), duck_ai_native_input, and duck_ai_contextual.

A new DuckAiFeatureStateReporterPlugin registers with the existing BrowserFeatureStateReporterPlugin multibinding. Input mode is derived from Duck Chat feature toggles and repository settings; native input and contextual flags come from DuckAiFeatureState. Pixel definitions in browser_feature_state.json5 document the enums, and unit tests cover off/on states and independence of input mode from the native input surface.

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

@github-actions

Copy link
Copy Markdown
Contributor

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

@malmstein malmstein 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.

Reviewed statically, telemetry only.

The definition file is the standout: it retro-documents m_browser_feature_daily_active_user_d, which had none. Audited it against every contributor and it is exact, no plugin missing, nothing documented that is not sent, and both enums match the emitted strings (TOP/BOTTOM/SPLIT_TOP from OmnibarType.typeName, new_tab_page/last_opened_tab/specific_page from getDailyPixelValue). The new plugin follows the existing shape and all three params are bounded with no PII.

One question inline on capability read timing, since its default is also a valid value.

@YoussefKeyrouz
YoussefKeyrouz force-pushed the feature/youssef/duckai_capability_state_pixel branch from b01daee to 344781c Compare August 18, 2026 20:02
@YoussefKeyrouz
YoussefKeyrouz added this pull request to the merge queue Aug 18, 2026
Merged via the queue into develop with commit 75b3ab6 Aug 18, 2026
27 checks passed
@YoussefKeyrouz
YoussefKeyrouz deleted the feature/youssef/duckai_capability_state_pixel branch August 18, 2026 22:04
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