Commit Graph

244 Commits

Author SHA1 Message Date
Mikayla Maki
37a4de1a84 Add opt-out for metric reporting
co-authored-by: kay <kay@zed.dev>
2023-01-10 15:49:54 -08:00
Joseph Lyons
0200fc5542 WIP
Don't rely on contacts popover or contacts list for theming
Add metrics id to request body
Clean up some code and comments

Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>
2023-01-07 18:53:00 -05:00
Nathan Sobo
273988b8d5 Set transaction group interval to ZERO by default in tests
We were seeing non-deterministic behavior in randomized tests when
generating backtraces took enough time to cause transactions to group
in some cases, but not group in others.

Tests will need to explicitly opt into grouping if they want it by
setting the interval explicitly. We have tests in the text module that
currently test the history grouping explicitly, but I'm not sure
it's needed elsewhere.
2022-12-27 16:47:28 -07:00
Max Brunsfeld
599acf0daa WIP - Panic immediately when detecting non-determinism via a change to the execution trace 2022-12-23 17:34:13 -08:00
Antonio Scandurra
75803d8dbb Respond with an error when client hasn't got a registered handle 2022-12-23 11:53:13 +01:00
Antonio Scandurra
930be6706f WIP 2022-12-14 18:02:39 +01:00
Antonio Scandurra
05e99eb67e Introduce an epoch to ConnectionId and PeerId 2022-12-14 15:55:56 +01:00
Antonio Scandurra
9a62150dce Merge branch 'main' into reconnections-2 2022-12-05 19:18:40 +01:00
Mikayla Maki
ffcad4e4e2 WIP fixing dock problems 2022-12-03 16:06:02 -08:00
Kay Simmons
359b8aaf47 rename sql_method to query and adjust the syntax to more closely match function definitions 2022-12-03 16:06:01 -08:00
Mikayla Maki
4798161118 Distributed database pattern built.
Co-Authored-By: kay@zed.dev
2022-12-03 16:06:01 -08:00
Mikayla Maki
c84201fc9f Done first draft of strongly typed migrations 2022-12-03 16:05:25 -08:00
Antonio Scandurra
969c314315 Merge branch 'main' into reconnections-2 2022-12-02 19:09:33 +01:00
Joseph Lyons
d2cd9c94f7 Remove sign in telemetry event 2022-11-28 18:56:27 -05:00
Antonio Scandurra
f0a721032d Remove non-determinism caused by random entropy when reconnecting 2022-11-28 18:56:11 +01:00
Antonio Scandurra
c1291a093b WIP: Allow subscribing to remote entity before creating a model
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-11-16 19:51:24 +01:00
Max Brunsfeld
05a6bd914d Get integration tests passing with sqlite
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-11-10 11:03:52 -08:00
Joseph T Lyons
474a5dd4f2 Make App a user property in Mixpanel
Currently, we cannot take advantage of Mixpanel's virtual session end events because they are associated with users, not events; this change moves the property onto users.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-11-04 14:16:12 -04:00
Joseph T. Lyons
370a6f3dbd
Merge pull request #1842 from zed-industries/telemetry-corrections
Telemetry corrections
2022-11-02 12:36:48 -04:00
Joseph T Lyons
d8685baa47 Revert "Differentiate between first time app starts and subsequent ones" 2022-11-02 12:22:46 -04:00
Antonio Scandurra
86057ab071
Merge pull request #1843 from zed-industries/call-randomized-test
Model calls in randomized collaboration test
2022-11-02 13:03:34 +00:00
Joseph T Lyons
aafc3a9584 Make event name casing consistent with other event names 2022-11-01 23:19:55 -04:00
Joseph T Lyons
dc657a647e Remove Amplitude event tracking 2022-11-01 20:49:49 -04:00
Joseph T Lyons
e5f0965138 Differentiate between first time app starts and subsequent ones 2022-11-01 20:36:18 -04:00
Antonio Scandurra
0b79950510 Don't hold the lock while yielding back to the executor in Client 2022-11-01 19:16:02 +01:00
Joseph T Lyons
61f31bf010 Fill in missing "app" field names on Mixpanel events 2022-10-31 19:18:35 -04:00
Joseph T Lyons
495fd151f5 Revert Amplitude's "app" name back to "platform"
This was unintentional.  We only want to rename the Mixpanel telemetry "platform" field to "app."  We want to keep it as "platform" on Amplitude because we want to keep using Amplitude for a bit, and the event fields should be the same.
2022-10-31 19:18:03 -04:00
Joseph T Lyons
8a926c4a23 Make release_channel optional to fix tests
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-10-27 18:06:34 -04:00
Joseph T Lyons
309f401015 Rename all keys, in telemetry events, to be consistent with Mixpanels conventions 2022-10-27 16:19:21 -04:00
Joseph T Lyons
daa75b5282 Add missing struct field
This must've gotten lost on the merging of main into this branch
2022-10-27 15:59:22 -04:00
Joseph T Lyons
36c64045ae Merge branch 'main' into add-release-channel-information-to-telemetry-events 2022-10-27 15:57:17 -04:00
Joseph T Lyons
93e1e30323 Add release channel information to telemetry events 2022-10-27 15:53:14 -04:00
Max Brunsfeld
d79aeba2c1 Avoid spurious log messages in development builds 2022-10-27 12:42:03 -07:00
Joseph T Lyons
31a904d370 Change telemetry event field name to app 2022-10-27 12:35:35 -04:00
Max Brunsfeld
2bfd46d48c Fix setting of preview param in RPC URL 2022-10-26 16:19:19 -07:00
Max Brunsfeld
f1b41389b3 Allow overriding release channel at runtime via env var 2022-10-26 16:19:19 -07:00
Max Brunsfeld
a4a8596a29 Store current release channel name in a file in the zed crate 2022-10-26 16:19:19 -07:00
Max Brunsfeld
a61f3b715b Create preview channel 2022-10-26 16:19:19 -07:00
Joseph T Lyons
022f70b1de Temporarily restore integration with Amplitude
This will be reverted later, once we fully switch to Mixpanel
2022-10-20 19:27:55 -04:00
Joseph T Lyons
ac5d5e2451 Merge branch 'main' into switch-to-mixpanel 2022-10-20 13:53:39 -04:00
Joseph T Lyons
2f064d5ccc Remove debug prints 2022-10-19 17:30:00 -04:00
Max Brunsfeld
e6b29086a9
Merge pull request #1777 from zed-industries/impersonate-via-secret-token
Impersonate via secret token
2022-10-19 13:32:40 -07:00
Max Brunsfeld
83e4e26989 Allow setting ZED_SERVER_URL to URL of a collab server 2022-10-19 13:27:14 -07:00
Joseph T Lyons
d7915840d0 Switch to Mixpanel analytics
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-10-19 14:53:48 -04:00
Max Brunsfeld
c410935c9c Allow impersonating users via the api token, bypassing oauth 2022-10-18 17:36:54 -07:00
Kay Simmons
da5203011c
Merge pull request #1773 from zed-industries/rusqlite
Swap to sqlite for client persistence
2022-10-18 16:11:54 -07:00
Mikayla Maki
84c7aa9cad Finished up initial sqlite implemention
Co-Authored-By: kay@zed.dev
2022-10-18 15:58:05 -07:00
Antonio Scandurra
d155c11729 Fix client unit test by sending Hello in FakeServer 2022-10-18 19:33:38 +02:00
Antonio Scandurra
0c0e8688ed Use PeerId in TestServer::disconnect_client
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-10-18 19:05:37 +02:00
Antonio Scandurra
2c4f003897 Tell clients their peer id on connection in Hello message
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-10-18 18:42:55 +02:00
Mikayla Maki
4b09f77950 WIP 2022-10-17 17:04:30 -07:00
Mikayla Maki
dbea3cf20c Converted to using rusqlite 2022-10-17 17:04:30 -07:00
Antonio Scandurra
c4dde0f4e2 💄 2022-10-12 15:35:28 +02:00
Antonio Scandurra
ec19f0f8e9 Remove unnecessary async from Peer::add_connection 2022-10-12 15:32:39 +02:00
Antonio Scandurra
cc56fa9ea6 Introduce client-side timeout when trying to connect 2022-10-12 15:32:30 +02:00
Antonio Scandurra
afaacba41f Merge remote-tracking branch 'origin/main' into room 2022-10-10 15:43:38 +02:00
Antonio Scandurra
d7cea646fc Include a busy field in proto::Contact 2022-10-07 12:21:56 +02:00
Antonio Scandurra
7763acbdd5 Move IncomingCall into call crate 2022-10-06 09:52:03 +02:00
Antonio Scandurra
55cc142319 Move incoming calls into ActiveCall 2022-10-06 09:50:26 +02:00
Antonio Scandurra
fceba6814f Automatically share project when creating the room
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-10-04 19:25:48 +02:00
Max Brunsfeld
f3d83631ef Remove unnecessary min_id_length option from amplitude requests 2022-10-03 12:13:27 -07:00
Max Brunsfeld
06813be5c8 Mark platform as "Zed" for telemetry events from the app
Co-authored-by: Joseph Lyons <joseph@zed.dev>
2022-10-03 11:05:45 -07:00
Max Brunsfeld
4477f95ee6 Set staff user property in telemetry
Co-authored-by: Joseph Lyons <joseph@zed.dev>
2022-10-03 10:52:57 -07:00
Antonio Scandurra
1e45198b9f Emit event on Room when a user shares a new project 2022-10-03 17:12:07 +02:00
Max Brunsfeld
35a537dae0 Fix FakeServer to expect new GetPrivateUserInfo request 2022-09-29 14:34:15 -07:00
Max Brunsfeld
5d09083a7d Identify users in amplitude via a separate 'metrics_id' UUID 2022-09-29 13:15:21 -07:00
Antonio Scandurra
b35e8f0164 Remove projects from contact updates
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-29 19:40:36 +02:00
Antonio Scandurra
e0db62173a Rename room crate to call
Also, rename `client::Call` to `client::IncomingCall`.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-29 17:24:31 +02:00
Antonio Scandurra
1158911560 Wire up accepting/declining a call 2022-09-29 15:33:33 +02:00
Max Brunsfeld
0d3486ca82 Remove TestTelemetry command 2022-09-28 15:50:17 -07:00
Max Brunsfeld
af7c2b8b47 Set minimum user id length in amplitude calls 2022-09-28 15:21:49 -07:00
Antonio Scandurra
80ab144bf3 Ring users upon connection if somebody was calling them before connecting
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-28 11:33:38 +02:00
Antonio Scandurra
573086eed2 Always rely on the server to cancel the incoming call 2022-09-28 11:33:38 +02:00
Antonio Scandurra
bb9ce86a29 Introduce the ability of declining calls 2022-09-28 11:33:38 +02:00
Antonio Scandurra
55b095cbd3 Implement joining a room and sending updates after people join/leave 2022-09-28 11:33:38 +02:00
Antonio Scandurra
4a9bf8f4fe Introduce call infrastructure
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-28 11:33:38 +02:00
Antonio Scandurra
ebb5ffcedc Introduce the ability of creating rooms on the server 2022-09-28 11:33:38 +02:00
Max Brunsfeld
3bd68128d7 Add command to view the telemetry log
Co-authored-by: Joseph Lyons <joseph@zed.dev>
2022-09-27 14:20:13 -07:00
Max Brunsfeld
f2db3abdb2 Always allow overriding amplitude API key via a runtime env var 2022-09-27 12:42:27 -07:00
Nathan Sobo
824fdb54e6 Report editor open and save events to Amplitude
Co-authored-by: Max Brunsfeld <max@zed.dev>
2022-09-26 18:18:34 -06:00
Max Brunsfeld
da36eb3b41 wip 2022-09-26 15:23:10 -07:00
Max Brunsfeld
4784dbe498 Link signups to users in telemetry via a stored device_id
Co-authored-by: Joseph Lyons <joseph@zed.dev>
2022-09-26 12:49:04 -07:00
Max Brunsfeld
04baccbea6 Start work on a client-side telemetry system 2022-09-23 12:23:12 -07:00
ForLoveOfCats
8ba2f77148 One big cleanup pass of clippy lints
Co-authored-by: Mikayla <mikayla@zed.dev>
2022-08-10 16:51:01 -07:00
Antonio Scandurra
a1d0d2ccc4 Add tests for client authentication while a previous sign in is pending 2022-08-02 14:28:47 +02:00
Antonio Scandurra
aa09bc527f Allow signing in again if authentication is pending or was unsuccessful
The local server that we spin up to receive OAuth callbacks isn't
called when an error occurs and it is non-trivial to do so with
next-auth. Besides, there could be cases where the user explicitly
closes the browser window before the callback can be invoked.

