Commit Graph

61 Commits

Author SHA1 Message Date
Connor Peet
75d61a59ae Update CLI agent commands for AHP 0.4 (#322173)
AHP 0.4 moves turns/active_turn off SessionState onto per-chat ChatState
(SessionState now carries a `chats` catalog), and SessionStatus is now a
newtype bitset instead of a repr enum.

- agent_ps: use SessionStatus::bits()/from_bits().contains() instead of
  `as u32` casts
- agent_stop: resolve in-progress chats from the session catalog, subscribe
  to each chat to find its active turn, and dispatch the renamed
  StateAction::ChatTurnCancelled to the chat URI
- agent_logs: print the session's chats catalog instead of the removed
  turns/active_turn

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-20 01:30:32 +02:00
Connor Peet
608255bcd0 cli: bump ahp and ahp-types to 0.3.0 (#320322) 2026-06-08 13:22:02 +09:00
Connor Peet
d2f6870a95 cli: drop ahp-ws dependency in favor of direct tungstenite (#319451)
* cli: drop ahp-ws dependency in favor of direct tungstenite

- Removes the external ahp-ws crate so the CLI owns its WebSocket
  transport directly, avoiding a thin wrapper dependency and keeping the
  transport logic alongside the existing tunnel transport.
- Updates the agent commands to the ahp 0.2 API (channel-based params,
  optional snapshots, and the two-argument dispatch signature) so the
  CLI compiles against the pinned crate versions again.

(Commit message generated by Copilot)

* cli: deduplicate WebSocket transport adapter

- Replaces the separate WsTransport and TunnelWsTransport implementations
  with a single generic WsTransport over the stream type plus an optional
  keep-alive guard, so the direct and tunnel connections share one
  send/recv/close adapter and cannot drift apart.

(Commit message generated by Copilot)
2026-06-01 21:30:05 +00:00
dependabot[bot]
e281de6a2e build(deps): bump tar from 0.4.45 to 0.4.46 in /cli (#319053)
Bumps [tar](https://github.com/composefs/tar-rs) from 0.4.45 to 0.4.46.
- [Release notes](https://github.com/composefs/tar-rs/releases)
- [Commits](https://github.com/composefs/tar-rs/compare/0.4.45...0.4.46)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 0.4.46
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-29 21:02:00 +00:00
Copilot
5089fb0bb7 chore: bump rand in cli to 0.8.6 (#316462)
chore: bump rand in cli from 0.10 to 0.8.6 and fix API usage

Agent-Logs-Url: https://github.com/microsoft/vscode/sessions/dadd6751-1668-4f1a-931b-dfa34f0fc227

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: rzhao271 <7199958+rzhao271@users.noreply.github.com>
2026-05-15 13:12:20 -07:00
Connor Peet
487b69ff5c cli: move back to microsoft/dev-tunnels
Had a temporary fork to support the in-progress relay client connections
2026-05-04 12:22:46 -07:00
Connor Peet
ed85ff7a6c comments and more deps 2026-04-28 08:56:30 -07:00
Connor Peet
2c36ddb55e cli: implement client AHP control functionality 2026-04-28 08:10:51 -07:00
Connor Peet
06db90587c cli: clean up and update dependencies 2026-04-26 19:53:35 -07:00
dependabot[bot]
7d224d9546 build(deps): bump rand from 0.8.5 to 0.9.3 in /cli (#309689)
* build(deps): bump rand from 0.8.5 to 0.9.3 in /cli

Bumps [rand](https://github.com/rust-random/rand) from 0.8.5 to 0.9.3.
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/0.9.3/CHANGELOG.md)
- [Commits](https://github.com/rust-random/rand/compare/0.8.5...0.9.3)

---
updated-dependencies:
- dependency-name: rand
  dependency-version: 0.9.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix clippy lint warnings after rand 0.8.5 → 0.9.3 upgrade

Agent-Logs-Url: https://github.com/microsoft/vscode/sessions/8e6151a9-d6c4-42c0-9e9e-e8e384b8ce48

Co-authored-by: rzhao271 <7199958+rzhao271@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: rzhao271 <7199958+rzhao271@users.noreply.github.com>
2026-04-17 10:31:19 -07:00
dependabot[bot]
6ee1160198 Bump tar from 0.4.44 to 0.4.45 in /cli (#303573)
Bumps [tar](https://github.com/alexcrichton/tar-rs) from 0.4.44 to 0.4.45.
- [Commits](https://github.com/alexcrichton/tar-rs/compare/0.4.44...0.4.45)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 0.4.45
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-20 13:28:16 -07:00
Dmitriy Vasyura
d0f203e76f Add Win32 metadata all executable binaries (#296710) 2026-02-24 09:29:02 +01:00
Ladislau Szomoru
4252a7a41f Engineering - switch to thin LTO (#295313) 2026-02-14 08:44:59 +00:00
dependabot[bot]
c959e6409e Bump bytes from 1.6.0 to 1.11.1 in /cli (#292663)
Bumps [bytes](https://github.com/tokio-rs/bytes) from 1.6.0 to 1.11.1.
- [Release notes](https://github.com/tokio-rs/bytes/releases)
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/bytes/compare/v1.6.0...v1.11.1)

---
updated-dependencies:
- dependency-name: bytes
  dependency-version: 1.11.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-06 10:27:20 -08:00
dependabot[bot]
74e9aabf76 Bump tokio from 1.37.0 to 1.38.2 in /cli (#245924)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.37.0 to 1.38.2.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.37.0...tokio-1.38.2)

---
updated-dependencies:
- dependency-name: tokio
  dependency-version: 1.38.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-14 10:42:21 +02:00
Connor Peet
e166b219d8 cli: make the build faster (#245705)
codegen-units=1 lets the compiler optimize more aggressively, but it
makes things _much_ slower. The benefits of this has been evaporating
as the compiler has improved, and now that the CLI build is a bottleneck,
let's just remove it.
2025-04-04 20:43:48 +02:00
Connor Peet
e2e9a7306b cli: update url to 2.5.4 for dependabot (#237417) 2025-01-07 18:37:48 +01:00
Connor Peet
4d221c6b85 cli: reapply "code server-web when offline" 2024-09-09 09:18:56 -07:00
Robo
746ba5bc68 cli: revert "code server-web when offline" (#227981)
* Revert "Merge pull request #227830 from microsoft/connor4312/cli-offline-serve"

This reverts commit 136a5c6f5f, reversing
changes made to 9d388bbf8b.

* chore: bump distro
2024-09-09 16:21:08 +02:00
Connor Peet
077bd2f1b4 fixups
- Don't set a config option for update interval. We don't let the one
  in core be configurable, don't see a huge need for this.
- Don't start the server when the update is available
- Fix some race conditions
- Fix some clippy lints on Rust 1.81
2024-09-06 12:20:13 -07:00
Connor Peet
eb99b85bdf chore: update CLI dependences, add env var options for login 2024-05-20 08:33:23 -07:00
Connor Peet
5bdc31357d cli: update dev tunnel sdk (#207018) 2024-03-06 16:10:10 -08:00
Connor Peet
2ff1b39452 cli: update dev tunnels (#203997)
Fixes #201417
2024-02-01 10:07:46 -08:00
Connor Peet
d7cfba7af7 cli: update dev tunnel sdk (#203763) 2024-01-30 03:01:21 +01:00
Connor Peet
e0502b5442 cli: update dev tunnels (#195183) 2023-10-09 12:44:12 -07:00
Connor Peet
db135a575a cli: fix decompression loop stalling (#191512)
Fixes #191501

It turns out this was a difference in inflate/deflate implementations
between the extension/SDK and the CLI. The SDK uses Node's zlib bindings,
while by default Rust's flate2 library uses a rust port of [miniz][1].
The 'logic' in the CLI was good, but miniz does not appear to flush
decompressed data as nicely on SYNC'd boundaries as zlib does, which
caused data to 'stall'. Telling the flate2 crate to use the native
bindings fixed this.

This could also be the cause of the flakiness occasionally seen on idle
tunnel connections!

[1]: https://github.com/richgel999/miniz
2023-08-28 21:51:04 +02:00
Connor Peet
ac0d0a89c8 cli: adopt latest devtunnels for ipv6 forwarding support (#191236) 2023-08-24 19:53:05 +02:00
Connor Peet
1fe8359ed0 cli: implement 'server of server' for a local web server (#191014)
Closes https://github.com/microsoft/vscode/issues/168492

This implements @aeschli's 'server server' concept in a new
`code serve-web` command.

Command line args are similar to the standalone web server. The first
time a user hits that page, the latest version of the VS Code web server
will be downloaded and run. Thanks to Martin's previous PRs, all
resources the page requests are prefixed with `/<quality-<commit>`.

The latest release version is cached, but when the page is loaded again
and there's a new release, a the new server version will be downloaded
and started up.

Behind the scenes the servers all listen on named pipes/sockets and the
CLI acts as a proxy server to those sockets. Servers without connections
for an hour will be shut down automatically.
2023-08-22 17:29:51 -07:00
Connor Peet
52840e3ca5 cli: cleanup build (#190213)
- Remove the `prepare` script entirely
- Variables are now populated from the product.json during build. Most
  variables are mapped automatically, with some special handling in a
	few cases. `build.rs` is now much more self-contained.
- Look for the `product.overrides.json` for vscode developers instead of
  looking for a peer `vscode-distro` folder

Fixes #178691
2023-08-10 20:14:30 -07:00
Connor Peet
0d22bb7efa cli: update dependencies for s360 (#189562)
* cli: update dependencies for s360

* update rust
2023-08-03 18:05:46 +01:00
Connor Peet
75c2f321b2 cli: update dependencies (#184189)
Up all the dependencies! Notably:

- russh to the latest main now that tunnel changes are merged
- secret-service-rs to 3.x and dropping our custom fork
- which also fixes SDL pings

Fixes https://github.com/microsoft/vscode-internalbacklog/issues/4328
Fixes https://github.com/microsoft/vscode-internalbacklog/issues/4077
2023-06-02 10:27:47 -07:00
Connor Peet
679bb967c3 cli: add stdio control server
* signing: implement signing service on the web

* wip

* cli: implement stdio service

This is used to implement the exec server for WSL. Guarded behind a signed handshake.

* update distro

* rm debug

* address pr comments
2023-05-19 17:19:52 +02:00
Connor Peet
f743297aa1 cli: add acquire_cli (#179837)
* cli: add acquire_cli

As given in my draft document, pipes a CLI of the given platform to the
specified process, for example:

```js
const cmd = await rpc.call('acquire_cli', {
	command: 'node',
	args: [
		'-e',
		'process.stdin.pipe(fs.createWriteStream("c:/users/conno/downloads/hello-cli"))',
	],
	platform: Platform.LinuxX64,
	quality: 'insider',
});
```

It genericizes caching so that the CLI is also cached on the host, just
like servers.

* fix bug
2023-04-13 19:18:48 +01:00
Connor Peet
2d8ff25c85 cli: add streams to rpc, generic 'spawn' command (#179732)
* cli: apply improvements from integrated wsl branch

* cli: add streams to rpc, generic 'spawn' command

For the "exec server" concept, fyi @aeschli.

* update clippy and apply fixes

* fix unused imports :(
2023-04-12 16:51:29 +01:00
Connor Peet
0e7d14d32d cli: allow client process to control singleton process (#177141)
Other connected clients will now print:

```
Connected to an existing tunnel process running on this machine. You can press:

- Ctrl+C to detach
- "x" to stop the tunnel and exit
- "r" to restart the tunnel
```

These are then sent to the server to have that take effect. This is
mostly some refactors in the singleton_server to make the lifecycle work.
2023-03-14 17:55:28 -07:00
Connor Peet
1b5fd140fb Run tunnels as singleton process (for a --cli-data-dir) (#177002)
* wip on singleton

* wip

* windows support

* wip

* wip

* fix clippy
2023-03-14 08:09:47 -07:00
Connor Peet
863b9261a3 cli: bump tempfile->remove_dir_all for cve (#176206) 2023-03-06 10:10:01 +01:00
Connor Peet
26fe31fc66 update openssl-prebuild for musl failures (#175731)
* update openssl-prebuild for musl failures

* reapply vendoring

* reapply macos pipeline fix
2023-03-01 08:57:45 +01:00
Connor Peet
f8119e9beb Revert "cli: fix static import of openssl (#175681)" (#175727)
This reverts commit 7014a17b1f.
2023-03-01 07:43:32 +01:00
Connor Peet
7014a17b1f cli: fix static import of openssl (#175681)
* cli: fix static import of openssl

* update dev tunnels
2023-02-28 11:20:58 -08:00
Martin Aeschlimann
beb9ed3758 update tokio (#173784) 2023-02-08 17:10:14 +07:00
Connor Peet
b5aa3e0a3d cli: use better approach to Windows services (#172679)
Fixes #167741

This eschews the offical Windows service system in favor of registering
into `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run`.
Unlike services, this can be done without administrative permissions,
does not require the current username/password, and is not blocked by
miscellaneous and mysterious system policies.

Since the process is basically unmanaged by the OS, this requires a
little legwork to start and stop the process when registering and
unregistering.
2023-01-27 15:04:56 -08:00
Connor Peet
4a9bf44941 Merge pull request #171894 from microsoft/connor4312/nosleep-windows
cli: implement --no-sleep for windows
2023-01-21 15:24:19 -08:00
Connor Peet
bcc8232721 fix: build on windows (#171892)
🙈
2023-01-21 14:05:37 +09:00
Connor Peet
758bc69404 cli: implement --no-sleep for windows 2023-01-20 18:57:11 -08:00
Connor Peet
4cf496e905 cli: add --no-sleep flag, implementation for macos (#171885)
First part of https://github.com/microsoft/vscode-remote-release/issues/7127
2023-01-20 15:42:09 -08:00
Connor Peet
2c2ead679b cli: initial wsl control server
Adds an stdin/out json rpc server for wsl.

Exposes a singular install_local command to install+boot the vscode server on a port from a local archive.

Also refines the common rpc layer some more. I'm decently happy with it now.
2023-01-18 08:23:04 -08:00
dependabot[bot]
2584c4b68b Bump tokio from 1.21.2 to 1.23.1 in /cli (#170729)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.21.2 to 1.23.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.21.2...tokio-1.23.1)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-09 08:18:25 -08:00
Connor Peet
adcffbdce9 cli: use connection token for CLI connections (#167426)
This uses a hash of the tunnel ID to create the connection token, which
should be sufficient to resolve the issues.

We also now publish the protocol version in the tunnel tags, since the
connection token must be supplied in the resolver, which is before we
start connecting to the tunnel.

See https://github.com/microsoft/vscode-internalbacklog/issues/3287
2022-11-28 18:03:15 +01:00
Connor Peet
94ee5f5861 cli: automatically use distro qualities if available (#166961)
A fully-functioning CLI with tunnel capabilities requires product-specific
configuration that is not included in the OSS. This change has the CLI's build
script automatically look for a peer `vscode-distro` folder and, in a debug
build, set its build variables based on that.

It also works to set correct variables if vscode-distro is not found, based on
the OSS product.json (though this is not sufficient to run a fully fledged
tunnel.)
2022-11-22 06:13:16 -08:00