Commit Graph

7 Commits

Author SHA1 Message Date
877a75b053 fix: normalize double slashes in URL path for webhook routing
Statuspage deactivated our webhook because requests to
//webhook/status/<secret> returned 404 — Hono requires exact path
matches. Added middleware that rewrites consecutive slashes before
routing, preserving POST body via internal re-dispatch.
2026-04-09 08:41:32 +07:00
30ffaae612 feat: add /help, /history, /uptime commands and enhance /status
- /help: detailed guide with examples for all commands
- /status: overall indicator, emoji markers, updated time, status page link
- /history [count]: recent incidents with impact, dates, links (max 10)
- /uptime: component health with last change time
- Split info commands into bot-info-commands.js for modularity
- Register all 7 commands in bot-setup.js
2026-04-08 23:41:53 +07:00
37c2a01677 feat: add setup endpoint to register bot commands and webhook
GET /webhook/setup/:secret registers commands with Telegram
and sets webhook URL in one step.
2026-04-08 23:31:11 +07:00
68b9604598 refactor: update bindings to match CF resource names
KV binding: claude_status, Queue binding: claude-status.
Real KV namespace ID configured with remote flag.
2026-04-08 23:23:32 +07:00
b3d1f5acb4 fix: rename KV binding to CLAUDE_STATUS and fix threadId nullish check
- Rename KV binding SUBSCRIBERS → CLAUDE_STATUS for consistent naming
- Fix || null → ?? null to preserve threadId 0 (General topic)
- Update KV namespace creation command in README
2026-04-08 23:14:26 +07:00
41bdcf36ef refactor: rename queue to claude-status and remove KV key prefix
Namespace provides scoping, prefix on KV key is redundant.
2026-04-08 23:09:02 +07:00
01320abacd feat: implement Telegram bot for Claude status webhooks
Cloudflare Workers bot that forwards status.claude.com (Atlassian
Statuspage) incident and component updates to subscribed Telegram
users via CF Queues fan-out.

- Hono.js routing with grammY webhook handler
- Bot commands: /start, /stop, /status, /subscribe
- Supergroup topic support (message_thread_id)
- KV store with claude-status: prefix and composite keys
- Queue consumer with batch send, 403 auto-removal, 429 retry
- Timing-safe webhook secret validation
- HTML escaping for Telegram messages
2026-04-08 22:59:37 +07:00