agent: Add thread history import telemetry (#59050)

## Summary

- Emit `Thread History Viewed` from the shared archive/history opening
path so it covers button, keyboard, and onboarding entry points.
- Emit `Agent Threads Import Clicked` when users open external-agent
thread import from thread history or onboarding.
- Emit `Agent Threads Import Clicked` when users click cross-channel
thread import onboarding.

## Tests

- `cargo fmt --check`
- `git diff --check`
- `./script/clippy -p sidebar`
- `cargo test -p sidebar`

Release Notes:

- N/A
This commit is contained in:
Katie Geer authored and GitHub committed 2026-06-10 18:48:30 +00:00
1 parent 25a1b1e503
commit baa7171923
1 file changed
+31 -8
+31 -8
View File
@@ -7458,7 +7458,21 @@ impl Sidebar {
.map(|w| w.read(cx).workspace().clone())
}
fn show_thread_import_modal(&mut self, window: &mut Window, cx: &mut Context<Self>) {
fn show_thread_import_modal(
&mut self,
source: &'static str,
window: &mut Window,
cx: &mut Context<Self>,
) {
telemetry::event!(
"Agent Threads Import Clicked",
source = source,
side = match self.side(cx) {
SidebarSide::Left => "left",
SidebarSide::Right => "right",
}
);
let Some(active_workspace) = self.active_workspace(cx) else {
return;
};
@@ -7514,7 +7528,7 @@ impl Sidebar {
) -> impl IntoElement {
let on_import = cx.listener(|this, _, window, cx| {
this.show_archive(window, cx);
this.show_thread_import_modal(window, cx);
this.show_thread_import_modal("external_agent_onboarding", window, cx);
});
render_import_onboarding_banner(
"acp",
@@ -7553,6 +7567,14 @@ impl Sidebar {
);
let on_import = cx.listener(|this, _, _window, cx| {
telemetry::event!(
"Agent Threads Import Clicked",
source = "cross_channel_onboarding",
side = match this.side(cx) {
SidebarSide::Left => "left",
SidebarSide::Right => "right",
}
);
CrossChannelImportOnboarding::dismiss(cx);
if let Some(workspace) = this.active_workspace(cx) {
workspace.update(cx, |workspace, cx| {
@@ -7583,11 +7605,6 @@ impl Sidebar {
) {
match &self.view {
SidebarView::ThreadList => {
let side = match self.side(cx) {
SidebarSide::Left => "left",
SidebarSide::Right => "right",
};
telemetry::event!("Thread History Viewed", side = side);
self.show_archive(window, cx);
}
SidebarView::Archive(_) => self.show_thread_list(window, cx),
@@ -7595,6 +7612,12 @@ impl Sidebar {
}
fn show_archive(&mut self, window: &mut Window, cx: &mut Context<Self>) {
let side = match self.side(cx) {
SidebarSide::Left => "left",
SidebarSide::Right => "right",
};
telemetry::event!("Thread History Viewed", side = side);
let Some(active_workspace) = self
.multi_workspace
.upgrade()
@@ -7639,7 +7662,7 @@ impl Sidebar {
this.restoring_tasks.remove(thread_id);
}
ThreadsArchiveViewEvent::Import => {
this.show_thread_import_modal(window, cx);
this.show_thread_import_modal("thread_history", window, cx);
}
},
);