Skip to content

[Bugfix #1158] Strip "dev server" terminology from VS Code surfaces#1173

Merged
amrmelsayed merged 8 commits into
mainfrom
builder/bugfix-1158
Jul 13, 2026
Merged

[Bugfix #1158] Strip "dev server" terminology from VS Code surfaces#1173
amrmelsayed merged 8 commits into
mainfrom
builder/bugfix-1158

Conversation

@amrmelsayed

@amrmelsayed amrmelsayed commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

Strips the web-centric "dev server" terminology from the runnable-worktrees VS Code surfaces so all three layers read "dev" consistently: the config field (worktree.devCommand) and CLI (afx dev) were already neutral; this closes the gap on the last surfaces (VS Code titles, command ids, one context key, one view id, five source-file names, and doc prose) that hadn't gotten the memo.

The abstraction is stack-agnostic. worktree.devCommand can start a dev server, cargo run, expo start, a test watcher, a build script, or any other iterate-on-your-project process, so the prose was also sharpened (not just word-stripped) to make it obvious to non-web users that the feature applies to them.

Fixes #1158.

Root Cause

Not a behavior bug: a naming inconsistency. The feature was half-renamed when it shipped (neutral config/CLI, neutral "dev PTY" internals) but the VS Code layer and docs kept "dev server."

Fix

packages/vscode/package.json

  • Strip "Server" from 6 command titles (Codev: Run Dev, Stop Dev, Start Dev (this workspace), Stop Dev (this workspace), Stop Dev, Restart Dev).
  • Command ids codev.devServer.*codev.dev.* (stop / restart / switchTarget / showSidebar / hideSidebar), across the command declarations, command-palette gating, and view/title menus.
  • Context key codev.devServerRunningcodev.devRunning.
  • View id codev.devServercodev.dev.

Source (extension.ts, views, commands, terminal-manager, …)

  • Rename internal identifiers so the whole package is free of devServer (verification Defense Phase Confusion - Misinterpreted as Justification vs Testing #6): stopDevServerstopDev, restartDevServerrestartDev, DevServerTreeProviderDevTreeProvider, devServerProviderdevProvider, devServerViewdevView, and the auto view-focus command codev.devServer.focuscodev.dev.focus.
  • Neutralize user-facing strings and comments ("No dev server is running" → "No dev is running", etc.).

File renames (imports updated):

  • commands/dev-server-actions.tscommands/dev-actions.ts
  • views/dev-server.tsviews/dev.ts
  • views/dev-server-format.tsviews/dev-format.ts
  • __tests__/contributes-dev-server.test.ts__tests__/contributes-dev.test.ts
  • __tests__/dev-server-format.test.ts__tests__/dev-format.test.ts

Docs

  • AGENTS.md / CLAUDE.md (kept byte-identical): reworded the "Runnable Worktrees" section; the intro now enumerates the range (dev server, cargo run, expo start, test watcher, build script) so non-web users don't self-exclude.
  • codev-skeleton/protocols/pir/ + codev/protocols/pir/ mirrors: command-name updates in protocol.md, prompts/implement.md, prompts/review.md.
  • codev/resources/arch.md: the living architecture reference named the now-dead codev.devServer view / codev.devServerRunning key / views/dev-server-format.ts in its vscode: Codev Dev surface — bottom-panel tab with title-bar Stop/Restart, paired with always-visible status-bar chip #921 bullets; updated to the new identifiers.

Left unchanged (deliberate): historical records — codev/plans/921, codev/plans/1104, codev/plans/975, codev/reviews/921, codev/state/pir-921_thread.md, and codev/projectlist.md. These describe what shipped at the time; renaming would rewrite history (issue §6).

⚠️ Backward compatibility (per-user, minor)

  • Existing keybindings pointing at codev.devServer.stop / .restart / .switchTarget / .showSidebar / .hideSidebar will silently no-op after upgrade. Users who bound these must update keybindings.json to codev.dev.*.
  • Renaming the view id codev.devServercodev.dev invalidates any per-user override of that view's visibility in VS Code settings. (View state is per-user, not shared config.)

(No wire types / API payloads changed — none used "server". Verified via grep.)

Test Plan

  • Regression guard: the renamed contributes-dev.test.ts pins the new codev.dev.* ids, codev.devRunning key, and codev.dev view, and adds a #1158 block asserting no command title contains "Server" and no devServer in any command id / view id / menu (every group) / keybinding — fails loudly if the terminology is ever reintroduced.
  • pnpm --filter codev-vscode test:unit590 passed / 51 files.
  • pnpm --filter codev-vscode compile (check-types + lint + esbuild) → pass.
  • Case-insensitive grep -rin "dev[ -]server\|devserver" packages/vscode/ → only the intentional stack-agnostic enumeration ("a dev server, cargo run, …") remains.

CMAP review (3-way)

Ran a 3-way review at the PR — gemini + codex + claude, all REQUEST_CHANGES on the same real defect: the first pass's verification grep was case-sensitive and missed the mixed-case "Dev server" variant, leaving four user-facing toast strings (dev-shared.ts, stop-worktree-dev.ts) still saying "Dev server started/stopped/already running". Fixed in commit f931aa4e, along with:

  • README.md (marketplace doc) — command titles now match the renamed palette; prose neutralized + enumerated.
  • Two stale comments; the PIR protocol's "at-gate dev-server review flow" wording.
  • Strengthened the regression guard to scan all menu groups + keybindings (not just view/title).

Rebutted (codex): adding deprecated codev.devServer.* command aliases for backward-compat. The breaking rename is the issue's explicit decision (#1158 verification #9: old ids "will silently no-op post-upgrade. Document this in the CHANGELOG"), so aliases would contradict the chosen approach and expand surface the issue deliberately declined. Surfaced as a documented break instead (above).

Note for merge / release

packages/vscode/CHANGELOG.md was intentionally not touched here — this repo accumulates the VS Code changelog on the dedicated changelog branch after cleanup, not in feature/bugfix PRs. The backward-compat break above should be captured there.

Close the naming gap so config -> CLI -> VS Code all read "dev". The config
field (worktree.devCommand) and CLI (afx dev) were already neutral; only the
VS Code titles, several command ids, one context key, one view id, five source
file names, and doc prose still carried the web-centric "dev server."

- package.json: strip "Server" from 6 command titles; codev.devServer.* ->
  codev.dev.* command ids; context key codev.devServerRunning -> codev.devRunning;
  view id codev.devServer -> codev.dev.
- extension.ts / views / commands: rename internal identifiers (stopDevServer ->
  stopDev, DevServerTreeProvider -> DevTreeProvider, etc.), the auto view-focus
  command codev.devServer.focus -> codev.dev.focus, and neutralize user-facing
  strings / comments.
- Rename source files: dev-server-actions.ts -> dev-actions.ts, views/dev-server.ts
  -> dev.ts, views/dev-server-format.ts -> dev-format.ts (+ the two test files).
- Docs: sharpen AGENTS.md / CLAUDE.md "Runnable Worktrees" prose so non-web users
  (cargo run, expo start, test watchers, build scripts) don't self-exclude; update
  PIR protocol/prompt command names; fix arch.md's now-stale #921 identifiers.
- Left historical records unchanged (plans 921/1104/975, review 921, projectlist).

BREAKING (per-user, minor): old keybindings on codev.devServer.* silently no-op;
the codev.dev view id invalidates any user override of the old view's visibility.

Grep of packages/vscode for devServer / "Dev Server" / dev-server = 0 hits.
3-way CMAP review (gemini + codex + claude, all REQUEST_CHANGES on the same
defect) caught user-facing toast strings the first pass missed. Root cause: the
initial verification grep was case-sensitive and skipped the mixed-case
"Dev server" variant.

- dev-shared.ts / stop-worktree-dev.ts: "Codev: Dev server started/stopped/already
  running for ..." -> "Codev: Dev started/stopped/is already running for ..."
  (runtime showInformationMessage toasts).
- terminal-manager.ts / workspace.ts: comment wording ("Dev servers are ...",
  the "Stop Dev Server" row reference).
- README.md (marketplace doc): command titles now match the renamed palette
  (Run/Stop/Start Dev), prose neutralized, and the intro enumerates the range
  (dev server, cargo run, expo start, test watcher, build script) so non-web
  users don't self-exclude.
- pir/protocol.md (both trees): "at-gate dev-server review flow" -> "dev review flow".
- contributes-dev.test.ts: strengthen the #1158 guard to scan EVERY contributed
  menu group and all keybindings for a reintroduced devServer id/when-clause
  (previously only view/title was checked).

Case-insensitive grep of packages/vscode for dev-server terminology now returns
only the intentional stack-agnostic enumeration. 590 unit tests pass; compile clean.
@amrmelsayed amrmelsayed merged commit 1a85a1f into main Jul 13, 2026
6 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.

vscode: strip 'dev server' terminology — titles, palette entries, internal ids, view id, source file names

1 participant