Antonio Scandurra
c65465b0b5
Ensure workspace gets rendered in collab integration tests
2023-05-03 18:31:07 +02:00
Antonio Scandurra
7f137ed3dd
Compute view ancestry at layout time
2023-05-03 16:36:14 +02:00
Antonio Scandurra
489b1f6a63
Merge remote-tracking branch 'origin/main' into simplify-action-dispatch
2023-04-28 17:31:12 +02:00
Antonio Scandurra
f881f9e3d8
Remove ToggleFollow
internal action
2023-04-28 10:07:44 +02:00
Max Brunsfeld
7258db7a4e
Merge pull request #2417 from zed-industries/hover-markdown
...
Render markdown more correctly in the editor hover popover
2023-04-27 14:15:04 -07:00
Max Brunsfeld
d298ce3fd3
Render more markdown features in hover popover
2023-04-26 15:33:10 -07:00
Max Brunsfeld
54e7464163
collab 0.10.0
2023-04-26 13:24:08 -07:00
Max Brunsfeld
ebbe52e6b0
🎨 Specify more dependencies at the workspace level
2023-04-24 17:41:55 -07:00
Max Brunsfeld
ce34bf62fe
Add failing test for diagnostic message ordering
...
Co-authored-by: Julia Risley <julia@zed.dev>
2023-04-24 13:18:37 -07:00
Max Brunsfeld
abdccf7393
Use a workspace dependency for the futures crate
2023-04-24 09:43:31 -07:00
Antonio Scandurra
c76b9794e4
Merge branch 'main' into window_context_2
2023-04-21 10:58:08 +02:00
Max Brunsfeld
abdfb5a451
collab 0.9.0
2023-04-20 09:52:32 -07:00
Max Brunsfeld
4dd917c123
Introduce a LanguageServerId wrapper type
...
Clarify the meaning of all the usizes in use in all of these
struct fields an method signatures.
2023-04-20 08:58:41 -07:00
Julia
c5f86bc6af
Avoid language servers fighting over diagnostics summaries
...
Previously each server would stomp all over the existing results
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-04-20 08:58:41 -07:00
Antonio Scandurra
c52b6328b7
Merge branch 'main' into window_context_2
2023-04-20 16:01:47 +02:00
Petros Amoiridis
f9c60b98c0
Add newline above and improve newline below
...
Add a new action for inserting a new line above the current line. @ForLoveOfCats also helped fix a bug among other things. When two collaborators had their cursors at the end of a line, and one collaborator performed a newline below action, the second collaborator's cursor would be dragged to the new line. This is also fixing that.
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-04-19 19:57:23 +03:00
Max Brunsfeld
bd7d50f339
Fix 'invalid insertion' panic when following
...
Wait for the necessary buffer operations to arrive before attempting to
set selections and scroll top.
2023-04-18 16:13:18 -07:00
Antonio Scandurra
d03c431f9a
Fix warnings/errors now that AsyncAppContext::update
returns Result
2023-04-18 14:58:57 +02:00
Antonio Scandurra
74ca223114
Fix formatting for the entire workspace
2023-04-14 12:08:33 +02:00
Antonio Scandurra
33bc47dbe2
Merge branch 'main' into window_context_2
2023-04-14 12:07:09 +02:00
Antonio Scandurra
9ef79735dc
Move more window-specific methods from AppContext
to WindowContext
2023-04-14 10:29:35 +02:00
Max Brunsfeld
a85c2d71ad
collab 0.8.3
2023-04-12 11:11:32 -07:00
Nathan Sobo
40896352ff
wip
2023-04-12 10:28:53 -06:00
Antonio Scandurra
83070a19c4
WIP
2023-04-12 15:55:43 +02:00
Max Brunsfeld
61d048cb25
Don't wait for host's reply before broadcasting buffer updates to guests
2023-04-11 12:37:08 -07:00
Antonio Scandurra
172441ab72
Cancel pending calls when participant fails to reconnect
...
Previously, we would only cancel pending calls when the room became
empty.
2023-04-11 16:33:08 +02:00
Max Brunsfeld
abfbba68f0
Improve randomized test assertion message when diff base is wrong
2023-04-10 18:28:34 -07:00
Max Brunsfeld
e79815622c
Preserve ordering between UpdateProject and CreateBufferForPeer messages
...
Previously, because UpdateProject messages were sent in a separately-
spawned task, they could be sent after CreateBufferForPeer messages that
were intended to be sent after them.
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-04-10 12:54:25 -07:00
Antonio Scandurra
9761febf82
Avoid broadcasting SaveBuffer
in response to a client's save request
...
The host will send a `SaveBuffer` message anyway and this prevents re-querying
the database, which could cause two `BufferSaved` messages to race and, as a
result, cause guest to apply them in the wrong order.
2023-04-10 10:02:13 +02:00
Antonio Scandurra
3a82c04248
Improve assertion message when buffer state diverges
2023-04-10 10:01:44 +02:00
Max Brunsfeld
e50c48852a
Wait for host to acknowledge buffer updates before sending them to other guests
2023-04-07 16:27:48 -07:00
Max Brunsfeld
f519f32ec2
Fixed removal of closed projects in randomized test
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-04-07 12:24:59 -07:00
Max Brunsfeld
22a6a243bc
Move project assertions into main assertion function
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-04-06 11:38:42 -07:00
Antonio Scandurra
4a61e2dfa4
Save server operations that were in the middle of being applied
...
Previously, if the test panicked before it had a chance to fully
apply an operation, it would end up not being saved in the plan.
With this commit we will mark the operation as applied before we
start processing it, and mark it as not applied if, once we're done,
we've found out that it couldn't be applied. This is consistent with
what we do for client operations.
2023-04-06 16:02:16 +02:00
Max Brunsfeld
bf3b8adf35
Avoid async fs call before checking if operation is applicable
...
This way, the executor isn't influenced by operations that aren't applicable.
2023-04-05 18:11:33 -07:00
Max Brunsfeld
1064b14779
Don't use TestPlan's rng in fake LSP handlers
...
These should use the test context's rng, so that they behave the same whether
a pre-recorded plan was used, or the plan is being generated.
2023-04-05 17:50:04 -07:00
Max Brunsfeld
8e68c7f808
Do include operations in serialized test plan if they cause a client to hang
2023-04-05 16:52:39 -07:00
Max Brunsfeld
661fba8640
Run executor until parked at end of each iteration of random collaboration test
...
Without this, the server doesn't get dropped at the end of the test, and we eventually run
out of file handles due to sqlite connections being retained.
2023-04-05 15:05:32 -07:00
Max Brunsfeld
781d66f628
Omit operations for non-existent users from serialized test plan
2023-04-05 15:04:27 -07:00
Max Brunsfeld
b251e249a7
Check for consistency between clients every time the system quiesces
2023-04-03 19:11:37 -07:00
Max Brunsfeld
5ecc9606af
Use synchronous locks in FakeFs
...
This way, the state can be accessed without running the deterministic
executor.
2023-04-03 18:15:07 -07:00
Max Brunsfeld
f95732e981
Fix bug where guest would drop BufferSaved messages while opening the buffer
2023-04-03 16:23:44 -07:00
Max Brunsfeld
543301f949
Avoid repeatedly loading/saving the test plan for each iteration
2023-04-03 15:58:11 -07:00
Max Brunsfeld
c960277349
Merge branch 'main' into randomized-tests-operation-script
2023-04-03 13:09:25 -07:00
Antonio Scandurra
5471217089
Use the same serde version across the entire workspace
2023-03-28 09:42:00 -07:00
Mikayla Maki
455cdc8b37
Add copilot crate
...
Refactor HTTP and github release downloading into util
Lazily download / upgrade the copilot LSP from Zed
Co-authored-by: Max <max@zed.dev>
Co-Authored-By: Antonio <antonio@zed.dev>
2023-03-28 09:41:59 -07:00
Julia
ed442cfc8c
Invoke npm from downloaded Node
2023-03-27 00:00:16 -04:00
Julia
edd6c85af7
Initial running of servers on downloaded Node
2023-03-27 00:00:16 -04:00
Max Brunsfeld
399f082415
Update wrong assertions after fixing missing event in FakeFs
2023-03-21 11:26:13 -07:00
Max Brunsfeld
fc828971f1
collab 0.8.2
2023-03-17 15:00:31 -07:00
Max Brunsfeld
691383ca68
Merge pull request #2305 from zed-industries/faster-access-token-validation
...
Faster access token validation
2023-03-17 14:56:30 -07:00
Max Brunsfeld
b8e8363a72
Add logging and metric for time spent hashing auth tokens
...
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
2023-03-17 14:32:13 -07:00
Max Brunsfeld
623133ffa0
Reduce scrypt work factor to speed up websocket authentication
...
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
2023-03-17 14:31:39 -07:00
Max Brunsfeld
9633a4b527
Return a 400, not a 500 when token validation fails
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-03-17 13:56:12 -07:00
Max Brunsfeld
26dae3c04e
Lookup access tokens by id when authenticating a connection
...
This avoids the cost of hashing an access token multiple times,
to compare it to all known access tokens for a given user.
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-03-17 11:13:50 -07:00
Antonio Scandurra
1af8f4be19
Deserialize Theme
directly into the heap to avoid stack overflow
...
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-03-17 15:58:52 +01:00
Max Brunsfeld
9633732db7
collab 0.8.1
2023-03-16 14:21:35 -07:00
Max Brunsfeld
b9bc66aa9b
Log the delay when retrying a transaction
2023-03-16 13:07:38 -07:00
Max Brunsfeld
35280f7d80
Introduce a delay before retrying a transaction after a serialization failure
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-03-16 13:07:38 -07:00
Antonio Scandurra
a6ebc9bd26
collab 0.8.0
2023-03-14 18:21:16 +01:00
Antonio Scandurra
0f429243d7
Fix seed binary
2023-03-14 12:37:56 +01:00
Antonio Scandurra
cba41ef7c5
Create user record automatically when someone logs in on the website
...
Now that we are moving out of the private alpha, we should let everyone
in when they try to log into zed.dev.
2023-03-14 12:25:04 +01:00
Max Brunsfeld
f5c4a2a0dd
Fix failure to see screenshare tracks that were started prior to joining a call
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-03-13 11:15:22 -07:00
Max Brunsfeld
e60dea7049
collab 0.7.2
2023-03-13 10:11:44 -07:00
Antonio Scandurra
bca1acf6d3
Leave room on quit
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-03-13 17:52:10 +01:00
Max Brunsfeld
e8b3d4e0fa
Encode db-max-connections env var as a string in k8s manifest
2023-03-10 17:19:16 -08:00
Max Brunsfeld
ff1c7db38f
collab 0.7.1
2023-03-10 16:36:03 -08:00
Mikayla Maki
37d01c7fb3
Merge pull request #2199 from zed-industries/welcome-experience
...
Welcome experience
2023-03-10 10:48:30 -08:00
Antonio Scandurra
8b7273e46e
Increase the amount of max connections to the database
2023-03-10 10:10:59 +01:00
Mikayla Maki
9187863d0e
re-add spaces removed by new setting
2023-03-09 00:45:05 -08:00
Antonio Scandurra
3daeabc1d6
collab 0.7.0
2023-03-09 09:30:04 +01:00
Antonio Scandurra
9328bb0153
Introduce Kubernetes liveness probe to ensure database works
2023-03-09 09:17:55 +01:00
Antonio Scandurra
89c283ecf0
Merge pull request #2252 from zed-industries/limit-messages-processed-in-parallel
...
Prevent collab server from being overwhelmed with messages
2023-03-09 08:51:48 +01:00
Mikayla Maki
152755b043
Add blank pane experience
2023-03-08 17:56:39 -08:00
Max Brunsfeld
14497027d4
collab 0.6.2
2023-03-08 12:22:16 -08:00
Antonio Scandurra
b4561b848d
Limit the number of parallel messages handled for any given connection
2023-03-08 17:04:01 +01:00
Julia
d173b1d412
Update db followers table when user leaves a project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-03-07 18:56:03 -05:00
Julia
1e5aff9e51
Update collab integration test to new reconnect timeout
2023-03-07 12:23:18 -05:00
Julia
b9110c9268
Increase reconnect timeout
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-03-03 13:10:08 -08:00
Max Brunsfeld
e7b56f6342
adjust buffer-formatting assertion to reflect final newline addition
2023-02-28 21:52:00 -08:00
Max Brunsfeld
e910fd8493
collab 0.6.1
2023-02-24 09:44:23 -08:00
Julia
465d8cc2ff
Differentiate between follow state on a per-project basis
2023-02-24 00:07:17 -05:00
Antonio Scandurra
bbeb33bc7e
Fix error when deleting rooms containing projects on refresh
...
A foreign key violation was causing the server to never delete stale
rooms during `Database::refresh_room` due to having one or more project
records referencing the room.
2023-02-23 15:54:35 +01:00
Antonio Scandurra
74e0bed38f
Fix compilation errors after restructuring room_transaction
2023-02-23 15:17:22 +01:00
Antonio Scandurra
832549f1a3
Merge branch 'main' into call-ui-follow-up
2023-02-23 15:15:46 +01:00
Antonio Scandurra
9334267bd0
Tear down peer when signing out
2023-02-23 14:47:02 +01:00
Antonio Scandurra
1c636500de
Merge pull request #2200 from zed-industries/fix-slow-project-join
...
Hold room lock through the entirety of a `room_transaction`
2023-02-23 09:11:58 +01:00
Max Brunsfeld
111aff29cc
collab 0.6.0
2023-02-22 12:35:15 -08:00
Julia
0324ca3b08
Be more specific about clearing (leader, follower) row
...
Previously anyone unfollowing someone would clear all other rows for
other followers leading to an incorrect state, fix and test
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-02-22 15:29:20 -05:00
Max Brunsfeld
0dc92bec5c
Retrieve room id from the project when following/unfollowing
...
Previously, we were accidentally using the project id as the room id.
2023-02-22 11:34:55 -05:00
Julia
e403b868b7
Add followers table to sqlite scheme for tests
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-02-22 11:22:37 -05:00
Julia
4513c40993
Following face piles finally take their first breath
2023-02-22 11:21:23 -05:00
Julia
4ffc8cd9fd
Fix deadlock in db get_room
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-02-22 11:21:23 -05:00
Julia
2592ec7265
Initial tracking of unfollows on collab server
2023-02-22 11:21:23 -05:00
Julia
d6462c611c
Begin tracking follow states on collab server
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-02-22 11:21:23 -05:00
Antonio Scandurra
8dd249a7cd
Hold room lock through the entirety of a room_transaction
...
Previously, when the host repeatedly sent `UpdateWorktree` messages,
new guests attempting to join a project would observe a severe slowdown
caused by a database serialization error (e.g., the coherence of the data
would get violated midway through `Database::join_project` due to worktree
entries being mutated as the user joined). Writing entries is pretty fast,
whereas reading all of them for a project can take more than 100ms.
Transactions that failed due to a serialization error are retried, but the guest
would keep retrying until the host finished writing because the guest's read
was slow.
This commit changes the semantics of `room_transaction` to acquire a room
lock before even starting the transaction and holding it all the way after
commit (storing it, as before, in the `RoomGuard`). This ensures that a fast
writer (the host) can't starve a slow reader (the guest), allowing the latter
to make progress by temporarily pausing writes by the former.
2023-02-22 16:04:29 +01:00
Max Brunsfeld
51cea1b1fb
Merge branch 'main' into randomized-tests-operation-script
2023-02-20 10:39:00 -08:00
Julia
bda37ffb9c
Enforce rustfmt on CI & clean up some let-else format errors
2023-02-20 13:27:35 -05:00
Max Brunsfeld
010eba509c
Make Project::save_buffer and ::save_buffers into methods
2023-02-20 09:42:44 -08:00
Max Brunsfeld
cdf64b6cad
Unify save and save_as for local worktrees
...
This fixes state propagation bugs due to missing RPC calls in save_as.
2023-02-17 17:21:48 -08:00