From 0395d1b03756dd305eae93b5fa484a9f7734de20 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Sat, 23 Nov 2024 23:11:45 -0500 Subject: [PATCH] Clean up app event transformations (#21115) This needs scrutinized. Detailed breakdown of what events I kept and threw out here: https://zed.dev/channel/app-events-17178/notes I also removed a few fake events and tossed out json properties that were being inserted for things we don't have logic to track. See PR review comments below. I think the only bad data we have are that we were identifying all node, pnpm, and yarn projects as 'node' in the `project_type` property, so a few days of lost data there. Release Notes: - N/A --- crates/collab/src/api/events.rs | 93 ++++++++++++++++----------------- 1 file changed, 46 insertions(+), 47 deletions(-) diff --git a/crates/collab/src/api/events.rs b/crates/collab/src/api/events.rs index 95bd2a89b2..68325b17aa 100644 --- a/crates/collab/src/api/events.rs +++ b/crates/collab/src/api/events.rs @@ -1442,65 +1442,64 @@ fn for_snowflake( Event::App(e) => { let mut properties = json!({}); let event_type = match e.operation.trim() { - "extensions: install extension" => "Extension Installed".to_string(), + // App "open" => "App Opened".to_string(), - "project search: open" => "Project Search Opened".to_string(), - "first open" => { - properties["is_first_open"] = json!(true); - "App First Opened".to_string() + "first open" => "App First Opened".to_string(), + "first open for release channel" => { + "App First Opened For Release Channel".to_string() } - "extensions: uninstall extension" => "Extension Uninstalled".to_string(), - "welcome page: close" => "Welcome Page Closed".to_string(), - "open project" => { - properties["is_first_time"] = json!(false); + "close" => "App Closed".to_string(), + + // Project + "open project" => "Project Opened".to_string(), + "open node project" => { + properties["project_type"] = json!("node"); "Project Opened".to_string() } - "welcome page: install cli" => "CLI Installed".to_string(), - "project diagnostics: open" => "Project Diagnostics Opened".to_string(), - "extensions page: open" => "Extensions Page Opened".to_string(), - "welcome page: change theme" => "Welcome Theme Changed".to_string(), - "welcome page: toggle metric telemetry" => { - properties["enabled"] = json!(false); - "Welcome Telemetry Toggled".to_string() + "open pnpm project" => { + properties["project_type"] = json!("pnpm"); + "Project Opened".to_string() } + "open yarn project" => { + properties["project_type"] = json!("yarn"); + "Project Opened".to_string() + } + + // SSH + "create ssh server" => "SSH Server Created".to_string(), + "create ssh project" => "SSH Project Created".to_string(), + "open ssh project" => "SSH Project Opened".to_string(), + + // Welcome Page "welcome page: change keymap" => "Keymap Changed".to_string(), - "welcome page: toggle vim" => { - properties["enabled"] = json!(false); - "Welcome Vim Mode Toggled".to_string() - } + "welcome page: change theme" => "Welcome Theme Changed".to_string(), + "welcome page: close" => "Welcome Page Closed".to_string(), + "welcome page: edit settings" => "Settings Edited".to_string(), + "welcome page: install cli" => "CLI Installed".to_string(), + "welcome page: open" => "Welcome Page Opened".to_string(), + "welcome page: open extensions" => "Extensions Page Opened".to_string(), "welcome page: sign in to copilot" => "Welcome Copilot Signed In".to_string(), "welcome page: toggle diagnostic telemetry" => { "Welcome Telemetry Toggled".to_string() } - "welcome page: open" => "Welcome Page Opened".to_string(), - "close" => "App Closed".to_string(), - "markdown preview: open" => "Markdown Preview Opened".to_string(), - "welcome page: open extensions" => "Extensions Page Opened".to_string(), - "open node project" | "open pnpm project" | "open yarn project" => { - properties["project_type"] = json!("node"); - properties["is_first_time"] = json!(false); - "Project Opened".to_string() - } - "repl sessions: open" => "REPL Session Started".to_string(), - "welcome page: toggle helix" => { - properties["enabled"] = json!(false); - "Helix Mode Toggled".to_string() - } - "welcome page: edit settings" => { - properties["changed_settings"] = json!([]); - "Settings Edited".to_string() + "welcome page: toggle metric telemetry" => { + "Welcome Telemetry Toggled".to_string() } + "welcome page: toggle vim" => "Welcome Vim Mode Toggled".to_string(), "welcome page: view docs" => "Documentation Viewed".to_string(), - "open ssh project" => { - properties["is_first_time"] = json!(false); - "SSH Project Opened".to_string() - } - "create ssh server" => "SSH Server Created".to_string(), - "create ssh project" => "SSH Project Created".to_string(), - "first open for release channel" => { - properties["is_first_for_channel"] = json!(true); - "App First Opened For Release Channel".to_string() - } + + // Extensions + "extensions page: open" => "Extensions Page Opened".to_string(), + "extensions: install extension" => "Extension Installed".to_string(), + "extensions: uninstall extension" => "Extension Uninstalled".to_string(), + + // Misc + "markdown preview: open" => "Markdown Preview Opened".to_string(), + "project diagnostics: open" => "Project Diagnostics Opened".to_string(), + "project search: open" => "Project Search Opened".to_string(), + "repl sessions: open" => "REPL Session Started".to_string(), + + // Feature Upsell "feature upsell: toggle vim" => { properties["source"] = json!("Feature Upsell"); "Vim Mode Toggled".to_string()