openclaw - ✅(Solved) Fix [Bug]: DuckDuckGo web search provider missing from onboarding setup wizard [3 pull requests, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#65862Fetched 2026-04-14 05:39:55
View on GitHub
Comments
0
Participants
1
Timeline
3
Reactions
0
Author
Participants
Timeline (top)
cross-referenced ×3

DuckDuckGo web search provider does not appear in the interactive web search setup wizard (openclaw configure → web search section) because createDuckDuckGoWebSearchProvider() does not set the onboardingScopes field. The showsSearchProviderInSetup filter in src/flows/search-setup.ts requires onboardingScopes to include "text-inference" — without it, the expression evaluates to undefined ?? falsefalse, and the provider is silently excluded.

Root Cause

DuckDuckGo web search provider does not appear in the interactive web search setup wizard (openclaw configure → web search section) because createDuckDuckGoWebSearchProvider() does not set the onboardingScopes field. The showsSearchProviderInSetup filter in src/flows/search-setup.ts requires onboardingScopes to include "text-inference" — without it, the expression evaluates to undefined ?? falsefalse, and the provider is silently excluded.

Fix Action

Fixed

PR fix notes

PR #65874: fix(onboarding): include DuckDuckGo web search in setup wizard

Description (problem / solution / changelog)

Summary

  • fixes #65862
  • add onboardingScopes: [\"text-inference\"] to DuckDuckGo web search provider runtime and contract definitions

Why

search-setup filters provider choices by onboardingScopes and only shows entries that include text-inference. DuckDuckGo had no scope declared, so it was registered but hidden from setup.

Changes

  • extensions/duckduckgo/src/ddg-search-provider.ts
    • add onboardingScopes: ["text-inference"]
  • extensions/duckduckgo/web-search-contract-api.ts
    • keep contract metadata aligned by adding the same scope

Validation

  • pnpm vitest run src/plugins/contracts/bundled-web-search.duckduckgo.contract.test.ts src/plugins/contracts/web-search-provider.duckduckgo.contract.test.ts src/plugins/contracts/plugin-registration.duckduckgo.contract.test.ts

Notes

  • minimal metadata-only change
  • local tests passed before PR creation

Made with Cursor

Changed files

  • extensions/duckduckgo/src/ddg-search-provider.ts (modified, +1/-0)
  • extensions/duckduckgo/web-search-contract-api.ts (modified, +1/-0)

PR #65930: fix(onboarding): include DuckDuckGo web search in setup wizard

Description (problem / solution / changelog)

Summary

  • fixes #65862
  • include DuckDuckGo in setup by adding onboardingScopes: [\"text-inference\"]

Changes

  • extensions/duckduckgo/src/ddg-search-provider.ts
  • extensions/duckduckgo/web-search-contract-api.ts
    • add onboarding scope metadata in runtime + contract definitions

Validation

  • pnpm vitest run src/plugins/contracts/bundled-web-search.duckduckgo.contract.test.ts src/plugins/contracts/web-search-provider.duckduckgo.contract.test.ts src/plugins/contracts/plugin-registration.duckduckgo.contract.test.ts

Notes

  • metadata-only change
  • local tests passed

Made with Cursor

Changed files

  • extensions/duckduckgo/src/ddg-search-provider.ts (modified, +1/-0)
  • extensions/duckduckgo/web-search-contract-api.ts (modified, +1/-0)

PR #65940: fix(onboarding): include DuckDuckGo web search in setup wizard

Description (problem / solution / changelog)

Summary

  • fixes #65862
  • add onboardingScopes: [\"text-inference\"] for DuckDuckGo web-search metadata in runtime and contract layers

Why

Without onboarding scope metadata, DuckDuckGo is registered but omitted by setup flow filtering.

Changes

  • extensions/duckduckgo/src/ddg-search-provider.ts
  • extensions/duckduckgo/web-search-contract-api.ts
    • add onboardingScopes: ["text-inference"]

Validation

  • pnpm vitest run src/plugins/contracts/bundled-web-search.duckduckgo.contract.test.ts src/plugins/contracts/web-search-provider.duckduckgo.contract.test.ts src/plugins/contracts/plugin-registration.duckduckgo.contract.test.ts

Notes

  • metadata-only change
  • local tests passed

Made with Cursor

Changed files

  • extensions/duckduckgo/src/ddg-search-provider.ts (modified, +1/-0)
  • extensions/duckduckgo/web-search-contract-api.ts (modified, +1/-0)

Code Example

export function createDuckDuckGoWebSearchProvider(): WebSearchProviderPlugin {
  return {
    id: "duckduckgo",
    label: "DuckDuckGo Search (experimental)",
    hint: "Free web search fallback with no API key required",
    requiresCredential: false,
    envVars: [],
    // ... no onboardingScopes field
  };
}

---

function showsSearchProviderInSetup(
  entry: Pick<PluginWebSearchProviderEntry, "onboardingScopes">,
): boolean {
  return entry.onboardingScopes?.includes("text-inference") ?? false;
}

---

$ rg "onboardingScopes" extensions/duckduckgo/
(no matches)

---

extensions/brave/src/brave-web-search-provider.ts:
  onboardingScopes: ["text-inference"],
RAW_BUFFERClick to expand / collapse

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

DuckDuckGo web search provider does not appear in the interactive web search setup wizard (openclaw configure → web search section) because createDuckDuckGoWebSearchProvider() does not set the onboardingScopes field. The showsSearchProviderInSetup filter in src/flows/search-setup.ts requires onboardingScopes to include "text-inference" — without it, the expression evaluates to undefined ?? falsefalse, and the provider is silently excluded.

Steps to reproduce

  1. Run openclaw configure and navigate to the web search configuration section.
  2. Observe the list of available web search providers.
  3. DuckDuckGo does not appear in the choices, even though it is a registered and functional web search provider.

Expected behavior

DuckDuckGo should appear in the web search setup wizard as an option, since it is a valid, no-API-key-required web search fallback. Users should be able to discover and select it through the standard onboarding flow.

Actual behavior

DuckDuckGo is filtered out by the showsSearchProviderInSetup function. The provider definition at extensions/duckduckgo/src/ddg-search-provider.ts (line 36-71) does not include onboardingScopes:

export function createDuckDuckGoWebSearchProvider(): WebSearchProviderPlugin {
  return {
    id: "duckduckgo",
    label: "DuckDuckGo Search (experimental)",
    hint: "Free web search fallback with no API key required",
    requiresCredential: false,
    envVars: [],
    // ... no onboardingScopes field
  };
}

The filter in src/flows/search-setup.ts (line 53-57):

function showsSearchProviderInSetup(
  entry: Pick<PluginWebSearchProviderEntry, "onboardingScopes">,
): boolean {
  return entry.onboardingScopes?.includes("text-inference") ?? false;
}

For comparison, Brave and Gemini both explicitly set onboardingScopes: ["text-inference"].

OpenClaw version

Current main (2026.4.12)

Operating system

All

Install method

Any

Model

Any

Provider / routing chain

Any

Logs, screenshots, and evidence

Verified by grep:

$ rg "onboardingScopes" extensions/duckduckgo/
(no matches)

Compared with Brave:

extensions/brave/src/brave-web-search-provider.ts:
  onboardingScopes: ["text-inference"],

Impact and severity

  • Affected: All users going through the web search onboarding wizard
  • Severity: Medium (DuckDuckGo is the only free, no-API-key web search option — it's particularly valuable for new users who don't have a Brave API key yet)
  • Frequency: Every onboarding session
  • Consequence: Users must manually configure DuckDuckGo via config files or CLI, missing the easiest free search option during setup

Additional information

Fix is straightforward: add onboardingScopes: ["text-inference"] to the return value in createDuckDuckGoWebSearchProvider() and its corresponding contract file if one exists. This follows the same pattern used by Brave, Gemini, Tavily, and other web search providers.

extent analysis

TL;DR

Add onboardingScopes: ["text-inference"] to the createDuckDuckGoWebSearchProvider() return value to include DuckDuckGo in the web search setup wizard.

Guidance

  • Verify the absence of onboardingScopes in the createDuckDuckGoWebSearchProvider() function by checking the extensions/duckduckgo/src/ddg-search-provider.ts file.
  • Compare with other web search providers like Brave, which explicitly set onboardingScopes: ["text-inference"].
  • Update the createDuckDuckGoWebSearchProvider() function to include onboardingScopes: ["text-inference"] in its return value.
  • If a contract file exists for createDuckDuckGoWebSearchProvider(), ensure it is also updated to include onboardingScopes.

Example

export function createDuckDuckGoWebSearchProvider(): WebSearchProviderPlugin {
  return {
    id: "duckduckgo",
    label: "DuckDuckGo Search (experimental)",
    hint: "Free web search fallback with no API key required",
    requiresCredential: false,
    envVars: [],
    onboardingScopes: ["text-inference"], // Add this line
  };
}

Notes

This fix assumes that adding onboardingScopes: ["text-inference"] is sufficient to include DuckDuckGo in the web search setup wizard. If other issues arise, further investigation may be necessary.

Recommendation

Apply the workaround by adding onboardingScopes: ["text-inference"] to the createDuckDuckGoWebSearchProvider() return value, as this is a straightforward and targeted fix that follows the pattern used by other web search providers.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

DuckDuckGo should appear in the web search setup wizard as an option, since it is a valid, no-API-key-required web search fallback. Users should be able to discover and select it through the standard onboarding flow.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING