Commit Graph

1455 Commits

Author SHA1 Message Date
Antonio Scandurra
d381020a60 Add Server::{state,state_mut} to catch most deadlocks statically 2021-09-21 12:19:52 +02:00
Antonio Scandurra
0b11192fe3 Remove deadlock and make integration tests pass again 2021-09-21 11:58:31 +02:00
Antonio Scandurra
1954c6b00e Replace returned tuples with named structs in Store 2021-09-21 11:38:50 +02:00
Nathan Sobo
aa671f1041 Fix remaining compilation errors 2021-09-20 19:44:30 -06:00
Max Brunsfeld
5dfd4be174 WIP 2021-09-20 18:05:46 -07:00
Max Brunsfeld
8b1a2c8cd2 Fix warnings in people_panel 2021-09-20 15:45:41 -07:00
Max Brunsfeld
8f578e7521 Maintain server state consistency when removing a connection
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-20 15:45:33 -07:00
Max Brunsfeld
8de9c362c9 Add .zed.toml 2021-09-20 15:44:42 -07:00
Max Brunsfeld
a068019d94 Add ZED_IMPERSONATE env var, for testing
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-20 15:44:28 -07:00
Max Brunsfeld
4ca5814470 Add missing people panel properties to base theme
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-20 13:38:59 -07:00
Antonio Scandurra
23652f2ba6 Start on PeoplePanel::render
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-20 20:04:48 +02:00
Antonio Scandurra
67946b7224 Add an integration test to verify collaborators are kept up to date 2021-09-20 16:40:31 +02:00
Antonio Scandurra
3d4dbf3140 Maintain collaborators in UserStore 2021-09-20 15:05:41 +02:00
Antonio Scandurra
32111092bd Turn UserStore into a model 2021-09-20 14:40:06 +02:00
Antonio Scandurra
6f2c8ffb00 Introduce a Client::subscribe method that doesn't need an entity 2021-09-20 14:14:07 +02:00
Antonio Scandurra
ae9fb65315 Fix integration tests 2021-09-20 12:52:13 +02:00
Antonio Scandurra
d8ea220acc Update collaborators as worktrees are opened/shared/closed 2021-09-20 12:29:32 +02:00
Antonio Scandurra
f13af7dc59 WIP
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-17 18:37:00 +02:00
Antonio Scandurra
f2825cceba Start on Presence as the backing model for the people panel 2021-09-17 16:18:41 +02:00
Antonio Scandurra
12fa309b7c Implement proto::GetCollaborators request 2021-09-17 14:36:50 +02:00
Max Brunsfeld
e3c0d6980c Switch to a new flow for advertising, sharing and joining worktrees
Now, when you open a local worktree, we immediately send an `OpenWorktree` message
to the server, telling it the name of the folder that you've opened, and the names of all the
collaborators (based on a `.zed.toml` file). The server responds with a unique id for the
worktree.

When starting share this local worktree, you now include this previously-assigned id
in the `ShareWorktree` message.

When joining a worktree, there is no longer a need to provide an access token. The access
is controlled by the set of "collaborator logins" that were provided when the worktree
was initially opened by the host.
2021-09-16 18:39:29 -07:00
Max Brunsfeld
176ca9086e Rename OpenWorktree message to JoinWorktree
We'll repurpose the name 'OpenWorktree' for opening a local
worktree while signed in, and advertising the open status to
the worktree's collaborators.
2021-09-16 12:57:19 -07:00
Max Brunsfeld
f0093974ee Always store an rpc client on local worktrees
Even before sharing, we now want to advertise that the user is working
on a certain worktree, to make that visible to all of the worktree's
collaborators.
2021-09-16 11:06:49 -07:00
Antonio Scandurra
260114af6c Update Inconsolata to not include ligatures
Fixes #146

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-16 17:47:17 +02:00
Antonio Scandurra
f21b180bce Merge pull request #147 from zed-industries/finish-disconnected-chat
Finish up making the chat panel handle disconnect and reconnect
2021-09-16 17:46:55 +02:00
Antonio Scandurra
79fb3aa8af Add migration to add a nonce column to channel_messages
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-16 17:43:43 +02:00
Antonio Scandurra
02768b7f7b Remove duplicated text base definition 2021-09-16 17:39:12 +02:00
Antonio Scandurra
8973e250ca Re-send pending messages after reconnecting 2021-09-16 16:23:43 +02:00
Antonio Scandurra
4a96a5c9ff Use a negative delta to scroll down in layout unit test for List 2021-09-16 11:46:53 +02:00
Antonio Scandurra
9402eb3f3e Maintain parent pointers from primitive values too
After resolving a reference to a primitive value, we want to set
its parent pointer so that `Tree::resolve` can navigate upward and
update the cached resolved status of each node.
2021-09-16 11:17:54 +02:00
Max Brunsfeld
df4b5890fd Run fewer iterations of the gpui list test by default 2021-09-15 18:06:21 -07:00
Max Brunsfeld
fbe77e92b4 Run all crates' tests on CI 2021-09-15 17:56:08 -07:00
Max Brunsfeld
2392075467 Get resolve_references test passing 2021-09-15 17:49:51 -07:00
Max Brunsfeld
caf0f0e428 Fix duplicated results in get_users_by_ids 2021-09-15 16:45:41 -07:00
Max Brunsfeld
31b5602dc1 Get server integration tests passing again
* Set up UserStore to have the current user, so that
  channel messages can be sent. This is needed now that
  pending messages are represented more similarly to
  regular messages.
* Drop buffer inside of an `AppContext.update` block, so that
  the Buffer's release hook is called in time.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-15 16:17:07 -07:00
Nathan Sobo
95ef70e4f4 Switch to new resolution system in ThemeRegistry
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-09-15 12:56:20 -06:00
Antonio Scandurra
5ee0e85f02 WIP
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-09-15 18:32:44 +02:00
Antonio Scandurra
65b22157e7 WIP 2021-09-15 15:12:16 +02:00
Nathan Sobo
c2e9aa1b54 Render chat panel messages even if connection is lost
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-09-15 05:18:13 -06:00
Nathan Sobo
ec7c6f3f91 Always assign credentials on rpc::Client after connecting
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
v0.2.1
2021-09-15 05:13:05 -06:00
Nathan Sobo
7d59b2d861 Log panics when not attached to a pty
Hopefully this will give us better forensics if we panic in production.
2021-09-15 04:51:22 -06:00
Antonio Scandurra
914112f2b5 Fix test_channel_messages unit test
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-15 12:15:54 +02:00
Antonio Scandurra
f6bf0792ce Merge branch 'render-images' 2021-09-15 12:11:08 +02:00
Antonio Scandurra
603f1d820d Authenticate via the browser if keychain credentials are invalid
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-15 11:45:08 +02:00
Nathan Sobo
7e4d5b7d04 Clear cached credentials when establishing a websocket connection with an invalid token 2021-09-14 20:36:03 -06:00
Nathan Sobo
4a9918979e WIP: Clear cached credentials if authentication fails
Still need to actually handle an HTTP response from the server indicating there was an invalid token.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-09-14 19:19:11 -06:00
Nathan Sobo
77a4a36eb3 Test that we reuse credentials when reconnecting
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-09-14 18:30:17 -06:00
Nathan Sobo
44a457e8b6 Cache credentials in memory separately from connection status
This prevents us from re-prompting for keychain access when we retry connections after the connection is lost.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-09-14 18:21:46 -06:00
Max Brunsfeld
aa7c1bfa2d Fix type errors in server tests 2021-09-14 17:15:17 -07:00
Nathan Sobo
99a2dc4880 Render an offline icon in titlebar when connection is lost
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-09-14 17:47:43 -06:00