Max Brunsfeld
095f52f78a
Fix duplicated results in get_users_by_ids
2021-09-15 16:45:41 -07:00
Max Brunsfeld and Nathan Sobo
4381e7b645
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
Antonio Scandurra
4c0236020f
Merge branch 'render-images'
2021-09-15 12:11:08 +02:00
Nathan Sobo
e0a48ec727
Clear cached credentials when establishing a websocket connection with an invalid token
2021-09-14 20:36:03 -06:00
Nathan Sobo and Max Brunsfeld
e541e06cdc
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 and Max Brunsfeld
96a00d43c0
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
97767ced01
Fix type errors in server tests
2021-09-14 17:15:17 -07:00
Nathan Sobo and Max Brunsfeld
5cc7bf0881
Synthesize GitHub avatar URL and follow redirects when fetching it
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-09-14 16:28:26 -06:00
Max Brunsfeld
0813e912f3
Introduce HttpClient trait, use it to fetch avatars in UserStore
...
* Add a FakeHttpClient for tests
2021-09-14 13:42:44 -07:00
Nathan Sobo
c36f05a9ce
Fix signups query
2021-09-14 13:23:35 -06:00
Nathan Sobo
f745016771
WIP
2021-09-14 12:29:56 -06:00
Max Brunsfeld
fb820b40eb
Make UpdateBuffer a request, store unsent operations on worktree
2021-09-09 11:26:06 -07:00
Max Brunsfeld
8e01d93231
Add a generic Ack message, use it instead of Pong
...
Remove the `id` field from `Ping`, because it isn't used.
There is already an id on the message envelope.
2021-09-09 11:24:16 -07:00
Antonio Scandurra and Nathan Sobo
672241640c
Ensure client A and B can communicate after reconnection
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-09-09 15:40:35 +02:00
Antonio Scandurra
a0d615cf30
Add integration test simulating killing a connection while chatting
2021-09-09 13:27:44 +02:00
Antonio Scandurra
7bec00197d
Respond to RPC pings in the server
2021-09-09 11:08:41 +02:00
Antonio Scandurra
c63b87af09
Refactor and write a simple unit test to verify reconnection logic
2021-09-09 11:00:43 +02:00
Max Brunsfeld
ecc590fd12
Introduce a concrete Conn type for peer's websocket connection
...
This is mostly to set us up to test the rpc::Client's reconnect
logic.
There are multiple ways that the `rpc::Client` may establish
its websocket connection: (SSL in production, plain TCP during
local development, and using an in-memory connection for tests).
Now we can represent all of those connections using a common type.
Also, several long methods no longer need to be generic, which
is good for compile time.
2021-09-08 18:14:47 -07:00
Antonio Scandurra and Max Brunsfeld
c3948e9d38
WIP
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2021-09-08 18:58:59 +02:00
Antonio Scandurra
841260f783
Start on a Client::status method that can be observed
2021-09-08 15:58:16 +02:00
Antonio Scandurra
5458f0714e
Focus chat input editor after signing in
2021-09-07 13:57:30 +02:00
Antonio Scandurra
c7f0983acd
Bundle and use Inconsolata v2.012
...
There's a newer version of the font available but ligatures seem
broken googlefonts/Inconsolata#58 and googlefonts/Inconsolata#52 .
As part of this commit I also upgraded rust-embed to use the new
exclusion feature, which allows us to skip embedding OS files like
`.DS_Store`.
2021-09-04 17:02:20 +02:00
aea839f9f8
Include sanitized message in SendChannelMessageResponse
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2021-09-02 18:31:24 +02:00
Antonio Scandurra and Nathan Sobo
b5c3798c39
Make scrolling up in chat panel smoother
...
This increases the threshold at which we start loading new messages
as well as the amount of messages we get back from the server every
time we fetch.
Also, we restructured the seed binary to use the methods in `Db` to
generate seed data and added random chat messages.
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-09-02 16:05:34 +02:00
Antonio Scandurra and Nathan Sobo
a866a893f8
Take &mut self in View::render
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-30 17:51:26 +02:00
Max Brunsfeld
919822acc9
Don't allow empty chat messages
2021-08-27 17:21:53 -07:00
Max Brunsfeld
b6cf3d2d65
Trim whitespace from chat messages and limit their length
...
Add a way for the server to respond to any request with an error
2021-08-27 17:21:35 -07:00
Max Brunsfeld
0ad00f298a
Drop the word 'recent' from get_channel_messages db method name
2021-08-27 15:50:45 -07:00
Max Brunsfeld and Nathan Sobo
168aa11e64
Fetch older messages when scrolling up in the chat message list
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-27 14:58:28 -07:00
Antonio Scandurra and Nathan Sobo
c837b9b078
Remove lock from element states
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-27 18:04:21 +02:00
72f50bb66a
Overhaul handling of font families
...
* Specify font families in the theme.
* Load fonts eagerly when loading themes, instead of loading
them lazily when rendering.
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-26 15:06:00 -07:00
Antonio Scandurra
dbb53093f5
Fix retrieving recent channel messages
2021-08-26 14:14:22 +02:00
Antonio Scandurra
1469db51f5
Extract a TestDb to setup and tear down a database instance
2021-08-26 12:51:48 +02:00
Nathan Sobo and Max Brunsfeld
b97e81c814
Associate messages with their sender, fetching senders if necessary
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-08-25 14:20:03 -06:00
Antonio Scandurra
4b37b16791
Render chat messages in ChatPanel
2021-08-24 12:23:50 +02:00
Max Brunsfeld
8192b67458
Add ChannelList to AppState
2021-08-23 15:03:45 -07:00
Nathan Sobo
ad339f0743
Get project compiling with type-safe actions
2021-08-22 21:02:48 -06:00
Antonio Scandurra and Nathan Sobo
5a647cb6bc
Forbid parking earlier in server integration tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-20 16:41:10 +02:00
Antonio Scandurra and Nathan Sobo
555d5132b7
Make database interactions deterministic in test
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-20 16:24:33 +02:00
Antonio Scandurra and Nathan Sobo
d5f0833b67
💄
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-20 15:00:08 +02:00
Antonio Scandurra and Nathan Sobo
1128405fa5
Extract a Db::close method and remove deref to PgPool
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-20 14:58:14 +02:00
Antonio Scandurra and Nathan Sobo
eb53ffcbbd
Implement and test channel cleanup as clients leave
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-20 14:32:53 +02:00
Antonio Scandurra
1d58a6f629
Save messages received from the server
2021-08-20 11:16:59 +02:00
Max Brunsfeld
460d56ff9e
Start work on sending channel messages
2021-08-19 18:04:49 -07:00
Nathan Sobo
7387633ec0
Fetch messages when joining a channel
2021-08-19 15:25:20 -06:00
Max Brunsfeld
29bfd78b0b
WIP
2021-08-19 13:07:28 -07:00
Max Brunsfeld and Nathan Sobo
0d06ef784a
Move Arc outside of rpc::Client
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-19 12:56:50 -07:00
Max Brunsfeld and Nathan Sobo
e734f58c97
Consolidate server's rpc state into the rpc::Server struct
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-19 12:17:52 -07:00
cdb374b2aa
Remove remaining instances of router
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2021-08-19 19:38:17 +02:00
Antonio Scandurra
3f68dcf5f0
Re-register message handlers in RPC server
2021-08-19 15:35:03 +02:00