Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: coder/vscode-coder
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.5.0
Choose a base ref
...
head repository: coder/vscode-coder
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Loading
Showing with 7,404 additions and 5,411 deletions.
  1. +4 −2 .editorconfig
  2. +58 −57 .eslintrc.json
  3. +3 −0 .github/dependabot.yml
  4. +6 −2 .github/workflows/ci.yaml
  5. +1 −1 .github/workflows/release.yaml
  6. +9 −0 .prettierignore
  7. +0 −16 .prettierrc
  8. +10 −10 .vscode/launch.json
  9. +2 −4 .vscode/tasks.json
  10. +59 −0 CHANGELOG.md
  11. +11 −11 README.md
  12. +335 −328 package.json
  13. +43 −39 src/api-helper.ts
  14. +250 −215 src/api.ts
  15. +146 −128 src/cliManager.test.ts
  16. +113 −109 src/cliManager.ts
  17. +764 −582 src/commands.ts
  18. +201 −171 src/error.test.ts
  19. +150 −136 src/error.ts
  20. +396 −225 src/extension.ts
  21. +28 −20 src/featureSet.test.ts
  22. +25 −19 src/featureSet.ts
  23. +125 −79 src/headers.test.ts
  24. +89 −53 src/headers.ts
  25. +104 −0 src/inbox.ts
  26. +75 −67 src/proxy.ts
  27. +1,012 −853 src/remote.ts
  28. +599 −176 src/sshConfig.test.ts
  29. +267 −199 src/sshConfig.ts
  30. +49 −45 src/sshSupport.test.ts
  31. +91 −82 src/sshSupport.ts
  32. +615 −522 src/storage.ts
  33. +36 −15 src/typings/vscode.proposed.resolvers.d.ts
  34. +117 −67 src/util.test.ts
  35. +115 −48 src/util.ts
  36. +215 −188 src/workspaceMonitor.ts
  37. +485 −323 src/workspacesProvider.ts
  38. +12 −12 tsconfig.json
  39. +43 −43 webpack.config.js
  40. +741 −564 yarn.lock
6 changes: 4 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
root = true

[*]
indent_style = space
trim_trailing_whitespace = true
end_of_line = lf
indent_size = 2
indent_style = tab
insert_final_newline = true
trim_trailing_whitespace = true
115 changes: 58 additions & 57 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -1,59 +1,60 @@
{
"root": true,
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module"
},
"plugins": [
"@typescript-eslint",
"prettier"
],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:import/recommended",
"plugin:import/typescript",
"plugin:md/prettier",
"prettier"
],
"overrides": [{
"files": ["*.md"],
"parser": "markdown-eslint-parser"
}],
"rules": {
"curly": "error",
"eqeqeq": "error",
"no-throw-literal": "error",
"no-console": "error",
"prettier/prettier": "error",
"import/order": ["error", {
"alphabetize": {
"order": "asc"
},
"groups": [["builtin", "external", "internal"], "parent", "sibling"]
}],
"import/no-unresolved": ["error", {
"ignore": ["vscode"]
}],
"@typescript-eslint/no-unused-vars": [
"error",
{
"varsIgnorePattern": "^_"
}
],
"md/remark": [
"error",
{
"no-duplicate-headings": {
"sublings_only": true
}
}
]
},
"ignorePatterns": [
"out",
"dist",
"**/*.d.ts"
]
"root": true,
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module"
},
"plugins": ["@typescript-eslint", "prettier"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:import/recommended",
"plugin:import/typescript",
"plugin:md/prettier",
"prettier"
],
"overrides": [
{
"files": ["*.md"],
"parser": "markdown-eslint-parser"
}
],
"rules": {
"curly": "error",
"eqeqeq": "error",
"no-throw-literal": "error",
"no-console": "error",
"prettier/prettier": "error",
"import/order": [
"error",
{
"alphabetize": {
"order": "asc"
},
"groups": [["builtin", "external", "internal"], "parent", "sibling"]
}
],
"import/no-unresolved": [
"error",
{
"ignore": ["vscode"]
}
],
"@typescript-eslint/no-unused-vars": [
"error",
{
"varsIgnorePattern": "^_"
}
],
"md/remark": [
"error",
{
"no-duplicate-headings": {
"sublings_only": true
}
}
]
},
"ignorePatterns": ["out", "dist", "**/*.d.ts"]
}
3 changes: 3 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -15,3 +15,6 @@ updates:
interval: "weekly"
ignore:
- dependency-name: "@types/vscode"
# These versions must match the versions specified in coder/coder exactly.
- dependency-name: "@types/ua-parser-js"
- dependency-name: "ua-parser-js"
8 changes: 6 additions & 2 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -18,12 +18,16 @@ jobs:

- uses: actions/setup-node@v4
with:
node-version: '18'
node-version: "18"

- run: yarn

- run: yarn prettier --check .

- run: yarn lint

- run: yarn build

test:
runs-on: ubuntu-22.04

@@ -32,7 +36,7 @@ jobs:

- uses: actions/setup-node@v4
with:
node-version: '18'
node-version: "18"

- run: yarn

2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -18,7 +18,7 @@ jobs:

- uses: actions/setup-node@v4
with:
node-version: '18'
node-version: "18"

- run: yarn

