Commit log

51345cf Advance clock when simulating random delay

Antonio Scandurra created

be7a477 Delete timer state when the future that's awaiting it gets dropped

Antonio Scandurra created

8b7a936 Avoid storing type name string on AnyViewHandle

Click to expand commit body
It won't be needed for leak error messages, because the typed
view handle will typically be created first. And this avoids
increasing the size of the handle used in production.

Max Brunsfeld created

ae93cfe Tear down client's connection states when dropping test clients

Max Brunsfeld created

3cf5329 Flush effects when dropping test clients in random collaboration test

Max Brunsfeld created

acf7ef3 Avoid retaining executor when using Connection::in_memory

Max Brunsfeld created

95b2f4f Fix remaining language server hangs on shutdown

Click to expand commit body
* Use fork of async-pipe library that handles closed pipes correctly.
* Clear response handlers map when terminating output task, so as
  to wake any pending request futures.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

917543c Handle Peer responses using a futures::oneshot instead of postage::mpsc

Max Brunsfeld created

f2f1a52 Prevent hangs in lsp requests made while server is shutting down

Click to expand commit body
* Avoid postage::oneshot, since receiver is not woken when sender is dropped.
* Clear the response channels when an IO task exits.

Max Brunsfeld created

74469a4 Clean up tasks properly when dropping a FakeLanguageServer

Click to expand commit body
* Make sure the fake's IO tasks are stopped
* Ensure that the fake's stdout is closed, so that the corresponding language
  server's IO tasks are woken up and halted.

Max Brunsfeld created

0e66869 Remove stray printing in db tests

Max Brunsfeld created

43f856c Make integration tests depend only on a few core crates, not all of zed

Max Brunsfeld created

2b64e8d Fix failure in test_unshare_project due to dropping handle outside of an update block

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

Max Brunsfeld , Antonio Scandurra , and Nathan Sobo created

efe7f61 Use `simulate_random_delay` when polling snapshot only in tests

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

Antonio Scandurra , Nathan Sobo , and Max Brunsfeld created

a25f21d Remove `debug_elements_callbacks` from `App`

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

Antonio Scandurra , Nathan Sobo , and Max Brunsfeld created

bc9c034 Fix `Presenter` leak when removing windows

Antonio Scandurra created

c661ff2 Revert "Use `async_broadcast` to emit fake FS events"

Click to expand commit body
This reverts commit 4cfd345f9d91ebd8e76a668f3494ecf2e45c4b9d, because
having a bounded broadcast introduces the possibility of waiting forever
when there isn't yet a receiver processing those events.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

992328a Forbid parking in `project_panel::tests::test_visible_list`

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

Antonio Scandurra and Nathan Sobo created

0bb7189 Use a weak handle to poll local worktree snapshot

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

Antonio Scandurra and Nathan Sobo created

83a3402 Make `TestAppContext` and its dependencies available only in tests

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

Antonio Scandurra and Nathan Sobo created

0d6f6bf Detect when view handles are leaked

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

Antonio Scandurra and Nathan Sobo created

aa03ebc Enable leak backtraces by setting `LEAK_BACKTRACE=1`

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

Antonio Scandurra and Nathan Sobo created

4cfd345 Use `async_broadcast` to emit fake FS events

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

Antonio Scandurra and Nathan Sobo created

3e9dbe1 Capture a weak reference to the `Project` in fake LSP

Antonio Scandurra created

8d078ed Don't block when emitting fs events

Click to expand commit body
Blocking could happen while processing events, which would cause the
background scanner to never make any further progress.

Antonio Scandurra created

ce59e57 Remove project from host connection when unregistering it

Antonio Scandurra created

466db69 Pass a reference to `TestAppContext` in tests

Click to expand commit body
This allows us to drop the context *after* we ran all futures to
completion and that's crucial otherwise we'll never drop entities
and/or flush effects.

Antonio Scandurra created

8390f04 Allow capturing references in the future passed to `Deterministic::run`

Antonio Scandurra created

7ce6f23 Remove all windows on dropping `TestAppContext`

Click to expand commit body
This allows us to remove the dropped entities and flush effects as
necessary.

Antonio Scandurra created

10a872a Avoid reference cycle between `Client` and its models

Antonio Scandurra created

471ecae WIP - include dhat for memory profiling tests

Max Brunsfeld created

3b7cfad Try clearing Client's state at the ends of integration tests

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

Max Brunsfeld and Nathan Sobo created

02ae2d8 Hold client weakly in UserStore

Click to expand commit body
This avoids a reference cycle that is causing some tests
to fail due to leaked handles at the moment. There may be
a better way to fix this though.

Max Brunsfeld created

1faaa91 Avoid retaining executor in the FakeFs

Click to expand commit body
This probably isn't the *root* cause of why an executor is leaked,
but by cutting off this cyclic references, it may make it a bit easier
to track down leaks of an executor.

Max Brunsfeld created

3788efe Clean up guest connection states correctly when a collaborator disconnects

Click to expand commit body
This bug was caught by running the executor until parked after tests.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

c09921e Clear the executor at the end of a test by running until it is parked

Max Brunsfeld created

426e0e3 Flush effects when dropping a TestAppContext

Click to expand commit body
This way, at the end of a test, dropped entities will be removed, and will drop
the handles that they hold.

Max Brunsfeld created

7d53e37 Start work on detecting leaked handles in tests

Click to expand commit body
For now, just track models. Tests fail because we don't
yet clear the app contexts at the right time.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

d1d324e Never close buffers when sharing

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

Max Brunsfeld and Antonio Scandurra created

2111ec0 Make `SearchProject` a `Foreground` message

Click to expand commit body
However, the randomized integration test is still failing:

```
ITERATIONS=100000 SEED=3027 OPERATIONS=200 cargo test --release test_random --package=zed-server -- --nocapture
```

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

400a2fc Don't use a bounded channel for signaling that buffers have been opened

Click to expand commit body
Blocking the sender could halt deserialization for no reason if nobody
is consuming the notifications.

Antonio Scandurra created

1313ca8 Don't delete buffer state when calling `get_open_buffer`

Click to expand commit body
...as we might be in the process of completing a request that could
open a buffer. This was causing a failure in the randomized integration
test.

Antonio Scandurra created

5f7a759 Add project-wide search to randomized integration test

Antonio Scandurra created

abdfdcd Include buffer's deferred ops when computing `has_buffered_operations`

Antonio Scandurra created

720056d Add unit test for project search

Antonio Scandurra created

ed89475 Extract a common `match_index_for_direction` and `active_match_index`

Antonio Scandurra created

8eba964 Fix warning

Nathan Sobo created

cb230ad Re-activate the most recently-activated project search on cmd-shift-F

Click to expand commit body
This commits adds the beginnings of an application state facility as a non-static place to store the most recently-activated search for each project.

I also store workspace items by descending order of their entity id so that we always fetch the newest item of a given type when calling `Workspace::item_of_type`.

Nathan Sobo created

1ddae2a Focus the project find results editor on a tab in the query editor

Nathan Sobo created

71241b1 Add capture phase for action dispatch

Click to expand commit body
Just like the DOM, we now bubble events down the tree during a capture phase before bubbling them back up.

Nathan Sobo created