2026-05-16 media-toolbox: classification fix + torrent case rename documented

This commit is contained in:
Alexey Martemyanov
2026-05-15 14:48:43 +06:00
parent 4f4358d76b
commit 653d2bf056
9 changed files with 131 additions and 23 deletions
@@ -211,6 +211,18 @@ This is the same bug as **PR #4544 — Bugbot r3234645543** below. Fix is in `di
---
### 🔴 PR #4855 — Alessandro (line 450): Add `!restorePromptHandler.isEligibleForRestorePrompt()` to the returning-user guard
**Source:** [Alessandro May 15 review on PR #4855](https://github.com/duckduckgo/apple-browsers/pull/4855), `OnboardingIntroViewModel.swift:450`. Also referenced in [Alessandros May 15 Asana comment](https://app.asana.com/1/137249556945/task/1214348462471176/comment/1214794564106665).
**Issue:** The current guard `guard case .introDialog(isReturningUser: false) = introSteps.first` excludes returning users and those eligible to restore data during onboarding. But if the experiment is later remotely enrolled for all users (e.g. post-experiment analysis phase), returning users who are eligible for restore will bypass the guard and still see the Duck.ai experiment step.
**Fix:** Add `!restorePromptHandler.isEligibleForRestorePrompt()` as an additional condition to the guard.
**State:** 🔴 NOT yet implemented. Needs to be added to the uncommitted working-tree change in `OnboardingIntroViewModel.swift`. GitHub thread NOT resolved.
---
### 🟠 PR #4855 — Bugbot: Returning-user guard commented out in `insertExperimentStepIfNeeded`
**Source:** Bugbot on PR #4855, `OnboardingIntroViewModel.swift:451`. Also: [Alessandro May 7 review on #4544](https://github.com/duckduckgo/apple-browsers/pull/4544), Asana task [1214682678629767](https://app.asana.com/1/137249556945/task/1214682678629767).
@@ -286,11 +298,11 @@ This is the same bug as **PR #4544 — Bugbot r3234645543** below. Fix is in `di
---
### ⚠️ GJ8 / Copy: "Ask AI" vs "Ask.ai"
### GJ8 / Copy: "Ask.ai" confirmed (with dot)
**Source:** [GJ8 ship review](https://app.asana.com/1/137249556945/task/1214147157456478) says *"Ask AI"* (no dot). [Alessandro's #4855 review comment](https://github.com/duckduckgo/apple-browsers/pull/4855) says *"Ask.ai"* (with dot).
**Source:** GJ8 said "Ask AI". [Alessandro's May 14 Asana comment](https://app.asana.com/1/137249556945/task/1214348462471176/comment/1214794310099718) explicitly says **"Ask.ai"** (with dot) — resolves the conflict.
**State:** Implemented as "Ask AI" (no dot) per GJ8. ⚠️ Needs explicit confirmation from product/design before shipping.
**State:** 🟠 Currently implemented as "Ask AI" (no dot) in working tree. Needs to be changed to "Ask.ai" before committing.
---
@@ -306,14 +318,16 @@ This is the same bug as **PR #4544 — Bugbot r3234645543** below. Fix is in `di
### 🔴 PRE-SHIP-2 — Privacy config: rename the experiment
**Source:** [Task 1214682678629768](https://app.asana.com/1/137249556945/task/1214682678629768). Internal testers already enrolled under `onboardingDuckAIQueryExperiment`; new name ensures clean production enrollment.
**Source:** [Task 1214682678629768](https://app.asana.com/1/137249556945/task/1214682678629768). Internal testers already enrolled under `onboardingDuckAIQueryExperiment`; reusing it would complete NA analysis immediately (already at sample size).
**Name decided:** [Alessandro May 15](https://app.asana.com/1/137249556945/task/1214348462471176/comment/1214794564106665): use **`onboardingDuckAIQueryTrackersDemoExperiment`** as the new `AIChatSubfeature` case.
**What (three parts):**
1. **BSK** — new case in `AIChatSubfeature` enum with the new name string
2. **App** — update `FeatureFlag.onboardingDuckAIQueryExperiment` to reference the new subfeature case
3. **`privacy-configuration` repo** — add new experiment entry with `targets`; set old entry to `"state": "disabled"`
1. **BSK** — new case `onboardingDuckAIQueryTrackersDemoExperiment` in `AIChatSubfeature` enum
2. **App** — update `FeatureFlag.onboardingDuckAIQueryExperiment` to reference the new subfeature case; update experiment pixel names accordingly
3. **`privacy-configuration` repo** — add new entry `onboardingDuckAIQueryTrackersDemoExperiment` with `targets`; set old `onboardingDuckAIQueryExperiment` to `"state": "disabled"`
**State:** 🔴 Blocked — new experiment name not decided.
**State:** 🔴 Name decided, NOT yet implemented.
---
@@ -321,9 +335,9 @@ This is the same bug as **PR #4544 — Bugbot r3234645543** below. Fix is in `di
**Source:** [Pete Apr 30 comment](https://app.asana.com/1/137249556945/task/1214147157456478/1214600831548835). Pete's team needs the name to exclude enrolled users from the UTI feature rollout.
**What:** Fill the name into [O-J <> O-N Coordination](https://app.asana.com/1/137249556945/project/1214157224317277/task/1214288645859692) and [O-N Live Onboarding Experiment Details](https://app.asana.com/1/137249556945/task/1214601039604921).
**What:** Fill `onboardingDuckAIQueryTrackersDemoExperiment` into [O-J <> O-N Coordination](https://app.asana.com/1/137249556945/project/1214157224317277/task/1214288645859692) and [O-N Live Onboarding Experiment Details](https://app.asana.com/1/137249556945/task/1214601039604921).
**State:** 🔴 Blocked on PRE-SHIP-2 (name not decided).
**State:** 🔴 Name now known — can be filled in once PRE-SHIP-2 is done.
---
@@ -337,13 +351,17 @@ This is the same bug as **PR #4544 — Bugbot r3234645543** below. Fix is in `di
**GJ3/ Hide address bar + toolbar** 🟠 Implemented via `chromeDelegate?.setBarsHidden(true/false)`, not yet committed. Replaces earlier `setNavigationBarHidden` + `setChatPathVisitSiteControlsLocked` approach.
**GJ8/ "Ask AI" toggle label** 🟠 Implemented in `OnboardingView+DuckAIExperimentSearchContent.swift`, not yet committed. ⚠️ Pending copy confirmation ("Ask AI" vs "Ask.ai").
**GJ8/ "Ask.ai" toggle label** 🟠 Copy confirmed as **"Ask.ai"** (with dot) by [Alessandro May 14](https://app.asana.com/1/137249556945/task/1214348462471176/comment/1214794310099718). Currently implemented as "Ask AI" (no dot) in working tree — needs correction to "Ask.ai" before committing.
**Experiment rename in privacy config** 🔴 TBD. Need to create a new experiment name, add new `AIChatSubfeature` case in BSK, update `FeatureFlag`, and add new entry in `privacy-configuration/overrides/ios-override.json` (disabling old one). Blocked — new name not decided.
**Experiment rename in privacy config** 🔴 Name decided: **`onboardingDuckAIQueryTrackersDemoExperiment`** ([Alessandro May 15](https://app.asana.com/1/137249556945/task/1214348462471176/comment/1214794564106665)). Reason: reusing the old name would complete NA analysis immediately (already at sample size). Still needs implementing: new `AIChatSubfeature` case in BSK, update `FeatureFlag`, new entry in `privacy-configuration/overrides/ios-override.json` (disable old one).
**Privacy config `targets` payload** 🔴 TBD. `"targets": [{ "localeLanguage": "en", "localeCountry": "US" }]` must be added to the experiment entry. Local edit exists on wrong branch in `privacy-configuration` repo. Do together with rename above.
**O-N Live Onboarding Experiment Details ([task 1214601039604921](https://app.asana.com/1/137249556945/task/1214601039604921))** 🔴 TBD. Provide Pete with final experiment name once rename is decided. Also fill into [O-J <> O-N Coordination](https://app.asana.com/1/137249556945/project/1214157224317277/task/1214288645859692).
**O-N Live Onboarding Experiment Details ([task 1214601039604921](https://app.asana.com/1/137249556945/task/1214601039604921))** 🔴 Name now known (`onboardingDuckAIQueryTrackersDemoExperiment`). Fill into [O-N Live Onboarding Experiment Details](https://app.asana.com/1/137249556945/task/1214601039604921) and [O-J <> O-N Coordination](https://app.asana.com/1/137249556945/project/1214157224317277/task/1214288645859692) once PRE-SHIP-2 is implemented.
**Alessandros May 15 QA** — Tested PR #4855 against test cases in [task 1214683268207880](https://app.asana.com/1/137249556945/task/1214683268207880). Test run: [task 1214794564106677](https://app.asana.com/1/137249556945/project/1206329551987282/task/1214794564106677). Left notes in test run and new comments in PR (see PR #4855 — Alessandro line 450 item above).
**Merge approved PRs** — Alessandro recommends merging #4591 and #4664 (both approved) into the main feature branch (#4544) to avoid propagating main-branch merges through each PR separately.
---