DuckAi/ChatTab: Add New Image, New search and remove New Tab option from + menu - #9761
Conversation
Wire the sidebar "New Search" menu action to open a regular new tab and auto-surface its native input on the Search tab. Generalize the onboarding input-screen one-shot into InputScreenLaunchTarget, carrying an InputMode instead of a DUCK_AI boolean, and have showOrHideKeyboard force the input open when a mode is armed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 685b489. Configure here.
| duckAiFeatureState.showInputScreen.value || | ||
| currentBrowserViewState().lastQueryOrigin == QueryOrigin.FromBookmark || | ||
| (settingsDataStore.omnibarType == OmnibarType.SPLIT && alreadyShownKeyboard) | ||
| ) |
There was a problem hiding this comment.
Launch target never clears
Medium Severity
showOrHideKeyboard now peeks inputScreenLaunchTarget and forces focus, but the signal is only cleared in showNativeInput. AI onboarding still arms it for all users, and showInputScreen is mutually exclusive with native input, so consumeInitialInputMode never runs. After that, every later NTP/showOrHideKeyboard call keeps forcing the keyboard and ignores CTA drop-focus, bookmark origin, and split-omnibar rules until process death.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit 685b489. Configure here.



Task/Issue URL: https://app.asana.com/1/137249556945/task/1218238186970934?focus=true
Tech Design URL (if applicable):
API Proposals URL(s) (if applicable):
Description
Steps to test this PR
Setup
nativeDuckAiSidebarenabled (default) — open the "+" menunativeDuckAiSidebardisabled (via FF Inventory) — open the "+" menuRegression check
Note
Medium Risk
Touches new-tab launch, keyboard focus, and onboarding handoff into the native input screen; New Image is UI-only until wired.
Overview
Replaces onboarding-only
OnboardingInputScreenLaunchTargetwith a browser-scopedInputScreenLaunchTargetthat arms a one-shotInputMode(Search or Duck.ai) for the next native input screen. Onboarding and segmented end CTAs still land on Duck.ai viaInputMode.DUCK_AI; the omnibar + menu can armInputMode.SEARCHwhen opening a new tab under the native Duck.ai sidebar.When
nativeDuckAiSidebaris on, the + popup shows New Image (stub click handler), relabels New Tab to New Search, andBrowserTabViewModelpeeks the launch target so the keyboard/input screen still opens even when the input-screen feature would normally suppress focus.Adds layout/strings for New Image / New Search and unit tests for the new launch-target API; existing tests are updated for the renamed dependency.
Reviewed by Cursor Bugbot for commit 685b489. Bugbot is set up for automated code reviews on this repo. Configure here.