9 changes: 9 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/dist/
/node_modules/
/out/
/.vscode-test/
/.nyc_output/
/coverage/
*.vsix
flake.lock
yarn-error.log
16 changes: 0 additions & 16 deletions .prettierrc

This file was deleted.

20 changes: 10 additions & 10 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Run Extension",
"type": "extensionHost",
"request": "launch",
"args": ["--extensionDevelopmentPath=${workspaceFolder}"],
"outFiles": ["${workspaceFolder}/dist/**/*.js"]
}
]
"version": "0.2.0",
"configurations": [
{
"name": "Run Extension",
"type": "extensionHost",
"request": "launch",
"args": ["--extensionDevelopmentPath=${workspaceFolder}"],
"outFiles": ["${workspaceFolder}/dist/**/*.js"]
}
]
}
6 changes: 2 additions & 4 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -4,11 +4,9 @@
{
"type": "typescript",
"tsconfig": "tsconfig.json",
"problemMatcher": [
"$tsc"
],
"problemMatcher": ["$tsc"],
"group": "build",
"label": "tsc: build"
}
]
}
}
59 changes: 59 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -2,6 +2,65 @@

## Unreleased

### Fixed

- Use `--header-command` properly when starting a workspace.

## [v1.9.1](https://github.com/coder/vscode-coder/releases/tag/v1.9.1) 2025-05-27

### Fixed

- Missing or otherwise malformed `START CODER VSCODE` / `END CODER VSCODE`
blocks in `${HOME}/.ssh/config` will now result in an error when attempting to
update the file. These will need to be manually fixed before proceeding.
- Multiple open instances of the extension could potentially clobber writes to
`~/.ssh/config`. Updates to this file are now atomic.
- Add support for `anysphere.remote-ssh` Remote SSH extension.

## [v1.9.0](https://github.com/coder/vscode-coder/releases/tag/v1.9.0) 2025-05-15

### Fixed

- The connection indicator will now show for VS Code on Windows, Windsurf, and
when using the `jeanp413.open-remote-ssh` extension.

### Changed

- The connection indicator now shows if connecting through Coder Desktop.

## [v1.8.0](https://github.com/coder/vscode-coder/releases/tag/v1.8.0) (2025-04-22)

### Added

- Coder extension sidebar now displays available app statuses, and let's
the user click them to drop into a session with a running AI Agent.

## [v1.7.1](https://github.com/coder/vscode-coder/releases/tag/v1.7.1) (2025-04-14)

### Fixed

- Fix bug where we were leaking SSE connections

## [v1.7.0](https://github.com/coder/vscode-coder/releases/tag/v1.7.0) (2025-04-03)

### Added

- Add new `/openDevContainer` path, similar to the `/open` path, except this
allows connecting to a dev container inside a workspace. For now, the dev
container must already be running for this to work.

### Fixed

- When not using token authentication, avoid setting `undefined` for the token
header, as Node will throw an error when headers are undefined. Now, we will
not set any header at all.

## [v1.6.0](https://github.com/coder/vscode-coder/releases/tag/v1.6.0) (2025-04-01)

### Added

- Add support for Coder inbox.

## [v1.5.0](https://github.com/coder/vscode-coder/releases/tag/v1.5.0) (2025-03-20)

### Fixed
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Coder Remote

[![Visual Studio Marketplace](https://vsmarketplacebadges.dev/version/coder.coder-remote.svg)](https://marketplace.visualstudio.com/items?itemName=coder.coder-remote)
[![Open VSX Version](https://img.shields.io/open-vsx/v/coder/coder-remote)](https://open-vsx.org/extension/coder/coder-remote)
[!["Join us on
Discord"](https://badgen.net/discord/online-members/coder)](https://coder.com/chat?utm_source=github.com/coder/vscode-coder&utm_medium=github&utm_campaign=readme.md)

@@ -13,11 +14,11 @@ workspaces with a single click.
- Works in air-gapped or restricted networks. Just connect to your Coder
deployment!
- Supports multiple editors: VS Code, Cursor, and Windsurf.
> [!NOTE]
> The extension builds on VSCode provided implementations of SSH. Make sure
> you have the correct ssh extension installed for your editor
> (ms-vscode-remote.remote-ssh or codeium.windsurf-remote-openssh for
> windsurf)

> [!NOTE]
> The extension builds on VS Code-provided implementations of SSH. Make
> sure you have the correct SSH extension installed for your editor
> (`ms-vscode-remote.remote-ssh` or `codeium.windsurf-remote-openssh` for Windsurf).
![Demo](https://github.com/coder/vscode-coder/raw/main/demo.gif?raw=true)

@@ -26,19 +27,18 @@ workspaces with a single click.
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press
enter.

```text
```shell
ext install coder.coder-remote
```

Alternatively, manually install the VSIX from the
[latest release](https://github.com/coder/vscode-coder/releases/latest).

#### Variables Reference
### Variables Reference

Coder uses
${userHome} from VS Code's
Coder uses `${userHome}` from VS Code's
[variables reference](https://code.visualstudio.com/docs/editor/variables-reference).
Use this when formatting paths in the Coder extension settings rather than ~ or
$HOME.
Use this when formatting paths in the Coder extension settings rather than `~`
or `$HOME`.

Example: ${userHome}/foo/bar.baz
Loading