Commit Graph
1011 Commits
Author SHA1 Message Date
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 ScandurraandNathan Sobo 914112f2b5 Fix test_channel_messages unit test
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-15 12:15:54 +02:00
Antonio ScandurraandNathan Sobo 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 SoboandMax Brunsfeld 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 SoboandMax Brunsfeld 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 SoboandMax Brunsfeld 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
Nathan SoboandMax Brunsfeld 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
Nathan SoboandMax Brunsfeld e212461dfe Authenticate when clicking on unauthenticated avatar in titlebar
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-09-14 17:06:40 -06:00
Nathan SoboandMax Brunsfeld 0f415a594f Style avatar image with border and rounded corners
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-09-14 16:59:38 -06:00
Nathan SoboandMax Brunsfeld e0e0bdbc3a 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 84d4bb6186 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 f0019e3725 WIP 2021-09-14 12:29:56 -06:00
428c491542 WIP: Start on rendering avatars
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-14 19:21:03 +02:00
2cf1c697c2 Render a signed out icon in titlebar
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-09-14 18:53:41 +02:00
Antonio Scandurra 96ade8668f Start on image rendering 2021-09-14 16:48:44 +02:00
Antonio ScandurraandMax Brunsfeld 201b923248 Don't panic if heartbeat messages can't be sent
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-09-14 10:56:09 +02:00
Nathan Sobo 7737699981 Use a pointing hand cursor style on tab close icons 2021-09-13 11:49:10 -06:00
Max Brunsfeld 3d4a451c15 Merge commit '680b86b17c63b67f768bc5da5f34e5ccf056a0ce' into main 2021-09-10 15:22:59 -07:00
Nate 6afd477569 Add initial collaborator colors
* Define host selection color
* Add 7 unique guest colors, optimizing for contrast between selectors the fewer collaborators you have
* Selections use transparent versions of the cursor color
2021-09-10 15:56:39 -04:00
Nate 21c74ca78d Add "zed" label to the title bar 2021-09-10 13:42:38 -04:00
Nate 64c26a73be Seperate selector.input_editor and chat_panel.input_editor
* create [selector.input_editor] and style
* Update selector style to match figma now that inputs are individually stylable
2021-09-10 11:23:38 -04:00
Nate 160c4beb06 Add shadow to channel select menu 2021-09-10 10:18:14 -04:00
Nate fac42fd3c2 Fix border on channel select menu 2021-09-10 10:14:21 -04:00
Max Brunsfeld 680b86b17c Avoid holding strong handle to Channel in long-lived task 2021-09-09 17:57:06 -07:00
Max Brunsfeld 5a4ba7f551 💄 Use time::Global::into in Anchor::into 2021-09-09 17:56:32 -07:00
Max Brunsfeld c58e335b87 Make UpdateBuffer a request, store unsent operations on worktree 2021-09-09 11:26:06 -07:00
Max Brunsfeld 38bfaba135 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 000305472a Minor stylistic changes 2021-09-09 19:51:26 +02:00
Antonio Scandurra b3aad5d333 💄 2021-09-09 17:45:33 +02:00
Antonio Scandurra 8fb58e09d8 Remove channel disconnection unit test
...as that's already covered by the integration test.
2021-09-09 17:00:55 +02:00
Antonio ScandurraandNathan Sobo d08ec8bd53 Reduce backoff and add some jitter to avoid thundering herd issues
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-09 17:00:18 +02:00
Antonio ScandurraandNathan Sobo 8de18b5a84 Re-join channel when reconnecting
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-09 15:34:46 +02:00
Antonio Scandurra 156fd4ba57 Add integration test simulating killing a connection while chatting 2021-09-09 13:27:44 +02:00
Antonio Scandurra ad7631de9f Refactor and write a simple unit test to verify reconnection logic 2021-09-09 11:00:43 +02:00
Max Brunsfeld 6baa9fe37b WIP - Start work on reconnect logic 2021-09-08 18:20:32 -07:00
Max Brunsfeld edbd424b75 Introduce test-only APIs for configuring how Client reconnects 2021-09-08 18:19:59 -07:00
Max Brunsfeld b6eac57f63 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
Max Brunsfeld c3e29e0a2d Finish implementing DeterministicExecutor::advance_clock
* Start by running all non-timer futures to completion, to ensure that
  timers have a chance to be registered.
* Release executor's state lock before waking any timers
2021-09-08 11:27:30 -07:00
Antonio ScandurraandMax Brunsfeld 900010160f WIP
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-09-08 18:58:59 +02:00
Antonio Scandurra a3bbf71390 🎨 2021-09-08 17:10:48 +02:00
Antonio ScandurraandNathan Sobo 6c3551bff1 Use watch::Sender::borrow_mut instead of send
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-08 17:09:58 +02:00
Antonio Scandurra 7ac3b5e707 Merge pull request #138 from zed-industries/adjust-font
Add bindings to adjust buffer font size
2021-09-08 17:07:53 +02:00
Antonio Scandurra af6e931da7 Start on a Client::status method that can be observed 2021-09-08 15:58:16 +02:00
Nate Butler 75bd1bdda7 Tab refinements
* Update close icon to remove whitespace
* Update tab spacing
* DOESN'T update active_tab to add right border when it is last tab
2021-09-08 01:07:09 -04:00
Nate Butler 0ef409d48f Change the active_line style to a transparent black 2021-09-08 00:10:55 -04:00
Nathan Sobo 5164026238 Test rewraping on font size change 2021-09-07 22:10:01 -06:00
Nathan Sobo 0fb59ee491 Hold a weak handle when watching settings in WrapMap 2021-09-07 22:08:40 -06:00
Nathan Sobo 8262afd1fb Fix compile errors in tests 2021-09-07 21:46:36 -06:00
Nathan Sobo 17d46cef7f Recompute wraps when font size changes 2021-09-07 21:38:14 -06:00