Failed to authenticate. API Error: 401 Invalid authentication credentials

[2026-05-15] vault sync
This commit is contained in:
Alexey Martemyanov
2026-05-15 20:04:36 +06:00
parent e8af521ecb
commit c4bee9e5ad
2 changed files with 14 additions and 27 deletions
+1
View File
@@ -1,5 +1,6 @@
Китай
- [ ] Экран для проектора ребенку
- [ ] Детектор газа x3
- [ ] Гидрокостюм
- [ ] Палатка
@@ -131,15 +131,11 @@ This is the same bug as **PR #4544 — Bugbot r3234645543** below. Fix is in `di
- `iOS/DuckDuckGo/MainViewController.swift`
- `iOS/DuckDuckGo/NewTabPageControllerDelegate.swift`
- `iOS/DuckDuckGo/NewTabPageViewController.swift`
- `iOS/DuckDuckGo/OnboardingFlow/LinearOnboarding/OnboardingIntroViewModel.swift`returning-user guard uncommented; `!restorePromptHandler.isEligibleForRestorePrompt()` added
- `iOS/DuckDuckGo/OnboardingFlow/LinearOnboarding/OnboardingIntroViewModel.swift`also needs `!restorePromptHandler.isEligibleForRestorePrompt()` added (see PR #4855 Alessandro line 450)
- `iOS/DuckDuckGo/OnboardingView+DuckAIExperimentSearchContent.swift` — label currently "Ask AI", needs correction to **"Ask.ai"** (with dot)
- `iOS/DuckDuckGo/UserText.swift` + all 26 lproj files
- `iOS/DuckDuckGo/MainViewController.swift` — subscription promo keyboard fix; `navigateFromOnboarding` bar animation
- `iOS/DuckDuckGo/DaxDialogs.swift` — visit-site restore-on-relaunch fix
- `iOS/DuckDuckGo/NewTabPageViewController.swift` — bar animation on dismiss; loading-check removal
- `iOS/DuckDuckGo/NewTabPageControllerDelegate.swift``newTabPageControllerCurrentTabIsLoading` removed
**Action:** Fix "Ask.ai" copy, then commit and push before #4855 can be reviewed.
**Action:** Fix "Ask.ai" copy + add `isEligibleForRestorePrompt` guard, then commit and push before #4855 can be reviewed.
> **Color legend:** 🟠 fix in working tree, uncommitted — 🟡 fix in another PR in stack, not merged to this one — 🔴 not fixed / blocked — ✅ done
@@ -438,6 +434,8 @@ All resolved on GitHub. Fixed in later commits on the `#4544` branch.
**Fix:** `dismiss()` now checks `didHideBarsForChatPathVisitSiteDialog` and calls `setBarsHidden(false)` before removing the view. Previously only `dismissHostingController()` restored the bars, but `dismiss()` (called when the NTP is removed via `removeHomeScreen()`) did not.
**Note on animation:** `dismiss()` uses `animated: false` while `dismissHostingController()` uses `animated: true`. This is intentional — `dismiss()` is the teardown path (e.g. user switches tabs), where the NTP view is being removed anyway, so animating bars in is pointless. `dismissHostingController()` is the success path (user picks a site), where the bars slide in as part of the navigation transition.
**State:** `sr-feedback / uncommitted` — fix is in working tree, NOT committed. GitHub thread NOT resolved.
---
@@ -448,7 +446,7 @@ All resolved on GitHub. Fixed in later commits on the `#4544` branch.
**Issue:** `guard (parent as? MainViewController)?.currentTab?.isLoading != true else { return }` was a standalone guard that aborted the whole function. When the tab was loading, the guard returned early before any dialog or bar logic ran, leaving an orphaned `hostingController` and a blank NTP.
**Fix:** Replaced the standalone guard with `delegate?.newTabPageControllerCurrentTabIsLoading(self) != true` as a third condition in the outer `if` block. The dialog still presents; only the bar-hiding is skipped when the tab is loading.
**Fix:** Removed the loading check entirely. The standalone guard (`(parent as? MainViewController)?.currentTab?.isLoading`) was deleted — no delegate method was introduced. The `if` block now only checks `spec == .subsequent` and `chatPathPhase == .visitSite`. Dialog always presents; no loading condition gates it.
**State:** `sr-feedback / uncommitted` — fix is in working tree, NOT committed. GitHub thread NOT resolved.
@@ -458,9 +456,9 @@ All resolved on GitHub. Fixed in later commits on the `#4544` branch.
**Source:** Bugbot on PR #4855, `OnboardingIntroViewModel.swift:473`
**Fix:** Removed `return .treatmentB` (and its `// TODO: Remove this` comment) from `resolveDuckAIQueryExperimentCohortID()`. The method now always goes through `featureFlagger.resolveCohort()`.
**Fix:** The original `return .treatmentB` Bugbot flagged was already removed in an earlier commit. The override was subsequently **restored** to `return .treatmentA` (with `// TODO: Remove this before shipping`) for development testing purposes. The GitHub thread predates that restore and refers to `.treatmentB`; the `.treatmentA` override is intentional and tracked under PRE-SHIP-2 below.
**State:** `sr-feedback / uncommitted`fix is in working tree, NOT committed. GitHub thread NOT resolved.
**State:** `sr-feedback / uncommitted`override present in working tree, NOT committed. GitHub thread NOT resolved (refers to outdated `.treatmentB`).
---
@@ -478,7 +476,7 @@ All resolved on GitHub. Fixed in later commits on the `#4544` branch.
**Source:** [#4855 review comment, line 280](https://github.com/duckduckgo/apple-browsers/pull/4855)
**Fix:** Added `newTabPageControllerCurrentTabIsLoading(_ :) -> Bool` to `NewTabPageControllerDelegate` protocol; implemented in `MainViewController.swift`; removed the `(parent as? MainViewController)?` cast from `NewTabPageViewController`.
**Fix:** The loading check was the only reason for the `(parent as? MainViewController)` cast, so the cast was removed by eliminating the loading check entirely (see "Guard early return" item above). No delegate method was added. Zero parent casts remain in `NewTabPageViewController`.
**State:** `sr-feedback / uncommitted` — fix is in working tree, NOT committed. GitHub thread NOT resolved.
@@ -506,7 +504,7 @@ All resolved on GitHub. Fixed in later commits on the `#4544` branch.
---
### 🔴 PR #4855 — Alessandro (line 450): Add `!restorePromptHandler.isEligibleForRestorePrompt()` to the returning-user guard
### 🟠 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 [Alessandro's May 15 Asana comment](https://app.asana.com/1/137249556945/task/1214348462471176/comment/1214794564106665).
@@ -514,27 +512,15 @@ All resolved on GitHub. Fixed in later commits on the `#4544` branch.
**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.
**State:** ✅ Implemented — `!restorePromptHandler.isEligibleForRestorePrompt()` is the second condition in the guard at `OnboardingIntroViewModel.swift:451`. Fix is in working tree, NOT committed. GitHub thread NOT resolved.
---
### 🟠 BUG-1 — Subscription promo hidden by keyboard-on-new-tab when reopened after restart
**Source:** Found during testing.
**Issue:** `attachHomeScreen(isNewTab:allowingKeyboard:)` calls `omniBar.beginEditing(animated: true)` when `KeyboardSettings().onNewTab` is enabled. This runs synchronously before the NTP's `viewDidAppear`, which is where `presentNextDaxDialog` shows the subscription promo. The editing state created by `beginEditing` immediately covers the dialog.
**Fix:** Added `!daxDialogsManager.subscriptionPromotionPending` guard to the `beginEditing` call in `attachHomeScreen`. `subscriptionPromotionPending` is `true` only when the promo is eligible, not yet shown, and the main onboarding flow is complete.
**State:** `sr-feedback / uncommitted` — fix in working tree.
---
### 🟠 DEAD-1 — `setChatPathVisitSiteControlsLocked` in `MainViewController+DuckAIExperiment.swift:166` is dead code
### ✅ DEAD-1 — `setChatPathVisitSiteControlsLocked` in `MainViewController+DuckAIExperiment.swift` deleted
**Source:** Callers removed as part of PR #4855 Alessandro (line 477) fix above.
**State:** Method definition still exists in `MainViewController+DuckAIExperiment.swift:166`, no callers. Needs deletion. Not committed.
**State:** Method deleted. Not committed (tracked in `MainViewController+DuckAIExperiment.swift` working-tree change).
---
@@ -542,7 +528,7 @@ All resolved on GitHub. Fixed in later commits on the `#4544` branch.
**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:** 🟠 Currently implemented as "Ask AI" (no dot) in working tree. Needs to be changed to "Ask.ai" before committing.
**State:** ✅ Implemented — `UserText.DuckAIQueryExperiment.toggleAILabel` is `"Ask.ai"` (with dot) in working tree. Not committed.
---