feat: v0.1.6 — watch mode, webhooks (Discord/Slack auto-format)

Watch mode:
- --watch polls a URL at --watch-interval (default 5min)
- Reports diffs to stdout when content changes
- --on-change runs a command with diff JSON on stdin
- Ctrl+C stops cleanly

Webhooks:
- --webhook POSTs JSON on crawl/batch complete and watch changes
- Auto-detects Discord and Slack URLs, formats as embeds/blocks
- Also available via WEBCLAW_WEBHOOK_URL env var
- Non-blocking, errors logged to stderr

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Valerio 2026-03-26 12:30:08 +01:00
parent e5649e1824
commit 1b8dfb77a6
4 changed files with 244 additions and 8 deletions

12
Cargo.lock generated
View file

@ -2881,7 +2881,7 @@ dependencies = [
[[package]]
name = "webclaw-cli"
version = "0.1.5"
version = "0.1.6"
dependencies = [
"clap",
"dotenvy",
@ -2901,7 +2901,7 @@ dependencies = [
[[package]]
name = "webclaw-core"
version = "0.1.5"
version = "0.1.6"
dependencies = [
"ego-tree",
"once_cell",
@ -2919,7 +2919,7 @@ dependencies = [
[[package]]
name = "webclaw-fetch"
version = "0.1.5"
version = "0.1.6"
dependencies = [
"primp",
"quick-xml",
@ -2937,7 +2937,7 @@ dependencies = [
[[package]]
name = "webclaw-llm"
version = "0.1.5"
version = "0.1.6"
dependencies = [
"async-trait",
"reqwest",
@ -2950,7 +2950,7 @@ dependencies = [
[[package]]
name = "webclaw-mcp"
version = "0.1.5"
version = "0.1.6"
dependencies = [
"dotenvy",
"reqwest",
@ -2970,7 +2970,7 @@ dependencies = [
[[package]]
name = "webclaw-pdf"
version = "0.1.5"
version = "0.1.6"
dependencies = [
"pdf-extract",
"thiserror",