story-kit: merge 271_story_show_assigned_agent_in_expanded_work_item_view

Adds assigned agent display to the expanded work item detail panel.
Resolved conflicts by keeping master versions of bot.rs (permission
handling), ChatInput.tsx, and fs.rs. Removed duplicate list_project_files
endpoint and tests from io.rs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dave
2026-03-18 10:29:37 +00:00
parent 1bae7bd223
commit 60dabae795
11 changed files with 369 additions and 83 deletions

View File

@@ -68,6 +68,7 @@ struct WorkItemContentResponse {
content: String,
stage: String,
name: Option<String>,
agent: Option<String>,
}
/// A single test case result for the OpenAPI response.
@@ -354,13 +355,14 @@ impl AgentsApi {
if file_path.exists() {
let content = std::fs::read_to_string(&file_path)
.map_err(|e| bad_request(format!("Failed to read work item: {e}")))?;
let name = crate::io::story_metadata::parse_front_matter(&content)
.ok()
.and_then(|m| m.name);
let metadata = crate::io::story_metadata::parse_front_matter(&content).ok();
let name = metadata.as_ref().and_then(|m| m.name.clone());
let agent = metadata.and_then(|m| m.agent);
return Ok(Json(WorkItemContentResponse {
content,
stage: stage_name.to_string(),
name,
agent,
}));
}
}

View File

@@ -401,4 +401,5 @@ mod tests {
let result = api.list_directory(payload).await;
assert!(result.is_err());
}
}