With this commit, the user can sign in even while an authentication
is still in progress. As opposed to waiting for at most 10 minutes
before killing the local HTTP server if we haven't received the callback,
we will repeatedly check for a response every second for 100 seconds.
This gives us a chance to determine whether a new authentication has started
in the meantime and, if so, abort the current authentication flow.
2022-08-02 14:16:14 +02:00
Antonio Scandurra
b91d44b448 Respond with a debug version of the error in rpc Client 2022-07-07 11:52:56 +02:00
Max Brunsfeld
c5351a1276 Ensure that usernames, user ids, and client ids match in random collaboration test
This makes the logs easier to interpret
2022-06-30 14:51:22 -07:00
Antonio Scandurra
48ff443d10 Remove stray log statement when contacts are updated
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-06-22 19:40:52 +02:00
Max Brunsfeld
6a2c5e0dc1 Show upgrade required message when reconnecting after a protocol change
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-06-21 10:26:34 -07:00
Antonio Scandurra
c90e8c08a6 Accept a datetime range when querying project activity 2022-06-21 14:03:10 +02:00
Antonio Scandurra
68093342e7 Broadcast only visible worktree root names 2022-06-14 15:15:23 +02:00
Antonio Scandurra
3a69943df3 Require that PartialEq is implemented for Action 2022-06-06 09:18:44 +02:00
Max Brunsfeld
24aafde1e8 Avoid persisting project's state before it has been initialized 2022-06-03 16:40:16 -07:00
Max Brunsfeld
36a4d31b5b Keep unregistered projects' ids until pending contact updates are done 2022-06-02 18:04:54 -07:00
Max Brunsfeld
b70396b8fb Disconnect FakeServer when dropping it
This prevents memory leak errors in tests, due to parked tasks waiting
for RPC responses.
2022-06-02 17:32:43 -07:00
Max Brunsfeld
7ef9de32b1 Show private projects in the contacts panel
Introduce a ProjectStore that lets you iterate through all open projects.
Allow projects to be made public by clicking the lock.
2022-06-02 17:29:11 -07:00
Antonio Scandurra
0597c662e4 Show contacts panel the first time a new user connects to collab
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-05-20 17:33:09 +02:00
Nathan Sobo
eedb8ba59f Add affordance to copy user's invite link if they have a code
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-05-19 17:57:46 -06:00
Antonio Scandurra
2d986c7968 Show guest only once even if they joined on two different windows
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-05-17 16:21:09 +02:00