### Summary Follow up on: https://github.com/zed-industries/zed/pull/53550 Threads in the sidebar are now filtered by remote connection in addition to path list. Previously, two different machines with the same absolute project paths (e.g. both at `/home/user/project`) would have their threads merged into a single sidebar group. Now each remote host gets its own group. To support this, this PR introduces `RemoteConnectionIdentity`, a normalized subset of `RemoteConnectionOptions` that includes only the fields relevant for identity matching (e.g. SSH host + username + port, but not nickname or connection timeout). All remote host comparisons in the sidebar, thread metadata store, and workspace persistence now go through `same_remote_connection_identity()` instead of raw `==` on `RemoteConnectionOptions`. #### Follow Up on remoting for sidebar 1. Make the neighbor in archive thread fallback to the main git worktree instead of the next thread 2. Start implementing remote git operations that archive feature depends on 3. Make remote connection pool equality use `RemoteConnectionIdentity` Self-Review Checklist: - [x] I've reviewed my own diff for quality, security, and reliability - [x] Unsafe blocks (if any) have justifying comments - [x] The content is consistent with the [UI/UX checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) - [x] Tests cover the new/changed behavior - [x] Performance impact has been considered and is acceptable Release Notes: - N/A --------- Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Richard Feldman <oss@rtfeldman.com>
28 lines
983 B
Rust
28 lines
983 B
Rust
pub mod json_log;
|
|
pub mod protocol;
|
|
pub mod proxy;
|
|
pub mod remote_client;
|
|
pub mod remote_identity;
|
|
mod transport;
|
|
|
|
#[cfg(target_os = "windows")]
|
|
pub use remote_client::OpenWslPath;
|
|
pub use remote_client::{
|
|
CommandTemplate, ConnectionIdentifier, ConnectionState, Interactive, RemoteArch, RemoteClient,
|
|
RemoteClientDelegate, RemoteClientEvent, RemoteConnection, RemoteConnectionOptions, RemoteOs,
|
|
RemotePlatform, connect, has_active_connection,
|
|
};
|
|
pub use remote_identity::{
|
|
RemoteConnectionIdentity, remote_connection_identity, same_remote_connection_identity,
|
|
};
|
|
pub use transport::docker::DockerConnectionOptions;
|
|
pub use transport::ssh::{SshConnectionOptions, SshPortForwardOption};
|
|
pub use transport::wsl::WslConnectionOptions;
|
|
#[cfg(target_os = "windows")]
|
|
pub use transport::wsl::wsl_path_to_windows_path;
|
|
|
|
#[cfg(any(test, feature = "test-support"))]
|
|
pub use transport::mock::{
|
|
MockConnection, MockConnectionOptions, MockConnectionRegistry, MockDelegate,
|
|
};
|