Commit Graph
364 Commits
Author SHA1 Message Date
Marshall Bowers aa6c74da51 Add SystemClock (#8239)
This PR adds a `SystemClock` trait for abstracting away the system
clock.

This allows us to swap out the real system clock with a
`FakeSystemClock` in the tests, thus allowing the fake passage of time.

We're using this in `Telemetry` to better mock the clock for testing
purposes.

Release Notes:

- N/A
2024-02-22 22:28:08 -05:00
Kirill Bulatov f47435b84d Use collections::{HashMap, HashSet} instead of its std:: counterpart (#7502) 2024-02-07 19:06:03 +02:00
Antonio Scandurra 15f378650b Revert "Use Fx* variants of HashMap and HashSet everywhere in Zed" (#7492)
Reverts zed-industries/zed#7481

This would regress performance because we'd be using the standard
library's hash maps everywhere, so reverting for now.
2024-02-07 13:16:22 +01:00
Kirill Bulatov 5111ec0773 Use Fx* variants of HashMap and HashSet everywhere in Zed (#7481)
Release Notes:

- N/A
2024-02-07 09:45:37 +02:00
Conrad Irwin a13383693f Don't log errors on main (#7289)
Release Notes:

- N/A
2024-02-02 19:24:49 -07:00
James Roberts f3bb74bf64 Use async-native-tls for websockets (#7254)
This change switches from using async_tungstenite::async_tls to
async_tungstenite::async_std with the async-native-tls feature.

The previous feature, async_tls, used async-tls which wraps rustls.
rustls bundles webpki-roots, which is a copy of Mozilla's root
certificates. These certificates are used by default, and manual
configuration is required to support custom certificates, such as those
required by web security gateways in enterprise environments.

Instead of introducing a new configuration option to Zed,
async-native-tls integrates with the platform-native certificate store
to support enterprise environments out-of-the-box. For MacOS, this adds
support for Security.framework TLS. This integration is provided through
openssl-sys, which is also the SSL certificate provider for isahc, the
library underlying Zed's HTTP client. Making websockets and HTTP
communications use the same SSL provider should keep Zed consistent
operations and make the project easier to maintain.



Release Notes:

- Fixed WebSocket communications using custom TLS certificates
([#4759](https://github.com/zed-industries/zed/issues/4759)).
2024-02-02 09:08:15 -08:00
Conrad Irwin ac3424cf63 app version to server (#7130)
- Send app version and release stage to collab on connect
- Read the new header on the server

Release Notes:

- Added the ability to collaborate with users on different releases of
Zed.
2024-01-31 15:46:24 -07:00
Conrad Irwin 860d38e2d7 Add a checksum telemetry request (#7168)
We're seeing a bit of nonsense on telemetry. Although the checksum seed
isn't secret per-se, it does make sending nonsense a little more effort.

Release Notes:

- N/A
2024-01-31 15:44:38 -07:00
953f5c9d35 gpui: Add Global marker trait (#7095)
This should prevent a class of bugs where one queries the wrong type of
global, which results in oddities at runtime.

Release Notes:

- N/A

---------

Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
2024-01-30 14:08:20 -05:00
Conrad Irwin 79e50f734c nightly url setting (#7037)
Release Notes:

- Added the ability to set settings per-release stage
- Added a `"server_url"` setting
2024-01-30 11:35:07 -07:00
Marshall Bowers fe3c833a71 Rework loading images from files (#7088)
This PR is a follow-up to #7084, where I noted that I wasn't satisfied
with using `SharedUri` to represent both URIs and paths on the local
filesystem:

> I'm still not entirely happy with this naming, as the file paths that
we can store in here are not _really_ URIs, as they are lacking a
protocol.
>
> I want to explore changing `SharedUri` / `SharedUrl` back to alway
storing a URL and treat local filepaths differently, as it seems we're
conflating two different concerns under the same umbrella, at the
moment.

`SharedUri` has now been reverted to just containing a `SharedString`
with a URI.

`ImageSource` now has a new `File` variant that is used to load an image
from a `PathBuf`.

Release Notes:

- N/A
2024-01-30 11:26:02 -05:00
Marshall Bowers f6b5ea4277 Rename SharedUrl to SharedUri (#7084)
This PR renames `SharedUrl` to `SharedUri` to better reflect its intent.

I'm still not entirely happy with this naming, as the file paths that we
can store in here are not _really_ URIs, as they are lacking a protocol.

I want to explore changing `SharedUri` / `SharedUrl` back to alway
storing a URL and treat local filepaths differently, as it seems we're
conflating two different concerns under the same umbrella, at the
moment.

Release Notes:

- N/A
2024-01-30 09:54:23 -05:00
Bennet Bo Fenner 7b53c4db5c gpui: Support loading image from filesystem (#6978)
This PR implements support for loading and displaying images from a
local file using gpui's `img` element.

API Changes:
- Changed `SharedUrl` to `SharedUrl::File`, `SharedUrl::Network`

Usage:
```rust
// load from network
img(SharedUrl::network(...)) // previously img(SharedUrl(...)

// load from filesystem
img(SharedUrl::file(...))
```

This will be useful when implementing markdown image support, because we
need to be able to render images from the filesystem (relative/absolute
path), e.g. when implementing markdown preview #5064.

I also added an example `image` to the gpui crate, let me know if this
is useful. Showcase:
<img width="872" alt="image"
src="https://github.com/zed-industries/zed/assets/53836821/b4310a26-db81-44fa-9a7b-61e7d0ad4349">

**Note**: The example is fetching images from [Lorem
Picsum](https://picsum.photos) ([Github
Repo](https://github.com/DMarby/picsum-photos)), which is a free
resource for fetching images in a specific size. Please let me know if
you're okay with using this in the example.
2024-01-29 21:56:51 -08:00
Christian Clauss f58114b0a1 Fix typos discovered by codespell 2024-01-25 18:32:32 +01:00
Conrad Irwin 4498a5d50a Try to send typed errors back and forth
TEMP

TEMP

First pass of structured errors

Improved error handling for channel joining failures
2024-01-24 20:32:39 -07:00
Antonio Scandurra c1397046d8 Move interaction with keychain off the main thread 2024-01-24 14:53:05 +01:00
Conrad Irwin fbf9ac622f less secret (#4221)
- Remove ZED_SECRET_CLIENT_TOKEN
- Remove ZED_CLIENT_SECRET_TOKEN

Neither of these were ever actually a secret.

Release Notes:

- N/A
2024-01-23 10:43:15 -07:00
Conrad Irwin c9c4b2c4bc Remove ZED_SECRET_CLIENT_TOKEN 2024-01-23 10:34:00 -07:00
Conrad Irwin 90795aa2de Fix a circular reference between Client and UserStore
Before this change once the UserStore had been created, the Client would
never be dropped.
2024-01-22 23:05:58 -07:00
Piotr Osiewicz a8f1c15a1e chore: Fix clippy::needless_borrow up to an editor 2024-01-21 15:03:24 +01:00
Joseph T. Lyons 60065c80db Add some initial testing to telemetry 2024-01-20 23:23:52 -05:00
Conrad Irwin 68402f737f Show cursors for remote participants (#4082)
This PR enables cursors for remote participants.

They are shown for 2 seconds when you focus a buffer, and then on hover.

Release Notes:

- Added usernames next to remote cursors
2024-01-18 20:58:09 -07:00
Conrad Irwin 9ed647ef72 Fine tune 2024-01-18 15:59:13 -07:00
Conrad Irwin 8ea05dc816 Send crash reports to Slack automatically (#4111)
This uploads apples crash reports to our servers when telemetry is
enabled.

Rather than jumping via the website, it uploads to collab directly. (I'd
like
to update the panic handler to do this too to make it possible to work
on that end-to-end without zed.dev running).

Release Notes:

- Added reporting of crashes when telemetry is enabled
2024-01-18 15:30:39 -07:00
Conrad Irwin 93b7de7363 Merge branch 'main' into cursors 2024-01-18 14:03:27 -07:00
Joseph T. Lyons a41f549339 Use try_global() 2024-01-18 01:33:30 -05:00
Conrad Irwin 86a5002ec3 Simplify service discovery in development 2024-01-17 23:06:03 -07:00
Conrad Irwin b8f29f1541 Upload panics via zed.dev instead 2024-01-17 22:55:15 -07:00
Conrad Irwin c4b153d088 Send crash reports to Slack automatically 2024-01-17 19:51:33 -07:00
Conrad Irwin 61e7739ca0 Show cursors for remote participants 2024-01-16 21:54:49 -07:00
Joseph T. Lyons 98826d0da4 Rename variable 2024-01-16 18:35:50 -05:00
Joseph T. Lyons c05ff85935 Remove dbg!()s 2024-01-16 18:33:43 -05:00
Joseph T. Lyons 126028a62d Do not reset timer for each reported event 2024-01-16 18:31:00 -05:00
Joseph T. Lyons 7a265e9121 Add command palette action events 2024-01-15 20:22:47 -05:00
Joseph T. Lyons 93ffacdf9f Remove button event function 2024-01-15 16:28:28 -05:00
Joseph T. Lyons 49c244bfb2 Removed button event 2024-01-15 16:26:56 -05:00
Joseph T. Lyons fa0ba2cca2 Add more open events
project search
diagnostics
welcome page
2024-01-15 16:26:04 -05:00
Mikayla 610455254b Don't open files unescessary in dev builds 2024-01-12 22:47:07 -08:00
Mikayla 3c34f6282d Restore temp file initialization in telemetry code 2024-01-12 21:37:09 -08:00
Max Brunsfeld 2e428719d4 Fix failure to write to keychain because of dropping a future 2024-01-11 16:22:34 -08:00
Joseph T. Lyons b6f58f07e6 Return a single Option from EventCoalescer 2024-01-11 12:27:59 -05:00
Joseph T. Lyons 9d094249c4 Only return environment when period ends 2024-01-11 11:30:22 -05:00
Joseph T. Lyons 4a26e632f6 Fix bug with improperly reported environment
When logging the edit environment, we were logging the newest environment being sent into the EventCoalescer on the latest activity log, when we should've been logging the environment that was associated with the ended period within the EventCoalescer.
2024-01-11 11:24:55 -05:00
Joseph T. Lyons 9ed59ba8c3 Increase debug mode queue size 2024-01-11 01:12:49 -05:00
Joseph T. Lyons 8aa67fbe3d Never send an an empty set of events 2024-01-11 01:12:30 -05:00
Joseph T. Lyons 78913b5f7c Add reminder for the future 2024-01-10 21:02:34 -05:00
Joseph T. Lyons bf796791a1 Rename field in telemetry struct 2024-01-10 17:41:02 -05:00
Joseph T. Lyons 082a81f0a8 WIP 2024-01-10 17:04:26 -05:00
Joseph T. Lyons 37caf3e06c Merge branch 'main' into instrument-keyboard-events 2024-01-10 16:03:01 -05:00
Joseph T. Lyons cef3f92861 WIP 2024-01-10 02:05:42 -05:00