Honest copy sweep + AI rate-limit + .env.example refresh
An out-of-band internal audit flagged that some marketing copy ran ahead of the code — specifically the OAuth claim for HubSpot/Salesforce (we accept pasted access tokens today; OAuth callback is on the roadmap) and the LinkedIn claim (the dispatcher returns skippedDispatch — the integration is in flight). The honest fix is to match the copy to the code, which is what shipped today.
Two backstop fixes also landed: (1) rate-limit middleware on /api/ai/* so a single user can't drain the AI budget, with a 60-call-per-minute per-user cap; (2) .env.example now lists every key actually consumed in the codebase, so a fresh clone gets a complete dev-environment template instead of guessing.
- /integrations/{hubspot,salesforce,linkedin} copy now matches code reality (paste-token + in-flight LinkedIn)
- Rate-limit on /api/ai/* — 60/min/user, 503 when over
- .env.example expanded with all consumed env vars
- DEMO_NOTICE admin pages get a persistent in-page banner