Repository navigation
fix(vscode): let browser_open permissions be allowed always - #15235
Conversation
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Files Reviewed (3 files)
The incremental commit resolves both prior findings: No memory-leak risks: the incremental change adds no subscriptions, timers, or object lifetimes. Previous Review Summary (commit c61a974)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit c61a974)Status: 2 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
Files Reviewed (28 files)
No memory-leak risks: the change adds no subscriptions, timers, or object lifetimes. Reviewed by deepseek-v4.1-flash-1017 · Input: 152.6K · Output: 9.8K · Cached: 1.1M Review guidance: REVIEW.md from base branch |
|
Tracked for the opencode v2 rewrite in #15241 ( |
What Problem This Solves
The Integrated Browser
browser_openpermission prompt only offered Allow once and Deny. The tool sent an emptyalwayslist, so no always-allow rule could be saved and every browser navigation asked again. The Auto-Approve settings page also had nobrowser_openentry.Why This Change Was Made
browser_opennow offers two persisted rules: the current origin (navigate:<origin>) and all origins (navigate:*). The permission card shows the Manage Auto-Approve Rules section so the choice can be saved.browser_opencalls.Feature Clarification
browser_openbelongs to the Integrated Browser feature (experimental settingkilo-code.new.experimental.browserAutomation, the Agent Manager preview panel). It is separate from Browser Automation, which is the Playwright MCP server enabled bykilo-code.new.browserAutomation.enabledand exposes MCP tools with their own MCP permissions.User Impact
Users can approve a browser origin or all browser navigation once, or pre-allow
browser_openin Settings, instead of answering a permission prompt for every navigation.Evidence
Before, the prompt had no auto-approve rules:
After, the prompt exposes the current origin and all origins as auto-approve rules:
Before, Auto-Approve went from Webfetch directly to Doom Loop:
After, Browser Open is available and defaults to Ask:
Validation
bun test ./test/kilocode/sandbox/http-tools.test.ts ./test/kilocode/permission/next.always-rules.test.ts(packages/opencode)bun test tests/unit/i18n-keys.test.ts tests/unit/i18n-unused-keys.test.ts tests/unit/permission-description.test.ts tests/unit/permission-editor.test.ts tests/unit/permission-dock-utils.test.ts tests/unit/permission-dock-rules.test.ts(packages/kilo-vscode)bun run typecheckandbun run lintin both packagesbrowser_openwithhttp://127.0.0.1:8765, and the before and after permission cards and Auto-Approve settings were captured.