It has been broken for a long time (No available formula with the name
"code-server") but it looks like they have their own bot publishing
updates anyway.
Mostly because express-serve-static-core is an implicit dependency. We
could make it explicit, but the type we imported from it is just an
alias for qs.ParsedQs anyway.
It seems Chromium cannot use maskable icons. It complains that the
"purpose" must contain "any", however maskable icons are not suitable
for the "any" purpose.
So, add pre-masked icons to be used for the "any" purpose.
It can be set either:
1. In the product.json (normally the product.json is embedded during the
build and not read at run-time).
2. With the --link-protection-trusted-domains flag.
We are getting an issue importing __future__ from annotations in one
case and "invalid syntax" in another with `if CC :=`.
There does not seem to be a reason to maintain a separate step for the
amd64 build since the glibc version is the same.
We are trying to update Express to fix a vulnerability.
We would have to update the plugins as well, but since we are no longer
using the plugin system, we can just delete it instead.
* Update Code to 1.98.0
* Avoid sudo when launching caddy
It is erroring about needing a password, but also do we even need to run
this as root considering we are not binding to privileged ports?
---------
Co-authored-by: Asher <ash@coder.com>
* Update Code to 1.97.0
* Update flake
This is to get a newer version of Node since we need > 20.18.1.
* Hijack new base path var
* Update test path matchers
While trying to set up code-server on Alpine, I ran into build errors. To solve them, I had to add Kerberos development libs. Also, it looks like npm config doesn't work in recent version of Node and doesn't seem to be necessary. These instructions were tested in the Docker `node:20-alpine` image.
server-main.js runs itself outside a code-server context, which is
determined using the CODE_SERVER_PARENT_PID environment variable. This
is set by the wrapper, but there is no wrapper when running the
cli (only for the server), so this resulting in the cli running
twice (one self-run on initial import, again when we run spawnCli).
This might fix https://github.com/coder/code-server/issues/7042
* Update Code to 1.95.1
* Update Node to 20.18.0
* Update build.yaml to use Ubuntu 22.04
This is to resolve a gcc error. Might have to address
the release step later as well.
* Fix --stdin-to-clipboard
With the switch to esm, the fs require is failing. fs is already
imported, so we can just use it anyway.
* Fix mangled exports
* Update CSP hashes
* Update Code to 1.94.2
* Convert from yarn to npm
This is to match VS Code. We were already partially using npm for the
releases so this is some nice alignment.
* Update caniuse-lite
This was complaining on every unit test.
* Update eslint
I was having a bunch of dependency conflicts and eslint seemed to be the
culprit so I just removed it and set it up again, since it seems things
have changed quite a bit.
* Update test dependencies
I was getting oom when running the unit tests...updating seems to work.
* Remove package.json `scripts` property in release
The new pre-install script was being included, which is dev-only.
This was always the intent; did not realize jq's merge was recursive.
* Remove jest and devDependencies in release as well
* Update test extension dependencies
This appears to be conflicting with the root dependencies.
* Fix playwright exec
npm does not let you run binaries like yarn does, as far as I know.
* Fix import of server-main.js
* Fix several tests by waiting for selectors
This reverts commit 1abb2ee567d8081d9e8935e1193b2e31f0d8e834.
Trying to see if this fixes the release making separate drafts instead
of a single draft.
* Update VS Code to 1.92.2
* Use server-main.js to load VS Code
It looks like the bootstrap files are now bundled so we can no longer
require them. We could make them included again, but maybe it is better
to go through the main entrypoint anyway because it includes some nls
stuff which is maybe necessary.
This also fixes what looks like a bug where we could create two servers
if two requests came in. I am not sure what the practical consequences
of that would be, but it will no longer do that.
* Drop es2020 patch
Unfortunately, VS Code will not load with this. It seems to be because
`this` is being used in static properties, and it becomes `void 0` for
some reason under the es2020 target. For example:
static PREFIX_BY_CATEGORY = `${this.PREFIX}${this.SCOPE_PREFIX}`;
becomes
AbstractGotoSymbolQuickAccessProvider.PREFIX_BY_CATEGORY = `${(void 0).PREFIX}${(void 0).SCOPE_PREFIX}`;
Which, obviously, will not work.
Older versions of Safari (and maybe other browsers) are likely affected.
* Fix display language
* Update Playwright
I think maybe because of the dropped es2020 patch that Webkit is now
failing because it is too old.
* Do not wait for networkidle in e2e tests
I am not sure what is going on but some tests on Webkit are timing out
and it seems the page is loaded but something is still trying to
download. Not good, but for now try to at least get the tests passing.
- We have a labeling bot that is marking issues as upstream (so far
correctly) now Ranger is closing them right away and it felt too
aggressive to me.
- It keeps posting its comment twice. Not sure how to fix that.
There is a `yarn ci` script which was using audit-ci but this does not
appear to be called anywhere.
The security worflow uses `yarn audit` and `npm audit` which seem fine
enough anyway.
It is not working. I test this manually anyway so for now just remove
the test, but I think maybe we have to watch for code-server to extract
the language files, and then reload the page, or maybe we have to
install the language from the UI.
Ideally we can drop our patch in the future anyway...
The first argument is a file name, not a path. When the log gets
rotated it prepends the date which ends up creating a path in the
current working directory.
Might make sense to cache the rest as well, and evict from the cache
periodically. For now this is enough to fix a hang I often see in our
deployment of Coder. Might only be surfacing now because new telemetry
calls were added to startup.
Additionally:
- Update Node to 20.11.1
- Update documentation
- Disable extension signature verification
This works around an issue where the Open VSX is not returning the
expected zip. Verification is skipped later anyway because
@vscode/vsce-sign is missing in the OSS version.
It seems that * matches a literal * now, so we have to use a regular
expression.
Parentheses around a parameter no longer works (it causes it to match on
the parameter name literally) and I am not sure why we had it anyway as
it had no effect previously.
Matching with a leading / does not appear to work either, but we do not
need the leading / anyway since the proxy logic was changed to use the
whole path. Consequently it will never be / anymore from what I can
tell but I left that check in just in case. I turned it into a named
parameter as well, because that seems better.
- Remove the redundant title prefix.
- Remove outdated assignees.
- Improve reproduction step description (trying to get folks to submit
more specific/detailed reproductions).
- Render logs with shell (not sure if this actually changes anything).
- Use dropdowns for testing in VS Code and Codespaces. I think the
existing checkboxes are still confusing so hopefully this sorts it.
These checkboxes keep getting checked despite the submitter using an
insecure context or not having tested upstream. I think two things are
at play here:
1. Folks might be interpreting "cannot reproduce" as "did not
reproduce" or "did not have time to reproduce".
2. The checkboxes are required to submit the issue so folks might be
marking them just so they can get their issue submitted; maybe they
are not even reading the checkboxes and are just seeing the error
that they need to be marked and blindly marking them because while
in some cases folks will add "I had to check this but it is not
true", usually they say nothing.
In any case, hopefully these changes make the checkboxes more accurate,
and then if they are unchecked we can ask them to go reproduce in VS
Code or use a secure context or whatever the case may be.
This is just a guard in case there are paths where the workspace is
already marked as initialized but the workspace configuration is not and
we end up actually un-initializing it.
And fix the workspace bug. It is caused by an issue with how some
global variables are being used asynchronously and is exacerbated by the
delay reading settings from the remote introduces.
1. The workspace is created and is marked as not initialized.
2. The configuration's change handler is triggered, and now
initialization is complete.
3. The handler tries to set the global workspace variable to initialized
but the workspace has not been set yet so we get an undefined error.
4. The workspace global is now set, but it is set to the old value with
initialized still set to false.
5. Workspace is never marked as initialized until something else
triggers the on change handler again.
Fixes#3061, and closes#6546.
My guess is this logic changed in one of the VS Code updates,
introducing this async bug but never getting caught probably because for
them the settings are always local thus minimal delay.
The main goal of this patch was to make user settings stored on disk
instead of in the browser, but this stopped working some time ago. Not
only that but it is causing a bug where a workspace will not fully open.
A secondary goal was to fix the Vim extension but the extension appears
to work just fine without this change now (both the server and browser
versions).
This patch is not useful anymore anyway because there are remote-level
settings that *do* get stored on disk and can be used instead of
user-level settings when necessary.
Fixes#3061, and possibly #6153.
This should make it much easier to update. Also use 18.15.0
specifically since that is what VS Code ships with.
Additionally, it fixes the post-install script being skipped due to
a Yarn v1 bug that happens when Yarn installs node-gyp, which
it does because 18.18 onward stopped bundling node-gyp.
* Update Code to 1.83.1
* Patch out lookbehind for Safari support
Not sure why it needs a lookbehind unless a number followed by a capital
letter is not supposed to be considered a new word, which seems wrong to
me. The tests do not contain any numbers so I can only guess.
---------
Co-authored-by: Asher <ash@coder.com>
Since the release of code-server v4.17.0 (Code 1.82), "Command Center" has become a default option. However, the current code-server PWA app lacks support for the Windows control overlay, resulting in an untidy appearance of the title bar. This commit introduces modifications to the manifest file to enable support for the window control overlay.
Also remove github.com from the trusted domains. This causes the
browser to block the popup instead (probably because the space between
interaction and popup is too great), which is difficult to notice in
Chromium. Even in Firefox with the extra bar they add at the top it can
be easy to miss.
* Fix building from source on arm
Not building from source causes argon2 to pull the wrong arch, so we
have to build from source.
But building from source is causing the new Kerberos module to fail on
arm64 and keytar to fail on both.
The latter has been very difficult to debug because the GitHub image
provides a different result to containers based on Ubuntu 20.04.
Because of this, use a container instead.
Use debian:buster as the container because it is easier to set up the
architecture sources (no need to modify the sources) and because it
seems to come with glibc 2.28 rather than 2.31.
Also use the exact version of Node (18.15.0) for reproducibility.
* Set owner and group during tar to zero
Otherwise you get IDs that can cause (benign) errors while extracting,
which might be confusing. At the very least, I did not see these errors
from previous tars (although they seem to use 1001).
There is no guarantee what IDs might exist so 0 seems the most
reasonable.
The comment said the issue with argon2 was related to CentOS 7 but the
cross-compile steps never used CentOS 7 so maybe the real issue is with
the architecture.
* Avoid packaging yarn.lock
Since the shrinkwrap is what we want everything to use.
* Build with npm
It seems we stuck with yarn because npm was giving us errors but I will try
sorting it out now so we can build with npm as originally intended.
* Remove build from source
Not using CentOS 7 anymore so based on the comment we no longer need
this. Keytar seems to install fine now.
* Update missed Node version
These numbers are all over the place.
* npm_config_arch must be lowercase
* Patch out Kerberos
I am not sure exactly how it is used but I think it is not a path code-server
worries about, at least not right now. Just going to patch it out rather than
figure out how to build it on armv7l but we can revisit later.
* Update dependencies and force-update qs
This is mainly an attempt to get rid of as many resolutions as possible
since it seems they are unnecessary except for qs (according to yarn/npm
audit).
For qs use 6.9.7 since Express is using 6.9.6 and that matches the most
closely.
Also add overrides since this is npm's version of yarn's resolutions and
we need it for the shrinkwrap to generate with the right dependencies.
Decided to keep pinning @types/node as well although I am not sure it is
necessary. Express is pulling in v20 types. Since this is
development-only we only need it in resolutions.
* Run formatter
Some rules seem to have changed with the dependency updates.
* Replace deprecated bodyParser.json() usage
* Audit npm shrinkwrap as well
* Skip installing dependencies in audit
It seems the tools only require the lock files.
* Fix tests when using ipv6
* Add missing openssl dependency to flake
At least, for the standalone and for anyone running on default Node 18.
If support for 2.17 is needed then one would need to build Node 18 with 2.17 and then build code-server with that version (specifically, the native npm modules).
* Update VS Code to 1.82.2
* Add new libkrb5 dependency
* Update patches
The only changes were to context except:
- The URL callback provider uses a new _callbackRoute argument and moved
locations.
- The telemetry provider gets passed the request service as the first
argument now.
- CSP hash changed, as usual.
* Update Node to v18
* Revert back to es2020
es2022 is breaking Safari.
The tilde is ambiguous and it can be helpful to know exactly what paths
code-server is trying to use, especially if it is running as a different
user than you expected.
Added a guide on proxying to a Svelte app since there wasn't one already. Used the vue and angular guides as a template and included a link to an issue post on sveltekits website which adds some context.
* Avoid spawning code-server with --reuse-window and --new-window
These flags mean the user explicitly wants to open in an existing
instance so if the socket is down it should error rather than try to
spawn code-server normally.
* Set session socket into environment variable
While I was at it I added a CLI flag to override the default. I also
swapped the default to --user-data-dir.
The value is set on an environment variable so it can be used by the
extension host similar to VSCODE_IPC_HOOK_CLI.
* Add e2e test for opening files externally
The indented logs technically apply to the HTTP server so move the
session server log afterward to avoid making them look like they apply
to the session server.
Mostly just the usual shifting or changing of the surrounding context
but I did refactor the getting started block we insert because it keeps
getting mangled on each update. Instead of shifting things around the
columns I just prepend it to the right column.
Getting 404s on some vsda module but everything seems to work
without it and I do not see it referenced in the package.json nor a
nywhere on npmjs.com so it seems to be optional.
This is not a valid ID (to install a specific version you use @) and,
quite strangely, Code is now returning an "extension not found" error if
the ID is invalid, breaking the test since we expect it to error about
the marketplace not existing.
* Update to 1.78.1
No changes needed in the patches other than moving some lines around and
updating the CSP hash as usual.
The flake had to be updated as it was using Node 16.16 and 16.17 is
required at minimum now. Also python seems to install python2 which is
marked as deprecated so explicitly install python3.
* Update to 1.78.2
Patches applied without any conflicts.
* Update commit environment variable
This was causing the commit not to be set. It broke display languages
since that has a hard dependency on the commit for directory names.
Possibly broke other things.
Extracted host detection into a separate function to avoid multiple log
lines on each return and went with a thrown error to consolidate the
common log text.
* Update Code to 1.76.1
- worker-src already contains blob so we can avoid patching that.
- localeService moved.
- Remaining changes were just line changes.
* Make language extensions installable again
Still might want to look into making the native language support work
but for now it seems better not to break backwards compatibility since
the native implementation is quite different.
* Avoid "install in browser" for language packs
It will not work.
* Import correct locale service
I believe before the contributions imported this but now we have to do
it here.
Looks like the images got updated to v18 so they started failing. For
npm install v16 and for Docker just run the script directly, it seems
silly to waste time installing v16 just to run a script through yarn.
* Move splitOnFirstEquals to util
I will be making use of this to parse the forwarded header.
* Type splitOnFirstEquals with two items
Also add some test cases.
* Check origin header on web sockets
* Update changelog with origin check
* Fix web sockets not closing with error code
- Move differences to the Codespaces section since they apply to both
Codespaces and OpenVSCode-Server
- Add some important missing differences
- Exclude settings sync (not being worked on)
- Exclude the plugin API (deprecated)
- Exclude certificate support (browsers these days are starting to
require trusted certs so better not to recommend using this)
This does not seem to actually cause an issue (not resolving ends up
with the same behavior as resolving with false) but I am not sure if the
hanging promises would be a memory leak so seems best to fix.
* Update Code to 1.75.0
- getting-started.diff: The way to get an icon's class changed
- proxy-uri.diff: The product service is passed in so we can get the
proxy URI from that now instead of passing it in separately.
* Remove workspace trust test
Something in how/when Code displays the trust dialog appears to have
changed, failing the test. I am not sure it makes sense for us to be
testing upstream code anyway.
* Use regular Node for watch
Since we spawn the watch script with ts-node it was using ts-node for
the web server spawn as well. With latest Code there are for some
reason type errors (it cannot find @types/node) but this is already
compiled code which already passed type checks; any type errors here are
useless. To fix spawn with regular Node.
* Fix some workers not loading
This is failing CI on Dependabot PRs. Opted to just remove it since
most (all?) PRs will be from forks and this workflow will not run
anyway. If we figure out the secret situation we can add it back.
It is causing CI to fail for Dependabot (no access to the token) and it
does not work with forks and currently there is no one who pushes
straight to the repo so this will never be used.
Can always add it back if we figure out how to make the secrets work.
* docs: add difference between Coder
Add a short block explaining the difference between code-server and
Coder.
* docs: add new doc coder.md under Install
This adds a new doc explaining how to install code-server in a Coder
workspace using Terraform.
* feat: add i18n in login page
* fix: add word space and put the app name into the title
* fix: remove duplicate replace title
* fix: prettier format code
* fix: fix typescript check warning
* fix: add zh-cn locale file code owner
* fix: use existing flag locale to the login page
Co-authored-by: Joe Previte <jjprevite@gmail.com>
* feat(ci): add lint-actions step to build.yaml
This adds a new job to the Build CI pipeline to lint our GitHub Actions.
By doing this, we can prevent typos from slipping in.
Fixes#5776
* fix: disable shellcheck in actionlint
I don't think we want to enable this for now.
* fix: ignore set-output warnings for now
It's deprecated but there isn't a reason to move away from using it yet.
* chore: update renovate.json ignoreDeps
ansi-regex, env-paths and limiter all switch to ESM which we can't
support at the moment so ignore updates for now.
* chore: update actions/cache@v3
* chore: update minor deps
* chore: add pretteir to renovate.json
* chore: upgrade Code to 1.74.1
* chore: remove require in integration.diff
I don't know what the impact of this is but in 192c67db71
they removed the usage of `require` in `server.main.ts`.
More details in PR: https://github.com/microsoft/vscode/pull/165831
* chore: update marketplace.diff
* chore: update sha hash in webview.diff
* chore: update disable-builtin-ext-update.diff
If my logic is right, then this patch is now simplified thanks to this:
https://github.com/microsoft/vscode/blob/1.74.1/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts#L1238
* chore: refresh proxy-uri patch
* chore: refresh local-storage.diff
* chore: refresh sourcemaps.diff
* chore: refresh disable-downloads.diff
* chore: refresh display-language.diff
* chore: refresh getting-started.diff
* docs: update testing notes for cli-window-open
* docs: update telemetry testing instructions
* fix: add GITHUB_TOKEN to build code-server job
Downloading @vscode/ripgrep is failing only in CI so adding this
environment variable to see if it increases the rate limit.
Ref: https://github.com/microsoft/vscode-ripgrep#github-api-limit-note
* refactor: use own cache key build code-server job
* temp: disable vscode test
* refactor: delete wrapper test
* Revert "refactor: delete wrapper test"
This reverts commit 3999279b73c3519c7dbb03dfc7076bf26f717e13.
* refactor: move vscode tests to e2e (#5911)
* wip: migrate vscode tests to e2e
* feat: add codeWorkspace to global setup
* refactor: only use dir in spawn when we should
* wip: migrate more tests
* refactor: move all vscode tests to e2e
* refactor(ci): move unit to own job
* fixup: add codecov to unit test step
* Update test/e2e/models/CodeServer.ts
* Update test/e2e/models/CodeServer.ts
* docs: add note about intercept requests
* refactor: rm unused clean() calls
* refactor: delete duplicate test
* refactor: update 'should not redirect' test
* refactor: rm unused imports
* refactor: rm unnecessary navigate call in test
* fixup: formatting
* wip: update test
* refactor: modify assertion for proxy
* fixup: use REVERSE_PROXY_BASE_PATH
* refactor: add helper fn getMaybeProxiedPathname
* fixup: formatting
* fixup: rm unused import
* chore: increase playwright timeout
* Revert "chore: increase playwright timeout"
This reverts commit a059129252216c5f5cba83e9bca3d90cf658b7be.
* chore: rm timeout
* refactor: remove keytar dep in cross-compile
* refactor: try other keytar package
* refactor: remove keytar step in cross-compile
* fix: manually remove keytar
* try this first
* I think this is it
* Revert "I think this is it"
This reverts commit 5c566b0c0126da1d3baa2f3c69e26fe1cc63fe93.
* okay this is it
* fixup
* try legacy peer
* remove keytar before standalone
* wrong path
* maybe
* revert: change *npm* back to npm*
* revert: don't uninstall keytar
* fix: use npm run standalone-release
* fixup formatting
* Revert "refactor: remove yarn.lock steps (#5850)"
This reverts commit 907747d3949301d8836e71938940f6275b016062.
* fixup: remove the --exclude
* refactor: remove yarn.lock check
* try ddd in postinstall
* refactor: cache before release:standalone
* refactor: add os to cache key in release
* chore: formatting
* Update ci/build/npm-postinstall.sh
* fixup: formatting
* refactor: remove keytar dep in cross-compile
* refactor: try other keytar package
* refactor: remove keytar step in cross-compile
* fix: manually remove keytar
* try this first
* I think this is it
* Revert "I think this is it"
This reverts commit 5c566b0c0126da1d3baa2f3c69e26fe1cc63fe93.
* okay this is it
* fixup
* try legacy peer
* remove keytar before standalone
* wrong path
* maybe
* revert: change *npm* back to npm*
* revert: don't uninstall keytar
* fix: use npm run standalone-release
* fixup formatting
* Revert "refactor: remove yarn.lock steps (#5850)"
This reverts commit 907747d3949301d8836e71938940f6275b016062.
* fixup: remove the --exclude
* refactor: remove yarn.lock check
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
When I did the last release, `VERSION` wasn't defined which lead to a
blank string in the PR title and the commit message here:
https://github.com/coder/code-server-aur/pull/24
This should fix that.
* refactor: default to npm in postinstall.sh
yarn has a bug where it will try to update dependencies even if
`yarn.lock` is present. Therefore we're defaulting to `npm` to prevent
further issues.
* refactor: exclude yarn.lock in standalone
By excluding `yarn.lock`, we prevent issues where the user must use
`yarn` instead of `npm` to install code-server.
* wip: changelog
* fixup
* fix: add +x to product.json in build-vscode
While testing a pre-release, there seems to be a bug with the file
permissions for `product.json`. Adding `chmod +x` to see if that fixes
it.
* chore: increase timeout
* fix: keep product.json file permissions in release
When we added the change to modify the `package.json` version using `mv`
and `jq` we didn't account for lost file permissions.
This caused a bug only happening in CI.
This should fix it by giving it 755 via `chmod`.
* trigger ci
* chore: update package.json bust cache
* fixup!: fix: keep product.json file permissions in release
* Revert "fix: add +x to product.json in build-vscode"
This reverts commit fc4d2b532f41277d6b93243cd6bd2ba2434f80d6.
* chore: pin ubuntu runner in build code-server
* chore: update prettierignore
* chore: add notes to changelog
* chore: use ubuntu-22.04 for e2e
* chore: pin all jobs in build to ubuntu 20.04
* feat(wrapper): add tests for isChild
* fixup: include description ts-expect-error comment
* chore: update CHANGELOG
* chore: update Helm chart
* fixup: use our childProcess
* Update CHANGELOG.md
Co-authored-by: Asher <ash@coder.com>
Co-authored-by: Asher <ash@coder.com>
This adds documentation for the flag `--edge` which we've had for a
while but forgot to document.
Fixes#5717
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
* chore: upgrade Code to 1.73.0
This upgrades Code to 1.73.0 via the tag.
* chore: refresh integration patch
* chore: clean up base-path patch
Only change here was they moved
lib/vscode/src/vs/platform/extensionResourceLoader/common/extensionResourceLoader.ts
so I had to update it. Code still looks the same though.
* chore: refresh proposed-api patch
* chore: update marketplace patch
Simlar to a previous patch, the location of
lib/vscode/src/vs/platform/extensionResourceLoader/common/extensionResourceLoader.ts
changed so I had to update this patch.
No changes to code itself.
* chore: update hash in webview patch
I believe there was only one to update but I may have missed one.
* chore: refresh disable-builtin-ext-update.diff
* chore: refresh update-check
quilt couldn't apply it so I had to add one change in manually to
lib/vscode/src/vs/server/node/serverEnvironmentService.ts
* chore: refresh logout patch
* chore: refresh proxy-uri patch
* chore: refresh local-storage patch
* chore: refresh sourcemaps patch
* chore: refresh disable-downloads patch
* chore: refresh telemetry patch
* refactor: re-apply display-language patch
This kinda got removed but I added it back in.
* refactor: drop exec-argv patch
This was accepted upstream! :tada
* chore: refresh getting-started patch
* fixup: add missing slash in marketplace
* fixup: update notes proposed-api patch
* fixup: support this.args.log as string
Seems like upstream now uses a string[] for this. For now, support
string.
See
2b50ab06b1
* Revert "fixup: support this.args.log as string"
This reverts commit 78c02a1f137655e27f3137e1d07a274e482baf6b.
* fixup!: add log to toCodeArgs
This was changed upstream from `string` to `string[]` so now we convert
to an array in `toCodeArgs`.
See 78c02a1f13
* fixup: update telemetry description
* refactor: get version dynamically
* chore: remove version
* fixup: missing quotes
* refactor: drop global VERSION
* wip: updating ersion in publish
* refactor: update publish.yaml with version changes
* refactor: release.yaml with new version changes
* refactor: update build.yaml with version changes
* chore: update maintainer
* fixup: update version in build-vscode
* fixup: fix github env version
* try macos only
* try again
* last resort
* joe again
* this oneee
* fixup: this should work
* try using inputs
* docs: update release notes
* fixup!: use env.VERSION in docker step
* fixup!: comment get and set version
* fixup!: remove compress release package comment
* fixup!: use $VERSION in npm-version
* refactor: set VERSION in build VS Code step
* refactor: use 0.0.0 in package.json version
* refactor: delete release-prep script
* Update ci/build/build-vscode.sh
* fixup!: remove extra VERSION set in aur
* Improve getting started Coder CTA
This wasn't very standout-ish before, and I think it's
wise for us to experiment with directing users to Coder.
* Update nix flake
* Update diff
* Add advert to code-server install
* Fix patch to reset columns if getting started is disabled
* Update text for advert
* chore: bump version to 4.8.2
* chore: update CHANGELOG
* docs: add back line in publishing release
See https://github.com/coder/code-server/pull/5732#discussion_r1010685933
* Revert "chore: bump version to 4.8.2"
This reverts commit 5d70994f22e461602a64f39771b27c78d6c38dcf.
* fixup: use 4.8.2-rc.1
* docs: add release candidate notes
* refactor: warn plugin range incompatibble
* chore: bump version 4.8.2
* fix: use * for test plugin engines
This removes the need to update this version with every version change.
* refactor: use npm-package in release assets
This adds a new job to `release.yaml` to upload the `npm-package` to the
release assets which will also allow us to download it in the
`publish.yaml` workflow.
* docs: update release instructions
* fixup!: use package.tar.gz
* fix: use * for test plugin engines
This removes the need to update this version with every version change.
* refactor: use npm-package in release assets
This adds a new job to `release.yaml` to upload the `npm-package` to the
release assets which will also allow us to download it in the
`publish.yaml` workflow.
* docs: update release instructions
* feat: add getting-started patch
This modifies the text on the Getting Started page to promote
coder/coder.
* feat: add --disable-getting-started-override
This adds a new CLI flag to code-server called
`--disable-getting-started` which will be used in Code to not use
Coder's custom Getting Started text.
* refactor: conditionally show coder getting started
This modifies the getting started patch changes to work with the new
`--disable-getting-started-override`.
The flag is false by default meaning the Coder getting started is shown.
By passing the flag to code-server, it will not be shown.
* docs: update faq for getting started override
* docs: update getting-started patch description
* fixup!: update patch
* fixup!: unit test
* feat: add more tests
* fixup!: use correct env var in tests
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
* fix: update hashes in webview patch
We missed a hash update and also had the wrong hash for another HTML
file which caused issues in 4.8.0.
* refactor: move parent-origin into webview
Not sure why but we were seeing argon2/node-gyp issues after this
upgrade while running `yarn release:standalone`. For now, downgrading to
0.29.0 seems to fix the issue when testing locally.
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
* feat: enable ports panel in proxy-uri patch
This makes the forwarded ports panel enabled by default.
* feat: add tunnelProvider in proxy-uri patch
This adds a `tunnelProvider` along with a `tunnelFactory` so that ports
are forwarded and use code-server's built-in proxy.
* fixup!: update import
* fix: skip uri modification if authority host match
This adds a check in our `resolveExternalUri` patch to skip modifying if
the `authority` and the `location.host` match to prevent
`localhost:<port>/proxy/<port>` from being modified.
* fixup!: refresh patch
* fixup!: move authority check up
* fixup!: remove comment
* fixup!: add trailing slash
* fix: add handle for resolveExternalUri
This adds a fix to properly handle `resolveExternalUri` which is used by
extensions like Tabnine.
* fixup!: update patch
* fixup!: force update proxy patch
* fixup!: use proxyEndpointTemplate else manually add
* fixup!: throw error if productConfiguration missing
* feat(testing): add asExternalUri
This modifies the test extension used in e2e test by registering a new
command for testing `asExternalUri`.
* feat: add e2e test for asExternalUri
* docs: update playwright setup comments
* feat: add support for VSCODE_PROXY_URI
* chore: refresh patches
* feat: add test for VSCODE_PROXY_URI
* chore: add metadata to lang extension
* fixup!: fix part of service-worker patch
* fixup!: remove e2e test, update patch notes
* fixup!: refresh disable-downloads
* fixup!: formatting
* add customization options for the login page
* add unit tests
* add test for correct welcome text when none is set but app-name is
Signed-off-by: niwla23 <46248939+niwla23@users.noreply.github.com>
* add test for no app-name set and check in title too
Signed-off-by: niwla23 <46248939+niwla23@users.noreply.github.com>
Signed-off-by: niwla23 <46248939+niwla23@users.noreply.github.com>
Co-authored-by: Joe Previte <jjprevite@gmail.com>
* docs: add toc to CODE OF CONDUCT
* chore: add prettier ignore blocks to docs
* chore: update styles for Dockerfile
* refactor: separate prettier, doctoc
This does a couple things:
- update `.prettierignore`
- split `prettier` and `doctoc` commands. you can still run with `yarn
fmt`
- delete `fmt.sh` and add `doctoc.sh`
By doing so, we can run tasks in parallel in CI and we should also have
less false positives than before with `yarn fmt` locally.
* refactor: update prettier job, add doctoc
This modifies the prettier job to use actionsx/prettier. It also adds a
job for `doctoc`.
* chore: upgrade to prettier 2.7.1
* chore: pin doctoc to 2.0.0
* fixup!: add .pc to prettierignore
* feat: add --cache to prettier cmd
the link for installing with NPM on line 103 was written as
[installing with npm][./npm.md](./npm.md) `[installing with npm][./npm.md](./npm.md)`
I fixed it to look like
[installing with npm](./npm.md) `[installing with npm](./npm.md)`
In freebsd, su -c expects a login class argument instead of a command, if -c is preceded by a username, then -c and the arguments that follow will be passed as shell arguments
* chore: update code to 1.71.2
* chore: update telemetry patch
It appears part of the fix has been implemented upstream.
* refactor: drop safari-console patch
This has been fixed upstream.
* refactor: remove stylelint
* refactor: move shellcheck to separate job
* refactor: add helm script and job
* refactor: add eslint job and yarn script
* fix(test/tsconfig): exclude test-plugin
* refactor: delete lint, add typecheck job
* refactor: remove prebuild
* wip: add notes about unit test refactor
* refactor: delete buggy socket test
This test was really added to in get cover specific lines but it's buggy
and only passes sometimes locally. I think it's okay to remove because:
- it's an implementation detail (not user facing)
- not preventing any specific regressions
* refactor: move test-plugin to integration suite
This seems more appropriate given this tests how a plugin might work
within code-server.
* wip
* wip: refactor vscode integration tests
* refactor: move unit tests to separate job
* fix: formatting
* Revert "wip: refactor vscode integration tests"
This reverts commit 13286bf4c9762b7d6c6176464d94b1fc316fb568.
* Revert "refactor: move unit tests to separate job"
This reverts commit 6c87b540b49c8d56266c8925c4fd32ed760b23bf.
* feat: collect codecov integration tests
* fixup! feat: collect codecov integration tests
* fixup! feat: collect codecov integration tests
* fixup!: move helm step
* fixup!: update ids for caching
* trigger ci
* trigger ci
* chore: clean up names in security.yaml
* fixup!: remove .tsx
* fixup!: change to src/**"
* fixup!: move helm cmd to yaml
* fixup!: always build test plugin
* fixup!: fix plugin typings
* fixup! add back flakey test
* fixup!: only install helm deps if changes
* fixup!: revert node mod caching
* dont keep, test for asher
* fixup!: add make to centos
* refactor: add test:native
This adds a new script to run native tests (i.e. --help which should run
in ci on all platforms).
* try updating glibc
* try 2.25
* Revert "refactor: move test-plugin to integration suite"
This reverts commit bc02005dc097a10b5216b616ff0bd7a911240748.
I couldn't get past some GLIBC errors in CI so moving back to unit
tests.
* Revert "try updating glibc"
This reverts commit 02ed560f223a8505cb5e6e2014055cb256a407b0.
* fixup!
* asher: again
* try this for ts changes
* fixup
* refactor: scripts.yml -> scripts.yaml
* fixup!: move lint-sh to scripts.yaml
* fixup!: use apk for lint scripts
* fixup! fixup!: use apk for lint scripts
* fixup!: remove typecheck step
* fix: pattern for lint ts files
* test: lint should fail
* fixup! fixup!: use apk for lint scripts
* Revert "test: lint should fail"
This reverts commit 158c64db044c24f2f8ffd082cc769f06876d6957.
* fixup!: skip cancel workflow on forks
Looks like the cancel action workflow can't run on forks due to secrets.
See https://github.com/andymckay/cancel-action/issues/4
* fixup: remove cancel-workflow
* fixup! fixup! fixup!: use apk for lint scripts
* fixup! fixup! fixup!: use apk for lint scripts
* fixup!: fix yarn key
* fixup!: add fetch-depth 0
* docs: update MAINTAINING
* refactor: use branch name in release-prep
This makes a minor improvement to the `release-prep.sh` script to grab
the version to update to from the branch name.
* chore(release): bump version to 4.7.0
* fixup: bump version
* docs: use latest instead of version
* fixup: bump Chart version
* chore: update CHANGELOG
* chore: add license to test package.json
* chore: bump @coder/logging to 3.0.0
* fix: change level to Warn
* chore: update upstream code
* update patches for vs 1.71.0
the cli fix seems to be fixed in upstream, the telemtry patch requires (again) some fixing and adjustments.
* add safari fix.
* increase ci timeout
Co-authored-by: Joe Previte <jjprevite@gmail.com>
* feat(e2e): add language extension to setup
This adds a slimmed-down version of the Spanish Language Pack and also
adds a `languagepacks.json` to the e2e `workspaceDir` which allows use
to run a test suite passing the `--locale es` flags to simulate a
different display language.
* feat: add e2e test for display language patch
This tests loading code-server in Spanish using the `--locale` flag.
* fixup!: use JSON.stringify for readability
* fixup!: add comment about langaugepacks temp fix
* fixup!: slim down translations
* fixup!: slim down package.json for lang. ext
* Use fork instead of spawn
We no longer do in-place updating so no need for the spawn. The
advantage of a fork is that it preserves flags like --prof which you can
use to profile code-server.
Also I am not sure the comment about not being able to reload in place
with fork was even true to begin with.
* Refresh heartbeat patch
Seems to have gotten out of date a little.
* Propagate execArgv to extension host
This will let us profile the extension host.
* chore: clean up logging in npm script
* fix: catch error if npm version missing
npm changed the way the `npm view` command handles missing versions.
Before it exited with a non-error. Now it errors.
Ref: https://github.com/npm/cli/pull/5035
This modifies the script logic to handle those new changes.
This adds a new job called aur which checkouts code-server-aur, updates
the files with the new version then opens a PR into the repo.
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
* Update upstream Code to 1.70
* Update CSP hashes
* Update comment on remote authority
Also remove it from script-src since it is invalid anyway.
* Use absolute path for disable download patch
Just to keep it consistent with the other imports. We initially added
the patch like this so it was not part of the upgrade but might as well
fix it now.
* Fix inability to change language while code-server is running
Co-authored-by: Asher <ash@coder.com>
`proxy` should `await` for result of `authenticated` call otherwise since otherwise it will always appear to be authenticated as the promise is truthy.
Co-authored-by: Asher <ash@coder.com>
Now that we have a test for `--help` which checks to make sure native
modules are working as expected, we don't need the `--install-extension`
test or the `--list-extensions` test.
We can also remove the `.vsix` fixture since we're not using that
either.
* Update Node types to 16
* Update Express core types
Fixes a number of conflicts it has with Node 16.
* Fix websocket router types
It seems req was `any` before so now we have to handle the types. Also
it seems the socket is of type `stream.Duplex`, not `net.Socket`.
The ws types had to be updated to support the new type.
Unfortunately Code still uses the old type so cast for now.
In the web socket router just use a cast for the extra properties we
add. We could add the types to the Express namespace but I am not sure
we really want these commonly accessible so keep with the casts for now.
Likely we should use Express's `locals` or something instead.
* Add missing return
Not sure why it only just now started complaining though.
Co-authored-by: Asher <ash@coder.com>
* refactor: add env arg to runCodeServerCommand
This allows yous to pass environment variables to code-server's helper
when running integration tests.
* feat: add EXTENSIONS_GALLERY integration test
This test ensures EXTENSIONS_GALLERY is read when set and using the
`--install-extension` flag.
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
* docs: update maintaining
* chore(e2e): add maxFailures to playwright
* fix(ci): skip submodule in e2e job
We don't need the submodules for the e2e job. This will speed up the
checkout step.
* feat(ci): add test-e2e-proxy job
This adds a new job to CI to run our tests behind Caddy and simulate
code-server running against a reverse-proxy.
* refactor: make e2e work with reverse proxy
This refactors the e2e test in a couple ways:
- remove setting cookie in localStorage (instead we pass --auth none)
- refactor address() method to account for reverse proxy logic
* Update test/e2e/models/CodeServer.ts
* Update test/playwright.config.ts
* Update test/utils/constants.ts
Co-authored-by: Asher <ash@coder.com>
* Update test/utils/helpers.ts
Co-authored-by: Asher <ash@coder.com>
Co-authored-by: Asher <ash@coder.com>
* Include bin scripts for all platforms
These will get symlinked as part of the postinstall. These scripts
provide everything ours does inside the integrated terminal plus more.
* Improve OS detection
Specifically for Windows although we do not yet support Windows.
Also standardize the duplicate arch functions since they had drifted
from each other bit.
* Remove duplicate asar symlink
Since standalone releases run the postinstall they will get the asar
symlink there. That means the symlink will not exist for the npm
package and we will not need to ignore it.
The symlink portion is split out so it can be re-used for other
symlinks (for example linking bin scripts).
* Add symlinks to bin scripts
* Add test for opening a file from the terminal
* Add global Playwright timeout
Otherwise it will exceed the Actions timeout and get rudely killed
without any output.
* Make sed work on macOS
* Fix Node path in bin scripts
* Disable shellcheck expansion error
* Make scripts executable
* Remove .bak files created by sed
* Include Code build script in cache hash
Otherwise if we change the script it will not rebuild Code.
* Make sure the terminal opens
The selector was timing out even though it matched more than one element
but matching on the focused one appears to work.
In addition add a loop so it can keep trying to open the terminal
if something goes wrong with the focus.
* chore(release): bump version to 4.5.1
* chore: bump helm chart
* chore: update CHANGELOG
* Revert "chore: bump helm chart"
This reverts commit 703b03b665bddc252d80ae674eb92e1bfbdec6ad.
* chore: bump helm chart to 3.0.0
* revert: remove bad change to manifes.json icon
* fix(ci): add package.json.version to code cachekey
Before this, creating a release sometimes prevented vscode from
rebuilding and using the cache instead. Now we use the
package.json.version in the cache key to "bust" the cache if the
package.json version is updated (aka a release).
Fixes#5316
* Update .github/workflows/ci.yaml
Co-authored-by: Asher <ash@coder.com>
* fixup: formatting
* Revert "refactor: remove version check e2e test"
This reverts commit b23c398b7d725e46b4b7a0bbc900aebc6bd277f3.
Co-authored-by: Asher <ash@coder.com>
Having NODE_OPTIONS set is unexpected and although the later flag should
override the previous flag it is not certain that will always be the
case.
Also some users are having issues with the 2 GB limit.
We were using an overrides command in our `.prettierrc.yaml` which
quickly became out of sync with Code's Prettier styles.
Instead, we simply tell Prettier to ignore `lib/vscode`.
This way, if you have `formatOnSave` on and you save inside
`lib/vscode`, you won't convert the file to use code-server's styles.
When using `window.location.origin` to create a new URL for loading
web packages, it constructs a URL that is not relative, leading to the
terminal breaking when code-server is served not via the root (i.e. /ide
instead of /).
* chore(release): bump version to 4.5.0
* chore: update CHANGELOG
* chore: bump chart version
* docs: update MAINTAINING
* fix: add VSCODE_DEV=1 to e2e script
I'm not sure what changed in the latest version but without setting
VSCODE_DEV=1, code-server won't load. This fixes that.
* Revert "fix: add VSCODE_DEV=1 to e2e script"
This reverts commit 58c4826af82c12d3bc79340945204e6b7dc8cf04.
* fix: try setting VSCODE_DEV=1
* Revert "fix: try setting VSCODE_DEV=1"
This reverts commit 902f5f2f30d2e43a7c3b95decc85f82e98814145.
* refactor: remove version check e2e test
I am not sure why this is passing locally and failing CI. I need to
further investigate this since it fails depending on where you test.
* refactor: switch to codecov-uploader GitHub Action
codecov deprecated their Node wrapper for uploading coverage reports.
This removes that and uses their new uploaded along with the v2 GitHub
Action they maintain.
* fix: update broken integration test
* feat: add installExtension integration test
This adds a new helper function called `runCodeServerCommand` along with
a test for `--install-extension`. We can use this approach for writing
integration tests (i.e. testing a real code-server build, CLI commands,
etc).
* refactor: s/ test:standalone with test:integration
This replaces our integration approach to use Jest instead of a single
bash script. By doing this, we will be able to easily maintain and add
to our integration test suite.
* refactor: filter unit tests
Now that our integration tests also use Jest, we need to update our unit
test script to ignore `test/integration`.
* refactor: add SKIP_SUBMODULE_DEPS to postinstall
* refactor: add SKIP_SUBMODULE_DEPS to postinstall
* fixup!: skip submod deps
* refactor: move runCodeServerCommand into sep. file
When Jest runs a test, it loads all the files and imports for that test.
This means you might be "requiring" code that's unrelated to your tests.
This leads to unexpected errors depending on where the code runs.
Moved this file to avoid GLIBC and other errors relaed to argon2 when
running integration tests in CI.
* fizup: formatting
* fizup: increase timeout
* refactor: use fixture in installExtension test
Instead of relying on a network to install an extension, we use a
fixture - vsix file in the repo. This is also faster.
* feat: add integration test for listExtensions
* chore: ignore integration fixtures
* fixup: formatting
* fixup: remove custom-hacks.css
* fixup: formatting
* Update test/integration/installExtension.test.ts
Co-authored-by: Asher <ash@coder.com>
* Update test/integration/listExtensions.test.ts
Co-authored-by: Asher <ash@coder.com>
* Update test/integration/installExtension.test.ts
Co-authored-by: Asher <ash@coder.com>
* Update test/integration/listExtensions.test.ts
Co-authored-by: Asher <ash@coder.com>
* fixup: contributing integration tests section
* fixup: update ci/readme
* fixup: use RELEASE_PATH in test-integration.sh
* refactor: unzip vsix for listExtensions
* refactor: use exec instead of spawn
* Update docs/CONTRIBUTING.md
Co-authored-by: Asher <ash@coder.com>
* Update test/integration/listExtensions.test.ts
Co-authored-by: Asher <ash@coder.com>
* Update test/integration/listExtensions.test.ts
Co-authored-by: Asher <ash@coder.com>
* Update test/integration/listExtensions.test.ts
Co-authored-by: Asher <ash@coder.com>
* refactor: use different default binary path
* fixup!: formatting
Co-authored-by: Asher <ash@coder.com>
* chore: update Code to 1.67
Was able to remove our changes to common/webview.ts since they are
upstream now.
Other than that no serious changes, just context diffs.
* chore: update Code to 1.68
- Upstream moved the web socket endpoint so change the Express route
from / to *. That will let web sockets work at any endpoint.
- Everything in the workbench config is basically the same but
de-indented (upstream extracted it into a separate object which
resulted in a de-indent), the ordering is slightly different, and
instead of vscodeBase we now need vscodeBase + this._staticRoute since
everything is served from a sub-path now.
- Move manifest link back to the root since that is where we host our
manifest.
- Change RemoteAuthoritiesImpl to use the same path building method as
in other places (+ instead of using URI.parse/join).
- Use existing host/port in RemoteAuthoritiesImpl and
BrowserSocketFactory instead of patching them to use window.location
(these are set from window.location to begin with so it should be the
same result but with less patching).
- Since BrowserSocketFactory includes a sub-path now (endpoints were
changed upstream to serve from /quality/commit instead of from the
root) the patch there has changed to prepend the base to that
path (instead of using the base directly).
- The workbench HTML now natively supports a base URL in the form of
WORKBENCH_WEB_BASE_URL so no need for VS_BASE patches there anymore.
- Upstream added type="image/x-icon" so I did as well.
- Move the language patch to the end of the series so it is easier to
eventually remove.
- Remove the existing NLS config in favor of one that supports
extensions.
- Upstream deleted webview main.js and inlined it into the HTML so move
that code (the parent origin check) into both those HTML files
(index.html and index-no-csp.html).
- The remaining diff is from changes to the surrounding context or a
line was changed slightly by upstream (for example renamed files or
new arguments like to the remote authority resolver).
* fix: modify product.json before building
Code injects this into the client during the build process so it needs
to be updated before we build.
* fix: update inline script nonces
* Update HTML base path test
* fix: missing commit
Code overrides it with nothing.
The date is also already injected.
* fix: web extensions breaking when the commit changes
By just using the marketplace directly instead of going through the
backend. I am not sure what the point is when searching extensions
already goes directly to the marketplace anyway.
But also remove the prefix that breaks this as well because otherwise
existing installations will break.
* refactor: fix type annotations in open
There was no clear reason as to why we needed to use type assertions
when initializing both `args` and `options` in `open` so I refactored
them both.
* refactor: create constructOpenOptions
* refactor: add urlSearch and remove options
* feat: add tests for constructOpenOptions
* fix: install nfpm straight from GitHub
install.goreleaser.com appears to no longer be available.
* Add -f to curl commands
This might have made it so we got the right error rather than erroring
on the envsubst step.
Applies Caddy installations documentation fixes and also resolves the following issue when trying to install Caddy:
W: GPG error: https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ABA1F9B8875A6661
See:
- 930109ec33
- 2e255b1ee3
- 0f4885e592
* feat: set up new test for beat twice
* refactor: make Heart.beat() async
This allows us to properly await heart.beat() in our tests and remove
the HACK I added before.
* refactor: bind heart methods .beat and .alive
This allows the functions to maintain access to the Heart instance (or
`this`) even when they are passed to other functions. We do this because
we pass both `isActive` and `beat` to `heartbeatTimer`.
* feat(heart): add test to ensure no warnings called
* fixup!: revert setTimeout for heartbeatTimer
* fixup!: return promise in beat
* chore: upgrade Code to 1.66
* docs: update docs for Code upgrades
* fixup!: docs
* chore: update vscode submodule
* chore: update integration patch
* chore: update node-version patch
* chore: update github-auth patch
They completely changed how auth is handled for GitHub in
https://github.com/microsoft/vscode/pull/145424 so our patch may not
work. Will need to test and revisit.
* refactor: remove postinstall patch
It appears they renamed postinstall.js to postinstall.mjs and removed
the use of `rimraf` which means our patch is no longer needed! 🎉b0e8554cce
* chore: refresh local-storage patch
* chore: refresh service-worker patch
* chore: bulk refresh patches
* fixup!: docs formatting
* refactor: remove unused last-opened patch
* fixup!: formatting docs
* fixup!: formatting docs
* refactor: remove rsync postinstall
* Revert "refactor: remove rsync postinstall"
This reverts commit 8d6b613e9d779ba18d0297710614516cde108bcf.
* refactor: update postinstall.js to .mjs
* feat(patches): add parent-origin bypass
* docs(patches): add notes for testing store-socket
* docs(patches): update testing info for node-version
* refactor(patches): delete github-auth.diff patch
* docs(patches): add notes for testing connection-type
* fixup!: delete github-auth patch
* fixup!: update connection type testing
* docs(patches): add notes to insecure-notification.diff
* docs(patches): add nots for update-check.diff
* fixup!: remove comma in integration patch
* fix(e2e): disable workspace trust
* refactor: add --no-default-rc for yarn install
* feat(patches): remove yarnrc in presinstall
* fixup!: silly mistake
* docs: add note about KEEP_MODULES=1
* docs(patches): add testing notes for node-version
* refactor(patches): remove node-version
It appears this is no longer needed due to the `remote/package.json` now which
targets node rather than electron.
* fixup!: add cd ../.. to code upgrade instructions
* fixup!: add note to yarn --production flag
* fixup!: make parent-origin easier to upstream
* Revert "refactor(patches): delete github-auth.diff patch"
This reverts commit 31a354a34345309fadc475491b392d7601e51a32.
* Revert "fixup!: delete github-auth patch"
This reverts commit bdeb5212e8c7be6cadd109941b486a4bcdae69fa.
* Merge webview origin patch into webview patch
* Remove unused post-install patch
* Prevent builtin extensions from updating
* Refresh sourcemaps patch
* Update Node to v16
This matches the version in ./lib/vscode/remote/.yarnrc.
I changed the engine to exactly 16 since if you use any different
version it will just not work since the modules will have been built for
16 (due to the .yarnrc).
* Replace fs.rmdir with fs.rm
Node is showing a deprecation warning about it.
* Update github-auth patch
The local credentials provider is no longer used when there is a remote
so this code moved into the backend web credential provider.
* Prevent fs.rm from erroring about non-existent files
We were using fs.rmdir which presumably did not have the same behavior
in v14 (in v16 fs.rmdir also errors).
* Install Python 3 in CentOS CI container
Co-authored-by: Asher <ash@coder.com>
This is because Node uses SIGUSR1 to enable the debug listener so even
if you just want to restart code-server you end up enabling the debug
listener as well.
Opted to leave the SIGUSR1 handler in to avoid breaking existing
workflows even though it does mean even if you only want to enable the
debug listener you will end up restarting code-server as well. We could
consider removing it after a transition phase.
After some feedback, we realized it is more intuitive to disable file
downloads by setting the environment variable
`CS_DISABLE_FILE_DOWNLOADS` to `true` than `1`. This commit adds support
for both.
* refactor: add timeout for race condition in heart test
* fixup!: set mtime to 0 and check for update
* fixup!: use utimes directly instead of file open
* fixup!: remove import
* refactor(heart): extract logic into heartbeatTimer fn
To make it easier to test, I extract heartbeatTimer into it's own
function.
* feat(testing): add tests for heart.ts
* fixup
* fixup!: remove unneeded heart call
* Update src/node/heart.ts
Co-authored-by: Asher <ash@coder.com>
* fixup!: use mockResolvedValue everywhere
* fixup!: add stat test for timestamp check
Co-authored-by: Asher <ash@coder.com>
We tried to switch from `yarn` to `npm` because `yarn` ignores lockfiles
but learned that we missed a few key things.
For now, we are reverting docs and a few other changes that suggested
using `npm` instead of `yarn` until we fully remove `yarn` from the
codebase.
t Please enter the commit message for your changes. Lines starting
* Update termux.md
1) Updated information to use PRoot (simpler than Andronix and the way supported by Termux) to create and access the Debian distro.
2) Added helpful information on using PRoot with your dev environment.
3) Cleaned up spelling, grammar, and made documentation more consistent between sections.
* docs: Termux correct packages to install
Updated some erroneously missing packages (vim and sudo) necessary for multi-user setup.
* docs: cleaned up verbiage
Co-authored-by: Joe Previte <jjprevite@gmail.com>
* docs: corrected punctuation
Co-authored-by: Joe Previte <jjprevite@gmail.com>
* docs: correct punctuation
Co-authored-by: Joe Previte <jjprevite@gmail.com>
* docs: clarify pkg command shorthand
* Ran yarn fmt on docs
Co-authored-by: Joe Previte <jjprevite@gmail.com>
* Link upstream sync section in MAINTAINING to CONTRIBUTING
* Update MAINTAINING.md table of contents
Co-authored-by: Joe Previte <jjprevite@gmail.com>
* Fix code-server version not appearing in other languages
It needs to be separate from the localize call since the language
version of that string is used and it will not include a spot for the
code-server version.
I also moved the "v" so we do not get "vUnknown".
* Add code-server version to product configuration
Before 1.64 the entire product configuration was sent to the client but
that was removed so we have to add anything we want to use on the
client, like the code-server version (used in the about dialog).
Fixes#5027.
* Refresh patches
* Change version test to look for specific version
This will catch if we are not sending the actual version to the client.
* Use --exclude to skip node_modules
Instead of copying and then deleting them. This will also catch some
node_modules directories that were missed.
* Remove per-extension dependency install
Code packages all the dependencies using webpack for each extension so
there are no dependencies to install.
* Include source maps
I also moved this to its own patch because it feels sufficiently
standalone.
Fixes#5026.
* Refresh language patch
The base is slightly different so it needed to be refreshed.
* Add missing package.json
This was caused by switching to Code's package step which does not
include the package.json.
Fixes#5019.
* Include keytar
It seems this actually is used now.
* fix: source lib.sh in docker-buildx-push for tagging version
* chore: use ubuntu and update git config homebrew job
* refactor: simplify brew-bump.sh script
* Revert "fix: source lib.sh in docker-buildx-push for tagging version"
This reverts commit 2f7a3610cb1efa6bca7794d8b265001ea347cccb.
* Regenerate last opened patch
The lines were a bit off.
* Remove packaged .gitignore files
Fixes#4964.
* Remove extra Node binary
This gets overidden in the standalone but it was getting uselessly
included in the npm package.
* Move integration types into code-server
This will be easier to maintain than to have it as a patch.
* Disable connection token
Using a flag means we will not need to patch it out. I think this is
new from 1.64?
* Add product.json to build process
This way we do not have to patch it.
* Ship with remote agent package.json
Instead of the root one. This contains fewer dependencies.
* Let Code handle errors
This way we will not have to patch Code to make this work and I think it
makes sense to let Code handle the request.
If we do want to handle errors we can do it cleanly by patching their
error handler to throw instead.
* Move manifest override into code-server
This way we will not have to patch it.
* Move to patches
- Switch submodule to track upstream
- Add quilt to the process
- Add patches
The node-* ignore was ignoring one of the diffs so I removed it. This
was added when we were curling Node as node-v{version}-darwin-x64 for
the macOS build but this no longer happens (we use the Node action to
install a specific version now so we just use the system-wide Node).
* Use pre-packaged Code
* refactor: checkout homebrew-core in action instead of script
This moves the git clone step from the `brew-bump.sh` script into the
`npm-brew.yaml` as part of the job using actions/checkout instead.
* refactor: clean up brew-bump.sh script
* fixup
* fixup!: remove step to clean up homebrew repo
* fixup!: use correct ./ci path steps-lib.sh
* fixup!: add exit code 0 for duplicate PRs
* fix(ci): correctly download npm artifact
* fixup! fix(ci): correctly download npm artifact
* docs: update MAINTAINING
* fixup! docs: update MAINTAINING
* fixup! Merge branch 'main' into 4949-chore-fix-npm-workflow
* chore: get ci to run
* refactor: use vVERSION branch name instead of release
* refactor: use new download artifact in docker workflow
* refactor: clean up release-github-assets script
* fixup: remove extra v
* fixup! fixup: remove extra v
* feat(npm): use DEV_PACKAGE_NAME for development
* feat(ci): use npm v7 in npm job
* fixup: add npm version
* fixup: always set package name
* wip
* fix: check for npm and npm v7
* fixup
* fixup: move after release dir created
* fixup: use jq
* fixup: use jq correctly
* Move Code to a submodule
Closes#4901.
* Base Code cache on hash and re-enable node_modules cache
The current setup appears to only rebuild VS Code if the dependencies
change but we need to rebuild it if anything changes.
I also re-enabled the commented out node_modules caches. They look like
they should work to me with the submodule method. I think the problem
occurred because Code itself was being installed in the yarn step.
* Merge setup and navigate functions
Whenever we navigate we probably want to make sure the editor is ready
so might as well just have one function.
* Add customizable entry and workspace directory
* Add test for state db migration
* Update Code
This contains the state migrations.
* refactor: remove folder/workspace from vsCodeCliArgs
Since we handle this in the vscode.ts route, we no longer need to pass it to VS
Code as a CLI arg since it's deprecated on that side.
* feat(vscode): redirect to folder from cli
* Update src/node/routes/vscode.ts
Co-authored-by: Asher <ash@coder.com>
* fixup!: update _: type
* fixup!: move vars to lower if block
* fixup!: share redirect block
* fixup!: mmove req.query.ew block into if
* fixup!: refactor vscode tests
* refactor: make vscode.ts logic easier to read
* fixup!: fix broken tests and clean up logic
* chore: upgrade vscode version
* fixup!: delete unnecessary if closed block
* Update src/node/routes/vscode.ts
Co-authored-by: Asher <ash@coder.com>
* fixup!: rename to FOLDER_OR_WORKSPACE_WAS_CLOSED
Co-authored-by: Asher <ash@coder.com>
* feat: github-auth flag
This will allow injecting credentials into code-server if you already
have them.
* Update Code
Contains the GitHub auth changes.
* Add e2e test for GitHub token
* Configure build jobs to cancel previous builds when new changes
are pushed to a pull request branch, and serialize builds when
running in a branch from a push event
* Reduce privileges of GitHub token for scripts workflow
Show the bundled version of Code OSS in the text-based output
for --version and --help, in addition to the JSON output
(--version --json)
Closes: #4874
* refactor(http): extract logic into constructRedirectPath
This allows us to easily test our redirect path construction logic where we get
the relative path, the query string and construct a redirect path.
By extracting this from `redirect`, we can easily test this logic in a unit
test.
I did this so we could test some logic where slashes in query strings should be
made human-friendly for users.
* feat(testing): add tests for constructRedirectPath
Co-authored-by: Asher <ash@coder.com>
Introduce helper functions for getting human- and machine-readable
version strings from the constants package, and cover it in unit
tests.
This is a first step to resolving #4874.
* Add helper for navigating the quick picker
This has problems similar to the menu except instead of closing it gets
re-created which interrupts the hover call and causes the test to fail.
Now it will keep trying just like the menu.
* Add a test for opening a file
* Add test for colliding state
* Update VS Code
This contains the colliding state fix.
* add support for imagePullSecrets
* Add doc and example value for imagePullSecrets
* simplify syntax for imagePullSecrets
Co-authored-by: Joe Previte <jjprevite@gmail.com>
* feat: add isAddressInfo helper function
* feat(update): add test for rejection UpdateProvider
* feat: add more tests for UpdateProvider
* fixup! move isAddressInfo, add .address check
* fixup! remove extra writeHead
* fixup! use -1 in redirect logic
* fixup! remove unnecessary String call
* fixup! use /latest for redirect
* fixup! use match group for regex
* fixup!: replace match/split logic
* revert: partial revert of 723469ab5bed3ba9fbb3e8d5ecbfcd9a3bee2d88
This reverts part of the changes introduced in refactor: migrate from argon2 ->
@node-rs/argon2 (#4733)
Switching to @node-rs/argon2 introduced bugs that we couldn't solve due to
limitations in npm.
see here
https://github.com/coder/code-server/issues/4804#issuecomment-1030338395
* feat: refactor npm workflows to use download-artifact
This refactors the npm workflows to use the download-artifact GitHub Action. We
had problems in the past with our download_artifact custom bash function. This
also fixes an issue where we weren't downloading the correct artifacts when
publishing beta and dev tags to npm.
* fixup: remove unused env var
* fixup! add download-artifcat to npm-brew"
* fixup! remove unnecessary code comment
* fixup! move NPM_ENVIRONMENT logic to script
* Update links in package.json
I will try checking the docs too
* docs: Update links in triage.md
* docs: Update links in npm.md
* docs: Update links in whatever files that have `cdr`
* Replace globally, thanks @bpmct!
* fix: coderer instead of coder
I should've used all three toggles in the Search/Replace tab in the GItHub.dev editor.
* Code Formatting
* Disable BROWSER env var
Right now the browser helper script does not actually work. It seems
safer to skip this until we can fix it.
* Bump to 4.0.2
* Update changelog for 4.0.2
This extracst the publish on npm workflow from ci.yaml and adds a new workflow
called `npm-beta.yaml`.
Now we have three workflows that publish to npm.
- `npm-beta.yaml` only runs on pushes and merges into `main`
- `npm-dev.yaml` only runs on PRs into `main` with approval from
code-server-reviewers team
- `npm-brew.yaml` only runs on releases
This should fix problems we had previously where anyone could open a PR and
publish under the code-server namespace. It also separates out the workflows
based on environment and when they should run.
* feat: add logic to publish beta/dev npm
This adds new log to publish the npm package both while working on PRs and when
PRs are merged into main, allowing us to easily test changes in a
production-like setting.
Co-authored-by: Asher <ash@coder.com>
* docs: Change `cdr` to `coder`, read desc please
Yeah, includes links.
* docs: Update README (links and the extra comma)
Co-authored-by: Joe Previte <jjprevite@gmail.com>
* chore(deps): replace argon2 w/@node-rs/argon2
* refactor: clean up hashPassword functions
* refactor(util): pass in process.platform
* fix: use correct settings for test-extension
Before, it was running into errors with an @types package.
Now, we're correctly running `tsc` so it picks up our `tsconfig.json` and we're
telling TypeScript to not typecheck our lib and exclude `node_modules`
* Add test extension
This will let us test extension-related features (like the proxy URI).
I removed the environment variables in the script because they override
the ones you set yourself. We still set defaults in constants.ts.
* Add changelog entry for VSCODE_PROXY_URI
* Add terminal test for VSCODE_PROXY_URI
* Update VS Code
This adds the VSCODE_PROXY_URI environment variable.
I think the problem is that when a proxy is not in use proxy-agent
returns the global agent...which is itself since we set it globally,
causing the loop.
VS Code already covers proxies meaning we only need to do it in our own
requests so to fix this pass in the agent in the version fetch request
instead of overidding globally.
Also avoid proxy-from-env and pass in the proxy URI instead as both
http_proxy and https_proxy can be used for either http or https requests
but it does not allow that.
* Implement last opened functionality
Fixes https://github.com/cdr/code-server/issues/4619
* Fix test temp dirs not being cleaned up
* Mock logger everywhere
This suppresses all the error and debug output we generate which makes
it hard to actually find which test has failed. It also gives us a
standard way to test logging for the few places we do that.
* Use separate data directories for unit test instances
Exactly as we do for the e2e tests.
* Add integration tests for vscode route
* Make settings use --user-data-dir
Without this test instances step on each other feet and they also
clobber your own non-test settings.
* Make redirects consistent
They will preserve the trailing slash if there is one.
* Remove compilation check
If you do a regular non-watch build there are no compilation stats so
this bricks VS Code in CI when running the unit tests.
I am not sure how best to fix this for the case where you have a build
that has not been packaged yet so I just removed it for now and added a
message to check if VS Code is compiling when in dev mode.
* Update code-server update endpoint name
I have been wondering why my editor is not defaulting to two spaces and
it is because indent_size was removed from the * block.
I am not sure why we would need a separate block for package.json and
yaml anyway since they use the same settings as the rest of our code.
I would revert the commit but this change was made in a larger commit
with a bunch of unrelated changes.
* Support browsers from before 2020
As reported in #2825, #2826 and #3051, almost everything works in older browsers. This setting here prevented me from updating and I think it is an obvious enhancement to not restrict to browsers from 2020+. There should not be any measurable downsides of this change since es6 and es2020 are pretty similar with only minor differences.
* Include lib (polyfills) for <es2020 targets
* Assume all modern dom features despite es6 syntax
* Add modern dom iterators to es6 environment
Co-authored-by: Joe Previte <jjprevite@gmail.com>
Co-authored-by: Asher <ash@coder.com>
* Added instructions to install it on iOSi (#4614)
* Added instructions to install it on iOS
* Update ios.md
Co-authored-by: Joe Previte <jjprevite@gmail.com>
* docs: add ios to manifest
* docs: clean up ios docs
Co-authored-by: The AliX Legend <alixgamer175@gmail.com>
The problem before was that the pop() caused the open in existing
instance functionality to break because the arguments no longer
contained the file.
We could simply remove the pop() but since `workspace` and `folder` are
not CLI arguments I think it makes sense to handle them in a separate
function which can be called at the point where they are needed. This
also lets us de-duplicate some logic since we create these arguments in
two spots and lets us skip this logic when we do not need it.
The pop() is still avoided because manipulating a passed-in object
in-place seems like a risky move. If we really need to do this we
should copy the positional argument array instead.
* Add tests for relativeRoot
* Remove path.posix.join
Since this is for file system paths it feels incorrect to use it on
URL paths as they are different in many ways.
* Rewrite cookie path logic
Before we relied on the client to resolve the base given to it by the
backend against the path.
Instead have the client pass that information along so we can resolve it
on the backend. This means the client has to do less work.
* Do not remove out directory before watch
This is re-used for incremental compilation.
Also remove del since that was the only use (and we can use fs.rmdir in
the future if we need something like this).
* Remove unused function resolveBase
* Remove extra VS Code CLI spawn
We already spawn VS Code's CLI when necessary in the lines below.
Having the CLI spawn unconditionally when in a VS Code environment makes
it impossible to run code-server within code-server (for example to
develop it).
* Update VS Code
This sanitizes our environment variables so code-server does not always
think it is a child spawn.
Fixes https://github.com/cdr/code-server/issues/4519.
The watch script was reloading the web server after every extension
compilation which is not necessary plus VS Code will not even be ready
at that point anyway.
Instead restart when the main compilation is finished. The string to
match with includes a "with" because otherwise it would match "Finished
compilation extensions" which is not the main compilation task where we
actually need to restart the web server.
I also replaced this.log with console.log because the former does not
include a newline and it appears we want newlines with all
these (otherwise the next log starts on the same line which looks odd).
I removed the cache clean as well because the cache is meant to stay
there to speed up builds.
* docs(CONTRIBUTING): update workflow based on vscode changes
* docs(MAINTAINING): add section for syncing VS Code upstream
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
* Fix issue where HTTP error status codes are not read.
* Fix issues surrounding sessions when accessed from a proxy.
- Updated vscode args to match latest upstream.
- Fixed issues surrounding trailing slashes affecting base paths.
- Updated cookie names to better match upstream's usage, debuggability.
* Bump vendor.
* Update tests.
* Fix issue where tests lack cookie key.
Co-authored-by: Asher <ash@coder.com>
The "Starting watch-client" string no longer appears in the latest build
output. We could look for "Finished compilation with" to avoid
restarting when other tasks restart (since they also include the name
i.e. "Finished compilation extensions with 0 errors") but I figure we
might as well restart code-server when any compilation task completes in
case other tasks include changes that need to be reloaded.
* Refactor vscode router to load async.
* Bump vscode.
* fix volumes (#4497)
* Fix : recreate the termux guide to adapt the recent changes (#4472)
* Fix : recreate the termux guide to adapt the recent changes
Termux nodejs-lts changed from v14 to v16 and there are many issues people are facing such as with argon2. Hence I recommend changing it to this install process which is comparably better and has one less issue :^)
I've also added some extra things such as installing GO and Python, idk about the TOC tree but this is pretty much it.
* yarn-fmt and minor typos
https://github.com/cdr/code-server/pull/4472#issuecomment-964752180
* Fix : replace unnecessary steps to be linked to a guide
* Change from private gist to a section in Extra
* Remove reference to non-existent step
* ready to merge!
Co-authored-by: Joe Previte <jjprevite@gmail.com>
Co-authored-by: Jinu <jlandowner8@gmail.com>
Co-authored-by: Han Seung Min - 한승민 <hanseungmin.ar@gmail.com>
Co-authored-by: Joe Previte <jjprevite@gmail.com>
* Fix : recreate the termux guide to adapt the recent changes
Termux nodejs-lts changed from v14 to v16 and there are many issues people are facing such as with argon2. Hence I recommend changing it to this install process which is comparably better and has one less issue :^)
I've also added some extra things such as installing GO and Python, idk about the TOC tree but this is pretty much it.
* yarn-fmt and minor typos
https://github.com/cdr/code-server/pull/4472#issuecomment-964752180
* Fix : replace unnecessary steps to be linked to a guide
* Change from private gist to a section in Extra
* Remove reference to non-existent step
* ready to merge!
Co-authored-by: Joe Previte <jjprevite@gmail.com>
I added the missing versions and some changelog entries for the latest
version. I also added some extra details to the entries that should
help users understand what changed and what they need to do about
it. The overall format is based on keepachangelog.com.
In that same spirit I removed entries that do not affect
users (documentation and development changes).
I removed the names because it seems unlikely users will be interested,
that information can be found in the PR, and code is really the work of
multiple developers (even if only one is writing code and the other is
reviewing) which is not something that is reflected in this document.
* docs: update FAQ with extension gallery info (#2672)
* Update app to reflect Open VSX switch.
- Remove extension related github configs.
- Update tests to reflect new upstream behavior.
Co-authored-by: Akash Satheesan <akash@coder.com>
* Flesh out fixes to align with upstream.
* Update route handlers to better reflect fallback behavior.
* Add platform to vscode-reh-web task
Our strategy has been to build once and then recompile native modules
for individual platforms. It looks like VS Code builds from scratch for
each platform.
But we can target any platform, grab the pre-packaged folder, then
continue with own packaging.
In the future we may want to rework to match upstream.
* Fix issue where workspace args are not parsed.
* Fix issues surrounding opening files within code-server's terminal.
* Readd parent wrapper for hot reload.
* Allow more errors.
* Fix issues surrounding Coder link.
* Add dir creation and fix cli
It seems VS Code explodes when certain directories do not exist so
import the reh agent instead of the server component since it creates
the directories (require patching thus the VS Code update).
Also the CLI (for installing extensions) did not seem to be working so
point that to the same place since it also exports a function for
running that part of the CLI.
* Remove hardcoded VSCODE_DEV=1
This causes VS Code to use the development HTML file. Move this to the
watch command instead.
I deleted the other stuff before it as well since in the latest main.js
they do not have this code so I figure we should be safe to omit it.
* Fix mismatching commit between client and server
* Mostly restore command-line parity
Restore most everything and remove the added server arguments. This
will let us add and remove options after later so we can contain the
number of breaking changes.
To accomplish this a hard separation is added between the CLI arguments
and the server arguments.
The separation between user-provided arguments and arguments with
defaults is also made more clear.
The extra directory flags have been left out as they were buggy and
should be implemented upstream although I think there are better
solutions anyway. locale and install-source are unsupported with the
web remote and are left removed. It is unclear whether they were used
before anyway.
Some restored flags still need to have their behavior re-implemented.
* Fix static endpoint not emitting 404s
This fixes the last failing unit test.
Fix a missing dependency, add some generic reverse proxy support for the
protocol, and add back a missing nfpm fix.
* Import missing logError
* Fix 403 errors
* Add code-server version to about dialog
* Use user settings to disable welcome page
The workspace setting seems to be recognized but if so it is having no
effect.
* Update VS Code cache step with new build directories
Co-authored-by: Asher <ash@coder.com>
* Add a gist of the difference
* Update the gist
* Update README.md
As told by @tmikaeld here: https://github.com/cdr/code-server/discussions/3102#discussioncomment-1565789
* Update docs/README.md
Co-authored-by: Joe Previte <jjprevite@gmail.com>
* `yarn fmt` results
Co-authored-by: Joe Previte <jjprevite@gmail.com>
Co-authored-by: Asher <ash@coder.com>
* Drop duplicate Helm values from values.yaml
* Use frozen lockfile for test dependencies in CI (#4442)
* Use frozen lockfile for test dependencies in CI
This might be causing more Playwright issues.
* Bump Playwright
Mostly just to trigger a reinstall of dependencies since it is cached
and still failing.
Once updated it errors saying install needs to run so add that too.
* Drop duplicate Helm values from values.yaml
Co-authored-by: Asher <ash@coder.com>
* Use frozen lockfile for test dependencies in CI
This might be causing more Playwright issues.
* Bump Playwright
Mostly just to trigger a reinstall of dependencies since it is cached
and still failing.
Once updated it errors saying install needs to run so add that too.
It was causing version mismatch errors.
It might make more sense to have this in the postinstall but for now I
have foregone that as it would be installed in every step including
those that do not run e2e tests.
* fix(testing): revert change & fix playwright tests
* fix(constants): add type to import statement
* refactor(e2e): delete browser test
This test was originally added to ensure playwright was working.
At this point, we know it works so removing this test because it doesn't help
with anything specific to code-server and only adds unnecessary code to the
codebase plus increases the e2e test job duration.
* chore(e2e): use 1 worker for e2e test
I don't know if it's a resources issue, playwright, or code-server but it seems
like the e2e tests choke when multiple workers are used.
This change is okay because our CI runner only has 2 cores so it would only use
1 worker anyway, but by specifying it in our playwright config, we ensure more
stability in our e2e tests working correctly.
See these PRs:
- https://github.com/cdr/code-server/pull/3263
- https://github.com/cdr/code-server/pull/4310
* revert(vscode): add missing route with redirect
* chore(vscode): update to latest fork
* Touch up compilation step.
* Bump vendor.
* Fix VS Code minification step
* Move ClientConfiguration to common
Common code must not import Node code as it is imported by the browser.
* Ensure lib directory exists before curling
cURL errors now because VS Code was moved and the directory does not
exist.
* Update incorrect e2e test help output
Revert workers change as well; this can be overridden when desired.
* Add back extension compilation step
* Include missing resources in release
This includes a favicon, for example. I opted to include the entire
directory to make sure we do not miss anything. Some of the other
stuff looks potentially useful (like completions).
* Set quality property in product configuration
When httpWebWorkerExtensionHostIframe.html is fetched it uses the web
endpoint template (in which we do not include the commit) but if the
quality is not set it prepends the commit to the web endpoint instead.
The new static endpoint does not use/handle commits so this 404s.
Long-term we might want to make the new static endpoint use commits like
the old one but we will also need to update the various other static
URLs to include the commit.
For now I just fixed this by adding the quality since:
1. Probably faster than trying to find and update all static uses.
2. VS Code probably expects it anyway.
3. Gives us better control over the endpoint.
* Update VS Code
This fixes several build issues.
* Bump vscode.
* Bump.
* Bump.
* Use CLI directly.
* Update tests to reflect new upstream behavior.
* Move unit tests to after the build
Our code has new dependencies on VS Code that are pulled in when the
unit tests run. Because of this we need to build VS Code before running
the unit tests (as it only pulls built code).
* Upgrade proxy-agent dependencies
This resolves a security report with one of its dependencies (vm2).
* Symlink VS Code output directory before unit tests
This is necessary now that we import from the out directory.
* Fix issues surrounding persistent processes between tests.
* Update VS Code cache directories
These were renamed so the cached paths need to be updated. I changed
the key as well to force a rebuild.
* Move test symlink to script
This way it works for local testing as well.
I had to use out-build instead of out-vscode-server-min because Jest
throws some obscure error about a handlebars haste map.
* Fix listening on a socket
* Update VS Code
It contains fixes for missing files in the build.
* Standardize disposals
* Dispose HTTP server
Shares code with the test HTTP server. For now it is a function but
maybe we should make it a class that is extended by tests.
* Dispose app on exit
* Fix logging link errors
Unfortunately the logger currently chokes when provided with error
objects.
Also for some reason the bracketed text was not displaying...
* Update regex used by e2e to extract address
The address was recently changed to use URL which seems to add a
trailing slash when using toString, causing the regex match to fail.
* Log browser console in e2e tests
* Add base back to login page
This is used to set cookies when using a base path.
* Remove login page test
The file this was testing no longer exists.
* Use path.posix for static base
Since this is a web path and not platform-dependent.
* Add test for invalid password
Co-authored-by: Teffen Ellis <teffen@nirri.us>
Co-authored-by: Asher <ash@coder.com>
We pipe the child's stdout and stderr to the log file (and to the parent's streams) but since we used `inherit` for `stdio` this caused the child to use the parent's streams directly which made `child.stdout` and `child.stderr` non-existent and thus we had no file logging.
Using `pipe` creates stdin and stderr on the child.
I updated the CodeTogether description to include some enhancements that we just shipped in CodeTogether 4.2. I also added a bit more detail to the feature list and provided some hyperlinks in a couple of places where people would likely appreciate more detail.
I made no changes to the other sections.
We've had two patches to the helm-chart since the last time we bumped the Chart
version.
- 1ffca5751c
- 5a36627aae
This version bump ensures that chart version has the correct date.
feat(script): add steps-lib, is_env_var_set & test
feat(brew-bump): add check for VERSION
feat(brew-bump): check HOMEBREW_GITHUB_API_TOKEN
feat(steps-lib): add directory_exists helper fn
fix(brew-bump): check that git clone worked
feat(brew-bump): add check for remote upstream
fix: remove upstream command thing
feat(steps-lib): add file_exists helper function
feat(brew-bump): add check for git-askpass.sh
feat(steps-lib): add is_executable function & test
feat(brew-bump): add check for is_executable
refactor: use GIT_ASKPASS as variable
With #3895, we caused a regression where the Content-Security-Policy prevented
images in the previewer to not work due to the ports in the resource URI.
This modifies the CSP in the webview to make sure images are not blocked by CSP.
I assume once we upgrade VS Code, we will revert this change.
Currently, Windows default script-shell (cmd) fails to run the postinstall script. This commit fixes the problem by running postinstall.sh explicitly with the default bash executable of the OS.
Related: #1397
This reverts commit 50494472250cbfeb483aa2a4440efe408a30f190, reversing changes
made to 741b834b640be0103cd86e76bac7ce4ea5bb2572.
We still need the symlink for the standlone packages which means we need to redo
how the symlink is removed, ensuring it's only removed in the npm package.
We do this because resources in webviews don't load properly
when the port is used in the resource uri.
We're not sure why this is happening but adding this fix
to get webviews working like before.
CodeQL caught a path where we were passing in req.query.path
to pathToFsPath, which may not have been a string.
So we refactored some things to ensure we only pass it a string
which also let us change the parameter type to string
instead of string | string[].
There was some confusion with the "and" since it can be interpreted that
you can only try logging in twelve times per hour in total but actually
you get two attempts per minute and then twelve per hour on top of that.
* Squashed 'lib/vscode/' changes from cfa2e218100..2064d4c301c
2064d4c301c fix issue reporter unit tests
d99a697eb52 Fix#125503
b098b10a77e Merge branch 'notebook/dev' into main
a57e41b7a43 notebooks: more accurately detect old style of renderers
c8a447f93b8 Fix#125507
ae4124aa7e1 Fix#122570
2bcdb95e7df update distro
89d750cd687 add restricted mode to created issues (#125537)
5f7166fd915 Put run menu above output container, Fix#125188
d9cf45e0dba Fix#125526
ab0bd774c91 Pass profiles, defaultProfile, isWorkspaceTrusted from renderer to shared process (#125450)
061403c7458 Switches to new RemoteHub authority separator
0e6d07052c8 remove untrustedWorkspace search for now
1c5b5a632f9 Hide "Customize Notebooks" in getting started behind setting
f843c51bca8 Update lock file
2456872bcaa Bump distro
12547c1de87 remove virtual workspace information from banner (#125512)
6de86dcd840 update notebook layout default values.
0f0abb3dc87 trust vfs (#125523)
8d87a664274 Bump es build
bcdfe884a3c Fix window reload with an empty remote window
a0bc15ff6fc Close Remote Connection shows up in local windows
fe1eafc80c0 Merge pull request #125498 from microsoft/hediet/fix-125034
5eb636f22fc Renames InlineSuggestionActions back to InlineCompletionsActions.
e8ad99de2b3 Merge branch 'main' into hediet/fix-125034
dcf62e3a1e4 Merge pull request #125501 from microsoft/hediet/add-accept-action
fe6fc208e9d Puts EditorOption.inlineSuggest to the right spot.
c6777d5c6c9 Reverts menu rename.
c5bbe0a35ea Merge pull request #125484 from microsoft/hediet/fix-125478
20cb29b076b Fixes#125430: Add a lock around the extension registry.
383ae36449b restricted mode hover: added a link to manage trust. For #125408
1a8285a9654 Adds accept action to inline suggestion hover. Fixes#125472.
2ba1dcb0c9c Removes setting ghostTextExpanded. Fixes#125037.
3300006ee17 * Renames command ids, context keys and command titles to Inline Suggestion. * Renames menu item, makes it proposed API.
f8c061e73d7 restricted trust status bar item should use rich hover. Fixes#125408
620434543f5 * renames editor.suggest.showSuggestionPreview to editor.suggest.preview * renames editor.suggest.showInlineCompletions to editor.inlineSuggest.enabled
4b0c17e1808 fixes#115535
93e61e267ca fix compile error
54dd1429b64 startup timings uses now `exit` and not `quit`, fyi @bpasero
922f866a282 run menu: more precise context keys
f207b383071 inline `NotebookExecuteHandler` type
fa1694c8afb Merge pull request #125465 from microsoft/menubarFix
5efc2e7abcd 💄
7954c27d2d9 Fixes#125478.
f99e1c358f0 fixes issue with asExternalUri API
8163cfd8c54 Make sure we layout editors in sideBySideEditor after they are created (#125445)
387e2f39ebb Properly complete notebook profile step
11f86fefb46 Track opening notebook separately from showing notebook GS page
a2ef11ff553 fixes context keys with menubar
fd2ed91612c Fix wrong CKS on output toolbar Fix#125109
f95fb77f22a Fix cellstatusbar layout issues from "visibleAfterExecute" Fix#125403
0acf7df100e Fix showCellStatusbar default #125403
a244a4ccc65 improve messaging with remote
5d58be33080 switch to a switch for localization edge cases
ae0e8f04468 uppercase h in localization
885ac7f1c11 fixes#125406
b519331a06b fix#125458.
4c12628b2b5 fix#125234.
0c7e7cf21d6 disable notebook layout getting started.
4cae6713714 fix#125452.
72d325b4bc9 fix#125027
df59dc8470a don't show status bar entry until files are opened
d3db92b7a2e Fine tune image styles. Fix#122680
72a67899410 add settings links to improve understanding of workspace trust
c9e683d6c78 fix#124405
827398db432 fix#125444.
f004a398e0b Fix#125313
b26e1aba58c Remove hashes from override
41b1406d3a8 Revert parts of "Fix #125395" Re-enables GitHub extension in untrusted workspaces
eab8d0403f2 Revert "Fixes #125350: disallow in untrusted ws"
0006964091a Change cell type contextkey to markup Fix#125378
5ea26044187 Fix#124531
0a5d652bdfd Fixes#125332.
f73f263c6bf Needed localization changes for converting xlfs to json (#125442)
0f0f066b392 Remove codespaces walkthrough from Getting Started
96004bc2c97 icon hover: add pointer for element hovers
11debc38469 Merge branch 'notebook/dev' into main
b80011a819c Fix#124049
fd430418a01 Refine `CellInfo` type (#125351)
b2cc8487aed Flip positioning of steps and media in narrow layouts. Closes#125246
5966e9dfec0 Check to see if there are any artifacts that haven't been published (#125428)
a56ef182474 notebooks: fix default selection of untrusted renderer
788e39aad86 #125395 Improve the prompt
062401745a2 Switch loglevel to trace
73de22af596 Close#119722
be1cf4bddb5 Focus contributed profile terminals after creation
60651a0c4de Fix#125030
8f9eedf0019 Merge branch 'main' into notebook/dev
01c6fb557d0 Fix#125395
41163014f8c 💄
490cef7c075 Revoking trust in the remote scenario will reload the window
3f8672be8a4 fixes#124051
6d66648c51b Add snippets for ports attributes to settings helper Fixes#125081
e43c3957f64 rename onDidChangeNotebookAssociation to onDidChangeSelectedNotebooks
732769073a2 Workspace trust - add --disable-workspace-trust flag (#124998)
499e4948c7d Fix typo
41f117753ed debug: update js-debug
20df87725d3 fix build again
15aca96cd5c build - unblock lauching
8b4bc01166a Removes RemoteHub
0f2f7c7f04b Update notebook getting started images
b2a64b1379c Merge pull request #125352 from microsoft/tyriar/migrate
515b7125255 revert a change
fa19cd28adb fix build errors
6f0ce2e7508 Fix#125250
884b1e7a0d0 Fix "Trying to add a disposable to a DisposableStore that has already been disposed of." ref #125354
c8b7aaf2c29 Merge pull request #125340 from microsoft/merogge/onExit
7fd324944d3 Fix selected notebook profile highlights
99665d0b4ac Merge cell statusbar settings Fix#125173
2974dcbd985 Fix bugs causing walkthoughs to not open on install
ab1c9202003 Try setting gettingStarted as default editor (#125321)
ebde979a485 fix cell top/bottom border always active.
7dacb10b591 fix#125339.
e6aaf493989 Move notebook getting started walkthrough to its own section
f473e3dc9f8 fixes#125047
6cc80fea815 fix#125338.
66917f41795 fix#125334.
2356d7c5b76 fix init layout interrupted by editor group resize.
a2a61127667 Hide execute actions from markdown toolbar Fix#125336
0f8c499d101 Migrate profile setting and fallback properly
272208523b5 register the extension request handler once workspace is resolved fixes#125342
4c57cf40313 fix#125175.
bbc4995eca7 fix#125176.
195477a0e96 remove unused import
68e862e1d62 skip flaky window test.
9bd7cbd1403 notebook.insertToolbarLocation
769e7080f4b Fixes#125350: disallow in untrusted ws
ae2f0b39e63 Fix#122741
8f3a47cc88c add singleTerminal argument
6ef81b30370 add safeDisposeTerminal to terminal service
b295408c303 tweak wording
fa8a7a84a13 Merge branch 'main' into merogge/onExit
895dbf4dfd0 fix#125069
60dd761211b update the layout based on treatment.
26cd18321bd remove backwards compatible tests.
d215fc72380 Fallback to active editor if no webview is focused
c5a4158a651 fixes#125247
3d0d203bb02 fix#124849
509906cd916 Merge branch 'notebook/dev' into main
4d4f0b528a2 fixes#125319
093b03bb39e fix#124854 Co-Authored-By: Daniel Imms <daimms@microsoft.com
c4da8f4ab15 Improve terminal drag feedback
55f01b11fa0 fix#125067fix#125039 Co-authored-by: Daniel Imms <daimms@microsoft.com>
941a603ccd0 Revert "Try fix getting started as default crashing integration tests"
0206b2ee43f Try fix getting started as default crashing integration tests
d0ba023c71e Fix#122680
48fcde4048c Fix#123476
0543065c41a Don't commit inline completions on tab when "tabMovesFocus" is active.
e2ad6d2c9a8 Merge pull request #125126 from microsoft/hediet/make-hover-unselectable
b49731160d3 Add henning to my-endgame notebook
1fee13180b7 Vertically center notebook profile list
09a3fa687a9 Resets context keys properly when editor is disposed.
c324c61ad57 add closing tags
e92e3d1a9ea Reset context keys when Ghost Text Controller is disposed.
ec5bf6733ca Fixes "Ctrl+Z doesn't retrigger inline suggestions"
26ff863e3d4 Merge pull request #125221 from jeanp413/fix-125035
ce8d2e86028 make IHoverDelegate.placement optional
32e6054985c Adds more documentation to the proposed inline completion API. Fixes#125267.
20be2c8eaa2 icon label hover: allow element placement. Fixes#125090
232412ff87b adopt terminalTabList
60a36219813 Revert "icon label hover: allow element placement. FIxes#125090"
4aa9f8271b8 Merge pull request #125292 from microsoft/tyriar/themeicon
8223d3d5c7f Fix#125156
0a32357e6d7 Fix filter.filterQuery initialization
3099c6f1c1b ios: trigger list/tree/table context menus
3a388466b85 tree viewer hover delegate: command handing now comes from hover service
1d471214fb3 icon label hover: allow element placement. FIxes#125090
0ee6895a6b8 Convert vscode ThemeIcon to internal type
e040c0881f7 Workspace trust - calculate trust before extension host starts (#125283)
ea339694fc7 fixes#125272
727caa7f238 Merge branch 'main' into notebook/dev
e0131062c84 bail on standard start when workspace isn't trusted
0bf73ff15ab make sash work better on ios
9764a02c5d3 sash: use DomEmitter
df709ddd3d5 Fix otherPortsAttributes protocol not updating correctly Fixes#125079
ef0fb8afb89 Revert "use associatedResource instead of untitledResource, https://github.com/microsoft/vscode/issues/125028"
073c4ffd7da remove deprecated notebook-namespace, notebooks is the future
a24c1495208 Merge pull request #125281 from microsoft/hediet/allow-inline-completion-array
2e53913b637 Separator in remote indicator can appear/disappear. Fixes#122309
d71e5718c90 Fix ctrl+click to open link in ports view Fixes#125076
f32b38aa216 Allows to directly return an array of inline completions instead of an InlineCompletionList.
b5bdc48d553 use vscode.notebooks not vscode.notebook
3d2309d4e74 Set icon for custom pty terminals
e537c47c63c Fix double extension terminal profile creation
a3337d01bb0 more api polish
17da5e37217 use associatedResource instead of untitledResource, https://github.com/microsoft/vscode/issues/125028
7051f7db889 Sort content of XLF files
109c9d9486b adopt viewType everywhere and drop support for it, fixes https://github.com/microsoft/vscode/issues/125163
b1e613481bb fix https://github.com/microsoft/vscode/issues/125163
9796ac82c3f (re)move NotebookCellOutput#id into proposal, also remove ctor overload that allows to set id
a14600c325f editor trust - limit trust validation in `openEditors` to the places we want
39e7fd6a779 Merge pull request #125128 from microsoft/alex/ghost-text
a1e7ce9cde2 tackle more todos, change ctor of NotebookCellData
0c3646199aa editors trust - support opening diffs into new window (#124618)
592ae5a1f53 editors trust - make sure diff editors bring up trust dialog too
a286059b90d macOS - workaround fullscreen window regression (#125122)
82acbe807f2 updated todo search file
ac05ae7b6f0 move file'ish things into workspace namespace
e57462fd1f6 dnd - only add file system resources (for #125187)
0b6e70302f8 remove deprecated API
dfc47c79571 rename notebookViewType context key to notebookType
542655758b4 fix https://github.com/microsoft/vscode/issues/125138
f2d6da27d01 make sure appendOutputItems and replaceOutputItems return something
ee87b2bd432 missing adopting for end-call
d487b379bae Merge branch 'main' into notebook/dev
7865b99b44e Fixes#125035
febc20e8d39 safari - disable clipboard error notification
e7b9f3a1a40 Show a confirmation notification when installing/uninstalling shell commands (fix#125145)
217f1a2f60a Workspace trust - extension enablement (#125179)
b154a3d3043 skip view column test.
322c81122dd Add "move cell up/down" to the cell context menu when drag and drop is disabled
a90729cb6f0 show notebook profile the first time when a notebook is opened.
c55d8a0e16c select notebook layout action.
b2da4119928 Add undo/redo per cell for jupyter profile.
7aa8c5ec4a7 Fix profile contribution schema
2d97edd98f2 Update QuickPick api doc (#124485)
8df0f068588 Group startTime and endTime into a single object
ef28d1663d9 Inline parameters to execution task start and end
5c6ae4fc5ac Update NotebookCellStatusBarItem constructor
872bbcc8c1c Update provideCellStatusBarItems
28bf10376c3 Add 'notebookLayout' tag to suggestions
4dd5ccb1566 Make registerWalkthrough public
d2561813a8d Merge branch 'notebook/dev' into main
dc9dc66109d tweak fix
ac7bb556e8f Disable "consolidated run button" in Jupyter profile
4449461cae4 fix#125121
a296485f007 fix#125045
8e86a3c6b16 Enable consolidated run button by default, now that Jupyter has caught up
515c64f05e6 fix#125125
5e27fb3ba85 Fix to make @recommended:languages search work
84196c8b8d3 fix: update colors
950ad4ffec5 colors: add support for exporting colors
2c503281922 Add import to pull notebook getting started content into build
9bd78a8bf53 notebooks: restore renderer messaging generic
088e0d282ee Revert "fix #125137"
d6d3091cbd3 fix#125137
c7f8b301938 Revert "fix #125137"
67e64a8fc86 Merge pull request #125083 from microsoft/ben/69349
80a899d8d67 fix#125040
aeecc7c03ff notebook: messaging api polish
4df863a28da Remove extra notebook images
092a2242ce5 fix#125137
2e8e888989a editors - more tests for capabilities
b743bf63de1 fix#125124
d6d9200832a notebook: fix mimetype switcher not working between custom renderers
ebcbe001591 update todo search file
6dbbcc2eee7 fix compile issues...
e8d8e53752a update/tackle todos
6fe84c402bb Merge pull request #125106 from microsoft/joh/api/noMetadataType
553893e940a Merge pull request #125104 from microsoft/joh/api/noItemMetadata
632f2156f2e remote indicator: remove vscode-vfs workaround
5a49e6a283e Focuses the editor after showing next/previous inline completion.
1bab611b73b Sets user-select: none to the hover actions so they cannot be selected anymore.
103d3edfdc0 Fix text replace case operation false positive Fix#123483
a3bad5878ef Add a protocol property to tunnels that corresponds to the attributes for that tunnel and is reflected in the UI.
bd8a0fb3d76 Fix#124779
0115c74d4af update todo@api search file
8dd2e53e247 bump versions
a476c9d4f08 fixes#124850
0580a6bae45 Settings: remove notification that changes are saved (fix#69349)
545b931b96b remove dedicated types for notebook and cell metadata
b1457fa4b6d remove NotebookCellOutputItem#metadata
e7b775adebf Revert "fixes #115535"
ae86512bf07 Fix automatic task timing Fixes#125044
6a02e8333c1 small jsdoc and todo tweaks
952e39f9d2d fixes#125026
d163f3f3d45 tooltip text grabbing broken. Fixes#124457
e9d05647b3b update distro
122df438a80 Run OSS Tool
89157c1a87a notebooks - tweak description for untitled files
1e446dfadf5 Don't hide suggest widget when expanding ghost text
ab80101db2d Revert "Fix regression with extension enablement"
24e1234559d [json/css/html] update services
a8a57c3fc67 Merge pull request #124288 from huszkacs/bug/issues_with_backspace
a4e1a259a2b Fix tests that were not updated
91b7e6027ad Move vscode.newWindow & vscode.removeFromRecentlyOpened out of apiCommands. For #110583
2ae32273fd2 update my-endgame notebook
0a1046ada41 Merge branch 'notebook/dev' into main
2f253fcc220 more todos
4093effb9b0 Merge pull request #124964 from microsoft/alex/ghost-text
79048992ef1 Adds leftTrim function, fixes bug in inlineCompletionToGhostText.
b1da1fbc8c4 Merge pull request #124972 from microsoft/hediet/fix-negative-overwriteAfter
3a259a7a6ae The replaced text does only need to be a prefix of the insert text after removing all leading whitespace.
1176faf27f2 Fix#119265
78c865d70d4 polish remote menu control actions
4ebf68103e6 readonly [] over ReadonlyArray...
67a85487125 Expose the inline completions provider in the monaco editor.
1eef15f0d54 more todos for notebook API...
552d457b718 updated code search file
f700cab7c36 💄
2031df26538 rename hasExecutionOrder to supportsExecutionOrder
f2fb2b8cbe3 rename viewType to notebookType, https://github.com/microsoft/vscode/issues/122922
ae17cc95591 Improve autocompletion for statusBar/remoteIndicator contribution point. Fixes#122566
efcf0eea9bc Remove default support from vscode-translations-import
b55d4384260 Fix regression with extension enablement
b7be98705fd Update descriptions
220f89ba3c6 jsdoc and todos
1e57955c798 Remove handling of Default inno setup file
e1928efbb63 notebook API finalization part1
cc8ff11f574 Fix recursion exit condition in variable resolver
2e026cf7c28 more API todos
0fde806bf85 Add limited support for variables that resolve to other variables Fixesmicrosoft/vscode-remote-release#5007
355df0eccb6 move renderer script and IPC into proposed and merge with general renderer IPC, https://github.com/microsoft/vscode/issues/123601
da851abcd6f jsdoc 💄
8d244362832 remove resolved todo
83d5e2bda06 rename namespace to notebooks, https://github.com/microsoft/vscode/issues/122922
594fc814bca update untitled hint to work, use the correct setting name
f68ee48c524 Fixes#124742 by ensuring that overwriteAfter is not negative.
edf85f1711d fixes#122402
3b407e0b6c1 move onDidChangeNotebookCellExecutionState into proposed, https://github.com/microsoft/vscode/issues/124970
e9579534bb2 Only trigger session when typing, not when the model context changes.
6832b7ec4b0 Disables rendering visible whitespace due to feedback. This makes ghost text less real.
7cd53df7d72 Swaps previous and next inline completion actions in the hover menu.
427f48b8d17 Add prebuild commands
dea978dd1c1 custom hover for remote indicator
8d41153ffc5 support custom hover on status bar entries
d4161177d98 don't use console.trace for all...
692fb8ab211 print trace for potential cycle, https://github.com/microsoft/vscode/issues/124723#issuecomment-850674813
f55a5243a43 don't use console.trace for all...
910d70bb88d print trace for potential cycle, https://github.com/microsoft/vscode/issues/124723#issuecomment-850674813
8b04a825b49 Merge branch 'main' into notebook/dev
94f47f44c98 Merge branch 'main' into alex/ghost-text
d776f0c1eba Fixes border color. Renames to ghostTextBorder/Foreground.
85f9447b720 Call adjustWhitespace on snippet.
db1bd650dcc Don't compute ghost text that is not supported. Thus, no space is reserved for unsupported ghost text.
4f3d865a6b4 refactor for cleaner initialization (#124904)
ccb0a8c2d93 Revert change in default due to build failures
6737ea008ff Change executionState to state
6949856b195 Remove API todo
038bac01c41 jsdoc for notebook cell statusbar API
667e3dd844a Tune getting startred color picker
bb5b6afdce4 Remove "primary" in favor of alway opening the first applicable walkthrough
6adfa8b3135 Enable getting started as default startup editor
b2f203113c1 editors - more alignments across editor inputs
ada71479023 Open getting started the first time a notebook is opened
08eedafbd60 Finish getting started content
b0862e99074 Don't include our loader in notebooks (#124864)
26b9218d64f Merge branch 'josola-edit-devcontainer-readme-markdown' into main
ad52b3f4583 Fix merge conflicts
09d1935b4cd Correct dev container info in README
1605d16ee3d Refresh dev container content
d7a79f0393f Add notebook profiles to Getting Started
887ff91a14a Merge branch 'notebook/dev' into main
5e7cd998762 Bump TS build version
e3354e26eff Whitespace characters are near invisible in High Contrast theme (Fixes#124612)
bb4e83a19a8 Improve hover stability and handle case where mouse is directly over inline ghosted text
aada268951a update distro
5fe858a229c Workspace trust explainer in getting started
f568f5aec3a Avoid scaling down SVGs in Getting Started
eb65a93f4bb Include import ref to markdown so it gets included in bundle
bbc7af71930 fixes#115535
3772aeec10b Typo
24143e91320 Merge pull request #124828 from microsoft/alex/ghost-text
868b84ceb99 fixes#124850
f509e7552a9 update classifier
676340ffad9 Get expected service worker version from renderer instead of main.js
3bfa3455a6b Fix incorrect reference when 404 on webview resource
445dc50f737 Use unique id for releaseNotes webview
1380c0c5e0b Remove unused code for rewriting endpoint
8058ab1a966 Disable consolidated run button by default
15616f8d936 refactor codeExchangeProxy to use same route and use it for refresh token as well
a6f4d96b826 Fix#124049
44a24280846 editors - unset preferred mode/contents before attempting to resolve
c784a74b8ba send Output metadata, not just OutputItem metadata, to renderer
ea02f214c74 Merge remote-tracking branch 'origin/main' into alex/ghost-text
dca2b9e2db8 Show hover over multiline ghost text
ab1cf30d883 add api-todo code search file
affbf49ccca Introduce `HoverAnchor` to allow hovering on something other than a range
4202ab071a6 rename NotebookCellOutput#outputs to #items
b16b45fecb8 Tweaks the effect of showSuggestionPreview and introduces showInlineCompletions. Explicitly triggering inline completions will now work even if settings are disabled.
d2854fd7877 fix#124842
d9f1e27aeb9 more API todos
394a1ce2dbc Merge pull request #124752 from microsoft/tyriar/term_trust
2f0a9160d0a more jsdoc, also more API-todos...
9eb940e243f Remove padding left (#124823)
42af32d16a0 do not use shadow dom for editor context menu for iOS
6c10a5334ee add jsdoc placeholder everywhere
e7776ccdcc3 Setting for specifiying the local host for port forwarding Fixes#124581
e15f4026511 Add `mightBeForeignElement` detail for `CONTENT_TEXT` mouse target types
a2d1bd0d158 Adds menu 'editor/inlineCompletions/actions' that extensions can contribute to.
098dfd56e3c Changes shortcuts of next/previous inline completion to Alt + Open/Close Square Bracket.
00de32d013a Keep track of the span node used for hit testing
8e54aed67b7 Remove `IHoverPart.equals`
ccfda77c8e6 Reorder participants to improve stability
77bc8745b29 jsdoc for NotebookController
71fafe39464 update jsdoc for `NotebookCellExecution`
541a5d4fa70 smoke: trust dialog should appear in 5 seconds, and we can ignore if it doesn't
5b642616ef3 Use loading + spin codicon for task terminals status Part of https://github.com/microsoft/vscode/issues/121659
04e09dacdfd refine output modifications of NotebookCellExecution
3a857fc436d editors - add tests for capability change events
004f6609f8c Fix problems with port protocol
903e219ccb8 files - need to track individual readonly stats everywhere (#124524)
466dd4e490e files - provide access to stat object from not modified error
872fac207ee Merge branch 'main' into notebook/dev
d5c73cc952d fix https://github.com/microsoft/vscode/issues/123570
3ac57c71329 Fix NPEs caused by extension that is not in the marketplace
df03e4caadc Removed unused MarkdownString.
e5f70e8e2a2 fix smoke tests (#124814)
47d3d743cad set max zoom to 8 (#124769)
b2da15ea2d8 Merge pull request #124745 from microsoft/alex/ghost-text
a9c54044e50 Refactors inline completions model.
ccedcbdf5ec Do not accept suggestion on tab if indentation is suggested.
a2944c32ea9 Fixes rendering of whitespace in the inline decoration.
8a3f351eb9c Use explicit context when the user cycles through suggestions.
1fa3397c48c fix post-merge hickup
a97ebdbabc8 Merge branch 'main' into notebook/dev
8715d80695f fixes#124809
7a767570e85 editors - more tweaks to dnd behaviour
07ff28c58d2 Dont center markdown content
3ea0bf8fbca Implement run button with extra actions, and "run above"/"run below" actions
970858ef6dd Add first pass of color theme selection markdown content
29cad8fb5e6 Merge pull request #124754 from microsoft/tyriar/profile_api
e0c8a76b7ad don't sort scope list. FixesMicrosoft/vscode-pull-request-github#2751
c1448f3161e Remove ansi escapes from localized string
9eeb092206f Re-enable skipped test
9b609ab1e11 Clean up profile provider api
e8758933d80 Disallow custom profiles as default
e037348d272 Support launching contributed profiles from dropdown
280e0070733 Add undocumented always syntax only TS server mode
866ecdd45a0 Merge branch 'notebook/dev' into main
1c3cc87bccb Add an `InlineCompletionsHoverParticipant`
7ce379e3f2b Merge branch 'main' into tyriar/term_trust
d9e043161fb Bump sw version
73ff24e451d Fix de/encoding for rewritten vscode-resoruce uris
b8f11107f72 Use @types/vscode-webview
decb1ab6a89 update left aligned plus button margin.
484b04df64b fix#124774
902bb43b3b1 testing: move back to proposed
31aef10814f testing: hotkey for opening output peek
14a013e7f3c Support contributed profiles in dropdown
dd61b26f33a enable workspace trust by default #wt
5338cc32da7 fix build.
4403b9010e5 Tweak remote workspace trust calculation
e3d4313714f support editor options override.
384f42bca76 Tweak wording, fix#124724
0dd52e2d77f Update distro
b157bc7e5c3 Support for @recommended:languages search (#124546)
9224159b004 Migrate users from shell -> profile settings (#124615)
d2a0bfb2866 editors - log error when opening fails
61f3ac6e07b support context keys in menu bar (#124726)
0de0faecee5 fix https://github.com/microsoft/vscode/issues/122376
f523f65f398 Add a `description` field to decorations to be able to find leaks
4c5a061df61 rename NotebookKernelPreload to NotebookRendererScript
9ef57b5c216 remove NotebookCellOutputItem#value, https://github.com/microsoft/vscode/issues/123884
4ad3265cbed Support workspace trust in terminal
a56fe2b397e use isVirtualWorkspace
ed611d0ec39 Minor tweaks
4edb0110f6b Small tweaks
7bd0337d940 Move parts of the triggering logic into the widget
2508b33f0d3 Wait for listen when making tunnels
7a83e5aa627 workbench API: assumeGalleryExtensionsAreAddressable
e94e8ed3998 Show default profile on top of term dropdown
693677c8a24 babel.config.json language mode should be 'jsonc'. Fixes#124683
cd501b2e5bb Merge pull request #124741 from jeanp413/fix-124735
9dd89100b49 Improve editor DND to work with untyped resource editor inputs (#124749)
14a4548e4ab editors - use preferred content only once
da1193950a1 some jsdoc for NotebookCellExecution
30074591eea editors - input 💄
55d91bbed87 editors dnd - more 💄
9d907212baf rename NotebookCellExecutionTask to NotebookCellExecution
5d534b94f83 dart: fix language configuration location
d0d80ec337f fix build
23fb4207373 Merge branch 'main' into notebook/dev
0637663fcfe fix isNoCorsEnvironment
9095b835bbf editors dnd - fix dirty contents in files diff
c870d75473c editors dnd - enable diff editor transfer
70418f0aced editors dnd - fix untitled transfer
bba59424f56 Merge branch 'main' into ben/better-dnd
367a0b809ab editors dnd - towards allowing any untyped editor input
6ba7093a8a1 Fix window/folder/workspace terminology for status bar entry and banner
9638534dd51 Fixes#124735
c1d4497a31e Merge pull request #124664 from microsoft/aeschli/dart
1082913dd01 fix config default value.
433c801dcc3 editors dnd - some more cleanup
cbbdb17b80d editors dnd - rework to allow to set contents to untyped editors
b5b059d2e2b fix typo in files.ts (#124693)
5eec3c86e3c smoke test - disable experiments
85d8f223c70 Remove keymaps from getting started walkthrough
02968bc2503 Call post message to all parent clients
1fd2b4ed1e3 Rename keys and support full context key expressions for check offs
14b31425b90 Fix#124531
bfb94c85fa3 fix build.
c95af9ae460 fix build.
8519a42c5f6 notebook options respond to view type specific cell toolbar position.
e3c8ff57849 try showing the banner only after some files have been opened
561b8364008 testing: fix hidden tests not being un-hidable
ade83f05895 update context based on outputs.
574696980c9 notebooks: update state of messaging spec internally
c4fda24034a testing: fix terminal being shown inappropriately, use beaker
0feee9edefc Remove `instanceof` check
641c2b175ca Merge pull request #124707 from microsoft/alex/ghost-text
e0a52df1695 Merge branch 'notebook/dev' into main
c3d63c1a1b2 fixes#124692
8e9405e7a9b Keep the `ColorPickerModel` alive between repaints in the `ColorHover`
35b43a410b0 Help TS understand the code
ebdd548be22 fixes#124702
c538781d780 add notification if tsserver logs are left on for more than 7 days (#124149)
363e8f25f6f bump distro
244b48af73d testing: additional actions and better theming for peek
a5bbc53e882 Extract more color picker related logic to `ColorHoverParticipant`
4e6fe2dc51e Extract pieces of the Color Picker logic to a new `ColorHoverParticipant`
fd7c71a2eea 💄
c88d5756213 update compact view default value.
1e6b6cb6843 Pick up TS 4.3 final
6a12866c3e9 💄
1abeaf97753 Workspace trust - remote workspace (#124617)
a430e8f9692 Fix settings dropdown hover style Fix#124207
b6acb191fac Fixes#124665.
99bcc8e2458 Show clear outputs only when there is kernel.
9252be4f90a distro
21bf10d4977 Removed unused member.
54ebd819176 distro
f1a5d40aa75 refactor getCallbackEnvironment to return authority by default
5eddbd9d207 Properly support splitting ext profiles
08cf3df7457 Pass object instead of unwrapped args for term create
d7779916566 move buildExtensionMedia to lib
62e8b545f7a missing build
51a5caf3f23 Simplify terminal creation
bf5f7dd5ec1 Get split terminals working
d1ed9c8bf35 Adds proposed API for window.getInlineCompletionItemController(...).onDidShowCompletionItem.
3ff91e7621b Merge remote-tracking branch 'origin/main' into tyriar/profile_api
7f21b1af485 Revert "Allow extensions to create multiple sessions from the same provider (#124640)" (#124705)
4583ef442b0 Fixes bug that "show previous inline completion" actually shows the next one.
8f0589da177 Set suggestionPreviewExpanded to true by default.
9464d14f317 Make notebook renderer activate potentially async (#124647)
5eb64c54ca4 Modified markdown preview nested list styling (#124445)
23e1f261dc8 Remove `HoverPartInfo`
84bc432011c Add `IHoverPart.owner`
31a59b5970d bump distro
e6a1cc38437 Update commands.json
e29194ad0d3 Activation event, register api
6a7c700a12d file working copies - do not throw from ctor anymore when schemes are unexpected
bfccdcb9581 disable fullscreen on ios
764d8fdc3dd test: add test for event Relay (#119070)
a7ab347c2b3 remove old notification
d662cc56549 remove old license notification
c704e43d5dc Check that the /build/ folder compiles
0e3459b0b9f expose Grid.onDidScroll
0a4bfb31c90 fix naming
a628237458f Web: "Open Folder" on empty workspace does nothing
4cda850edf5 disable welcome editor in smoke tests (fix#124674)
0688745e82e Color.Format.Css.format does not return null, so the return type can be made more strict. (#124568)
dff33d73244 use actual object
0d44b63c1c1 fixes#124407
9cba86888c9 update node version in optimize
0a7a69f1908 fix build compilation
9eb4eff77b8 some more jsdoc, https://github.com/microsoft/vscode/issues/124357
d63a69abf3d some enforcement of unique mime types in the extension host, https://github.com/microsoft/vscode/issues/124357
24ca9e0d7c7 Merge pull request #124654 from ValidMelvin/main
a961587ecf7 dart as built-in language
98dc73a3296 unnecessary space in in julia cgmanifest
c97189d9d06 some more :lipstsick: and simplifications
a48d92d0fd8 only pick the first occurrence of an item per mimetype, ignore others, https://github.com/microsoft/vscode/issues/124357
18b6620bc39 fixes#123543
c2cc9b11afe Update README.md
14f61093f43 fixes#124507
69259e84a0a some 💄 for https://github.com/microsoft/vscode/issues/124357
44b470c99ff fixes#124576
47d00215aff editors - cleanup untyped editor interfaces for text capabilities
04f585a580a cleanup interfaces
e12f21f498d Merge pull request #124549 from DonJayamanne/createNb
5e146d257b5 Update classifier.json
d0884f4a1ec webview - clear group listener when it gets disposed
fe1547c251b Merge pull request #124621 from microsoft/roblou/diffNotificationMessage
5cc9ec944d8 sandbox - bring in iframe based webview service
3084319750b Get rid of classes for workbench editor options (#124589)
b82b90c1000 editor options - more 💄 before merge
a18ea9c9ec2 Allow extensions to create multiple sessions from the same provider (#124640)
21162bfb68c Shift execution count label down just a bit
68efd480d0e Explicitly convert properties to strings before uploading
ad41b3a12b5 Mark a few more props as readonly
0a7061ed002 ReadonlyArray -> readonly arr[]
24a23a8ea05 Mark array params in vscode.d.ts readonly (#124599)
7d50ce2061e fix tests
2521499104b testing: add clear test button to peek view title
57af60a7b7f testing: initial test message split view
473cfe28bfa Revert "Revert "Merge branch 'main' of https://github.com/microsoft/vscode into main""
8822790908b Merge pull request #124622 from microsoft/gettingstarted/navigateToStep
7c01395da16 Revert "Merge branch 'main' of https://github.com/microsoft/vscode into main"
7a976501eb3 Merge branch 'main' of https://github.com/microsoft/vscode into main
22576768342 Applied new style to first getting started walkthrough
8ccc1243fc0 Fix notebook unit test
b0f67df65d7 Fix build
bb19c28fe2c Getting started layout polish
2d9aa1868ae Fix broken @tag in settings editor Better fix for #124520
0b2d890624c fixes#124619 #wt
20ce9d57629 fix weird border rendering on windows.
b4f4839da5e fix integration test
6bcd590a706 Merge branch 'notebook/dev' into main
e1731e91048 fix build
f378cff1a8e dropAndDrop -> dragAndDrop
032920fa2ee vfs -> virtualfs
72c4bd69c04 remote menu: sort entries of current remote first
757fd91f040 Hide TestReolver.newWindow when in virtual workspace
cf2a866b7dd test resolver: supports untrusted workspaces
68ba0141fbd fixed notebook focus indicator margin
5926c50d6c4 fix missing markdown height update
33209f104db update markdown height on options change.
7fd8f828c02 fix pwsh profile test failures (#124613)
8f18f3c5ff2 oops
771446e4a21 Make showCellStatusBarAfterExecute not experimental
71cc917274f Add option to show cell statusbar after execution
3ccbe2a6b1b Fixes#124247
789a91a487d wip
db6ffb43b90 fix#124583
c351b396cac Support terminal renaming inline in the tabs view (#124533)
33eb149bada Add reset to default to terminal tab color selector
18b30e5b494 Fix default shell args for debugging
a8b63f564af Merge pull request #124585 from microsoft/alex/ghost-text
19c88bc3c7a editors - more EditorOptions cleanup
5254e33173d Removes unused const.
af0078d44d5 editors - more EditorOptions cleanup
de08dcdf276 remove folding classes first when config change.
c17917e6ba4 Enable notebook renderers on web (#124557)
f2b1f78ad45 editors - remove EditorOptions
a21b824704b Enable notebook renderers on web (#124557)
0249ae32871 clarify that NotebookController#id should be stable, https://github.com/microsoft/vscode/issues/124535
080f8b5e35f editors - remove TextEditorOptions
8adc16d6c50 editors - remove TextOptions#create
b10db1828d0 editors - remove TextOptions#from
9bdb8f88816 editors - remove TextOptions#fromEditor
593a25d41e1 editors - remove TextOptions#apply
741beb8f264 TestResolver, use 127.0.0.1, not localhost
3de3141ff56 Implements basic cycling through completions.
4d4ebbee5fc Clear inline suggestions cache on commit.
f89fc476de3 Fixes colors for dark & white theme.
a78bc1aa96d icon label: supportIcons implies LabelWithHighlights
d4307f8d534 missing validation for top-level token color object
b6551f8e4e3 Workspace trust - no need to call setWorkspaceTrust (#124566)
afc2b062703 editors - start to remove typed editor options (notebooks, search)
64b0c65b8cb editors - fix cyclic dependencies
5880a6a4eeb Merge pull request #124570 from microsoft/hediet/ghost-text-expanded-by-default-setting
ce8b0049619 Merge pull request #124353 from microsoft/chrmarti/localinterface
97d576cb085 editors - more cleanup of large files
43b7187c3df Force inheritEnv in ext debug terminals
0685a4af28b Default bash, zsh and fish to login shells on macOS
a26ecef44b5 Add self to workbench-diagnostics
8a1de4b022a Merge pull request #124567 from microsoft/hediet/fix-after-decoration
0efc03fb168 Removes unused import.
5364a9351fd Adds option "editor.suggest.suggestionPreviewExpanded" to toggle whether suggestion previews are expanded by default.
8bd49ffd50b update distro
eff82a3cef1 rename trusted types CSP from notebookOutputRenderer to just notebookRenderer
ffd1f84ea9f rename notebookOutputRenderer to notebookRenderer, https://github.com/microsoft/vscode/issues/121819
fd212e712ea validation 💄https://github.com/microsoft/vscode/issues/121819
52df34dcf19 Fixes invalid cursor position around after decorations.
eebf8e876ab editors - extract input and side by side to own classes
42e59bd3777 more complete cell info for markup renderers
e11764f8420 add ICellInfo#data to eventually replace bytes
b5fc2b0a398 NotebookCellOutputItem factories allow for metadata, expose "bytes" as data property, deprecate value-property, fix converter issues, https://github.com/microsoft/vscode/issues/123884
856fb393cb4 editors - more dnd code polish towards any editor dnd
f2248508a68 fix tests on windows
ab793cf02ac editors - make dnd code ready to delegate serialisation to respective editors
59f5bbaf253 editors - cleanup editor descriptors and 💄
dee37c6e765 web - offer upload action only for editable folders
e0f751f1287 editors - introduce and adopt capabilities
71d00b3b993 Merge branch 'main' into notebook/dev
0bada155580 more API todos
76523deb91e Bump browserslist from 4.16.1 to 4.16.6 (#124550)
963f30f0871 💄
b1823157d54 Fall back to existing published webview commit (#119295)
286b643ecd2 chore: bump electron@12.0.9
c3c2113c368 Preserve execution summary when converting dto
8173a0e0398 Fix hang when typing incomplete @feature in settings editor Fix#124520
28803975a1a Add @feature/notebook
e9f3fe9f301 rename markdown layout section.
fe41fcc58d6 💄
fe3cab25c5f compute position/width of output action bar.
af14bf673ab remove kernel picker config in menu contribution
1da9f2d2e6a Update subscribers.json
d28d8802e42 testing: add default keybindings
8b9f8595cc2 Remove unused
6cfad71ce61 notebooks: remove deprecated vscode css vars from webview
196e79256dc Add workspacePlatform context key for getting started items Closes#123824
6ed2584f390 fix unit tests.
46ef54c20e9 Merge branch 'notebook/dev' into main
8a41d85d1be notebook open layout settings.
f88c007f6c6 👋 Rachel, 👋 Tyler
d7ead317dca Close#122570
41d869f5514 move nb layout settings out of experiments.
79762396a06 Respect soft revert for custom editors (#115658)
78251f8e016 Update distro
7e0d8cd80ee Merge pull request #124511 from microsoft/tyriar/color_config
9993eb9d1ae testing: improve support for markdown messages
b168ece8de3 markdown: add nbsp to unescaped sequences
b04c9668927 Fix test resolver with trusted workspaces
dbdc7a259e2 added bottom spacing for table in markdown preview (#124385)
5cbd4bc4691 Fix color of single tab status icon
a8d2a3a87c5 Resolve todos
47b7320c1f4 Show tab prefix before icon is ready
a31d9ca6993 Don't show icon until its resolved
f7f6956554a Share profile property schema
17e82898ed1 Remove show all colors, add settings intellisense
a8e7253de09 fix scroll in table widget #wt fixes#124314
2b9f22631f5 Support terminal link word wrapping (#124514)
cdbf46815c6 update distro
fe1af896d5d Use remote reconnection constants (#124517)
2b6564c1015 insert toolbar on the left.
df3c2c48755 testing: move apis to stable
b6dad5d1437 Support any theme color
3c2ffadf29c Dynamically generate terminal color css
9eaba8944ff Support colors in terminal profile setting
7a0ce574da6 Fix test output pty usage
777f09d4569 Fix safe config provider fallback to default
d63078aaf04 Merge pull request #124317 from jeanp413/fix-124127
a8397d15299 Merge pull request #124480 from nrayburn-tech/fix-122348
934a4244e27 Remove overrides from editor service (#124375)
b47569400a3 option to hide terminal tabs if there is only a single group fixes#122348
5319757634f Add fallback webviewExternalEndpoint in code
8f11975c47c Close#119722
d6b5df5e199 retry logic for setting password (#124390)
12fa7b04257 Increase timeout for webview focus change
4c4ec402e7e return early
b314536e56a Move find file references into the search group
18296326a9a Set proper context on new cell output toolbar
28767c88f0a Close#122795
cd8bf7ba536 fix zero height output height.
7bc2019b8d5 Updating pinning test
be8745ac9e0 Fixes#123228 (#123584)
6ee883bfa32 Split href before decoding instead of after
6af49913c2a title for notebook label in notebook toolbar
77ff6eb03bc Add image specific link normalizer (#124400)
e9b8c129155 Add types
a03daaf8506 Merge branch 'notebook/dev' into main
4ba27602740 fix#119214.
8afcdfaad8b extract complex options parsing.
9996e32bc9c testing: improvements when running a previously un-run test
6507d05310f freeze layout config.
6cda8d2373d extract configuration update
f38f3bb8e78 Merge pull request #124044 from microsoft/alex/ghost-text
51aa5402d63 Allow single line decorations that are not at the end of the line
06a86116b73 Fix firstHostSegment logic
827dec3a0df Use better logic for getting scheme and avoid extra decoding for authority
44fe867eddd fix tests
c23c9e448e6 Implement dragAndDrop enable setting
021071ff74a Avoid double encoding authority
22dc518a210 Remove unused type
97bbacd8087 Remove extra call to with
82d18a42fa2 testing: fix auto run triggering test multiple times
17f3a69e243 Allow toSide #119725
86cb6d6b337 Close#119725
4d53b454283 Fix local term warning in remote
5ac4f5f5be4 Fix didn't work
af3fbd968c9 Make sure we decode uri path
84f5040b3db Remove unused member
91fdd52d17b Merge remote-tracking branch 'origin/main' into alex/ghost-text
8b709a2f55a testing: provide test IDs in menu contributions, rather than internal elements
231c155d31f Refactors the inline completion feature.
852b70eafed Try fix (#124384)
c5da7f33a70 Fix wsl detection in profiles tests
b6387e477be Tweak output toolbar position
b78754e1e46 fix incorrect links (#124203)
a0d7f6292e9 Remove a few instances of 'vs code' in d.ts
b0683f58a5a fix#124360
9847783f62d Remove uuid from webview resource uris
79dea51e79a Rewrite webview urls to be more url-ish
8a4bf3081a8 update folding on mouse over
70c87f0db9b Fix#124240
adf68a52d56 editors - some type 💄 around setInput
effac5be7f9 drop as-prefix for ICreateCellInfo
8f093359f07 editors - simplify some serialized editor input
8aff8020dae Improve guard against unexpected URI call
82cd4f027ad fix leaking of NotebookCellOutputTextModel and NotebookCellOutputTextModel#_onDidChange, fyi @rebornix
c5b9b6c48c7 Fix missing async
5807530e3ae more jsdoc
85f518b2552 Add `RemoteAuthorityResolver.getCanonicalURI`
c650993dd39 Add `ResolvedOptions.isTrusted`
49e96be2fc1 💄 prefer `readonly` over `public readonly`
1087876df86 Use vendor-prefix for notebook specific mime-types, e.g application/vnd.code.notebook.stdout
045e5d2f568 Store conflicting defaults in storage service (#124366)
fc0b6f5e5ab fixes#122653
8b25f922b6b builtin support image/gif mime type
61aca51a322 consolidate SVGRendererContrib and HTMLRendererContrib - both were the same...
fb6f0d95fad consolidate JSONRenderer and CodeRenderer
103892d1eb4 fix code renderer layouting issues
32a06b9be2c [typescript] add limited description
bbe3b2266b5 allow to signal limited functionality in virtual workspaces
d65dace8ea0 Merge pull request #123351 from nrayburn-tech/fix-77239
b9f20119393 Bump distro
815f217174a jsdoc for factories, some unit tests, https://github.com/microsoft/vscode/issues/123884
8268bd46e7f 💄
375a15f07e9 Merge branch 'main' into notebook/dev
996dfffd637 enforce proposed API for shortTitle proposal, https://github.com/microsoft/vscode/issues/124355
c5637229dda Merge pull request #124289 from microsoft/command/shortTitle
2b959fdadc1 Listen on local interface only (#124350)
494e827e351 expose output item bytes to renderers and provide util functions: asText, asJSON, asBytes, asBlob, fyi @connor4312, https://github.com/microsoft/vscode/issues/123884
100a70731db SVG images are not render in the tooltip (fix#123688)
949f60498ae Merge pull request #124346 from microsoft/ben/pfs-promises
063be236f34 scm do not auto focus input box on iPad
f19843b0a3e editors - some 💄 and tests for workspace trust in openEditors
9086ecd9f08 Renames Suggestion to Completion and cleans up API
a6f7aa5e4c5 handle workspace uris
73c6f34f9ec Do not recognize Debian's .install file as a shell script. Fixes#124295
90b9e04f951 try to use suffix for view type when creating untitled notebook, fyi @brettfo, https://github.com/microsoft/vscode/issues/121974
779f9876bc0 debug: properly read the debug.saveBeforeStart respecting activeEditorMode
79e642a5ddb move and simplify renderer registry
bbc293839d4 declare IRenderMainframeOutput#dispose and adopt it for builtin renderer
55059ffe214 todo
e6dd819bf08 first cut of "bytes only" output items
4b5db9098c2 smoke test - disable failing search test
17459a4abd1 notebooks - add test for NotebookWorkingCopyTypeIdentifier
43b51ce8e76 notebooks - fix type identifier compute
703ca68ea6b fix typo
b8fe2db4392 fileworkingcopymanager2 => fileworkingcopymanager
0e58bef15cd file working copy => stored file working copy
78fbc51ad75 Close#124325
633ea857088 notebook working copy - some cleanup before refactorings
d0c5675f6f2 editors - less group.openEditor usage
e66c62f38a2 Generalize smoke text
89c8f919884 Add smoke test for #124146
4fd4e10e99e Fix#124146?
bfb822e4cf0 fix#124284
0989449a055 Fixes#124127
2f2b6b528d0 testing: show duration for test results, handle state computation better
3e5faf69c14 Remove console.log
9e04a67d125 Switch to use vscode-webview.net as default webview endpoint
acc07bd9591 Mark properties readonly
bf4c7042a3a cell toolbar overlap with notebook toolbar.
f29bd6f18dd Dont autofocus input on ipad Fix#122044
5b0fc94e6af fire event when trust is change in empty window #wt
c1b809ef221 Fix#124307
cd27f1fcb91 update text for loose file button #wt
07a2aab8f2c Remove duplication around checking isRemote
55c2fc5604e add setting and checkbox for untrusted files #wt
d3f040fe017 Fix notebook cell statusbar items duplicating. Cancel tokens on dispose, and dispose the timeout properly
894b7782cce Merge branch 'notebook/dev' into main
9627b4ea63e Emmet identify CDATA for wrap, fixes#123136
97740a7d253 Revert "Revert "Revert "Closes #122433"""
ddf8cc42616 Dispose CKS
4c1474b458d debug: finalize parentSession
514d3162bc8 Persist title source and set after reconnect
604b27db1bf Fixes android screen-keyboard backspace issue.
af0c01b1e36 Short title for command contribution.
18ea5ac15e6 Use isRemote instead of remote authority to determine where to load from
6f2381e33d7 Terminal tab icon API (#124004)
d0cea47ae39 Merge pull request #124194 from microsoft/dev/t-andreamah/outline-reveal-editor-switch-fix
dae2a9d4ebc do not auto focus on ios extensions input and keybindings
6b097212e69 Revert "Revert "Closes #122433""
bd934d89ea0 Use untyped editors for workspace trust
59abb887f6c notebook: address messaging api changes
5b17052a5b3 Fix webview tests
2270c36cff9 Use extension location instead of remote for asWebviewUri
9ffac783be4 Merge branch 'main' into dev/t-andreamah/outline-reveal-editor-switch-fix
22f7f470b69 Apply Logan's suggested changes
0b355ffc89b notebook: fix certain kernels/output not working
f75152cd815 notebook: fix certain kernels/output not working
ab5df442eb3 Merge pull request #123727 from microsoft/dev/t-andreamah/markdown-static-preview-scroll-state
18c254987cd Merge branch 'main' into dev/t-andreamah/markdown-static-preview-scroll-state
2ab6e9cdd26 Debounce invoking the inline suggestions provider
99be6bad750 Add a command to hide the inline suggestions
62bbbcc7bf4 Remove log
875ada9bfad experimentalUseTitleEvent -> titleMode
76154be4d4b Truncate Windows path from sequence, do title handling based on remote OS
8a6cc9cba7c Fix dynamic title for reconnected terminals
74849362b2e Render only one line of ghosted text by default
713d5861404 💄 less casts
1718a6e2ac8 Hide hover on target element(s) click
224b0f22922 Fix category and max-memory option args
5ae8db2ae0e Render the suggest widget above when rendering a multi-line preview
8c194abb5e7 Do not shrink the additional lines once a shorter suggestion is displayed
da4fcc266fc file working copy - avoid ugly casts
aea7c1a3343 Merge pull request #124196 from microsoft/tyriar/dnd_2
e538fd90c0e Hover hover when context menu is shown
4a679df5312 Hide ghosted text when it wants to be displayed in the middle of a line
e91d5475acf Merge remote-tracking branch 'origin/main' into tyriar/dnd_2
c6d2254b2fd Create a `InlineSuggestionsSession` also when showing suggestions
b5a9a026068 Invalidate current suggestion based on cursor position
49339aba513 Only start a session after a content change (with debouncing)
fdbcef0a842 Add `editor.suggest.showSuggestionPreview` to turn on/off inline suggestions
c8410ece147 node-debug@1.44.28
234136b6c28 💄 acceptsNonWorkspaceFiles -> acceptsOutOfWorkspaceFiles
91bf9326334 fixes#123469
2cc3b168fde Do not force the instantiation of the `SuggestWidget`
1543754dcab Tweak loose file dialog warning
669b0b3f719 working copy manager - clean up some types add some new APIs on manager2 for unified access: - get(resource): working copy - workingCopies: workingcopy[] - onDidCreate: Event<working copy>
3234403c5d2 Merge pull request #124191 from microsoft/aeschli/virtualWorkspacesInExtensionView
19574448d0e Fix rendering snippets
5f7cfa3a54e Introduces a GhostTextWidget model to enable data binding.
a6f89f58a9e Workspace trust - empty workspace (#123811)
0c996a39b65 Implement consolidated output toolbar
f583b4b3367 Merge branch 'main' into notebook/dev
29c61570a5b Revert "Closes #122433"
34180ac9bef Remove code allowing multiple ids for a command
35eafb78732 Add sort imports command
e65a227c829 Test using readonly[] syntax in vscode.d.ts
1ddc623e585 Simplify logic for webview resource uris (#123740)
93be0a6fa03 Update simple service
46a1ca78249 notebook: initial renderer communication
1ecba0426a9 Make `reload webviews` support webview-views
b3ed595dde7 Extract isRequestFromSafeContext
39d1a94e86f Allow loading svgs from xhr
4fbd548d72c Merge branch 'main' into dev/t-andreamah/markdown-static-preview-scroll-state
40592a274c9 fix test suite.
4fcc2720826 use custom shield dialog #wt
a65d55e9c48 Strict null fixes in webview
f822083cb70 Check `defaultPrevented` before showing built-in webview context menu
f594bb47e59 removing more unecessary whitespace
41606da2dc0 removing unecessary spaces
920c9a3a0d5 improve banner for virtual workspace
9ee1906718d pr feedback and combining prevEditor info for preview and non-preview
f433b4781a0 Pick up TS 4.3.1-rc
d921cc41fc0 Update markdown grammar
1642d4cd0ad Merge groupBy and groupByNumber utils Fix#123569
c1d6e44262e Avoid listener leak warning due to reusing cancel token for many RPC calls
0d338068034 Add suiteRepeat test util
5b3cf7cc2ae Merge branch 'notebook/dev' into main
c936add6013 hide kernel status bar item if it is already rendered in notebook toolbar.
b8c7d75e465 Avoid illegal line numbers in case of undoing a completion at the end of the file
63348b4a395 Improve contrast
de89605adfe Do not invoke provideInlineSuggestions when just moving the cursor
08f4a36de15 notebook toolbar container display none by default.
6956a38b674 Have the `InlineSuggestionsModel` listen to events directly
26194faa8be fix focus indicator default value.
2fbf0cd977e Respect the suggest widget only when there are suggestions
8c27c1f257b Update list focus highlight color in standaloned editor Refs #123703
0ec51535fa2 Rearrange actual group splits, not just instances
25bdb018483 Add theme key for terminal dnd
15f772fae32 notebook: include script url in back compat patch
b79825e7c4e Clean up
a3e72ce1d06 Reinit dnd observer after reattach
72b01fea379 Avoid selecting accepted text
d7f6d7e735d Fix markdown cell drag indiciator having wrong position in scrolled documents
de1c8ad93a9 Give clearer names and add comment
40a26850575 Fix shift for markdown cell selection only selecting current cell
3c417665643 Fix strict null errors in webview main
b8a0123cfc9 Fallback to fetch if localhost resolve fails
f0ef8dfd913 Add explicit null typings
c63ac2f6388 Use searchParams to get id
c13c6d8e468 Throw error when trying to reload/navigate within a webview
05f83d95d2b Fix issue reporter not debounce submissions (#123340)
8e87fea2f15 Support dragging to unsplit
40fbf5d915b insertToolbarPosition
e071cefa4df Support creating splits in different groups
f1a372c15f8 Support rearranging splits
2b30689ab00 Close#123935
25a12c75c5a use dummy uri
568bb89fadb Merge remote-tracking branch 'origin/main' into tyriar/dnd_2
5266a5fae3f Improved hover feedback
44d135e94f3 Merge branch 'main' into dev/t-andreamah/markdown-static-preview-scroll-state
f4e05837d01 Remove custom height, use default from menu service #123869
134d9b187bb Closes#122433
a796ebfb8b4 update actions column width #wt
f36c7a0860b Terminal dnd feedback
3804c98d6f7 fix padding for table #wt
5442f154ef6 fix issue when not connected to remote #wt
6356613d809 Update according to suggestion
49187c4e785 Replace flush with setFlushOn with loglevel info, fixes#123856
45e5c50dbfd Partially implement terminal drag and drop
283180b64b2 don't show action icons all the time wte
9716c27e068 slightly better uri for untitled notebooks, https://github.com/microsoft/vscode/issues/121974
1256b258a6f Honor the selection suggestion in the suggest widget (when it is visible)
d553c21d5e0 fixes#123869
52c8fced385 focus indicator border or gutter
81c6572671c added default editor override for symbol reveal
9326ded502b show extensions limited due to virtual workspace
b02acf39081 Merge pull request #123738 from microsoft/dev/mjbvz/unify-renderers-api
284c21a588e tweak terminology for wt entries
9a322a0d62a use folder terminology due to windows/linux limit
dc8844925ab Part of #122996
b63ad124d2e mark untitled notebooks as dirty by default, don't hold on to untitled notebooks eagerly, https://github.com/microsoft/vscode/issues/121974
09ab8ad2029 wip
eaf5a49200b status - update description of `name` property
1f912dfa3d5 Fix#123617
ff6d8771c94 fixes#124085
88d9a3aaf5c Support command links in trusted tree hovers Fixes#123723
eb5874237eb Improve task terminal status message Fixes#124062
53b58c89d44 Fix loop in port forwarding
37a11814295 do not include non configured deprecated restricted settings
53352a29540 add API to open an untitled notebook, https://github.com/microsoft/vscode/issues/121974
b7058688ad3 Fixes#124143
a0819ed4fea Add ending period to --sync
faa3146a310 Add ending period fto prof-startup
159479eb5ae Allow to show status bar entries with an id and name (fix#74972)
f23f011f552 untitled - clarify resolve methods
734b79dadae fix#124102
08618458110 fix ExtensionRecommendationsService test (for #124119)
e5bf21393bf Additional navigation keys
99f3a3726eb Additional details in the aria label
06ee4764a4c untitled file working copy - test 💄
1cc2f71a1ff untitled file working copy - tests for new unified manager
8c6db097ac7 untitled file working copy - add new manager that unifies file and untitled working copies
bc37b284431 untitled file working copy - shared dispose handling
0d92cb9dd88 untitled file working copy - poperly resolve target
37fbfa61251 untitled file working copy - set visibility
5835fbc9f1d untitled file working copy - some code 💄
a47fc96766a untitled file working copy - fix tests
1edef157350 untitled file working copy - wire in save support
8173bd132fb untitled file working copy - add workingcopyservice#get
a3ee06b3e03 untitled file working copy - extract common super type for manager
02c72e2bd64 untitled file working copy - extract reusable interfaces
44dec56af8c untitled file working copy - 💄
103ba104a56 untitled file working copy - tests
9f990bbb6ec untitled file working copy - first cut manager
4173ced659c untitled file working copy - first cut
825f6c7ab84 valide URIs created via from, https://github.com/microsoft/vscode/issues/121198
b1349b64a64 update color registry names for inline values
677f2a3be12 remove excess whitespace
0e4159cb7aa fix localization key/description for debugInline colors
df308a9a81b add color customizations for inline debug values
a9c5e37ea0d fix#124102
c5611075cad fix ExtensionRecommendationsService test (for #124119)
501b691dd06 Additional navigation keys
6034e35043e Additional details in the aria label
e878f5a3ee4 Add support for untitled file working copies (#124120)
13aff6aa7d3 untitled file working copy - test 💄
a48180b6e6d valide URIs created via from, https://github.com/microsoft/vscode/issues/121198
f22eb7ee29d untitled file working copy - tests for new unified manager
5f6d4786857 Merge pull request #123065 from nrayburn-tech/120936
2ecf53bf79a untitled file working copy - add new manager that unifies file and untitled working copies
32d4df9b823 untitled file working copy - shared dispose handling
3a1b950c147 Merge branch 'main' into ben/untitled
97518f5e869 Copy testRepeat helper to extension integration tests
721cdd6472b Fix data loss when renaming custom editors (#124057)
bbb89b86f56 remove hover bg color on notebook toolbar icon.
8f140828107 fix mouse click double background
c59f782cc7d adopt table widget for workspace trust editor
616e0fd9927 refactor: polish
4815c9e9954 fix notebook toolbar scrollbar
a069768c9b6 Remove disposing of editor input in override service
0026416a7ea move showDeprecated suggest to be a CompletionOption option
2a9f02348f6 Make notebook toolbar cell visible on click (change notebook.cellToolbarVisibility default)
df93e53dfb6 Merge branch 'notebook/dev' into main
4486788c81c allow the left toolbar to overflow.
d501abe922d contribute actions to the toolbar.
bf9f6837d14 NotebooKernelActionViewItem accepts notebook editor widget.
9063312f9c1 keep ref from cellVM to outputVM for now.
5913c5b070e Merge pull request #124125 from microsoft/tyriar/join_terminals
9b1ba3f31f0 Adds Memento.keys #87110
8b726fc9f51 update color registry names for inline values
25873bb34c4 Adds Uri.from #121198
5c4fae91762 Merge remote-tracking branch 'origin/notebook/dev' into dev/mjbvz/unify-renderers-api
79bd573d9e4 Move OpenIssueReporter api command registration out of extHostApiCommands (#124068)
73cce9a080e Fix vertical terminal margin left/right
e657d422814 debug: expose parent session on DebugSessions
25967171f17 Delay workspace recommendations as remote extensions installations are ongoing For #124119
b84a8c4215a Re-enable selectionNavigation in terminal tabs
84c23ab5bd7 debug: bump node-debug2 version
b3c56f52813 testing: bad rendering of inline decorations for markdown messages
2bc36bec9dc breakpoints select on stop
71f4934a0c6 use enum
21e0fab8b87 Don't show join in command palette
1243a51d59b Support join terminals
4e7029f593b workbench web api: builtinExtensionsFilter
34775b7d660 add requestOpenUris api
fc76d8b6b44 fix#124113
455a8b6949b List focus colors are too dark (Fixes#123703)
aee486cd293 untitled file working copy - poperly resolve target
e02714b5775 Polish for some workspace reuse (#123519)
daaa8a98bf3 debug: focus breakpoint on debug stop
f113243a516 Close and reopen tunnel when protocol changes
960af85cd93 Reduce number of calls to get port attributes
fb9d3f3e501 Fix all ports showing as user forwarded
4726abdcfa8 explorer: do not remove dotes at end of filenames before validation
026e6239be9 Merge pull request #123895 from danielgary/wmic-replacement
8f78655dbe3 untitled file working copy - set visibility
615bb082c11 Tunnel -> Port
0f5ceb2f1db Add context menu for tunnel protocol Fixes#123750
414e5dbf1f8 install additional debuggers only when at least one debugger present
1c6e481373e untitled file working copy - some code 💄
b0272010af8 Disable bell sound completely
f3cca6236e0 remove todos about ipynb cell ids
3f6e29238c5 Show status icon in tooltip
f8054f260ee Merge remote-tracking branch 'origin/main' into alex/ghost-text
2d80cb75c4b Fixes#124038: Render a `<span>` for each `::after` decoration at end of line
cdeaebbd3be Show info terminal statuses in narrow view
3467760399e Merge pull request #123867 from hediet/hediet/fix-123178-leading-ws-in-wrapped-line
71e729d1222 Merge pull request #122785 from tejasvi/patch-1
1b591be32b2 Merge remote-tracking branch 'origin/main' into pr/tejasvi/122785
49ded4d7e11 Fixes#122825: Dispose proxies when the extension host terminates
7c07550dbc5 Log errors encountered during deactivate
e4159c8f892 Add protocol to portsAttributes Part of #123750
b2c32980765 untitled file working copy - fix tests
b94b2d2cf01 untitled file working copy - wire in save support
fe2761a026e untitled file working copy - add workingcopyservice#get
956347c4edc better logic for "notebook open/close, notebook ready when cell-document open event is fired", https://github.com/microsoft/vscode/issues/123655
191ebfabe65 Merge branch 'main' into notebook/dev
2f2f8d7b0f4 untitled file working copy - extract common super type for manager
102433ffbef untitled file working copy - extract reusable interfaces
27d250fa0da Merge branch 'main' into ben/untitled
07cf22f6814 Fix ctrl+enter in code cell editor
45aafeb326d fix#123816
fd7d84a392c Merge branch 'notebook/dev' into main
d51c7f66306 add experiment global toolbar.
079be5f0fd6 remove run all cells constraint
0031e783518 Store tab list width in global storage
e270ff06255 Make default horizontal tabs width 120px
1bd7c329fb2 Move tabs list size constants into const enum
e0ff23866ad 💄
49870fb9fca More accessibility improvements
47c96324ba6 Banner accessibility improvements
7c4a2cb6cc6 Add args to source profile schema
2bf81674ee7 refs #123976
a3fe790a45f Explicitly flush OutputAppender #123856
2c91cc8a7d2 Clean up decorations when hiding ghosted text
ac85998e016 Pipe language edit counts into CES survey (#124006)
22350f3dc54 Change the order for ghost text decorations (use a class name that sorts before)
9916815a187 Merge pull request #124039 from microsoft/tyriar/121278
74372fe5663 Fixes#124038: Render a `<span>` for each `::after` decoration at end of line
a1646e35c36 Remove try catch, clean up
6353aaac13a Share code between dispose instance and remove instance
9719ae6e725 untitled file working copy - 💄
1371a8e0d49 Bulk-edit veto dialog use the correct reason
327690a3cb9 Unsplit terminals
32db232a53a Scaffold ghost text
63b6e6c51d7 untitled file working copy - tests
45769b83189 debug issues assign to Andre
f2640c349b0 untitled file working copy - first cut manager
38dda41eaa0 Merge pull request #123474 from microsoft/tyriar/local_wording
e8dbf0cc9a1 Improve wording, separate for remote and virtual
befed354684 Merge remote-tracking branch 'origin/main' into tyriar/local_wording
509926497c8 sandbox - make CLI commands a native host thing (#123899)
dc85211b159 untitled file working copy - first cut
a6db2795e36 Fix elevateIfNeeded port attribute Fixesmicrosoft/vscode-remote-release#5065
736896527ce Improve npm trust message
d4ca8b7f3a3 icon contribution: add requires (for #117437)
b2273e80745 Merge remote-tracking branch 'origin/main' into main
d8b70e74a88 cleanup link styling
46596757d41 fix icon contribution id validation (for #117437)
9ef2514d701 Merge branch 'main' into pr/121835
aad39f1ea63 untitled editor names 💄
7320c8514c9 status bar - fix compile errors
381e7c2d0bc status bar - use secondary priority as sorting criteria (#123827)
da374067139 state service - do not log expected file not found error
82767cc1d7b add aria description for workspace trust editor refs #122537
cfa977755b1 fixes#122537
5a5d1bc91f8 Add provider label in auth menus (#123922)
ff59c24225a fix#123709
87476adaee7 Merge pull request #123919 from jeanp413/fix-123892
217261cf739 Mitigate #123856
055319001c6 Fixes#123892
802ba30de2e allow managing workspace trust from extension icon
f3277a1e1e9 fix markdown editor position for compact view.
f0e57a781af fix#123819.
12f273e3e07 fix#121056.
6d79421b349 Merge branch 'notebook/dev' into main
7b9bb17ce56 refresh styles after kernel is changed.
e5c7b899cf1 compact view.
d0b6c2d2276 fixes#123858
40d5e6796fb fix#123700.
baccddcd459 Use Windows mode if build # is <= 19041 (#123725)
dcfdc8d2e4e Merge pull request #123429 from jeanp413/file-drop-terminal-tab
18313e82b00 update markdown folding icon padding
fcde284705f Merge pull request #123246 from vibhavsarraf/terminal_link_normalize_path
109f7feb3b0 Trim leading ../ or ./ from quick access query
4e79908dcff Merge remote-tracking branch 'origin/main' into pr/vibhavsarraf/123246
42b1e81d5d5 Merge remote-tracking branch 'origin/main' into pr/vibhavsarraf/123246
e5f3dd9ef82 simplify default view styles.
f4691de9552 remove legacy comments.
1ccd6a07946 Merge pull request #123910 from jeanp413/fix-123891
36e2b3176ee Update distro
c492f13efc4 xterm@4.13.0-beta.1
dff22a07121 Fix double border on vertical splits
c33420d9872 Fixes#123891
8c0ba0b5d79 [remote menu] add command Install Additional Remote Development Extensions. Fixes#123905
6510b614c10 Consistent casing for `Install Additional ...` quick pick entries
22d7f210f79 Fix full path flashing in terminal tab
4946fee0dd1 Alt+click to split single tab
f8a3cef533f debug colors: compress css selectors
828e83defca Merge pull request #123726 from suzmue/hoverText
0f7439bf2e7 Middle click to kill single tab
09b77ba6d8b added comment and removed empty lines
89b4b6c90d1 Replaced wmic call with windows-process-tree
c6525283099 Remove dialog in ChangeLocalPortAction Part of microsoft/vscode-remote-release#4958
c8b4656197f Add requireLocalPort property to portsAttributes Fixesmicrosoft/vscode-remote-release#4958
6aec850c759 Multiroot workspaces on Windows with forward slashes are treated as relative paths. Fixes#123871
27966a2521d Merge pull request #123833 from gjsjohnmurray/fix-123831
b540874d21d Incorporate task terminal status feedback
67133f048d5 Add tooltips to task status Fixes#123730
5446…
* chore(deps): fixup lockfiles
* chore: restore .gitignore
* fix(vscode): redo extra extension paths
* fix(vscode): add setSocket to PersistentProtocol
* fix(vscode): restore server files
* fix(vscode): restore typings
* fix(vscode): restore proxy_agent.ts symlink
* fix(vscode): use ptyHost.getEnv
* fix(vscode): uriTransformer refactoring
* fix(vscode): add new terminal listener
* fix(vscode): fix + enable layering lint
* chore: format file
* Squashed 'lib/vscode/' changes from 2064d4c301c..b4c1bd0a9b0
b4c1bd0a9b0 Merge pull request #125817 from microsoft/aeschli/125786
33d504f8455 clarify nls comment
d5fbc9f45fa fix localization strings with `command:`. For #125786
f8b576c274b trust the empty window by default (#125788)
c5e845182bf Dont use exp service for choosing first content behaviour (#125780)
78429fb8736 Use interpolation to keep special syntax out of strings to be translated (#125790)
47c2272a70d candy/125576 (#125787)
1e7b9242e89 Merge pull request #125773 from microsoft/roblou/fix122768
134cc8b7711 Update values for keybinding query context to match real keybindings. Fix#122768
26317e8dccd fixes#125722 (#125768)
629091038fc allow a 3rd character for first part of language id (#125761)
5e6379fd7a9 Merge pull request #125741 from microsoft/tyriar/r157_125729
098c99e2237 Set terminal title in ctor for custom pty terminals
c7119ae8b63 Merge pull request #125679 from microsoft/isidorn/fixRunMenu
0ef242cb5cc Merge pull request #125728 from microsoft/joh/fix/125716
c188ea91a64 make sure to transform notebook data metadata
e27b85b9958 fix#125702 (#125703)
008c3ecf4cd Port fix for git diff paths in webviews to 1.57 (#125704)
c926ecf021a Clone object before applying migrated setting (#125696)
6d4a8af5cfc Hide terminal menu if no process support is registered
2c9833b549d better context key for run menu
bf84ee619e0 #125527 (#125651)
2c4bd4f2b3c Merge pull request #125654 from microsoft/hediet/reduce-flickering-of-inline-completions
2e9321da48b Merge pull request #125657 from microsoft/hediet/adjust-inline-completions-color
b915673f7b2 Fix#125569 (#125650)
1c5f331fa08 Merge pull request #125653 from microsoft/hediet/fix-no-focus-after-accept
9bde5523814 Adjusts inline completions color. Fixes#125646.
7b724945310 Reduces flickering of inline completions & fixes context key.
5ba2e425f31 Fixes#125524 by focusing editor after commit.
6cdc6160057 Merge pull request #125649 from microsoft/joh/fix/125550
b3d2cd902b7 re-throw and dispose reference when resolving failed
dcc182fe3d2 Revert ESBuild updates and fix#125518 (#125574)
bdafbc3b5f2 Merge pull request #125552 from microsoft/roblou/disableRunToolbar
ce8505d5580 Add "hostRequirements" to schema (microsoft/vscode-remote-release#5144)
de98ebbc81e only show notification once per window reload (#125548)
31a11d3b786 Disable consolidated run button by default. Fix#125544
git-subtree-dir: lib/vscode
git-subtree-split: b4c1bd0a9b03c749ea011b06c6d2676c8091a70c
* fix(lib/vscode): restore product.json
* fix(vscode): backport resources hotfix
* refactor(lib/vscode): reorganize code to fit vs rules
* fix(ci): remove stray symlinks
* cleanup(lib/vscode): format .gitignore
* chore(vscode): fix formatting
* refactor(vscode): remove parsePathArg in envService
* fix(vscode): add missing terminal commands
* fix(vscode): update .eslintignore paths
* chore: document uriTransformer hacks
* fix(lib/vscode): restore patches
* fix(lib/vscode): restore more patches
* Squashed 'lib/vscode/' changes from b4c1bd0a9b0..507ce72a446
507ce72a446 Merge pull request #126577 from microsoft/sandy081/recovery/fix125970
3f4baf46c6f move focus check while converting
d95f6de445f - migrate only from active window - respect old value while reading
08bca485860 Fix race that causes auto port forwarding setting to be ignored (#126481)
2650c2e51d3 Merge pull request #126413 from microsoft/inline-suggest-prevent-auto-suggest
45c13db2195 Do not auto-trigger suggest when typing exactly the inline suggestion
20a512db915 Fix#126178; fixes markdown scrolling bug
3300069a2b7 separated editor scroll info by type and consume entry on access
92c259a77f5 Update package.json (#126283)
d21d7d9d3e8 Port fix#126057 (#126215)
d9b1d6b8c17 Merge pull request #126234 from microsoft/tyriar/157_125985
a16b9181915 Pass config to external terminal service
6bca69fc6fb macos - restore Cmd+W to close window when no editors opened (#126045)
b9f4ab00ba8 linux - restore `--no-sandbox` for startup scripts (#126028)
ca66517cf90 Revert back to Electron `12.0.7` (#126026)
6370d95598d Set visibility of markdown cells before rendering it (#126099)
git-subtree-dir: lib/vscode
git-subtree-split: 507ce72a4466fbb27b715c3722558bb15afa9f48
* fmt(docs): remove trailing whitespace
* fix(test): fix e2e tests
* chore(deps): update vulnerable vscode deps
* fix(test): clean up terminal test
* Retry menu navigation in e2e tests
* Update VS Code loader with trusted types policy
* Update build resources with renamed file
* Restore proposed API patch
Without this it is impossible to enable the proposed API for extensions.
To replicate the issue run a build or search for enableProposedApiForAll
and set it to false (it is set to true during development) then try
running an extension that uses the proposed API like the GitHub pull
request extension and look for an error in the browser console.
* Restore async storage write patch
This issue can be reliably replicated by creating an extension with the
following code:
await context.globalState.update("key", "value")
vscode.commands.executeCommand("workbench.action.reloadWindow");
If you do this the global state will never update. This can be seen by
logging with a notification or browsing the global state manually.
This is probably a bug with upstream because without this patch it is
impossible to wait for the actual storage write.
This actually required more patching than we previously had; I don't
think it was working in 1.56 either.
* Remove duplicate telemetry service registration
We no longer comment out the telemetry service in the workbench so ours
is redundant.
- logTelemetry call was slightly wrong (uses an object rather than an
array)
- No longer need the telemetry channel since the default uses the
extension environment channel.
- No longer need disableTelemetry since we don't create the setting.
This does mean the setting is not toggled off when the disable flag is
set (it does of course still prevent telemetry) but that appears to be
the same with upstream.
* Use service in terminal channel instead of interface
This allows us to avoid checking whether some functions exist when we
know they will. This means we can't use this for other pty services like
the browser one but that won't be necessary as this strictly runs on the
Node end anyway.
* Rename uri transformer using camel case
* Update yarn.lock
I got changes when I ran yarn so I reverted to 1.57 then ran yarn again
and here is the result.
* Restore .yarnrc patch
Delete .yarnrc and update the build process where that file is read
since it no longer exists.
This should resolve the issues we keep having with mismatched Node
versions. This can be consistently replicated by spinning up a new
environment (no previous modules or cache), running yarn, then running
yarn watch.
Also use process.versions.node instead of process.version as the latter
has an extra v at the beginning.
* Remove gulp-tar dependency
It's pulling in a security vuln and we don't need it anyway.
* Cancel current menu navigation on retry
* chore(docs): update docs with patches
* chore(ci): increase timeout to 15 minutes
Co-authored-by: Asher <ash@coder.com>
There's a chance this function can be called with a path that is not a string.
To catch that, we check if path is of a different type and throw an error if it
is.
This also adds a couple tests for this function.
This can be used to escape any special characters in a string with HTML before
sending from the server back to the client. This is important to prevent a
cross-site scripting attack.
Previously, we used argon2 to verify the hash with the password.
If the hash didn't start with a $, then it would enter the catch block.
Now we check the hash before trying to verify it and we also throw an Error if
the verify fails.
This makes the isHashMatch function more robust.
It seems a dialog sometimes appears asking if you want to lose
changes (even though we have no changes; it seems based on timers in
some way). Playwright defaults to dismissing them (so quickly you might
not even see them) so accepting instead fixes navigation to the logout
page getting canceled.
My thinking is that this may reduce the cognitive overhead for
developers writing new test suites.
This also allows us to perform different setup steps (like ensuring the
editor is visible when authenticated).
This uses the current dev build by default but can be overidden with
CODE_SERVER_TEST_ENTRY (for example to test a release or some other
version).
Each instance has a separate state directory. This should make
parallelization work.
This also means you are no longer required to specify the password and
address yourself (or the extension directory once we add a test
extension). `yarn test:e2e` should just work as-is.
Lastly, it means the tests are no longer subject to yarn watch randomly
restarting.
This PR refactors part of vscode.ts and adds a function to get the NLS
Configuration.
This makes the code more readable and easier to test.
And it adds multiple tests for this part of the codebase.
Node needs be v14.x not greater. If installing the standard version ‘brew install node’, both ‘yarn’ and ‘code-server’ (release version) complains.
Newest version is v16.x so we are pretty far behind.
There was a case with the hashed-password which had multiple equal signs in the
value and it wasn't being parsed correctly. This uses a new function and adds a
few tests.
Since this checks if they are authenticated using the hash/password and it's
async, we need to update authenticated to be async, which means we have to
update it everywhere it's used.
* chore: update CHANGELOG
* fix: use openFolder in welcomePage
In 1.56.2, they modified the WelcomePage use of OpenFileFolder in
src/vs/workbench/contrib/debug/browser/welcomeView.ts to only use on macOS +
Desktop (i.e. not Web). This caused the "Open Folder" to not work on macOS +
macOS-like environments.
Instead, we use OpenFolder which is a registered command and works as expected.
New extraInitContainers configuration added.
It allows to pass template with a list of containers to execute before
main code-server container started. Main container will only start when
all init containers are completed (exited with 0 code).
Additionally changes the way extraContainers is used - instead of
toYaml use tpl, because this allows to
reference any values from extraContainers string.
description:Please search to see if an issue already exists for the bug you encountered.
options:
- label:I have searched the existing issues
required:true
- type:textarea
attributes:
label:OS/Web Information
description:|
examples:
- **WebBrowser**:Chrome
- **LocalOS**:macOS
- **RemoteOS**:Ubuntu
- **RemoteArchitecture**:amd64
- **`code-server--version`**:4.0.1
Please do not just put "latest" for the version.
value:|
- Web Browser:
- Local OS:
- Remote OS:
- Remote Architecture:
- `code-server --version`:
validations:
required:true
- type:textarea
attributes:
label:Steps to Reproduce
description:|
Please describe exactly how to reproduce the bug. For example:
1. Open code-server in Firefox
2. Install extension `foo.bar` from the extensions sidebar
3. Run command `foo.bar.baz`
value:|
1.
2.
3.
validations:
required:true
- type:textarea
attributes:
label:Expected
description:What should happen?
validations:
required:true
- type:textarea
attributes:
label:Actual
description:What actually happens?
validations:
required:true
- type:textarea
id:logs
attributes:
label:Logs
description:Run code-server with the --verbose flag and then paste any relevant logs from the server, from the browser console and/or the browser network tab. For issues with installation, include installation logs (i.e. output of `npm install -g code-server`).
render:shell
- type:textarea
attributes:
label:Screenshot/Video
description:Please include a screenshot, gif or screen recording of your issue.
validations:
required:false
- type:dropdown
attributes:
label:Does this bug reproduce in native VS Code?
description:If the bug reproduces in native VS Code, submit the issue upstream instead (https://github.com/microsoft/vscode).
options:
- Yes,this is also broken in native VS Code
- No,this works as expected in native VS Code
- This cannot be tested in native VS Code
- I did not test native VS Code
validations:
required:true
- type:dropdown
attributes:
label:Does this bug reproduce in VS Code web?
description:If the bug reproduces in VS Code web, submit the issue upstream instead (https://github.com/microsoft/vscode). You can run VS Code web with `code serve-web` (this is not the same as vscode.dev).
options:
- Yes,this is also broken in VS Code web
- No,this works as expected in VS Code web
- This cannot be tested in VS Code web
- I did not test VS Code web
validations:
required:true
- type:dropdown
attributes:
label:Does this bug reproduce in GitHub Codespaces?
description:If the bug reproduces in GitHub Codespaces, submit the issue upstream instead (https://github.com/microsoft/vscode).
options:
- Yes,this is also broken in GitHub Codespaces
- No,this works as expected in GitHub Codespaces
- This cannot be tested in GitHub Codespaces
- I did not test GitHub Codespaces
validations:
required:true
- type:checkboxes
attributes:
label:Are you accessing code-server over a secure context?
description:code-server relies on service workers (which only work in secure contexts) for many features. Double-check that you are using a secure context like HTTPS or localhost.
options:
- label:I am using a secure context.
required:false
- type:textarea
attributes:
label:Notes
description:Please include any addition notes that will help us resolve this issue.
git commit -m "chore: updating version to ${{ env.VERSION }}"
git push -u origin $(git branch --show)
gh pr create --repo coder/code-server-aur --title "chore: bump version to ${{ env.VERSION }}" --body "PR opened by @$GITHUB_ACTOR" --assignee $GITHUB_ACTOR
# NOTE: this job requires curl, jq and docker
# All of them are included in ubuntu-latest.
docker:
runs-on:ubuntu-latest
steps:
- uses:actions/checkout@v2
- name:Checkout code-server
uses:actions/checkout@v6
- name:Run ./ci/steps/push-docker-manifest.sh
run:./ci/steps/push-docker-manifest.sh
env:
GITHUB_TOKEN:${{ secrets.GITHUB_TOKEN }}
DOCKER_USERNAME:${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD:${{ secrets.DOCKER_PASSWORD }}
- name:Set up QEMU
uses:docker/setup-qemu-action@v3
homebrew:
# The newest version of code-server needs to be available on npm when this runs
# otherwise, it will 404 and won't open a PR to bump version on homebrew/homebrew-core
"description": "code-server provides a built-in proxy to help in developing web-based applications. This is the code for the domain-based proxy.\n\nAlso documented here: [https://github.com/cdr/code-server/blob/master/docs/FAQ.md#how-do-i-securely-access-web-services](https://github.com/cdr/code-server/blob/master/docs/FAQ.md#how-do-i-securely-access-web-services)"
"description": "code-server provides a built-in proxy to help in developing web-based applications. This is the code for the domain-based proxy.\n\nAlso documented here: [https://github.com/coder/code-server/blob/main/docs/FAQ.md#how-do-i-securely-access-web-services](https://github.com/coder/code-server/blob/main/docs/FAQ.md#how-do-i-securely-access-web-services)"
},
{
"file": "src/node/routes/pathProxy.ts",
"line": 19,
"description": "Here is the path-based version of the proxy.\n\nAlso documented here: [https://github.com/cdr/code-server/blob/master/docs/FAQ.md#how-do-i-securely-access-web-services](https://github.com/cdr/code-server/blob/master/docs/FAQ.md#how-do-i-securely-access-web-services)"
"description": "Here is the path-based version of the proxy.\n\nAlso documented here: [https://github.com/coder/code-server/blob/main/docs/FAQ.md#how-do-i-securely-access-web-services](https://github.com/coder/code-server/blob/main/docs/FAQ.md#how-do-i-securely-access-web-services)"
},
{
"file": "src/node/proxy.ts",
@ -95,7 +95,7 @@
{
"file": "src/node/routes/health.ts",
"line": 5,
"description": "A simple endpoint that lets you see if code-server is up.\n\nAlso documented here: [https://github.com/cdr/code-server/blob/master/docs/FAQ.md#healthz-endpoint](https://github.com/cdr/code-server/blob/master/docs/FAQ.md#healthz-endpoint)"
"description": "A simple endpoint that lets you see if code-server is up.\n\nAlso documented here: [https://github.com/coder/code-server/blob/main/docs/FAQ.md#healthz-endpoint](https://github.com/coder/code-server/blob/main/docs/FAQ.md#healthz-endpoint)"
},
{
"file": "src/node/routes/login.ts",
@ -145,7 +145,7 @@
{
"directory": "lib/vscode",
"line": 1,
"description": "code-server makes use of VS Code's frontend web/remote support. Most of the modifications implement the remote server since that portion of the code is closed source and not released with VS Code.\n\nWe also have a few bug fixes and have added some features (like client-side extensions). See [https://github.com/cdr/code-server/blob/master/docs/CONTRIBUTING.md#modifications-to-vs-code](https://github.com/cdr/code-server/blob/master/docs/CONTRIBUTING.md#modifications-to-vs-code) for a list.\n\nWe make an effort to keep the modifications as few as possible."
"description": "code-server makes use of VS Code's frontend web/remote support. Most of the modifications implement the remote server since that portion of the code is closed source and not released with VS Code.\n\nWe also have a few bug fixes and have added some features (like client-side extensions). See [https://github.com/coder/code-server/blob/main/docs/CONTRIBUTING.md#modifications-to-vs-code](https://github.com/coder/code-server/blob/main/docs/CONTRIBUTING.md#modifications-to-vs-code) for a list.\n\nWe make an effort to keep the modifications as few as possible."
"description": "## Commands\n\nTo start developing, make sure you have Node 12+ and the [required dependencies](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#prerequisites) installed. Then, run the following commands:\n\n1. Install dependencies:\n>> yarn\n\n3. Start development mode (and watch for changes):\n>> yarn watch"
"description": "## Commands\n\nTo start developing, make sure you have Node 16+ and the [required dependencies](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#prerequisites) installed. Then, run the following commands:\n\n1. Install dependencies:\n>> npm\n\n3. Start development mode (and watch for changes):\n>> npm run watch"
},
{
"file": "src/node/app.ts",
@ -20,7 +20,7 @@
{
"file": "src/node/app.ts",
"line": 62,
"description": "## That's it!\n\n\nThat's all there is to it! When this tour ends, your terminal session may stop, but just use `yarn watch` to start developing from here on out!\n\n\nIf you haven't already, be sure to check out these resources:\n- [Tour: Contributing](command:codetour.startTourByTitle?[\"Contributing\")\n- [Docs: FAQ.md](https://github.com/cdr/code-server/blob/master/docs/FAQ.md)\n- [Docs: CONTRIBUTING.md](https://github.com/cdr/code-server/blob/master/docs/CONTRIBUTING.md)\n- [Community: GitHub Discussions](https://github.com/cdr/code-server/discussions)\n- [Community: Slack](https://community.coder.com)"
"description": "## That's it!\n\n\nThat's all there is to it! When this tour ends, your terminal session may stop, but just use `npm run watch` to start developing from here on out!\n\n\nIf you haven't already, be sure to check out these resources:\n- [Tour: Contributing](command:codetour.startTourByTitle?[\"Contributing\"])\n- [Docs: FAQ.md](https://github.com/coder/code-server/blob/main/docs/FAQ.md)\n- [Docs: CONTRIBUTING.md](https://github.com/coder/code-server/blob/main/docs/CONTRIBUTING.md)\n- [Community: GitHub Discussions](https://github.com/coder/code-server/discussions)\n- [Community: Slack](https://community.coder.com)"
# For releases, we look for run based on the branch name v$code_server_version
# example: v3.10.0
localversion_branch="v$VERSION"
artifacts_url=$(gh api "$workflow_runs_url"| jq -r ".workflow_runs[] | select(.head_branch == \"$version_branch\") | .artifacts_url"| head -n 1)
if[[ -z "$artifacts_url"]];then
echo >&2"ERROR: artifacts_url came back empty"
echo >&2"We looked for a successful run triggered by a pull_request with for code-server version: $code_server_version and a branch named $version_branch"
echo >&2"URL used for gh API call: $workflow_runs_url"
RUN --mount=from=packages,src=/tmp,dst=/tmp/packages rpm -i /tmp/packages/code-server*$(uname -m | sed 's/x86_64/amd64/g'| sed 's/aarch64/arm64/g').rpm
# Allow users to have scripts run on container startup to prepare workspace.
RUN --mount=from=packages,src=/tmp,dst=/tmp/packages rpm -i /tmp/packages/code-server*$(uname -m | sed 's/x86_64/amd64/g'| sed 's/aarch64/arm64/g').rpm
# Allow users to have scripts run on container startup to prepare workspace.
- [Version updates to Code](#version-updates-to-code)
- [Patching Code](#patching-code)
- [Build](#build)
- [Creating a Standalone Release](#creating-a-standalone-release)
- [Troubleshooting](#troubleshooting)
- [I see "Forbidden access" when I load code-server in the browser](#i-see-forbidden-access-when-i-load-code-server-in-the-browser)
- ["Can only have one anonymous define call per script"](#can-only-have-one-anonymous-define-call-per-script)
- [Help](#help)
- [Test](#test)
- [Unit tests](#unit-tests)
- [Script tests](#script-tests)
- [Integration tests](#integration-tests)
- [End-to-end tests](#end-to-end-tests)
- [Structure](#structure)
- [Modifications to VS Code](#modifications-to-vs-code)
- [Modifications to Code](#modifications-to-code)
- [Currently Known Issues](#currently-known-issues)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
- [Detailed CI and build process docs](../ci)
## Pull Requests
Please create a [GitHub Issue](https://github.com/cdr/code-server/issues) for each issue
you'd like to address unless the proposed fix is minor.
In your Pull Requests (PR), link to the issue that the PR solves.
Please ensure that the base of your PR is the **main** branch.
### Commits
We prefer a clean commit history. This means you should squash all fixups and fixup-type commits before asking for review (cleanup, squash, force-push). If you need help with this, feel free to leave a comment in your PR and we'll guide you.
<!-- prettier-ignore-end -->
## Requirements
The prerequisites for contributing to code-server are almost the same as those for
`yarn watch` will live reload changes to the source.
These are required by Code. See [their Wiki](https://github.com/microsoft/vscode/wiki/How-to-Contribute#prerequisites)
for more information.
### Updating VS Code
## Development workflow
Updating VS Code requires `git subtree`. On some rpm-based Linux distros, `git subtree` is not included by default, and needs to be installed separately.
To install, run `dnf install git-subtree` or `yum install git-subtree` as necessary.
3. Apply the patches one at a time (`quilt push`). If the application succeeds
but the lines changed, update the patch with `quilt refresh`. If there are
conflicts, then force apply with `quilt push -f`, manually add back the
rejected code, then run `quilt refresh`.
4. From the code-server **project root**, run `npm install`.
5. Check the Node.js version that's used by Electron (which is shipped with VS
Code. If necessary, update our version of Node.js to match.
### Patching Code
1. You can go through the patch stack with `quilt push` and `quilt pop`.
2. Create a new patch (`quilt new {name}.diff`) or use an existing patch.
3. Add the file(s) you are patching (`quilt add [-P patch] {file}`). A file
**must** be added before you make changes to it.
4. Make your changes. Patches do not need to be independent of each other but
each patch must result in a working code-server without any broken in-between
states otherwise they are difficult to test and modify.
5. Add your changes to the patch (`quilt refresh`)
6. Add a comment in the patch about the reason for the patch and how to
reproduce the behavior it fixes or adds. Every patch should have an e2e test
as well.
### Build
You can build a full production as follows:
```shell
yarn build
yarn build:vscode
yarn release
git submodule update --init
quilt push -a
npm install
npm run build
VERSION=0.0.0 npm run build:vscode
npm run release
```
Run your build with:
This does not keep `node_modules`. If you want them to be kept, use
`KEEP_MODULES=1 npm run release`
Run your build:
```shell
cd release
yarn --production
npm install --omit=dev # Skip if you used KEEP_MODULES=1
# Runs the built JavaScript with Node.
node .
```
Build the release packages (make sure that you run `yarn release` first):
Then, to build the release package:
```shell
yarn release:standalone
yarn test:standalone-release
yarn package
npm run release:standalone
npm run test:integration
npm run package
```
NOTE: On Linux, the currently running distro will become the minimum supported version.
In our GitHub Actions CI, we use CentOS 7 for maximum compatibility.
If you need your builds to support older distros, run the build commands
inside a Docker container with all the build requirements installed.
> On Linux, the currently running distro will become the minimum supported
> version. In our GitHub Actions CI, we use CentOS 8 for maximum compatibility.
> If you need your builds to support older distros, run the build commands
> inside a Docker container with all the build requirements installed.
#### Creating a Standalone Release
Part of the build process involves creating standalone releases. At the time of
writing, we do this for the following platforms/architectures:
- Linux amd64 (.tar.gz, .deb, and .rpm)
- Linux arm64 (.tar.gz, .deb, and .rpm)
- Linux arm7l (.tar.gz)
- Linux armhf.deb
- Linux armhf.rpm
- macOS arm64.tar.gz
Currently, these are compiled in CI using the `npm run release:standalone`
command in the `release.yaml` workflow. We then upload them to the draft release
and distribute via GitHub Releases.
### Troubleshooting
#### I see "Forbidden access" when I load code-server in the browser
This means your patches didn't apply correctly. We have a patch to remove the
auth from vanilla Code because we use our own.
Try popping off the patches with `quilt pop -a` and reapplying with `quilt push
-a`.
#### "Can only have one anonymous define call per script"
Code might be trying to use a dev or prod HTML in the wrong context. You can try
re-running code-server and setting `VSCODE_DEV=1`.
### Help
If you get stuck or need help, you can always start a new GitHub Discussion
[here](https://github.com/coder/code-server/discussions). One of the maintainers
will respond and help you out.
## Test
There are four kinds of tests in code-server:
1. Unit tests
2. Script tests
3. Integration tests
4. End-to-end tests
### Unit tests
Our unit tests are written in TypeScript and run using
[Jest](https://jestjs.io/), the testing framework].
These live under [test/unit](../test/unit).
We use unit tests for functions and things that can be tested in isolation. The
file structure is modeled closely after `/src` so it's easy for people to know
where test files should live.
### Script tests
Our script tests are written in bash and run using [bats](https://github.com/bats-core/bats-core).
These tests live under `test/scripts`.
We use these to test anything related to our scripts (most of which live under
`ci`).
### Integration tests
These are a work in progress. We build code-server and run tests with `npm run
test:integration`, which ensures that code-server builds work on their
respective platforms.
Our integration tests look at components that rely on one another. For example,
testing the CLI requires us to build and package code-server.
### End-to-end tests
The end-to-end (e2e) tests are written in TypeScript and run using
[Playwright](https://playwright.dev/).
These live under [test/e2e](../test/e2e).
Before the e2e tests run, we run `globalSetup`, which eliminates the need to log
in before each test by preserving the authentication state.
Take a look at `codeServer.test.ts` to see how you would use it (see
`test.use`).
We also have a model where you can create helpers to use within tests. See
[models/CodeServer.ts](../test/e2e/models/CodeServer.ts) for an example.
## Structure
The `code-server` script serves an HTTP API for login and starting a remote VS Code process.
code-server essentially serves as an HTTP API for logging in and starting a
remote Code process.
The CLI code is in [src/node](../src/node) and the HTTP routes are implemented in
[src/node/routes](../src/node/routes).
The CLI code is in [src/node](../src/node) and the HTTP routes are implemented
in [src/node/routes](../src/node/routes).
Most of the meaty parts are in the VS Code portion of the codebase under [lib/vscode](../lib/vscode), which we described next.
Most of the meaty parts are in the Code portion of the codebase under
[lib/vscode](../lib/vscode), which we describe next.
### Modifications to VS Code
### Modifications to Code
In v1 of code-server, we had a patch of VS Code that split the codebase into a front-end
and a server. The front-end consisted of all UI code, while the server ran the extensions
and exposed an API to the front-end for file access and all UI needs.
Our modifications to Code can be found in the [patches](../patches) directory.
We pull in Code as a submodule pointing to an upstream release branch.
Over time, Microsoft added support to VS Code to run it on the web. They have made
the front-end open source, but not the server. As such, code-server v2 (and later) uses
the VS Code front-end and implements the server. We do this by using a git subtree to fork and modify VS Code. This code lives under [lib/vscode](../lib/vscode).
In v1 of code-server, we had Code as a submodule and used a single massive patch
that split the codebase into a front-end and a server. The front-end consisted
of the UI code, while the server ran the extensions and exposed an API to the
front-end for file access and all UI needs.
Some noteworthy changes in our version of VS Code:
Over time, Microsoft added support to Code to run it on the web. They had made
the front-end open source, but not the server. As such, code-server v2 (and
later) uses the Code front-end and implements the server. We did this by using a
Git subtree to fork and modify Code.
- Adding our build file, which includes our code and VS Code's web code
- Allowing multiple extension directories (both user and built-in)
- Modifying the loader, websocket, webview, service worker, and asset requests to
use the URL of the page as a base (and TLS, if necessary for the websocket)
- Sending client-side telemetry through the server
- Allowing modification of the display language
- Making it possible for us to load code on the client
- Making it possible to install extensions of any kind
- Fixing issue with getting disconnected when your machine sleeps or hibernates
- Adding connection type to web socket query parameters
Microsoft eventually made the server open source and we were able to reduce our
changes significantly. Some time later we moved back to a submodule and patches
(managed by `quilt` this time instead of the mega-patch).
As the web portion of VS Code matures, we'll be able to shrink and possibly
eliminate our modifications. In the meantime, upgrading the VS Code version requires
us to ensure that our changes are still applied and work as intended. In the future,
we'd like to run VS Code unit tests against our builds to ensure that features
work as expected.
As the web portion of Code continues to mature, we'll be able to shrink and
possibly eliminate our patches. In the meantime, upgrading the Code version
requires us to ensure that our changes are still applied correctly and work as
intended. In the future, we'd like to run Code unit tests against our builds to
ensure that features work as expected.
**Note**: We have [extension docs](../ci/README.md) on the CI and build system.
> We have [extension docs](../ci/README.md) on the CI and build system.
If the functionality you're working on does NOT depend on code from VS Code, please
If the functionality you're working on does NOT depend on code from Code, please
move it out and into code-server.
### Currently Known Issues
- Creating custom VS Code extensions and debugging them doesn't work
- Creating custom Code extensions and debugging them doesn't work
- Extension profiling and tips are currently disabled
- [How can I reuse my VS Code configuration?](#how-can-i-reuse-my-vs-code-configuration)
- [Differences compared to VS Code?](#differences-compared-to-vs-code)
- [Installing an extension](#installing-an-extension)
- [How can I request a missing extension?](#how-can-i-request-a-missing-extension)
- [Installing an extension manually](#installing-an-extension-manually)
- [How do I configure the marketplace URL?](#how-do-i-configure-the-marketplace-url)
- [Where are extensions stored?](#where-are-extensions-stored)
- [How is this different from VS Code Codespaces?](#how-is-this-different-from-vs-code-codespaces)
- [How should I expose code-server to the internet?](#how-should-i-expose-code-server-to-the-internet)
- [Can I store my password hashed?](#can-i-store-my-password-hashed)
- [How do I securely access web services?](#how-do-i-securely-access-web-services)
- [Sub-paths](#sub-paths)
- [Sub-domains](#sub-domains)
- [Why does the code-server proxy strip `/proxy/<port>` from the request path?](#why-does-the-code-server-proxy-strip-proxyport-from-the-request-path)
- [Proxying to Create React App](#proxying-to-create-react-app)
- [Multi-tenancy](#multi-tenancy)
- [Docker in code-server container?](#docker-in-code-server-container)
- [How can I disable telemetry?](#how-can-i-disable-telemetry)
- [How does code-server decide what workspace or folder to open?](#how-does-code-server-decide-what-workspace-or-folder-to-open)
- [How do I debug issues with code-server?](#how-do-i-debug-issues-with-code-server)
- [Heartbeat File](#heartbeat-file)
- [Healthz endpoint](#healthz-endpoint)
- [Can I use code-server on the iPad?](#can-i-use-code-server-on-the-ipad)
- [How does the config file work?](#how-does-the-config-file-work)
- [Isn't an install script piped into sh insecure?](#isnt-an-install-script-piped-into-sh-insecure)
- [How do I make my keyboard shortcuts work?](#how-do-i-make-my-keyboard-shortcuts-work)
- [How do I access my Documents/Downloads/Desktop folders in code-server on OSX?](#how-do-i-access-my-documentsdownloadsdesktop-folders-in-code-server-on-osx)
- [Differences compared to Theia?](#differences-compared-to-theia)
- [Why can't code-server use Microsoft's extension marketplace?](#why-cant-code-server-use-microsofts-extension-marketplace)
- [How can I request an extension that's missing from the marketplace?](#how-can-i-request-an-extension-thats-missing-from-the-marketplace)
- [How do I install an extension?](#how-do-i-install-an-extension)
- [How do I install an extension manually?](#how-do-i-install-an-extension-manually)
- [How do I use my own extensions marketplace?](#how-do-i-use-my-own-extensions-marketplace)
- [Where are extensions stored?](#where-are-extensions-stored)
- [Where is VS Code configuration stored?](#where-is-vs-code-configuration-stored)
- [How can I reuse my VS Code configuration?](#how-can-i-reuse-my-vs-code-configuration)
- [How does code-server decide what workspace or folder to open?](#how-does-code-server-decide-what-workspace-or-folder-to-open)
- [How do I access my Documents/Downloads/Desktop folders in code-server on macOS?](#how-do-i-access-my-documentsdownloadsdesktop-folders-in-code-server-on-macos)
- [How do I direct server-side requests through a proxy?](#how-do-i-direct-server-side-requests-through-a-proxy)
- [How do I debug issues with code-server?](#how-do-i-debug-issues-with-code-server)
- [What is the healthz endpoint?](#what-is-the-healthz-endpoint)
- [What is the heartbeat file?](#what-is-the-heartbeat-file)
- [How do I change the password?](#how-do-i-change-the-password)
- [Can I store my password hashed?](#can-i-store-my-password-hashed)
## How should I expose code-server to the internet?
Please see [./ipad.md](./ipad.md).
Please see [our instructions on exposing code-server safely to the
internet](./guide.md).
## Community Projects (awesome-code-server)
## Can I use code-server on the iPad?
Visit the [awesome-code-server](https://github.com/cdr/awesome-code-server) repository to view community projects and guides with code-server! Feel free to add your own!
See [iPad](./ipad.md) for information on using code-server on the iPad.
## How can I reuse my VS Code configuration?
## How does the config file work?
The very popular [Settings Sync](https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync) extension works.
When `code-server` starts up, it creates a default config file in `~/.config/code-server/config.yaml`:
You can also pass `--user-data-dir ~/.vscode` to reuse your existing VS Code extensions and configuration.
```yaml
bind-addr: 127.0.0.1:8080
auth: password
password: mew...22 # Randomly generated for each config.yaml
cert: false
```
Or copy `~/.vscode` into `~/.local/share/code-server`.
The default config defines the following behavior:
## Differences compared to VS Code?
- Listen on the loopback IP port 8080
- Enable password authorization
- Do not use TLS
`code-server` takes the open source core of VS Code and allows you to run it in the browser.
However, it is not entirely equivalent to Microsoft's VS Code.
Each key in the file maps directly to a `code-server` flag (run `code-server --help` to see a listing of all the flags). Any flags passed to `code-server`
will take priority over the config file.
While the core of VS Code is open source, the marketplace and many published Microsoft extensions are not.
You can change the config file's location using the `--config` flag or
`$CODE_SERVER_CONFIG` environment variable.
Furthermore, Microsoft prohibits the use of any non-Microsoft VS Code from accessing their marketplace.
The default location respects `$XDG_CONFIG_HOME`.
See the [TOS](https://cdn.vsassets.io/v/M146_20190123.39/_content/Microsoft-Visual-Studio-Marketplace-Terms-of-Use.pdf).
## How do I make my keyboard shortcuts work?
> Marketplace Offerings are intended for use only with Visual Studio Products and Services
> and you may only install and use Marketplace Offerings with Visual Studio Products and Services.
Many shortcuts will not work by default, since they'll be "caught" by the browser.
As a result, we cannot offer any extensions on the Microsoft marketplace. Instead,
we have created our own marketplace for open source extensions.
It works by scraping GitHub for VS Code extensions and building them. It's not perfect but getting
better by the day with more and more extensions.
If you use Chrome, you can work around this by installing the progressive web
app (PWA):
These are the closed source extensions presently unavailable:
1. Start the editor
2. Click the **plus** icon in the URL toolbar to install the PWA
## Why does the code-server proxy strip `/proxy/<port>` from the request path?
HTTP servers should strive to use relative URLs to avoid needed to be coupled to the
absolute path at which they are served. This means you must use trailing slashes on all
paths with subpaths. See <https://blog.cdivilly.com/2019/02/28/uri-trailing-slashes>
This is really the "correct" way things work and why the striping of the base path is the
default. If your application uses relative URLs and does not assume the absolute path at
which it is being served, it will just work no matter what port you decide to serve it off
or if you put it in behind code-server or any other proxy!
However many people prefer the cleaner aesthetic of no trailing slashes. This couples you
to the base path as you cannot use relative redirects correctly anymore. See the above
link.
For users who are ok with this tradeoff, use `/absproxy` instead and the path will be
passed as is. e.g. `/absproxy/3000/my-app-path`
### Proxying to Create React App
You must use `/absproxy/<port>` with create-react-app.
See [#2565](https://github.com/cdr/code-server/issues/2565) and
[#2222](https://github.com/cdr/code-server/issues/2222). You will need to inform
create-react-app of the path at which you are serving via `$PUBLIC_URL` and webpack
via `$WDS_SOCKET_PATH`.
e.g.
```sh
PUBLIC_URL=/absproxy/3000 \
WDS_SOCKET_PATH=$PUBLIC_URL/sockjs-node \
BROWSER=none yarn start
```
Then visit `https://my-code-server-address.io/absproxy/3000` to see your app exposed through
code-server!
Highly recommend using the subdomain approach instead to avoid this class of issue.
## Multi-tenancy
If you want to run multiple code-servers on shared infrastructure, we recommend using virtual
machines with a VM per user. This will easily allow users to run a docker daemon. If you want
to use kubernetes, you'll definitely want to use [kubevirt](https://kubevirt.io) or [sysbox](https://github.com/nestybox/sysbox) to give each
user a VM-like experience instead of just a container.
## Docker in code-server container?
If you'd like to access docker inside of code-server, mount the docker socket in from `/var/run/docker.sock`.
Install the docker CLI in the code-server container and you should be able to access the daemon!
You can even make volume mounts work. Lets say you want to run a container and mount in
`/home/coder/myproject` into it from inside the `code-server` container. You need to make sure
the docker daemon's `/home/coder/myproject` is the same as the one mounted inside the `code-server`
container and the mount will just work.
## How can I disable telemetry?
Use the `--disable-telemetry` flag to completely disable telemetry. We use the
data collected only to improve code-server.
Alternatively, you can also pass `--user-data-dir ~/.vscode` or copy `~/.vscode`
into `~/.local/share/code-server` to reuse your existing VS Code extensions and
configuration.
## How does code-server decide what workspace or folder to open?
code-server tries the following in order:
code-server tries the following in this order:
1. The `workspace` query parameter.
2. The `folder` query parameter.
3. The workspace or directory passed on the command line.
4. The last opened workspace or directory.
1. The `workspace` query parameter
2. The `folder` query parameter
3. The workspace or directory passed via the command line
4. The last opened workspace or directory
## How do I debug issues with code-server?
## How do I access my Documents/Downloads/Desktop folders in code-server on macOS?
First run code-server with at least `debug` logging (or `trace` to be really
thorough) by setting the `--log` flag or the `LOG_LEVEL` environment variable.
`-vvv` and `--verbose` are aliases for `--log trace`.
Newer versions of macOS require permission through a non-UNIX mechanism for
code-server to access the Desktop, Documents, Pictures, Downloads, and other folders.
```
code-server --log debug
```
You may have to give Node.js full disk access, since it doesn't implement any of the macOS permission request features natively:
Once this is done, replicate the issue you're having then collect logging
information from the following places:
1. The most recent files from `~/.local/share/code-server/coder-logs`.
2. The browser console.
3. The browser network tab.
Additionally, collecting core dumps (you may need to enable them first) if
code-server crashes can be helpful.
## Heartbeat File
`code-server` touches `~/.local/share/code-server/heartbeat` once a minute as long
as there is an active browser connection.
If you want to shutdown `code-server` if there hasn't been an active connection in X minutes
you can do so by continuously checking the last modified time on the heartbeat file and if it is
older than X minutes, kill `code-server`.
[#1636](https://github.com/cdr/code-server/issues/1636) will make the experience here better.
## Healthz endpoint
`code-server` exposes an endpoint at `/healthz` which can be used to check
whether `code-server` is up without triggering a heartbeat. The response will
include a status (`alive` or `expired`) and a timestamp for the last heartbeat
(defaults to `0`). This endpoint does not require authentication.
```json
{
"status": "alive",
"lastHeartbeat": 1599166210566
}
```
## How does the config file work?
When `code-server` starts up, it creates a default config file in `~/.config/code-server/config.yaml` that looks
like this:
```yaml
bind-addr: 127.0.0.1:8080
auth: password
password: mewkmdasosafuio3422 # This is randomly generated for each config.yaml
cert: false
```
Each key in the file maps directly to a `code-server` flag. Run `code-server --help` to see
a listing of all the flags.
The default config here says to listen on the loopback IP port 8080, enable password authorization
and no TLS. Any flags passed to `code-server` will take priority over the config file.
The `--config` flag or `$CODE_SERVER_CONFIG` can be used to change the config file's location.
The default location also respects `$XDG_CONFIG_HOME`.
## Isn't an install script piped into sh insecure?
Please give
[this wonderful blogpost](https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install) by
[sandstorm.io](https://sandstorm.io) a read.
## How do I make my keyboard shortcuts work?
Many shortcuts will not work by default as they'll be caught by the browser.
If you use Chrome you can get around this by installing the PWA.
Once you've entered the editor, click the "plus" icon present in the URL toolbar area.
This will install a Chrome PWA and now all keybindings will work!
For other browsers you'll have to remap keybindings unfortunately.
## How do I access my Documents/Downloads/Desktop folders in code-server on OSX?
Newer versions of macOS require permission through a non-UNIX mechanism for access to the Desktop, Documents, Pictures, Downloads, and other folders.
You may have to give Node "full disk access" since it doesn't implement any of the macOS permission request stuff natively.
1. Find where Node is installed on your machine
1. Find where Node.js is installed on your machine
```console
➜ ~ which node
$ which node
/usr/local/bin/node
```
1. Grant Node Full Disk Access:
2. Grant Node.js full disk access. Open **System Preferences** > **Security &
Privacy** > **Privacy** > **Full Disk Access**. Then, click the 🔒 to unlock,
click **+**, and select the Node.js binary you located in the previous step.
Open System Preferences > Security & Privacy > Privacy (horizontal) tab > Full Disk Access (vertical) tab > Click the 🔒 to unlock > Click + and select the Node binary you located.
See [#2794](https://github.com/coder/code-server/issues/2794) for additional context.
See [#2794](https://github.com/cdr/code-server/issues/2794) for context on this.
## How do I direct server-side requests through a proxy?
## Differences compared to Theia?
> code-server proxies only server-side requests.
[Theia](https://github.com/eclipse-theia/theia) is a browser IDE loosely based on VS Code. It uses the same
text editor library named [Monaco](https://github.com/Microsoft/monaco-editor) and the same
extension API but everything else is very different. It also uses [open-vsx.org](https://open-vsx.org)
for extensions which has an order of magnitude less extensions than our marketplace.
See [#1473](https://github.com/cdr/code-server/issues/1473).
To direct server-side requests through a proxy, code-server supports the
following environment variables:
You can't just use your VS Code config in Theia like you can with code-server.
To summarize, code-server is a patched fork of VS Code to run in the browser whereas
Theia takes some parts of VS Code but is an entirely different editor.
## `$HTTP_PROXY`, `$HTTPS_PROXY`, `$NO_PROXY`
code-server supports the standard environment variables to allow directing
If you want to run multiple code-servers on shared infrastructure, we recommend
using virtual machines (provide one VM per user). This will easily allow users
to run a Docker daemon. If you want to use Kubernetes, you'll want to
use [kubevirt](https://kubevirt.io) or
[sysbox](https://github.com/nestybox/sysbox) to give each user a VM-like
experience instead of just a container.
## Can I use Docker in a code-server container?
If you'd like to access Docker inside of code-server, mount the Docker socket in
from `/var/run/docker.sock`. Then, install the Docker CLI in the code-server
container, and you should be able to access the daemon.
You can even make volume mounts work. Let's say you want to run a container and
mount into `/home/coder/myproject` from inside the `code-server` container. You
need to make sure the Docker daemon's `/home/coder/myproject` is the same as the
one mounted inside the `code-server` container, and the mount will work.
If you want Docker enabled when deploying on Kubernetes, look at the `values.yaml`
file for the 3 fields: `extraVars`, `lifecycle.postStart`, and `extraContainers`.
## How do I disable telemetry?
Use the `--disable-telemetry` flag to disable telemetry.
> We use the data collected only to improve code-server.
## What's the difference between code-server and Coder?
code-server and Coder are both applications that can be installed on any
machine. The main difference is who they serve. Out of the box, code-server is
simply VS Code in the browser while Coder is a tool for provisioning remote
development environments via Terraform.
code-server was built for individuals while Coder was built for teams. In Coder, you create Workspaces which can have applications like code-server. If you're looking for a team solution, you should reach for [Coder](https://github.com/coder/coder).
## What's the difference between code-server and Theia?
At a high level, code-server is a patched fork of VS Code that runs in the
browser whereas Theia takes some parts of VS Code but is an entirely different
editor.
[Theia](https://github.com/eclipse-theia/theia) is a browser IDE loosely based
on VS Code. It uses the same text editor library
([Monaco](https://github.com/Microsoft/monaco-editor)) and extension API, but
everything else is different. Theia also uses [Open VSX](https://open-vsx.org)
for extensions.
Theia doesn't allow you to reuse your existing VS Code config.
## What's the difference between code-server and OpenVSCode-Server?
code-server and OpenVSCode-Server both allow you to access VS Code via a
browser. OpenVSCode-Server is a direct fork of VS Code with changes comitted
directly while code-server pulls VS Code in via a submodule and makes changes
via patch files.
However, OpenVSCode-Server is scoped at only making VS Code available as-is in
the web browser. code-server contains additional changes to make the self-hosted
experience better (see the next section for details).
## What's the difference between code-server and GitHub Codespaces?
Both code-server and GitHub Codespaces allow you to access VS Code via a
browser. GitHub Codespaces, however, is a closed-source, paid service offered by
GitHub and Microsoft.
On the other hand, code-server is self-hosted, free, open-source, and can be run
on any machine with few limitations.
Specific changes include:
- Password authentication
- The ability to host at sub-paths
- Self-contained web views that do not call out to Microsoft's servers
- The ability to use your own marketplace and collect your own telemetry
- Built-in proxy for accessing ports on the remote machine integrated into
VS Code's ports panel
- Settings are stored on disk like desktop VS Code, instead of in browser
storage (note that state is still stored in browser storage).
- Wrapper process that spawns VS Code on-demand and has a separate CLI
- Notification when updates are available
- [Some other things](https://github.com/coder/code-server/tree/main/patches)
Some of these changes appear very unlikely to ever be adopted by Microsoft.
Some may make their way upstream, further closing the gap, but at the moment it
looks like there will always be some subtle differences.
## What's the difference between code-server and VS Code web?
VS Code web (which can be ran using `code serve-web`) has the same differences
as the Codespaces section above. VS Code web can be a better choice if you need
access to the official Microsoft marketplace.
## Does code-server have any security login validation?
code-server supports setting a single password and limits logins to two per
minute plus an additional twelve per hour.
## Are there community projects involving code-server?
Visit the [awesome-code-server](https://github.com/coder/awesome-code-server)
repository to view community projects and guides with code-server! Feel free to
add your own!
## How do I change the port?
There are two ways to change the port on which code-server runs:
1. with an environment variable e.g. `PORT=3000 code-server`
2. using the flag `--bind-addr` e.g. `code-server --bind-addr localhost:3000`
## How do I hide the coder/coder promotion in Help: Getting Started?
You can pass the flag `--disable-getting-started-override` to `code-server` or
you can set the environment variable `CS_DISABLE_GETTING_STARTED_OVERRIDE=1` or
`CS_DISABLE_GETTING_STARTED_OVERRIDE=true`.
## How do I disable the proxy?
You can pass the flag `--disable-proxy` to `code-server` or
you can set the environment variable `CS_DISABLE_PROXY=1` or
`CS_DISABLE_PROXY=true`.
Note, this option currently only disables the proxy routes to forwarded ports, including
the domain and path proxy routes over HTTP and WebSocket; however, it does not
disable the automatic port forwarding in the VS Code workbench itself. In other words,
user will still see the Ports tab and notifications, but will not be able to actually
use access the ports. It is recommended to set `remote.autoForwardPorts` to `false`
when using the option.
## How do I disable file download?
You can pass the flag `--disable-file-downloads` to `code-server`
## Why do web views not work?
Web views rely on service workers, and service workers are only available in a
secure context, so most likely the answer is that you are using an insecure
context (for example an IP address).
If this happens, in the browser log you will see something like:
> Error loading webview: Error: Could not register service workers: SecurityError: Failed to register a ServiceWorker for scope with script: An SSL certificate error occurred when fetching the script..
To fix this, you must either:
- Access over localhost/127.0.0.1 which is always considered secure.
- Use a domain with a real certificate (for example with Let's Encrypt).
- Use a trusted self-signed certificate with [mkcert](https://mkcert.dev) (or
create and trust a certificate manually).
- Disable security if your browser allows it. For example, in Chromium see
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.