Problem
The user-facing surfaces for the runnable-worktrees feature use the term "dev server," which is web-dev-centric and doesn't match the actual abstraction. Codev doesn't know or care what a user's worktree.devCommand starts — it could be a Vite / Next / Django server, a cargo run binary, a pnpm expo start React Native process, a pytest --watch test runner, or a plain build script. Users developing CLIs, desktop apps, mobile apps, or non-web software see the term and reasonably question whether the feature applies to them.
The framework is already half-consistent: the config field is worktree.devCommand (neutral), the CLI verb is afx dev (neutral), and the implementation talks about "dev PTY" / "dev process" (neutral). Only the VS Code command titles, palette entries, several internal command IDs, one context key, one view id, four source file names, and the prose in AGENTS.md / CLAUDE.md / the PIR protocol docs still carry "dev server."
This bug closes the gap so all three surfaces (config → CLI → VS Code) read "dev" consistently.
Scope — full rename for consistency
1. VS Code command IDs (packages/vscode/package.json contributes.commands)
Some already read cleanly ("dev" in the id); their titles still need the "Server" stripped. Others carry devServer in the id itself — rename those.
| Current command id |
Current title |
New title |
New command id (if changed) |
codev.runWorktreeDev |
Codev: Run Dev Server |
Codev: Run Dev |
unchanged |
codev.stopWorktreeDev |
Codev: Stop Dev Server |
Codev: Stop Dev |
unchanged |
codev.runWorkspaceDev |
Codev: Start Dev Server (this workspace) |
Codev: Start Dev (this workspace) |
unchanged |
codev.stopWorkspaceDev |
Codev: Stop Dev Server (this workspace) |
Codev: Stop Dev (this workspace) |
unchanged |
codev.devServer.stop |
Stop Dev Server |
Stop Dev |
codev.dev.stop |
codev.devServer.restart |
Restart Dev Server |
Restart Dev |
codev.dev.restart |
codev.devServer.switchTarget |
Switch Target |
Switch Target |
codev.dev.switchTarget |
codev.devServer.showSidebar |
Show Codev Sidebar |
Show Codev Sidebar |
codev.dev.showSidebar |
codev.devServer.hideSidebar |
Hide Codev Sidebar |
Hide Codev Sidebar |
codev.dev.hideSidebar |
2. Context key
codev.devServerRunning → codev.devRunning
Update setContext calls (extension.ts:560) plus every when clause reference:
packages/vscode/package.json lines 488, 492, 714, 719
- Test assertions in
packages/vscode/src/__tests__/contributes-dev-server.test.ts
- Docstring reference in
packages/vscode/src/terminal-manager.ts:524
3. View id
codev.devServer → codev.dev
Referenced in:
packages/vscode/package.json contributes.views declaration + menus when clauses (lines 714, 719)
- Test assertions
User-facing migration note: renaming the view id invalidates any user overrides of view visibility in VS Code settings. This is minor (view state is per-user, not shared config), but callable out in the PR body / CHANGELOG.
4. Source file names
Renames for consistency (imports update along):
packages/vscode/src/commands/dev-server-actions.ts → dev-actions.ts
packages/vscode/src/views/dev-server.ts → dev.ts
packages/vscode/src/views/dev-server-format.ts → dev-format.ts
packages/vscode/src/__tests__/contributes-dev-server.test.ts → contributes-dev.test.ts
packages/vscode/src/__tests__/dev-server-format.test.ts → dev-format.test.ts
5. Documentation (dual-tree mirror per convention)
Beyond the mechanical rename, sharpen the prose framing. The point of this bugfix isn't just to strip a word from titles — it's to make it obvious to non-web users that the feature applies to them. "Dev" as a noun (short for "development-iteration activity") is inclusive across mobile, CLI, desktop, background workers, docs sites, test watchers, and so on — but only if the surrounding prose says so. Otherwise readers still read "dev" as "web dev server" by association.
Concrete rewrite pattern: wherever prose currently says "spin up a dev server against the builder's branch" or similar, replace with "run whatever your dev command starts against the builder's branch — dev server, cargo run, expo start, a test watcher, a build script, whatever iterates on your project." Enumerate the range at least once per prose section so non-web users don't self-exclude from the feature.
AGENTS.md — "Runnable Worktrees" section (line 379+): "dev server" → "dev command" / "dev" per surrounding context. Lines: 379, 395, 402, 403, 419, 420, 422, 424.
CLAUDE.md — mirror of AGENTS.md. Same edits.
codev-skeleton/AGENTS.md and codev-skeleton/CLAUDE.md — skeleton mirrors, same edits.
codev-skeleton/protocols/pir/protocol.md:86,89 — "Run Dev Server" → "Run Dev"
codev-skeleton/protocols/pir/prompts/implement.md:124
codev-skeleton/protocols/pir/prompts/review.md:78
codev/protocols/pir/ mirrors of the above three files (if present)
6. Prose consistency in existing artifacts
The projectlist and past plan artifacts (codev/projectlist.md:265, :315, codev/plans/975-vscode-run-stop-dev-server-con.md) contain "Run/Stop Dev Server" in historical prose. Leave these unchanged — they're historical records describing what shipped at the time, not user-facing docs. Renaming would rewrite history.
What stays unchanged (deliberately)
worktree.devCommand config field name — already neutral, matches the new naming
afx dev CLI — already neutral
- Terminal tab name pattern
Codev: <name> (dev) — already neutral
- Wire types / API payloads sent between Tower and the extension — none of these use "server" today (verified via grep)
- Historical plan / projectlist prose (see §6)
Verification
- Palette (
Cmd+Shift+P) shows the renamed titles; no title contains "Server"
- All command ids under
codev.dev.* fire correctly
codev.devRunning context key gates the sidebar chip / tab badge as before
- View id
codev.dev renders the same content that codev.devServer did
- Right-clicking a builder row in the Codev sidebar shows the renamed context-menu entries
- Grep
packages/vscode/ for devServer — only historical codev/projectlist.md and past plan hits remain
pnpm --filter codev-vscode test passes (test files reflect renames)
pnpm --filter codev-vscode compile passes
- Backward compatibility: existing users' keybindings pointing at
codev.devServer.stop etc. will silently no-op post-upgrade. Document this in the CHANGELOG so users know to update their keybindings.json.
Related
Problem
The user-facing surfaces for the runnable-worktrees feature use the term "dev server," which is web-dev-centric and doesn't match the actual abstraction. Codev doesn't know or care what a user's
worktree.devCommandstarts — it could be a Vite / Next / Django server, acargo runbinary, apnpm expo startReact Native process, apytest --watchtest runner, or a plain build script. Users developing CLIs, desktop apps, mobile apps, or non-web software see the term and reasonably question whether the feature applies to them.The framework is already half-consistent: the config field is
worktree.devCommand(neutral), the CLI verb isafx dev(neutral), and the implementation talks about "dev PTY" / "dev process" (neutral). Only the VS Code command titles, palette entries, several internal command IDs, one context key, one view id, four source file names, and the prose inAGENTS.md/CLAUDE.md/ the PIR protocol docs still carry "dev server."This bug closes the gap so all three surfaces (config → CLI → VS Code) read "dev" consistently.
Scope — full rename for consistency
1. VS Code command IDs (
packages/vscode/package.jsoncontributes.commands)Some already read cleanly ("dev" in the id); their titles still need the "Server" stripped. Others carry
devServerin the id itself — rename those.codev.runWorktreeDevcodev.stopWorktreeDevcodev.runWorkspaceDevcodev.stopWorkspaceDevcodev.devServer.stopcodev.dev.stopcodev.devServer.restartcodev.dev.restartcodev.devServer.switchTargetcodev.dev.switchTargetcodev.devServer.showSidebarcodev.dev.showSidebarcodev.devServer.hideSidebarcodev.dev.hideSidebar2. Context key
codev.devServerRunning→codev.devRunningUpdate
setContextcalls (extension.ts:560) plus everywhenclause reference:packages/vscode/package.jsonlines 488, 492, 714, 719packages/vscode/src/__tests__/contributes-dev-server.test.tspackages/vscode/src/terminal-manager.ts:5243. View id
codev.devServer→codev.devReferenced in:
packages/vscode/package.jsoncontributes.viewsdeclaration +menuswhenclauses (lines 714, 719)User-facing migration note: renaming the view id invalidates any user overrides of view visibility in VS Code settings. This is minor (view state is per-user, not shared config), but callable out in the PR body / CHANGELOG.
4. Source file names
Renames for consistency (imports update along):
packages/vscode/src/commands/dev-server-actions.ts→dev-actions.tspackages/vscode/src/views/dev-server.ts→dev.tspackages/vscode/src/views/dev-server-format.ts→dev-format.tspackages/vscode/src/__tests__/contributes-dev-server.test.ts→contributes-dev.test.tspackages/vscode/src/__tests__/dev-server-format.test.ts→dev-format.test.ts5. Documentation (dual-tree mirror per convention)
Beyond the mechanical rename, sharpen the prose framing. The point of this bugfix isn't just to strip a word from titles — it's to make it obvious to non-web users that the feature applies to them. "Dev" as a noun (short for "development-iteration activity") is inclusive across mobile, CLI, desktop, background workers, docs sites, test watchers, and so on — but only if the surrounding prose says so. Otherwise readers still read "dev" as "web dev server" by association.
Concrete rewrite pattern: wherever prose currently says "spin up a dev server against the builder's branch" or similar, replace with "run whatever your dev command starts against the builder's branch — dev server,
cargo run,expo start, a test watcher, a build script, whatever iterates on your project." Enumerate the range at least once per prose section so non-web users don't self-exclude from the feature.AGENTS.md— "Runnable Worktrees" section (line 379+): "dev server" → "dev command" / "dev" per surrounding context. Lines: 379, 395, 402, 403, 419, 420, 422, 424.CLAUDE.md— mirror ofAGENTS.md. Same edits.codev-skeleton/AGENTS.mdandcodev-skeleton/CLAUDE.md— skeleton mirrors, same edits.codev-skeleton/protocols/pir/protocol.md:86,89— "Run Dev Server" → "Run Dev"codev-skeleton/protocols/pir/prompts/implement.md:124codev-skeleton/protocols/pir/prompts/review.md:78codev/protocols/pir/mirrors of the above three files (if present)6. Prose consistency in existing artifacts
The projectlist and past plan artifacts (
codev/projectlist.md:265,:315,codev/plans/975-vscode-run-stop-dev-server-con.md) contain "Run/Stop Dev Server" in historical prose. Leave these unchanged — they're historical records describing what shipped at the time, not user-facing docs. Renaming would rewrite history.What stays unchanged (deliberately)
worktree.devCommandconfig field name — already neutral, matches the new namingafx devCLI — already neutralCodev: <name> (dev)— already neutralVerification
Cmd+Shift+P) shows the renamed titles; no title contains "Server"codev.dev.*fire correctlycodev.devRunningcontext key gates the sidebar chip / tab badge as beforecodev.devrenders the same content thatcodev.devServerdidpackages/vscode/fordevServer— only historicalcodev/projectlist.mdand past plan hits remainpnpm --filter codev-vscode testpasses (test files reflect renames)pnpm --filter codev-vscode compilepassescodev.devServer.stopetc. will silently no-op post-upgrade. Document this in the CHANGELOG so users know to update theirkeybindings.json.Related
codev/plans/975-vscode-run-stop-dev-server-con.md(Run/Stop Dev Server menu-gating fix, vscode: Run/Stop Dev Server context-menu entries on builder rows ignoreworktree.devCommandpresence #975)worktree.devCommandandafx dev; this bugfix is closing the gap on the last user-facing surfaces that didn't get the memo