Every commit scored for change-risk against this repo's own history, so 'elevated' means elevated here rather than on some global curve.
Needs review
60 commits sit in this repo's top risk tercile, which is 34% of the 179scored. The cut is drawn against this codebase's own history rather than a global curve, so a quiet repo still fills its top band, and here it starts at 7.2 out of 10. What pushes a commit up is size and spread together: a large change confined to one area scores below a smaller one scattered across a dozen files.
Commit categories over time, read off the subject line. Fixes carry the accent because that is the series this chart exists to show.
Consistently other-driven across its history.
Ranked by change-risk, highest first. Priority is a tercile of this repo's own distribution, so a quiet repo still fills its top band.
| # | Commit | Author | When | Lines | Risk | Top driver |
|---|---|---|---|---|---|---|
| 1 | c99ec684Initial release: webclaw v0.1.0 — web content extraction for LLMs | Valerio | 4mo ago | +24.1K -0 | 100%Elevated | large diff (many lines added) |
| 2 | 217bfe08feat(reddit): parse old.reddit.com HTML instead of the dead .json API | Valerio | 1mo ago | +2.5K -396 | 99%Elevated | large diff (many lines added) |
| 3 | b041f3cdfeat(extractors): wave 2 \u2014 8 more verticals (14 total) | Valerio | 3mo ago | +1.7K -0 | 99%Elevated | large diff (many lines added) |
| 4 | 8cc727c2feat(extractors): wave 6a, 5 easy verticals (27 total) | Valerio | 3mo ago | +1.2K -1 | 98%Elevated | large diff (many lines added) |
| 5 | 8ba7538cfeat(extractors): add vertical extractors module + first 6 verticals | Valerio | 3mo ago | +1.5K -0 | 98%Elevated | large diff (many lines added) |
| 6 | 7f5eb93bfeat(extractors): wave 6b, etsy_listing + HTML fallbacks for substack/youtube | Valerio | 3mo ago | +910 -29 | 96%Elevated | large diff (many lines added) |
| 7 | 0221c151feat(extractors): wave 4 \u2014 ecommerce (shopify + generic JSON-LD) | Valerio | 3mo ago | +854 -0 | 96%Elevated | large diff (many lines added) |
| 8 | e27ee1f8docs(benchmarks): reproducible 3-way comparison vs trafilatura + firecrawl (#25) | Valerioclaudeassisted | 3mo ago | +935 -119 | 96%Elevated | large diff (many lines added) |
| 9 | ea148487feat: v0.2.0 — DOCX/XLSX/CSV extraction, HTML format, multi-URL watch, batch LLM | Valerioclaudeassisted | 4mo ago | +1.5K -40 | 96%Elevated | large diff (many lines added) |
| 10 | b2e7dbf3fix(extractors): perfect-score follow-ups (trustpilot 2025 schema, amazon/etsy fallbacks, cloud docs) | Valerio | 3mo ago | +811 -158 | 94%Elevated | large diff (many lines added) |
| 11 | d8c9274afeat(extractors): wave 5 \u2014 Amazon, eBay, Trustpilot via cloud fallback | Valerio | 3mo ago | +884 -24 | 94%Elevated | large diff (many lines added) |
| 12 | 3bb0a4bcfeat(extractors): add LinkedIn + Instagram with profile-to-posts fan-out | Valerio | 3mo ago | +1.1K -1 | 94%Elevated | large diff (many lines added) |
| 13 | 2ba682adfeat(server): add OSS webclaw-server REST API binary (closes #29) | Valerio | 3mo ago | +1.1K -11 | 94%Elevated | large diff (many lines added) |
| 14 | 6316b1a6fix: handle raw newlines in JSON-LD strings | Valerioclaudeassisted | 3mo ago | +1.3K -8 | 94%Elevated | large diff (many lines added) |
| 15 | a1b9a550chore: add SKILL.md to repo root for skills.sh discoverability | Valerioclaudeassisted | 3mo ago | +634 -0 | 92%Elevated | large diff (many lines added) |
| 16 | 2f6255feadd SKILL.md for Claude Code skill integration | Valerioclaudeassisted | 4mo ago | +634 -0 | 92%Elevated | large diff (many lines added) |
| 17 | d91ad9c1feat(cli): add webclaw bench <url> subcommand (closes #26) | Valerio | 3mo ago | +471 -1 | 90%Elevated | large diff (many lines added) |
| 18 | 84b2e609feat: SvelteKit data extraction + license change to AGPL-3.0 | Valerioclaudeassisted | 3mo ago | +850 -35 | 90%Elevated | large diff (many lines added) |
| 19 | aaf51eddfeat: replace custom TLS stack with wreq (BoringSSL), bump v0.3.3 | Valerioclaudeassisted | 3mo ago | +752 -341 | 90%Elevated | large diff (many lines added) |
| 20 | 0ab891bdrefactor(cloud): consolidate CloudClient + smart_fetch into webclaw-fetch | Valerio | 3mo ago | +675 -388 | 89%Elevated | large diff (many lines added) |
| 21 | 32c035c5feat: v0.1.4 — QuickJS integration for inline JavaScript data extraction | Valerioclaudeassisted | 4mo ago | +665 -7 | 89%Elevated | large diff (many lines added) |
| 22 | fe567a6afeat(core): endpoints module for API surface extraction from HTML and JS (#47) | Valerio | 2mo ago | +536 -11 | 88%Elevated | large diff (many lines added) |
| 23 | be8bcfebfix: harden resource limits, path safety, and WASM build (#46) | Valerio | 2mo ago | +454 -47 | 87%Elevated | large diff (many lines added) |
| 24 | e8ca1417Improve --format llm output quality (#37) | devnen | 2mo ago | +371 -16 | 87%Elevated | large diff (many lines added) |
| 25 | 985a90b0feat(fetch): periodic progress stderr line on slow fetches | devnen | 1mo ago | +299 -2 | 86%Elevated | large diff (many lines added) |
| 26 | 3fabdc1dfix: clean llm output noise | Valerio | 2mo ago | +348 -18 | 86%Elevated | large diff (many lines added) |
| 27 | a53578e4fix(extractors): detect AWS WAF verifying-connection page, add OG fallback to ecommerce_product | Valerio | 3mo ago | +299 -28 | 86%Elevated | large diff (many lines added) |
| 28 | aab51beadocs: add workflow examples | Valerio | 2mo ago | +281 -0 | 84%Elevated | large diff (many lines added) |
| 29 | af96628dRevise README for clarity and updated content | Valerio | 2mo ago | +216 -250 | 84%Elevated | large diff (many lines added) |
| 30 | bdf81fe6fix: harden fetch URL validation | Valerio | 2mo ago | +284 -27 | 84%Elevated | large diff (many lines added) |
| 31 | b7776781Bump to 0.5.4: SafariIos profile + Chrome fingerprint alignment + locale helper | Valerio | 3mo ago | +291 -26 | 82%Elevated | large diff (many lines added) |
| 32 | e5649e18feat: v0.1.5 — --output-dir saves each page to a separate file | Valerioclaudeassisted | 4mo ago | +278 -24 | 82%Elevated | large diff (many lines added) |
| 33 | 0c91c6d5feat: v0.1.3 — crawl streaming, resume/cancel, MCP proxy support | Valerioclaudeassisted | 4mo ago | +251 -44 | 82%Elevated | large diff (many lines added) |
| 34 | 058493bcfeat(fetch): Fetcher trait so vertical extractors work under any HTTP backend | Valerio | 3mo ago | +241 -73 | 80%Elevated | large diff (many lines added) |
| 35 | 70c67f2efix: prevent noise filter from swallowing content in malformed HTML | devnen | 3mo ago | +138 -7 | 80%Elevated | large diff (many lines added) |
| 36 | f7cc0cc5feat: CLI --research flag + MCP cloud fallback + structured research output | Valerioclaudeassisted | 3mo ago | +239 -32 | 80%Elevated | large diff (many lines added) |
| 37 | f13cb83cfeat: replace primp with webclaw-tls, bump to v0.3.0 | Valerioclaudeassisted | 4mo ago | +200 -595 | 80%Elevated | large diff (many lines added) |
| 38 | 1b8dfb77feat: v0.1.6 — watch mode, webhooks (Discord/Slack auto-format) | Valerioclaudeassisted | 4mo ago | +244 -8 | 80%Elevated | large diff (many lines added) |
| 39 | 72b8dbc2fix: improve brand extraction signals | Valerio | 2mo ago | +234 -47 | 78%Elevated | large diff (many lines added) |
| 40 | d69c50a3feat(fetch,llm): DoS hardening + glob validation + cleanup (P2) (#22) | Valerioclaudeassisted | 3mo ago | +219 -13 | 78%Elevated | large diff (many lines added) |
| 41 | 74bac874fix: prevent stack overflow on deeply nested HTML pages | devnen | 3mo ago | +129 -28 | 78%Elevated | large diff (many lines added) |
| 42 | afe4d307feat: v0.1.2 — TLS fallback, Safari default, Reddit fix, YouTube transcript infra | Valerioclaudeassisted | 4mo ago | +164 -6 | 78%Elevated | large diff (many lines added) |
| 43 | 14ded4b9chore(deps): bump wreq 6.0.0-rc.29, wreq-util 3.0.0-rc.12 | Valerio | 1mo ago | +170 -122 | 75%Elevated | large diff (many lines added) |
| 44 | 0daa2fecfeat(cli+mcp): vertical extractor support (28 extractors discoverable + callable) | Valerio | 3mo ago | +190 -9 | 75%Elevated | large diff (many lines added) |
| 45 | 95a6681bfix: detect layout tables and render as sections instead of markdown tables | devnen | 3mo ago | +121 -10 | 75%Elevated | large diff (many lines added) |
| 46 | 4e81c343docs: update npm package license to AGPL-3.0 | Valerioclaudeassisted | 3mo ago | +142 -23 | 75%Elevated | large diff (many lines added) |
| 47 | ea9c783bfix: v0.1.1 — MCP identity, timeouts, exit codes, URL validation | Valerioclaudeassisted | 4mo ago | +194 -34 | 75%Elevated | large diff (many lines added) |
| 48 | a3aa4bcefix: support LLM provider compatibility options | Valerio | 2mo ago | +193 -16 | 72%Elevated | large diff (many lines added) |
| 49 | e10066f5fix(cloud): synthesize HTML from cloud response instead of requesting raw html | Valerio | 3mo ago | +131 -12 | 72%Elevated | large diff (many lines added) |
| 50 | 095ae5d4polish(fetch,mcp): robots parser + firefox client cache + Acquire ordering (P3) (#23) | Valerioclaudeassisted | 3mo ago | +153 -20 | 72%Elevated | large diff (many lines added) |
Two views of the same model: where the cuts fall, and what commit shape lands you above them.
Every scored commit, binned on the raw 0 to 10 score rather than the percentile. Percentile ranks are uniform by construction, so that axis has no shape to draw. The dashed lines are the tercile cuts behind each row's priority pill.
The 179 most recent commits, on their own recency sample rather than the feed above: that defaults to risk-sorted, so reusing it would plot only the top tercile and call it the spread. Big and scattered is what the model penalises. Click a dot to open it.
Repowise tracks change history across 108 files in 2233admin/webclaw. In the last 90 days 108 files were touched, 340 times in total, most often client.rs. Every commit is scored for change risk from its size, spread and the history of the files it touches.