agent: Remove priority from update_plan (#52320)

## Context

We don't surface this in the UI, so removing it to make the input
smaller.

## Self-Review Checklist

<!-- Check before requesting review: -->
- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Release Notes:

- N/A
This commit is contained in:
Ben Brandt authored and GitHub committed 2026-03-24 13:16:10 +00:00
1 parent b298645fcd
commit fcbf0a75b2
2 files changed
+13 -83

No files matched your search

+2 -6
View File
@@ -3461,7 +3461,6 @@ async fn test_update_plan_tool_updates_thread_events(cx: &mut TestAppContext) {
{
"step": "Inspect the code",
"status": "completed",
"priority": "high"
},
{
"step": "Implement the tool",
@@ -3470,7 +3469,6 @@ async fn test_update_plan_tool_updates_thread_events(cx: &mut TestAppContext) {
{
"step": "Run tests",
"status": "pending",
"priority": "low"
}
]
});
@@ -3497,7 +3495,6 @@ async fn test_update_plan_tool_updates_thread_events(cx: &mut TestAppContext) {
{
"step": "Inspect the code",
"status": "completed",
"priority": "high"
},
{
"step": "Implement the tool",
@@ -3506,7 +3503,6 @@ async fn test_update_plan_tool_updates_thread_events(cx: &mut TestAppContext) {
{
"step": "Run tests",
"status": "pending",
"priority": "low"
}
]
}))
@@ -3531,7 +3527,7 @@ async fn test_update_plan_tool_updates_thread_events(cx: &mut TestAppContext) {
acp::Plan::new(vec![
acp::PlanEntry::new(
"Inspect the code",
acp::PlanEntryPriority::High,
acp::PlanEntryPriority::Medium,
acp::PlanEntryStatus::Completed,
),
acp::PlanEntry::new(
@@ -3541,7 +3537,7 @@ async fn test_update_plan_tool_updates_thread_events(cx: &mut TestAppContext) {
),
acp::PlanEntry::new(
"Run tests",
acp::PlanEntryPriority::Low,
acp::PlanEntryPriority::Medium,
acp::PlanEntryStatus::Pending,
),
])
+11 -77
View File
@@ -27,45 +27,27 @@ impl From<PlanEntryStatus> for acp::PlanEntryStatus {
}
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, PartialEq, Eq, Default)]
#[serde(rename_all = "snake_case")]
#[schemars(inline)]
pub enum PlanEntryPriority {
High,
#[default]
Medium,
Low,
}
impl From<PlanEntryPriority> for acp::PlanEntryPriority {
fn from(value: PlanEntryPriority) -> Self {
match value {
PlanEntryPriority::High => acp::PlanEntryPriority::High,
PlanEntryPriority::Medium => acp::PlanEntryPriority::Medium,
PlanEntryPriority::Low => acp::PlanEntryPriority::Low,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, PartialEq, Eq)]
pub struct PlanItem {
/// Human-readable description of what this task aims to accomplish.
pub step: String,
/// The current status of this task.
pub status: PlanEntryStatus,
/// The relative importance of this task. Defaults to medium when omitted.
#[serde(default)]
pub priority: PlanEntryPriority,
}
impl From<PlanItem> for acp::PlanEntry {
fn from(value: PlanItem) -> Self {
acp::PlanEntry::new(value.step, value.priority.into(), value.status.into())
acp::PlanEntry::new(
value.step,
acp::PlanEntryPriority::Medium,
value.status.into(),
)
}
}
/// Updates the task plan.
/// Provide a list of plan entries, each with step, status, and optional priority.
///
/// Provide a list of plan entries, each with a step and status.
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, PartialEq, Eq)]
pub struct UpdatePlanToolInput {
/// The list of plan entries and their current statuses.
@@ -144,17 +126,14 @@ mod tests {
PlanItem {
step: "Inspect the existing tool wiring".to_string(),
status: PlanEntryStatus::Completed,
priority: PlanEntryPriority::High,
},
PlanItem {
step: "Implement the update_plan tool".to_string(),
status: PlanEntryStatus::InProgress,
priority: PlanEntryPriority::Medium,
},
PlanItem {
step: "Add tests".to_string(),
status: PlanEntryStatus::Pending,
priority: PlanEntryPriority::Low,
},
],
}
@@ -179,7 +158,7 @@ mod tests {
acp::Plan::new(vec![
acp::PlanEntry::new(
"Inspect the existing tool wiring",
acp::PlanEntryPriority::High,
acp::PlanEntryPriority::Medium,
acp::PlanEntryStatus::Completed,
),
acp::PlanEntry::new(
@@ -189,7 +168,7 @@ mod tests {
),
acp::PlanEntry::new(
"Add tests",
acp::PlanEntryPriority::Low,
acp::PlanEntryPriority::Medium,
acp::PlanEntryStatus::Pending,
),
])
@@ -214,7 +193,7 @@ mod tests {
acp::Plan::new(vec![
acp::PlanEntry::new(
"Inspect the existing tool wiring",
acp::PlanEntryPriority::High,
acp::PlanEntryPriority::Medium,
acp::PlanEntryStatus::Completed,
),
acp::PlanEntry::new(
@@ -224,58 +203,13 @@ mod tests {
),
acp::PlanEntry::new(
"Add tests",
acp::PlanEntryPriority::Low,
acp::PlanEntryPriority::Medium,
acp::PlanEntryStatus::Pending,
),
])
);
}
#[gpui::test]
async fn test_run_defaults_priority_to_medium(cx: &mut TestAppContext) {
let tool = Arc::new(UpdatePlanTool);
let (event_stream, mut event_rx) = ToolCallEventStream::test();
let input = UpdatePlanToolInput {
plan: vec![
PlanItem {
step: "First".to_string(),
status: PlanEntryStatus::InProgress,
priority: PlanEntryPriority::default(),
},
PlanItem {
step: "Second".to_string(),
status: PlanEntryStatus::InProgress,
priority: PlanEntryPriority::default(),
},
],
};
let result = cx
.update(|cx| tool.run(ToolInput::resolved(input), event_stream, cx))
.await
.expect("tool should succeed");
assert_eq!(result, "Plan updated".to_string());
let plan = event_rx.expect_plan().await;
assert_eq!(
plan,
acp::Plan::new(vec![
acp::PlanEntry::new(
"First",
acp::PlanEntryPriority::Medium,
acp::PlanEntryStatus::InProgress,
),
acp::PlanEntry::new(
"Second",
acp::PlanEntryPriority::Medium,
acp::PlanEntryStatus::InProgress,
),
])
);
}
#[gpui::test]
async fn test_initial_title(cx: &mut TestAppContext) {
let tool = UpdatePlanTool;