Commit log

58eefcd Add ModelHandle::spawn_weak, fix worktree leak from spawn call

Max Brunsfeld created

65e4e78 Add unit test for worktree update messages, fix minor issues

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

73db910 Process remote worktree updates in the background

Click to expand commit body
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>

Nathan Sobo and Max Brunsfeld created

036dcd5 Start on applying remote worktree updates in the background

Click to expand commit body
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>

Nathan Sobo and Max Brunsfeld created

53adaa7 Propagate file system changes to remote worktrees

Antonio Scandurra created

2a779d3 Rename `{Add,Remove}Guest` to `{Add,Remove}Peer`

Antonio Scandurra created

61222b4 Expose `Client::disconnect` to force disconnection

Antonio Scandurra created

899b9cd Avoid deadlocks on rpc state by switching to an RwLock

Max Brunsfeld created

08991db Implement Copy for peer::Receipt

Max Brunsfeld created

a7f812e Avoid circular model update in save_buffer handler

Max Brunsfeld created

86b9ab4 Construct remote worktree snapshots in the background

Max Brunsfeld created

569a4a1 WIP: Save remote buffers

Antonio Scandurra created

b8bddd6 Fix tests

Antonio Scandurra created

7ae1d9e Send also the currently active selection sets when serializing a buffer

Antonio Scandurra created

9d51fe8 Serialize RPC sends and responses using a channel

Max Brunsfeld created

42f7867 Avoid spurious error logging when host edits buffers not open by guests

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

e95936c Fix memory leak of `Editor` due to blinking cursors

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

da7bd84 Report `SelectionSet` deletion operations correctly

Antonio Scandurra created

c881c7f Start on rendering remote selections

Antonio Scandurra created

e070652 Expose `Worktree::{peers,replica_id}`

Antonio Scandurra created

ed9036f Send a `CloseWorktree` message when a shared `Worktree` is dropped

Antonio Scandurra created

1d53d43 Store online peers when joining a worktree

Antonio Scandurra created

7704291 Maintain a set of peers as they join and leave the worktree

Antonio Scandurra created

ab089b6 Avoid logging errors in RPC message handlers

Click to expand commit body
The `on_message` helper already logs when an error occurs.

Antonio Scandurra created

8e5e354 :lipstick:

Antonio Scandurra created

3c8aa0e Move `remote::update_buffer` main logic into `Worktree::update_buffer`

Antonio Scandurra created

0fde7a5 Store shared buffers on LocalWorktree

Click to expand commit body
It's okay for our domain objects to model remote state. We should minimize what we need to store in the rpc::ClientState struct.

Nathan Sobo created

bbf803d Store a reference to the LangageRegistry on the Worktree

Nathan Sobo created

34963ac Use entry_id on File instead of worktree::Diff to detect when buffers' files change

Click to expand commit body
Rather than computing a diff after processing a batch of FSEvents, we instead detect renames as we're inserting entries. We store an entry_id on the File object that is owned by each buffer, and use this to detect when the path of the File has changed.

We now also manage all File-related state and event emission for Buffers in the LocalWorktree, since the logic will need to be totally different in the remote case.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Nathan Sobo , Max Brunsfeld , and Antonio Scandurra created

e80439d Merge branch 'main' into rpc

Antonio Scandurra created

b7a4393 Redesign Worktree save API and make test_rescan_simple pass

Click to expand commit body
This commit does too much. The first goal was to change our approach to saving new buffers so that we don't need to construct a File for an entry that doesn't exist. Rather than doing that, we call `Worktree::save_buffer_as` with the buffer handle, the path, and the contents. This then saves the buffer and returns a handle to a `File` that references an entry that actually exists. I needed to do this so that we can store an entry id on `File`.

In the process, I noticed intermittent test failures on `test_rescan_simple`, so I made some changes required to fix those related to our reuse of existing ids. Our previous approach of removing a path when inserting a new entry was broken, because of the recursive nature of `remove_path`. Instead, I simply recycle the id of an existing worktree entry with the same path if one is present, then allow it to be replaced.

Nathan Sobo created

1793eda Eagerly populate worktree entries on load

Click to expand commit body
Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Nathan Sobo and Antonio Scandurra created

958345b Assign a stable identity to Worktree entries

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

65aa973 Restructure RPC state to also keep track of remote worktrees on guests

Antonio Scandurra created

e72b4ae Maintain active selections as editors are focused and blurred

Antonio Scandurra created

0bc8663 Remove selection set when an editor is closed

Antonio Scandurra created

e2b9ab5 Avoid double handle-read in File::buffer_updated

Max Brunsfeld created

60ee97b Always represent anchor as a versioned offset

Click to expand commit body
Remove the `Start` and `End` variants, and always
use the structure that was previously called `Middle`.
This makes Anchors simpler to serialize and deserialize.

Max Brunsfeld created

b9952ba Send and receive buffer operations

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

04c8057 Start work on sending buffer operations

Max Brunsfeld created

7ee0862 Notify host when guests close buffers

Click to expand commit body
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>

Nathan Sobo and Max Brunsfeld created

2257abd Add Entity release hooks

Click to expand commit body
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>

Nathan Sobo and Max Brunsfeld created

d59267a Move `remote` module from `workspace` to `worktree`

Antonio Scandurra created

3ba2223 Merge pull request #97 from zed-industries/limit-bundle-uploads

Click to expand commit body
Only upload artifacts to workflow runs on the main branch

Nathan Sobo created

0faabc2 Only upload artifacts to workflow runs on the main branch

Click to expand commit body
We're running out of actions storage, and we don't really need an artifact stored for every single build.

Nathan Sobo created

c4729de Merge pull request #96 from zed-industries/retry-flaky-tests

Click to expand commit body
Add a "retries" option to gpui::test macro and use it in flaky tests

Nathan Sobo created

8f7111b Upgrade bindgen to fix warnings on new Rust

Nathan Sobo created

3d67266 Add a "retries" option to gpui::test macro and use it in flaky tests

Nathan Sobo created

779dbf8 Allow cleaning up connections/handlers state using `Peer::reset`

Antonio Scandurra created

ce2f3f6 Consolidate more logic for joining worktree in Worktree::remote

Click to expand commit body
This way we can use this method in tests and avoid
needing to construct a Workspace.

Max Brunsfeld created