Skip to content

Conversation

@joshliebe
Copy link
Contributor

@joshliebe joshliebe commented Jan 27, 2026

Task/Issue URL: https://app.asana.com/1/137249556945/project/488551667048375/task/1212975986537003?focus=true

Description

  • Adds an onboarding dialog when opening contextual Duck.ai for the first time.
  • “Got it” dismisses the dialog and stores that it has been dismissed.
  • “View settings” navigates to “AI Features” and hides the dialog.

Steps to test this PR

  • Enable contextualMode in Feature Flag Inventory
  • Kill the app
  • Visit a site
  • Tap the Duck.ai icon in the omnibar
  • Verify that contextual onboarding dialog is shown and is not dismissable
  • Tap “View settings"
  • Verify that “AI Features” is opened
  • Go back and tap the Duck.ai icon in the omnibar
  • Tap “Got it"
  • Verify that the contextual sheet is opened
  • Dismiss the sheet
  • Tap the Duck.ai icon in the omnibar
  • Verify that the onboarding is dialog is not shown

UI changes

combined

Note

Medium Risk
Changes the Duck.ai contextual entry flow by gating it behind a new, persistent onboarding bottom sheet and adds new pixel instrumentation. Risk is mainly UX/behavioral (showing the wrong sheet or persisting dismissal incorrectly) rather than security-related.

Overview
Adds a non-dismissible contextual-mode onboarding bottom sheet that is shown the first time a user opens Duck.ai contextual mode; primary action marks onboarding complete and continues to the contextual sheet, while secondary action opens AI Features settings.

Updates the omnibar Duck.ai click path to branch between ShowDuckAIContextualOnboarding vs ShowDuckAIContextualMode based on a persisted completion flag stored in DuckChat DataStore/repository, and introduces new pixels (m_aichat_contextual_onboarding_*) for display/confirm/settings actions.

Includes new UI resources (layout + icon + localized strings) and expands unit/instrumentation tests to cover the new command, persistence, and repository/API additions.

Written by Cursor Bugbot for commit c6f1607. This will update automatically on new commits. Configure here.

Copy link
Contributor Author

joshliebe commented Jan 27, 2026

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

@joshliebe joshliebe force-pushed the feature/josh/contextual-duck-ai-onboarding branch from f6409a0 to 95f02d2 Compare January 27, 2026 13:23
@joshliebe joshliebe force-pushed the feature/josh/contextual-duck-ai-onboarding branch from 95f02d2 to 35413bd Compare January 27, 2026 15:41
@joshliebe joshliebe force-pushed the feature/josh/contextual-duck-ai-onboarding branch from 82a5dbd to 428a344 Compare January 27, 2026 17:47
@joshliebe joshliebe force-pushed the feature/josh/contextual-duck-ai-onboarding branch from 428a344 to 83351f3 Compare January 28, 2026 13:02
@joshliebe joshliebe force-pushed the feature/josh/contextual-duck-ai-onboarding branch from 2c226d4 to 6c65ff7 Compare January 28, 2026 15:21
@joshliebe joshliebe force-pushed the feature/josh/contextual-duck-ai-onboarding branch from 6c65ff7 to d97b08f Compare January 28, 2026 15:23
Copy link
Contributor

@malmstein malmstein left a comment

Choose a reason for hiding this comment

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

Works as expected. Left a few suggestions but nothing blocker, nice job!

@joshliebe joshliebe force-pushed the feature/josh/contextual-duck-ai-onboarding branch from b397583 to dbce8d6 Compare January 29, 2026 10:17
@joshliebe joshliebe force-pushed the feature/josh/contextual-duck-ai-onboarding branch from dbce8d6 to 1716742 Compare January 29, 2026 10:47
@joshliebe joshliebe force-pushed the feature/josh/contextual-duck-ai-onboarding branch from 1716742 to 85271db Compare January 29, 2026 11:15
@joshliebe joshliebe force-pushed the feature/josh/contextual-duck-ai-onboarding branch from 85271db to 52e4c37 Compare January 29, 2026 12:30
@joshliebe joshliebe force-pushed the feature/josh/contextual-duck-ai-onboarding branch from e3fb5cf to 4029861 Compare January 29, 2026 13:04
Task/Issue URL:
https://app.asana.com/1/137249556945/project/1200204095367872/task/1212787351113601?focus=true

### Description

- Translations for #7593

### Steps to test this PR

- [ ] CI is green


<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk localization-only change: adds/relocates string resources
without altering app logic; primary risk is missing/incorrect
translations or resource merge issues.
> 
> **Overview**
> Adds localized string resources for the **Duck.ai contextual
onboarding** bottom sheet (title/body and primary/secondary actions)
across `values/` and multiple `values-xx/` locales.
> 
> Moves these onboarding strings out of `values/donottranslate.xml` into
the translatable `strings-duckchat.xml` files (and removes the English
copies from `donottranslate.xml`).
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
c80e962. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Dax The Translator <daxmobile@duckduckgo.com>
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Task/Issue URL:
https://app.asana.com/1/137249556945/task/1212889618211014?focus=true

### Description

- Pixels for contextual Duck.ai onboarding.

### Steps to test this PR

- [x] Fresh install
- [x] Enable “contextualMode” in Feature Flag Inventory
- [x] Visit a website
- [x] Tap the Duck.ai omnibar icon
- [x] Verify that “m_aichat_contextual_onboarding_displayed” is sent
- [x] Tap “Got it"
- [x] Verify that “m_aichat_contextual_onboarding_confirm_pressed” is
sent
- [x] Repeat and tap “View settings"
- [x] Verify that “m_aichat_contextual_onboarding_settings_pressed” is
sent


<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk: adds new analytics pixel definitions and fires them from the
onboarding bottom sheet without changing core Duck.ai behavior or data
handling.
> 
> **Overview**
> Adds three new Duck.ai contextual onboarding pixels (sheet shown, "Got
it" pressed, and "View settings" pressed) to `duck_chat.json5` and wires
them into `DuckChatPixelName`/param-removal configuration.
> 
> Updates `DuckAiContextualOnboardingBottomSheetDialog` (and its
factory) to inject `Pixel` and fire the new events when the sheet is
displayed and when either action is taken.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
9353974. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@joshliebe joshliebe merged commit ca84d2d into develop Jan 29, 2026
11 checks passed
@joshliebe joshliebe deleted the feature/josh/contextual-duck-ai-onboarding branch January 29, 2026 14:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants