refactor(justfile): drop aliases/duplication, enforce single canonical commands, and add descriptions for all recipes

This commit is contained in:
Riz Ashraf committed 2026-10-05 10:48:43 +01:00
1 parent bd8a892101
commit 6e0ccf8082
3 files changed
+135 -107

No files matched your search

+52 -44
View File
@@ -820,7 +820,7 @@ impl MemoryHandler {
}
pub fn format_tool_activity_description(name: &str, args: &serde_json::Value) -> String {
let detail = match name {
let (action, detail) = match name {
"log_code_change" => {
let file = args.get("file_path")
.or_else(|| args.get("file"))
@@ -831,40 +831,44 @@ pub fn format_tool_activity_description(name: &str, args: &serde_json::Value) ->
.or_else(|| args.get("description"))
.and_then(|v| v.as_str());
match (file, summary) {
let d = 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(),
}
(None, None) => String::new(),
};
("Log Code Change", d)
}
"log_decision" => {
args.get("title")
let d = args.get("title")
.or_else(|| args.get("decision"))
.or_else(|| args.get("summary"))
.and_then(|v| v.as_str())
.unwrap_or("")
.to_string()
.to_string();
("Log Decision", d)
}
"log_error_fix" => {
args.get("error")
let d = args.get("error")
.or_else(|| args.get("summary"))
.or_else(|| args.get("solution"))
.and_then(|v| v.as_str())
.unwrap_or("")
.to_string()
.to_string();
("Log Error Fix", d)
}
"log_tech_debt" => {
if let Some(summary) = args.get("summary").or_else(|| args.get("description")).and_then(|v| v.as_str()) {
let d = 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_path").or_else(|| args.get("file")).and_then(|v| v.as_str()) {
file.to_string()
} else {
"".to_string()
}
String::new()
};
("Log Tech Debt", d)
}
"create_entities" => {
if let Some(entities) = args.get("entities").and_then(|v| v.as_array()) {
let d = 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").or_else(|| e.get("entity_name")).and_then(|n| n.as_str()))
@@ -882,11 +886,12 @@ pub fn format_tool_activity_description(name: &str, args: &serde_json::Value) ->
} 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()
}
String::new()
};
("Create Entities", d)
}
"create_relations" => {
if let Some(relations) = args.get("relations").and_then(|v| v.as_array()) {
let d = if let Some(relations) = args.get("relations").and_then(|v| v.as_array()) {
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("?");
@@ -900,55 +905,57 @@ pub fn format_tool_activity_description(name: &str, args: &serde_json::Value) ->
format!("{} relation(s)", relations.len())
}
} else {
"".to_string()
}
String::new()
};
("Create Relations", d)
}
"add_task" => {
args.get("title")
let d = args.get("title")
.or_else(|| args.get("name"))
.and_then(|v| v.as_str())
.unwrap_or("")
.to_string()
.to_string();
("Add Task", d)
}
"update_task_status" => {
if let (Some(id), Some(status)) = (
let d = if let (Some(id), Some(status)) = (
args.get("task_id").or_else(|| args.get("id")).and_then(|v| v.as_str()),
args.get("status").and_then(|v| v.as_str()),
) {
format!("Task {} -> {}", id, status)
} else {
"".to_string()
}
String::new()
};
("Update Task Status", d)
}
"omni_search" | "search_graph" | "search_snippets" | "search_web" => {
args.get("query")
let d = args.get("query")
.and_then(|v| v.as_str())
.map(|q| format!("\"{}\"", q))
.unwrap_or_default()
.unwrap_or_default();
("Search", d)
}
"manage_sticky_notes" => {
let action = args.get("action").and_then(|v| v.as_str()).unwrap_or("");
if let Some(content) = args.get("content").and_then(|v| v.as_str()) {
"manage_sticky_notes" | "add_sticky_note" => {
let action = args.get("action").and_then(|v| v.as_str()).unwrap_or("add");
let d = if let Some(content) = args.get("content").and_then(|v| v.as_str()) {
let preview: String = content.chars().take(40).collect();
if !action.is_empty() {
format!("{} \"{}\"", action, preview)
} else {
format!("\"{}\"", preview)
}
format!("{} \"{}\"", action, preview)
} else {
action.to_string()
}
};
("Sticky Note", d)
}
"write_clipboard" => {
if let Some(text) = args.get("text").or_else(|| args.get("content")).and_then(|v| v.as_str()) {
let d = if let Some(text) = args.get("text").or_else(|| args.get("content")).and_then(|v| v.as_str()) {
let preview: String = text.chars().take(40).collect();
format!("\"{}\"", preview)
} else {
"".to_string()
}
String::new()
};
("Write Clipboard", d)
}
_ => {
if let Some(title) = args
let d = if let Some(title) = args
.get("title")
.or_else(|| args.get("summary"))
.or_else(|| args.get("description"))
@@ -961,8 +968,9 @@ pub fn format_tool_activity_description(name: &str, args: &serde_json::Value) ->
{
title.to_string()
} else {
"".to_string()
}
String::new()
};
(name, d)
}
};
@@ -973,9 +981,9 @@ pub fn format_tool_activity_description(name: &str, args: &serde_json::Value) ->
}
if !truncated.is_empty() {
format!("Agent executed tool: {} ({})", name, truncated)
format!("{}: {}", action, truncated)
} else {
format!("Agent executed tool: {}", name)
format!("{}", action)
}
}
@@ -988,13 +996,13 @@ mod tests {
#[test]
fn test_format_tool_activity_description() {
let msg1 = format_tool_activity_description("log_code_change", &json!({ "file": "src/lib.rs", "summary": "Refactored library" }));
assert_eq!(msg1, "Agent executed tool: log_code_change (src/lib.rs: Refactored library)");
assert_eq!(msg1, "Log Code Change: src/lib.rs: Refactored library");
let msg2 = format_tool_activity_description("create_entities", &json!({ "entities": [{ "name": "EntityA" }, { "name": "EntityB" }] }));
assert_eq!(msg2, "Agent executed tool: create_entities (EntityA, EntityB)");
assert_eq!(msg2, "Create Entities: EntityA, EntityB");
let msg3 = format_tool_activity_description("read_graph", &json!({}));
assert_eq!(msg3, "Agent executed tool: read_graph");
assert_eq!(msg3, "read_graph");
}
#[tokio::test]