fix: v0.1.1 — MCP identity, timeouts, exit codes, URL validation

Critical:
- MCP server identifies as "webclaw-mcp" instead of "rmcp"
- Research tool poll loop capped at 200 iterations (~10 min)

CLI:
- Non-zero exit codes on errors
- Text format strips markdown table syntax

MCP server:
- URL validation on all tools
- 60s cloud API timeout, 30s local fetch timeout
- Diff cloud fallback computes actual diff
- Batch capped at 100 URLs, crawl at 500 pages
- Graceful startup failure instead of panic

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Valerio 2026-03-24 17:25:05 +01:00
parent 09fa3f5fc9
commit ea9c783bc5
8 changed files with 194 additions and 34 deletions

View file

@ -961,7 +961,11 @@ async fn run_crawl(cli: &Cli) -> Result<(), String> {
result.total, result.ok, result.errors, result.elapsed_secs,
);
Ok(())
if result.errors > 0 {
Err(format!("{} of {} pages failed", result.errors, result.total))
} else {
Ok(())
}
}
async fn run_map(cli: &Cli) -> Result<(), String> {
@ -1023,7 +1027,11 @@ async fn run_batch(cli: &Cli, urls: &[String]) -> Result<(), String> {
errors
);
Ok(())
if errors > 0 {
Err(format!("{errors} of {} URLs failed", results.len()))
} else {
Ok(())
}
}
async fn run_diff(cli: &Cli, snapshot_path: &str) -> Result<(), String> {