@@ -1600,6 +1600,7 @@ impl AcpThread {
let agent_telemetry_id = self.connection().telemetry_id();
let session = self.session_id();
+ let parent_session_id = self.parent_session_id();
if let ToolCallStatus::Completed | ToolCallStatus::Failed = status {
let status = if matches!(status, ToolCallStatus::Completed) {
"completed"
@@ -1610,6 +1611,7 @@ impl AcpThread {
"Agent Tool Call Completed",
agent_telemetry_id,
session,
+ parent_session_id,
status
);
}
@@ -1739,6 +1739,9 @@ impl Thread {
telemetry::event!(
"Agent Thread Completion",
thread_id = this.read_with(cx, |this, _| this.id.to_string())?,
+ parent_thread_id = this.read_with(cx, |this, _| this
+ .parent_thread_id()
+ .map(|id| id.to_string()))?,
prompt_id = this.read_with(cx, |this, _| this.prompt_id.to_string())?,
model = model.telemetry_id(),
model_provider = model.provider_id().to_string(),
@@ -1997,6 +2000,7 @@ impl Thread {
telemetry::event!(
"Agent Thread Completion Usage Updated",
thread_id = self.id.to_string(),
+ parent_thread_id = self.parent_thread_id().map(|id| id.to_string()),
prompt_id = self.prompt_id.to_string(),
model = self.model.as_ref().map(|m| m.telemetry_id()),
model_provider = self.model.as_ref().map(|m| m.provider_id().to_string()),
@@ -45,6 +45,7 @@ impl ThreadFeedbackState {
}
}
let session_id = thread.read(cx).session_id().clone();
+ let parent_session_id = thread.read(cx).parent_session_id().cloned();
let agent_telemetry_id = thread.read(cx).connection().telemetry_id();
let task = telemetry.thread_data(&session_id, cx);
let rating = match feedback {
@@ -60,6 +61,7 @@ impl ThreadFeedbackState {
organization_id: organization.map(|organization| organization.id.clone()),
agent: agent_telemetry_id.to_string(),
session_id: session_id.to_string(),
+ parent_session_id: parent_session_id.map(|id| id.to_string()),
rating: rating.to_string(),
thread,
})
@@ -804,6 +806,7 @@ impl ThreadView {
cx: &mut Context<Self>,
) {
let session_id = self.thread.read(cx).session_id().clone();
+ let parent_session_id = self.thread.read(cx).parent_session_id().cloned();
let agent_telemetry_id = self.thread.read(cx).connection().telemetry_id();
let thread = self.thread.downgrade();
@@ -858,6 +861,7 @@ impl ThreadView {
"Agent Message Sent",
agent = agent_telemetry_id,
session = session_id,
+ parent_session_id = parent_session_id.as_ref().map(|id| id.to_string()),
model = model_id,
mode = mode_id
);
@@ -877,6 +881,7 @@ impl ThreadView {
"Agent Turn Completed",
agent = agent_telemetry_id,
session = session_id,
+ parent_session_id = parent_session_id.as_ref().map(|id| id.to_string()),
model = model_id,
mode = mode_id,
status,
@@ -985,11 +990,17 @@ impl ThreadView {
let agent_telemetry_id = self.thread.read(cx).connection().telemetry_id();
let session_id = self.thread.read(cx).session_id().clone();
+ let parent_session_id = self
+ .thread
+ .read(cx)
+ .parent_session_id()
+ .map(|id| id.to_string());
telemetry::event!(
"Agent Panel Error Shown",
agent = agent_telemetry_id,
session_id = session_id,
+ parent_session_id = parent_session_id,
kind = error_kind,
acp_error_code = acp_error_code,
message = message,
@@ -62,6 +62,7 @@ pub struct SubmitAgentThreadFeedbackBody {
pub organization_id: Option<OrganizationId>,
pub agent: String,
pub session_id: String,
+ pub parent_session_id: Option<String>,
pub rating: String,
pub thread: serde_json::Value,
}