- Add user_agent column to bots table (migration-safe) - Store raw UA string (up to 300 chars) alongside ua_family on insert - selfObserve stores raw UA from incoming request headers - getStats() adds top_user_agents query (top 15 by count, last 30d) - Dashboard: revert actions+reasons to 2-col, remove embedded UA col - Dashboard: new separate panel below actions+reasons showing raw UA strings with hit counts in monospace, truncated with title tooltip Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
14 KiB
14 KiB