Skip to content

feat(settings): choose the default browser for conversation links - #3779

Merged
bobleer merged 3 commits into
GCWing:mainfrom
bobleer:bob/default-browser-links
Nov 6, 2026
Merged

bobleer merged 3 commits into
GCWing:mainfrom
bobleer:bob/default-browser-links

Conversation

@bobleer

@bobleer bobleer commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Add a Web links setting under Settings → Tools → Browser & desktop control. Conversation text links can now open in the built-in browser or the system default browser, without using the context menu each time. Web deployments offer a new tab in the current browser.

Type and Areas

Feature / UI/UX; Web UI settings, Markdown links, platform URL opening, localization, and documentation.

Motivation / Impact

Ordinary conversation links previously always opened in the built-in browser. The new preference applies immediately, persists on the controller, synchronizes across open pages sharing its local storage, and survives workspace/Peer switches. Existing installs retain the built-in default. Explicit context-menu choices, modifier-clicks, PR/MR review routing, and agent browser-control configuration keep their current behavior. The setting stays available even when host control status cannot load.

Browser clients now open supported external URLs in a new controller-side tab instead of attempting desktop IPC; desktop clients still use the OS opener. Browser-side opening rejects executable, local-file, and unsupported URL schemes.

Verification

Passed locally:

  • pnpm --dir src/web-ui run test:run src/infrastructure/config/services/browserLinkPreference.test.ts src/infrastructure/markdown/MarkdownRenderer.test.tsx src/infrastructure/api/service-api/SystemAPI.test.ts src/app/scenes/settings/settingsRegistry.test.ts src/app/scenes/settings/pages/shared/RuntimeSettings.test.tsx src/infrastructure/config/components/common/SettingsControlSizing.test.ts — 170 tests passed.
  • pnpm run check:web
  • pnpm run i18n:audit — zero warnings.
  • git diff --check
  • Upstream CI passed on 63fff913b59e6c5b1bb15bedc29f239896065af4, including the full Web UI suite, production builds, and mobile Web checks. Repository Object Sizes also passed.

Coverage includes legacy/missing preference records, persistence round trips, cross-window updates and storage failures, live preference changes without remounting Markdown, explicit browser choices, remote-workspace metadata, simulated Peer switches, controller-owned OS opening, browser-client URL dispatch, and editing link preferences when host configuration is unavailable. Native UI/browser opening and live SSH/Peer, Remote Control, and Detached Dispatch were not manually exercised. Mobile/IM and headless execution behavior are unchanged.

Reviewer Notes

AI-assisted implementation, with focused automated verification. No Rust, persisted host-config, or wire-protocol changes. Unknown stored preference values are retained; removing this change requires no migration. English, Simplified Chinese, and Traditional Chinese settings copy and English/Chinese user guidance are included.

Checklist

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable.

@bobleer
bobleer merged commit 9c40e73 into GCWing:main Nov 6, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant