From 10256b6da41c6b6ffbc504451d72103407e80661 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 2 May 2026 04:41:17 +0100 Subject: [PATCH] fix(brave): use canonical docs URL --- CHANGELOG.md | 1 + extensions/brave/src/brave-web-search-provider.test.ts | 10 ++++++++++ extensions/brave/src/brave-web-search-provider.ts | 2 +- extensions/brave/web-search-contract-api.ts | 2 +- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 153535dc10f..1e8e521f63f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,7 @@ Docs: https://docs.openclaw.ai - Web search: point missing-key errors to `web_fetch` for known URLs and the browser tool for interactive pages. Thanks @zhaoyang97. - Web search: late-bind managed agent `web_search` calls to the current runtime config snapshot, so existing sessions do not keep stale unresolved SecretRefs after secrets reload. Fixes #75420. Thanks @richardmqq. - Web search: honor `baseUrl` overrides for Gemini, Grok, and x_search provider-owned config, so proxy-backed search tools no longer dial hardcoded public endpoints. Supersedes #61972. Thanks @Lanfei. +- Web search/Brave: point Brave provider metadata at the canonical `/tools/brave-search` docs page. Fixes #65870 and supersedes #65892. Thanks @Magicray1217 and @Jah-yee. - Web search/Brave: allow `freshness` and bounded date ranges in `llm-context` mode, matching Brave's documented LLM Context API support. Supersedes #51005. Thanks @remusao. - Web fetch: resolve external plugin `webFetchProviders` for non-sandboxed `web_fetch`, while keeping sandboxed fetches limited to bundled providers. Fixes #74915. Thanks @ultrahighsuper and @mingmingtsao. - Heartbeat: strip legacy `[TOOL_CALL]...[/TOOL_CALL]` and `[TOOL_RESULT]...[/TOOL_RESULT]` pseudo-call blocks from heartbeat replies before channel delivery. Fixes #54138. Thanks @Deniable9570. diff --git a/extensions/brave/src/brave-web-search-provider.test.ts b/extensions/brave/src/brave-web-search-provider.test.ts index 9ea5152305c..f35cb6e62fe 100644 --- a/extensions/brave/src/brave-web-search-provider.test.ts +++ b/extensions/brave/src/brave-web-search-provider.test.ts @@ -2,6 +2,7 @@ import fs from "node:fs"; import { validateJsonSchemaValue } from "openclaw/plugin-sdk/config-schema"; import { afterEach, describe, expect, it, vi } from "vitest"; import { __testing } from "../test-api.js"; +import { createBraveWebSearchProvider as createBraveWebSearchContractProvider } from "../web-search-contract-api.js"; import { createBraveWebSearchProvider } from "./brave-web-search-provider.js"; const braveManifest = JSON.parse( @@ -40,6 +41,15 @@ describe("brave web search provider", () => { global.fetch = priorFetch; }); + it("points provider metadata at the canonical Brave docs page", () => { + expect(createBraveWebSearchProvider().docsUrl).toBe( + "https://docs.openclaw.ai/tools/brave-search", + ); + expect(createBraveWebSearchContractProvider().docsUrl).toBe( + "https://docs.openclaw.ai/tools/brave-search", + ); + }); + it("points missing-key users to fetch/browser alternatives", async () => { vi.stubEnv("BRAVE_API_KEY", ""); const provider = createBraveWebSearchProvider(); diff --git a/extensions/brave/src/brave-web-search-provider.ts b/extensions/brave/src/brave-web-search-provider.ts index e4f6864cdb5..1eafc26b955 100644 --- a/extensions/brave/src/brave-web-search-provider.ts +++ b/extensions/brave/src/brave-web-search-provider.ts @@ -137,7 +137,7 @@ export function createBraveWebSearchProvider(): WebSearchProviderPlugin { envVars: ["BRAVE_API_KEY"], placeholder: "BSA...", signupUrl: "https://brave.com/search/api/", - docsUrl: "https://docs.openclaw.ai/brave-search", + docsUrl: "https://docs.openclaw.ai/tools/brave-search", autoDetectOrder: 10, credentialPath: BRAVE_CREDENTIAL_PATH, ...createWebSearchProviderContractFields({ diff --git a/extensions/brave/web-search-contract-api.ts b/extensions/brave/web-search-contract-api.ts index 6c69d9a0909..e279cca00b1 100644 --- a/extensions/brave/web-search-contract-api.ts +++ b/extensions/brave/web-search-contract-api.ts @@ -15,7 +15,7 @@ export function createBraveWebSearchProvider(): WebSearchProviderPlugin { envVars: ["BRAVE_API_KEY"], placeholder: "BSA...", signupUrl: "https://brave.com/search/api/", - docsUrl: "https://docs.openclaw.ai/brave-search", + docsUrl: "https://docs.openclaw.ai/tools/brave-search", autoDetectOrder: 10, credentialPath, ...createWebSearchProviderContractFields({