story-kit: merge 132_story_fix_toctou_race_in_agent_check_and_insert

This commit is contained in:
Dave
2026-02-24 12:49:29 +00:00
parent 7c3e9965d1
commit c5ddd15273
2 changed files with 209 additions and 33 deletions

View File

@@ -1562,15 +1562,20 @@ fn parse_test_cases(value: Option<&Value>) -> Result<Vec<TestCaseResult>, String
}
fn tool_get_server_logs(args: &Value) -> Result<String, String> {
let lines = args
let lines_count = args
.get("lines")
.and_then(|v| v.as_u64())
.map(|n| n.min(1000) as usize)
.unwrap_or(100);
let filter = args.get("filter").and_then(|v| v.as_str());
let recent = log_buffer::global().get_recent(lines, filter);
Ok(recent.join("\n"))
// Fetch extra buffer entries to account for multi-line entries within each
let fetch = lines_count.saturating_mul(4).min(4000);
let recent = log_buffer::global().get_recent(fetch, filter);
// Flatten buffer entries into individual lines, then take the last lines_count
let all_lines: Vec<&str> = recent.iter().flat_map(|s| s.lines()).collect();
let start = all_lines.len().saturating_sub(lines_count);
Ok(all_lines[start..].join("\n"))
}
/// MCP tool called by Claude Code via `--permission-prompt-tool`.