Skip to content

refactor(ide): clarify browser IDE names and dedup setup#535

Merged
skevetter merged 1 commit into
mainfrom
refactor/browser-ide-naming
Jun 26, 2026
Merged

refactor(ide): clarify browser IDE names and dedup setup#535
skevetter merged 1 commit into
mainfrom
refactor/browser-ide-naming

Conversation

@skevetter

@skevetter skevetter commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #532. That PR added VS Code Web (code serve-web) alongside the existing VS Code Browser (openvscode), and the two display names read as synonyms — both just say "it runs in a browser" while hiding the real distinction (which build / which marketplace).

Renaming

Display names now match the upstream product names, so they map to something a user can recognize and search:

flag (unchanged) before after
openvscode VS Code Browser OpenVSCode Server
vscode-web VS Code Web VS Code for the Web

CLI flag values, enum names, and icon assets are intentionally unchanged — flags are an API surface and the icons are looked up by their existing filenames.

Dedup

#532 added a dupl exclusion in .golangci.yaml because the three per-IDE async commands and three setup* functions were ~90% copy-paste. This collapses them into a small registry:

  • browser_async.gobrowserServer interface (already satisfied by all three pkg/ide types), a browserIDE descriptor, the browserIDEs registry, and a generic async command.
  • Deleted openvscode_async.go, codeserver_async.go, vscodeweb_async.go.
  • container.go registers async commands by looping the registry.
  • setup.go: three setup functions → one setupBrowserIDE; the installIDE switch collapses three cases into one.
  • Removed the now-unneeded dupl exclusion.

Net −303 lines. Adding the next browser IDE is one registry entry instead of a ~400-line copy. The three pkg/ide/* packages are deliberately left separate — their install logic genuinely differs (marker files, strip levels, data dirs, start subcommands) and dupl never flagged them.

Notes for reviewers

  • go build ./... clean, go test ./pkg/ide/... ./cmd/internal/agentcontainer/... (104 pass), go vet clean, golangci-lint --new-from-rev=origin/main reports no new issues.
  • Desktop npm run check not run locally (node_modules absent) — the Svelte edits are literal label-string swaps; please confirm CI is green.

Summary by CodeRabbit

  • New Features

    • Added support for streamlined setup and launch of browser-based IDEs with background extension installation.
    • Updated IDE names shown in the app to OpenVSCode Server and VS Code for the Web.
  • Bug Fixes

    • Removed outdated IDE-specific setup paths in favor of a unified flow for browser-based IDEs.
  • Chores

    • Cleaned up linter exclusions.

Rename the browser-based IDE display names to their upstream product
names so they stop reading as synonyms:
- openvscode: "VS Code Browser" -> "OpenVSCode Server"
- vscode-web: "VS Code Web" -> "VS Code for the Web"

CLI flag values, enum names, and icon assets are unchanged.

Collapse the three near-identical per-IDE async commands and setup
functions into a single browserIDEs registry driving a shared
browserServer interface, removing the dupl exclusion added for them.
@netlify

netlify Bot commented Jun 26, 2026

Copy link
Copy Markdown

Deploy Preview for devsydev canceled.

Name Link
🔨 Latest commit cf63682
🔍 Latest deploy log https://app.netlify.com/projects/devsydev/deploys/6a3ecdfd8bf4e5000859c6d7

@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 20714d17-f308-4e6f-9f78-2cd31a5ea324

📥 Commits

Reviewing files that changed from the base of the PR and between b156bf6 and cf63682.

📒 Files selected for processing (11)
  • .golangci.yaml
  • cmd/internal/agentcontainer/browser_async.go
  • cmd/internal/agentcontainer/codeserver_async.go
  • cmd/internal/agentcontainer/container.go
  • cmd/internal/agentcontainer/openvscode_async.go
  • cmd/internal/agentcontainer/setup.go
  • cmd/internal/agentcontainer/vscodeweb_async.go
  • desktop/src/renderer/src/lib/components/workspace/WorkspaceWizard.svelte
  • desktop/src/renderer/src/pages/SettingsPage.svelte
  • desktop/src/renderer/src/pages/WorkspaceDetailPage.svelte
  • pkg/ide/ideparse/parse.go
💤 Files with no reviewable changes (4)
  • cmd/internal/agentcontainer/codeserver_async.go
  • cmd/internal/agentcontainer/openvscode_async.go
  • .golangci.yaml
  • cmd/internal/agentcontainer/vscodeweb_async.go

📝 Walkthrough

Walkthrough

Refactors browser IDE async command handling into a shared registry and setup flow, removes the old per-IDE async command files, and updates OpenVSCode/VS Code Web labels across the parser and desktop UI.

Changes

Browser IDE async commands and wiring

Layer / File(s) Summary
Async command registry and wiring
cmd/internal/agentcontainer/browser_async.go, cmd/internal/agentcontainer/container.go, .golangci.yaml
Introduces shared browser async command types, registry, and Run handling; NewContainerCmd now registers async subcommands from the registry; the duplicate-code linter exclusion for the removed async files is dropped.
Shared browser IDE setup flow
cmd/internal/agentcontainer/setup.go
Browser IDE setup now routes through setupBrowserIDE, which resolves the IDE from browserIDEByName, installs and starts the selected server from a shared spec, and launches background extension installation with the matching async command.

IDE display names

Layer / File(s) Summary
OpenVSCode and VS Code Web labels
pkg/ide/ideparse/parse.go, desktop/src/renderer/src/lib/components/workspace/WorkspaceWizard.svelte, desktop/src/renderer/src/pages/SettingsPage.svelte, desktop/src/renderer/src/pages/WorkspaceDetailPage.svelte
OpenVSCode and VS Code Web display labels are updated in the parser and the desktop workspace/settings/detail IDE option lists.

Sequence Diagram(s)

sequenceDiagram
  participant SetupContainerCmd
  participant browserIDEByName
  participant browserServer
  participant startBrowserExtensionsInstall
  participant browserAsyncCmd

  SetupContainerCmd->>browserIDEByName: resolve IDE by name
  SetupContainerCmd->>browserServer: create server from browserServerSpec
  SetupContainerCmd->>browserServer: Install()
  SetupContainerCmd->>browserServer: Start()
  SetupContainerCmd->>startBrowserExtensionsInstall: launch async installer
  startBrowserExtensionsInstall->>browserAsyncCmd: run --setup-info
  browserAsyncCmd->>browserServer: InstallExtensions()
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

  • devsy-org/devsy#532: Introduces the vscode-web async/setup wiring that this PR folds into the shared browser IDE flow.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: browser IDE name clarifications and deduplicated setup logic.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@netlify

netlify Bot commented Jun 26, 2026

Copy link
Copy Markdown

Deploy Preview for images-devsy-sh canceled.

Name Link
🔨 Latest commit cf63682
🔍 Latest deploy log https://app.netlify.com/projects/images-devsy-sh/deploys/6a3ecdfd891dbd000899033b

@skevetter
skevetter marked this pull request as ready for review June 26, 2026 19:22
@skevetter
skevetter enabled auto-merge (squash) June 26, 2026 19:32
@skevetter
skevetter merged commit 6461c0c into main Jun 26, 2026
64 checks passed
@skevetter
skevetter deleted the refactor/browser-ide-naming branch June 26, 2026 19:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant