Bug type
Regression (worked before 2026.5.2, now fails)
Summary
Browser is configured (browser.enabled: true), plugin is enabled, headless Chromium is running and healthy (openclaw browser status shows running), but the agent session does not receive a browser tool in its available tools list even with tools.profile: "full".
Environment
- OpenClaw version: 2026.5.2 (8b2a6e5)
- OS: Linux 6.12.73+deb13-amd64 (x64)
- Gateway mode: local
- Channel: Telegram direct chat
- Config:
tools.profile: "full", browser.enabled: true, browser.defaultProfile: "openclaw"
Steps to reproduce
- Configure
tools.profile: "full" and browser.enabled: true
- Confirm browser is running:
openclaw browser status → healthy
- Start an agent session
- Agent does not have
browser in its tool list
Root cause analysis
The regression was introduced by the plugin tool filtering refactor on May 1-2, 2026. Specifically:
7641783d6b "fix: enforce plugin tool manifest contracts" — added contracts.tools to browser plugin manifest
3cf1dd982b "fix: gate plugin tools from manifest availability" — changed resolvePluginTools to filter by scopedPluginIds, removed addToolPluginIdsFromRegistry
1466878c36 "refactor: cache plugin tool descriptors" — added descriptor caching path with isOptionalToolAllowed filter
The core issue: CORE_TOOL_PROFILES["full"] = {} (empty allow/deny) → resolveCoreToolProfilePolicy("full") returns undefined → no explicit allow list → pluginToolAllowlist is empty. The new filtering chain (manifest availability + descriptor caching) incorrectly excludes the browser plugin tool when the allowlist is empty, even though full profile should grant all tools.
For comparison, tools.profile: "coding" documented exclusion of browser is expected behavior, but full should include everything.
Expected behavior
With tools.profile: "full", the browser tool should be available to the agent when browser is configured and running.
Actual behavior
Browser tool is missing from agent tool list. Agent tools are: read, write, edit, exec, process, message, sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status, web_search, web_fetch, image, image_generate, music_generate, video_generate, pdf, tts, agents_list.
Config snippet
{
"browser": { "enabled": true, "defaultProfile": "openclaw" },
"tools": { "profile": "full" },
"plugins": { "allow": ["browser", ...], "entries": { "browser": { "enabled": true } } }
}
Related
Bug type
Regression (worked before 2026.5.2, now fails)
Summary
Browser is configured (
browser.enabled: true), plugin is enabled, headless Chromium is running and healthy (openclaw browser statusshows running), but the agent session does not receive abrowsertool in its available tools list even withtools.profile: "full".Environment
tools.profile: "full",browser.enabled: true,browser.defaultProfile: "openclaw"Steps to reproduce
tools.profile: "full"andbrowser.enabled: trueopenclaw browser status→ healthybrowserin its tool listRoot cause analysis
The regression was introduced by the plugin tool filtering refactor on May 1-2, 2026. Specifically:
7641783d6b"fix: enforce plugin tool manifest contracts" — addedcontracts.toolsto browser plugin manifest3cf1dd982b"fix: gate plugin tools from manifest availability" — changedresolvePluginToolsto filter byscopedPluginIds, removedaddToolPluginIdsFromRegistry1466878c36"refactor: cache plugin tool descriptors" — added descriptor caching path withisOptionalToolAllowedfilterThe core issue:
CORE_TOOL_PROFILES["full"] = {}(empty allow/deny) →resolveCoreToolProfilePolicy("full")returnsundefined→ no explicit allow list →pluginToolAllowlistis empty. The new filtering chain (manifest availability + descriptor caching) incorrectly excludes the browser plugin tool when the allowlist is empty, even thoughfullprofile should grant all tools.For comparison,
tools.profile: "coding"documented exclusion of browser is expected behavior, butfullshould include everything.Expected behavior
With
tools.profile: "full", the browser tool should be available to the agent when browser is configured and running.Actual behavior
Browser tool is missing from agent tool list. Agent tools are: read, write, edit, exec, process, message, sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status, web_search, web_fetch, image, image_generate, music_generate, video_generate, pdf, tts, agents_list.
Config snippet
{ "browser": { "enabled": true, "defaultProfile": "openclaw" }, "tools": { "profile": "full" }, "plugins": { "allow": ["browser", ...], "entries": { "browser": { "enabled": true } } } }Related
tools.profile: "coding"(but that is documented behavior; this is aboutfull)