The daily-health-report worker now closes the loop the user asked for:
review Sentry issues on a routine and clean up what's noise. Deliberately
conservative — an issue is auto-resolved ONLY if its title matches a known
verification-noise pattern (NOISE_TITLE_PATTERNS in index.js); every other
issue (i.e. any real production error) is left untouched and always listed
in the Telegram digest for human review. Never widen this to "resolve
everything automatically" — that would hide real bugs instead of
surfacing them.
Verified end-to-end: sent one event matching the noise pattern and one
simulating a real error. The worker auto-resolved only the former (Sentry
confirmed 0 → 1 → 0 unresolved) and kept the latter open and reported.
Also manually cleaned up the 5 pre-existing test issues from today's
Sentry setup verification, now that this routine exists to keep the
projects clean going forward.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds a proactive daily heartbeat, since the existing Telegram flows
(docs-monitor, pulse) only notify on change/error/weekly schedule and never
confirm "everything's fine." Runs at 14:00 UTC (10:00 AM EDT) and reports:
- Dashboard site health (reuses the existing /api/health-check endpoint)
- Unresolved Sentry issues from the last 24h across all 3 Sentry projects
(aitmpl-workers, aitmpl-dashboard, aitmpl-cli)
Does NOT poll the other 3 workers' /status endpoints directly — Cloudflare
blocks Worker-to-Worker fetches over the public *.workers.dev hostname
within the same account (error 1042, confirmed via wrangler dev --remote).
Their health is covered by their own Sentry Cron Monitor check-ins instead.
Also adds a /status endpoint to aitmpl-crons (cloudflare-workers/crons/index.js)
for consistency with the other workers, even though it isn't polled here.
Verified end-to-end: manual /trigger call returns a clean report and
successfully delivers to Telegram (message_id confirmed). Sentry summary
section requires SENTRY_AUTH_TOKEN + SENTRY_ORG_SLUG secrets (pending —
degrades gracefully to "not configured" until set).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Add pulse worker: weekly report collecting metrics from GitHub, Discord,
Supabase, and Vercel, sent via Telegram every Sunday 14:00 UTC
- Add docs-monitor worker: hourly documentation change monitor with
Telegram notifications (previously local-only, now tracked in repo)
- Update .gitignore to track cloudflare-workers/ directory
- Document Cloudflare Workers architecture in CLAUDE.md
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>