Explain, a weekly rollup, rule suggestions and a health check
gmail-bot explain shows why a message got its label: sender signals, which keyword matched, the category, every fraud flag, any topic rule, the outcome, and what would change it. It calls the same decision code a live run uses, and a test checks it against every demo message.
gmail-bot weekly sums up the week: mail per day and category, why mail was held, deliveries, busiest senders, newsletters worth dropping and which fraud checks fired, compared with the week before. It writes a text report and a dashboard-style page, offline.
gmail-bot suggest-rules proposes config changes from how senders were actually handled, such as trusting a sender that is always held but never suspicious, blocking a domain whose every message was flagged, or making a regular correspondent a VIP. It never changes config itself, never trusts a whole free-mail provider, and never suggests a flagged sender as a VIP. Building the demo caught that last case: it had proposed a lookalike scam sender.
gmail-bot doctor checks the setup: config typos and bad values (including a topic rule so broad it would match every message), sign-in tokens and scopes, the scheduled task and whether it still points at the right folder, and errors in the latest run.
Runs are cheaper. The bot now skips mail it has already handled before downloading it, not after, which stops the five-minute runs from hitting Gmail's per-minute API limit.
Tests went from 86 to 153 and now cover every module.