Task/Issue URL:
https://app.asana.com/1/137249556945/project/1212810093780571/task/1215516325566396?focus=true
### Description
Surfaces the **Duck.ai Settings** item in the **Browser** and **New Tab
Page** overflow menus too. Previously it appeared only in Duck.ai mode.
It sits at the bottom of the existing Duck.ai menu section and follows
the **Browser Menu** Duck.ai Shortcut toggle (shows only when that
section shows). Duck.ai mode is unchanged (Settings stays always-visible
there).
### Steps to test this PR
_Prerequisites_
- [ ] Duck.ai enabled; Settings → Duck.ai → Duck.ai Shortcuts →
**Browser Menu** toggle ON.
_Browser / NTP_
- [ ] Open a web page (and the New Tab Page) → overflow menu → **Duck.ai
Settings** appears at the bottom of the Duck.ai section.
- [ ] Tapping it opens a **new Duck.ai tab with settings panel open.
- [ ] Close (X or back button) should return you to where you were
_Duck.ai_
- [ ] Open Duck.ai → menu → **Duck.ai Settings** opens settings **in
same page** (not a new tab).
- [ ] It remains visible even with the **Browser Menu** toggle off.
_Toggle gating_
- [ ] Turn **Browser Menu** OFF → Duck.ai Settings is hidden in
Browser/NTP (the section is hidden), but still shown in Duck.ai.
### UI changes
| Before | After |
| ------ | ----- |
|<img width="396" height="168" alt="Screenshot 2026-06-08 at 6 57 17 PM"
src="https://github.com/user-attachments/assets/1c994e42-d1c7-4460-b621-eed19038beea"
/>|<img width="398" height="217" alt="Screenshot 2026-06-08 at 6 57
32 PM"
src="https://github.com/user-attachments/assets/d03a9fac-1f5a-4961-bf76-3718a4645f7e"
/>|
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Low Risk**
> Menu visibility and navigation branching only; Duck.ai in-page
settings path is unchanged, with new-tab fallback using an existing
open-tab command.
>
> **Overview**
> Surfaces **Duck.ai Settings** in the browser and NTP overflow menus
when the Duck.ai menu section is shown (`showChatSettings` now follows
`showDuckAiSection` instead of staying hidden).
>
> **Settings** behavior is split by omnibar view mode: in **Duck.ai**
mode it still triggers the native `DUCK_AI_SETTINGS` subscription event
in the current web view; elsewhere it opens `getDuckChatSettingsUrl()`
(`https://duck.ai?settings=open`, host-aware) in a **new tab** via
`OpenInNewTab`. The fragment passes `omnibar.viewMode` into
`openDuckChatSettings`.
>
> Adds `DuckChat.getDuckChatSettingsUrl()` and implements it in
`RealDuckChat`, with `resolveDuckAiUrl` shared for chat and settings
links. Tests cover the new-tab path and settings URL host override.
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
3f9b3cdb9a32129e63895dce2e7acb25e5fe1880. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->