Skip to content

Secure multi-window registry credentials - #154

Merged
Oz Zafar (ozzafar) merged 5 commits into
mainfrom
feature/secure-workspace-registry
Sep 15, 2026
Merged

Oz Zafar (ozzafar) merged 5 commits into
mainfrom
feature/secure-workspace-registry

Conversation

@ozzafar

Copy link
Copy Markdown
Collaborator

Summary

  • move the multi-window registry into VS Code per-user extension storage
  • enforce owner-only POSIX permissions, ownership checks, and regular-file validation
  • replace registry entries atomically and repair permissive entry modes
  • bump the extension version to 2.3.7 and update architecture documentation

Validation

  • npm test (212 passing; 2 POSIX-only permission tests skipped on Windows)
  • npm run package
  • live test with three isolated VS Code windows: each workspace routed to and paused in its own debug session
  • closed the active router window, observed takeover by a surviving window, and repeated successful debugging in both remaining workspaces

Sestet (AyinLee987) and others added 5 commits September 4, 2026 17:36
Adds Claude Code to the agent selection popup and manual config docs.
DebugMCP is a standard MCP server over Streamable HTTP, so Claude Code
already works via `claude mcp add` / editing ~/.claude.json by hand -
this just wires it into the same auto-detect flow the other JSON-based
agents (Cline, Cursor, Windsurf, Roo Code, Antigravity) already use.

- ~/.claude.json's top-level `mcpServers` field is the user-scope,
  cross-project location per https://code.claude.com/docs/en/mcp.
- Claude Code's config schema only recognizes `http`/`streamable-http`
  as transport types, not the `streamableHttp` shape the other JSON
  agents use, so getDebugMCPConfig() special-cases it the same way it
  already does for copilot-cli.
- Claude Desktop is intentionally left out of auto-registration: its
  official docs only show local stdio `command` servers in
  claude_desktop_config.json, with remote/local HTTP servers added
  through Settings -> Connectors -> Add custom connector instead of a
  static config file. The README's manual section documents that path.

Verified: `npm run check-types` and `npm run lint` pass. `npm test`
(vscode-test) could not complete in this sandbox - the bundled test
host hits an unrelated environment issue unpacking VS Code under a
path containing a space - so it wasn't able to run end-to-end here.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WhAeRUTsesSRnTi4E6CAcR
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c6d87f13-5a43-486b-9ddd-88e8944424e9
Move the ControlServer registry into per-user VS Code storage, enforce owner-only POSIX permissions, and use atomic credential writes. Add permission regression coverage and document the hardened design.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@ozzafar
Oz Zafar (ozzafar) merged commit d493597 into main Sep 15, 2026
3 checks passed
@github-actions

Copy link
Copy Markdown

✅ Extension Build Successful!

📦 VSIX artifact is ready for download

👉 View artifacts

Scroll down to the "Artifacts" section and download extension-vsix

To install: In VS Code, run Extensions: Install from VSIX... and select the downloaded file.

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.

2 participants