fix: ensure authenticated graceful shutdown exits process and sort live activity feed by timestamp descending

This commit is contained in:
Riz Ashraf committed 2026-10-04 02:55:56 +01:00
1 parent 3efee96230
commit 91d5565141
5 files changed
+46 -22

No files matched your search

+23 -13
View File
@@ -822,19 +822,26 @@ impl MemoryHandler {
pub fn format_tool_activity_description(name: &str, args: &serde_json::Value) -> String {
let detail = match name {
"log_code_change" => {
if let Some(file) = args.get("file").or_else(|| args.get("path")).and_then(|v| v.as_str()) {
if let Some(summary) = args.get("summary").and_then(|v| v.as_str()) {
format!("{}: {}", file, summary)
} else {
file.to_string()
}
} else {
args.get("summary").and_then(|v| v.as_str()).unwrap_or("").to_string()
let file = args.get("file_path")
.or_else(|| args.get("file"))
.or_else(|| args.get("path"))
.or_else(|| args.get("target_file"))
.and_then(|v| v.as_str());
let summary = args.get("summary")
.or_else(|| args.get("description"))
.and_then(|v| v.as_str());
match (file, summary) {
(Some(f), Some(s)) => format!("{}: {}", f, s),
(Some(f), None) => f.to_string(),
(None, Some(s)) => s.to_string(),
(None, None) => "".to_string(),
}
}
"log_decision" => {
args.get("title")
.or_else(|| args.get("decision"))
.or_else(|| args.get("summary"))
.and_then(|v| v.as_str())
.unwrap_or("")
.to_string()
@@ -842,14 +849,15 @@ pub fn format_tool_activity_description(name: &str, args: &serde_json::Value) ->
"log_error_fix" => {
args.get("error")
.or_else(|| args.get("summary"))
.or_else(|| args.get("solution"))
.and_then(|v| v.as_str())
.unwrap_or("")
.to_string()
}
"log_tech_debt" => {
if let Some(summary) = args.get("summary").and_then(|v| v.as_str()) {
if let Some(summary) = args.get("summary").or_else(|| args.get("description")).and_then(|v| v.as_str()) {
summary.to_string()
} else if let Some(file) = args.get("file").and_then(|v| v.as_str()) {
} else if let Some(file) = args.get("file_path").or_else(|| args.get("file")).and_then(|v| v.as_str()) {
file.to_string()
} else {
"".to_string()
@@ -859,7 +867,7 @@ pub fn format_tool_activity_description(name: &str, args: &serde_json::Value) ->
if let Some(entities) = args.get("entities").and_then(|v| v.as_array()) {
let names: Vec<&str> = entities
.iter()
.filter_map(|e| e.get("name").and_then(|n| n.as_str()))
.filter_map(|e| e.get("name").or_else(|| e.get("entity_name")).and_then(|n| n.as_str()))
.take(3)
.collect();
if !names.is_empty() {
@@ -871,7 +879,7 @@ pub fn format_tool_activity_description(name: &str, args: &serde_json::Value) ->
} else {
format!("{} entity/entities", entities.len())
}
} else if let Some(name) = args.get("name").and_then(|v| v.as_str()) {
} else if let Some(name) = args.get("name").or_else(|| args.get("entity_name")).and_then(|v| v.as_str()) {
name.to_string()
} else {
"".to_string()
@@ -882,7 +890,7 @@ pub fn format_tool_activity_description(name: &str, args: &serde_json::Value) ->
if let Some(first) = relations.first() {
let from = first.get("from").and_then(|v| v.as_str()).unwrap_or("?");
let to = first.get("to").and_then(|v| v.as_str()).unwrap_or("?");
let pred = first.get("predicate").and_then(|v| v.as_str()).unwrap_or("->");
let pred = first.get("relation_type").or_else(|| first.get("predicate")).and_then(|v| v.as_str()).unwrap_or("->");
if relations.len() > 1 {
format!("{} {} {} (+{} more)", from, pred, to, relations.len() - 1)
} else {
@@ -943,8 +951,10 @@ pub fn format_tool_activity_description(name: &str, args: &serde_json::Value) ->
if let Some(title) = args
.get("title")
.or_else(|| args.get("summary"))
.or_else(|| args.get("description"))
.or_else(|| args.get("name"))
.or_else(|| args.get("query"))
.or_else(|| args.get("file_path"))
.or_else(|| args.get("file"))
.or_else(|| args.get("path"))
.and_then(|v| v.as_str())