@@ -15,6 +15,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1515 - New exports: ` AgentVerifier ` , ` createAgentVerifier ` , ` DirectoryCache ` , ` DEFAULT_SIGNED_AGENT_DIRECTORIES ` , and types ` AgentVerdict ` , ` AgentStatus ` , ` AgentCategory ` , ` WebBotAuthConfig ` , ` AgentVerifierOptions ` , ` SignedAgentDirectory ` .
1616- Doc: "Verify AI agents with Web Bot Auth in Next.js" (` docs/verify-ai-agents-web-bot-auth.md ` ).
1717
18+ ## [ 0.9.0] - 2026-07-31
19+
20+ ### Added
21+ - ** Bot classification in the request path** — rules can now act on who the
22+ User-Agent says it is, which the AI-scraper docs described but nothing could do.
23+ - ` bots() ` rule: ` bots({ categories: ['training_crawler'] }) ` ,
24+ ` bots({ ai: true, allow: ['perplexitybot'] }) ` ,
25+ ` bots({ agents: ['gptbot', 'ClaudeBot'], action: 'THROTTLE' }) ` .
26+ - New filter namespace: ` bot.known ` , ` bot.ai ` , ` bot.category ` , ` bot.name ` ,
27+ ` bot.id ` , ` bot.organization ` , ` bot.score ` , ` bot.respects_robots ` .
28+ - New exports: ` bots ` , ` BotRule ` , ` matchUserAgent ` , ` classifyUserAgent ` ,
29+ ` BOT_REGISTRY ` , ` BOT_CATEGORIES ` , and types ` BotVerdict ` , ` BotAgent ` ,
30+ ` BotCategory ` , ` BotRuleConfig ` .
31+ - 168 agents generated from the Go registry, matched locally with no network
32+ call. Category names match the dashboard's ` ai_scraper_category ` column.
33+ - ` ai: true ` covers training crawlers, AI search crawlers, AI agents and AI
34+ assistants. It excludes ` search_crawler ` — blocking Googlebot would deindex
35+ your site.
36+
37+ This matches a ** self-declared** User-Agent, so it acts only on agents that
38+ identify honestly. That is the right tool for cooperative crawlers and the
39+ wrong one for anything spoofing a browser; use ` tripwire() ` for those.
40+
1841## [ 0.4.0] - 2026-06-30
1942
2043### Added
0 commit comments