Repository navigation
fix(dsh)!: namespace BrowserSkill tools and recover failed activation - #446
Merged
Merged
Conversation
Use a shared bsk_* tool contract to coexist with other browser plugins. Roll back incomplete registrations, retain lazy activation intent, and surface failures through native DSH hooks with scoped diagnostics. BREAKING CHANGE: the six browser_* tool names are replaced by bsk_* names. Reload the skill and update tool policies and hardcoded callers after upgrade.
Register claimed user gestures before the first tool snapshot and synchronize activation failures with session recovery notices. Track skill delivery separately from activation intent, require the runtime LLM peer, and cover the real Agent Loop request boundary.
Preserve structured extraction under bsk_inspect, including its action routing, parameter schema, regression tests, documentation, and session diagnostics.
ArcueidMP
added a commit
to ArcueidMP/BrowserSkill
that referenced
this pull request
Oct 14, 2026
The focus mapping cases from Tencent#447 still looked up browser_session after Tencent#446 renamed the tool, so they failed on main as well.
ArcueidMP
added a commit
to ArcueidMP/BrowserSkill
that referenced
this pull request
Oct 14, 2026
The focus mapping cases from Tencent#447 still looked up browser_session after Tencent#446 renamed the tool, so they failed on main as well.
2 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #444. Related to #445.
BrowserSkill's generic
browser_sessionname collides withdsh-builtin-browser, preventing its browser workflow from becoming available. Move the complete six-tool API to fixedbsk_*names, with one name contract shared by host schemas, the screenshot view, and skill validation. Actions, arguments, results, session ownership, and the plugin-global registration lifetime remain unchanged.Build all definitions before registering. If any registration fails, release this attempt's entries in reverse order, preserve the original error, and keep lazy activation eligible for a later lifecycle retry. Install resource cleanup before eager registration.
Activate user
/browser-skillgestures synchronously atagent/inbox/claimed, before the host assembles the tool snapshot, so the first model request contains both the skill instructions and all six schemas. Match only user-authored gesture text and deduplicate the claim, official injection, and durable append. Native model skill calls activate throughtools/post-executefor the following step.Track activation intent separately from successful delivery of the skill body. A blocked native skill result already reports the failure;
agent/pre-stepreports changed failures or recovery once to the affected conversation. Recovery asks the model to reload the skill when the failed call never delivered its instructions. Unrelated conversations continue normally. Declare the runtime@deepseek-ai/dsh-llmpeer as required.Breaking API migration
The six
browser_*names becomebsk_session,bsk_page,bsk_inspect,bsk_interact,bsk_tabs, andbsk_assist. There are no executable aliases. Copied profile instructions, installation guidance, structured extraction examples and diagnostics, and packaged video integration callers use the new public names. Restart DSH, invoke/browser-skillagain in existing conversations, and update hardcoded calls, tool policies, andtoolOrder. Historical calls and attachments are preserved; old screenshot cards may use the generic renderer. The plugin README and changelog document this as a breaking change for the next coordinated release.Validation
bsk_inspect, and screenshot toolview coverage.0.1.5-rc.3Agent Loop, prompt assembler, tool runtime, and official skill plugin. They capture actual model requests and cover first-step schemas, gesture matching, one registration attempt, same-turn recovery, first-load failure recovery, changed failures, and notice deduplication. Seven of these tests fail with the pre-fix implementation. Only the model and browser subprocess boundaries are fixtures.0.2.0-rc.2: seven Agent Loop scenarios passed with a deterministic local model, including first-step schemas and all reported notification failures. These scenarios make no network or browser calls.0.1.5-rc.3and0.2.0-rc.2: 13 isolated runtime scenarios each, using the publisheddsh-builtin-browser@0.4.7tool layer. Both plugin load orders, lazy/eager activation, collisions, recovery, unload/reload, and official slash-skill injection passed. Browser providers and subprocesses were fixtures for these scenarios.0.2.0-rc.2,bsk 0.3.2, and connected Chrome/extension: nativeskill→bsk_session(start)→bsk_page(navigate)→bsk_inspect(observe/screenshot)→bsk_session(stop)passed against a local test page. The competing plugin's registration and the user's existing session remained intact.Runtime and browser smoke tests ran on macOS; Windows desktop UI was not exercised.