@@ -389,53 +389,58 @@ pub async fn post_panic(
}
}
- let backtrace = if panic.backtrace.len() > 25 {
- let total = panic.backtrace.len();
- format!(
- "{}\n and {} more",
- panic
- .backtrace
- .iter()
- .take(20)
- .cloned()
- .collect::<Vec<_>>()
- .join("\n"),
- total - 20
- )
- } else {
- panic.backtrace.join("\n")
- };
-
if !report_to_slack(&panic) {
return Ok(());
}
- let backtrace_with_summary = panic.payload + "\n" + &backtrace;
-
if let Some(slack_panics_webhook) = app.config.slack_panics_webhook.clone() {
+ let backtrace = if panic.backtrace.len() > 25 {
+ let total = panic.backtrace.len();
+ format!(
+ "{}\n and {} more",
+ panic
+ .backtrace
+ .iter()
+ .take(20)
+ .cloned()
+ .collect::<Vec<_>>()
+ .join("\n"),
+ total - 20
+ )
+ } else {
+ panic.backtrace.join("\n")
+ };
+ let backtrace_with_summary = panic.payload + "\n" + &backtrace;
+
+ let version = if panic.release_channel == "nightly"
+ && !panic.app_version.contains("remote-server")
+ && let Some(sha) = panic.app_commit_sha
+ {
+ format!("Zed Nightly {}", sha.chars().take(7).collect::<String>())
+ } else {
+ panic.app_version
+ };
+
let payload = slack::WebhookBody::new(|w| {
w.add_section(|s| s.text(slack::Text::markdown("Panic request".to_string())))
.add_section(|s| {
- s.add_field(slack::Text::markdown(format!(
- "*Version:*\n {} ",
- panic.app_version
- )))
- .add_field({
- let hostname = app.config.blob_store_url.clone().unwrap_or_default();
- let hostname = hostname.strip_prefix("https://").unwrap_or_else(|| {
- hostname.strip_prefix("http://").unwrap_or_default()
- });
-
- slack::Text::markdown(format!(
- "*{} {}:*\n<https://{}.{}/{}.json|{}…>",
- panic.os_name,
- panic.os_version.unwrap_or_default(),
- CRASH_REPORTS_BUCKET,
- hostname,
- incident_id,
- incident_id.chars().take(8).collect::<String>(),
- ))
- })
+ s.add_field(slack::Text::markdown(format!("*Version:*\n {version} ",)))
+ .add_field({
+ let hostname = app.config.blob_store_url.clone().unwrap_or_default();
+ let hostname = hostname.strip_prefix("https://").unwrap_or_else(|| {
+ hostname.strip_prefix("http://").unwrap_or_default()
+ });
+
+ slack::Text::markdown(format!(
+ "*{} {}:*\n<https://{}.{}/{}.json|{}…>",
+ panic.os_name,
+ panic.os_version.unwrap_or_default(),
+ CRASH_REPORTS_BUCKET,
+ hostname,
+ incident_id,
+ incident_id.chars().take(8).collect::<String>(),
+ ))
+ })
})
.add_rich_text(|r| r.add_preformatted(|p| p.add_text(backtrace_with_summary)))
});