Releases: Hookflo/tern
Security Patch
The dynamic import() call itself as eval-like behaviour now patched
Platform addition, Dedup Improvement. and Reliable event delivery
What's new
Queued delivery via Upstash QStash
Verified webhooks are enqueued before your handler runs
Endpoint returns 200 immediately — QStash handles delivery
BYOK model — your token, your account, your data. Nothing through Hookflo's servers
Automatic retries
Handler failures trigger automatic QStash retries with exponential backoff
Configurable retry count or use your plan default
Dead-letter queue (DLQ)
Events exhausting all retries land in your DLQ — never lost
Inspect failed events programmatically via controls.dlq()
Programmatic replay
Replay any DLQ message via controls.replay(dlqId)
No dashboard required
Deduplication
Same event arriving twice processed exactly once
Per-platform ID resolution — Stripe idempotency key, GitHub delivery header, Clerk svix-id, and more
SHA-256 hash fallback for platforms without explicit event IDs
Cloudflare Workers adapter
New @hookflo/tern/cloudflare adapter
Web Crypto API native — zero Node.js dependencies
Runs in V8 isolates at the edge
New platforms
Sentry — alert webhooks
Replicate — AI job completion events
GitLab — push, MR, pipeline events
Bug fixes
Fixed DeduplicationId cannot contain ':' — dedup IDs now use underscore separator
Fixed DLQ replay 405 — now correctly uses DELETE /v2/dlq/{dlqId}
Fixed platform resolving as unknown in DLQ listing
Fixed unhandled QStash publish errors — status-aware responses (400→489, 401/429→503)
Fixed QStash signature verification swallowing network errors as 401
Fixed NODE_ENV condition — dev dedup logging now works correctly locally
Fixed base64-encoded body parsing in DLQ listing
Breaking changes
controls.replay() now takes dlqId instead of messageId — get dlqId from controls.dlq() response
DLQMessage type now includes dlqId field alongside existing id
Packages
@hookflo/tern core — unchanged
@hookflo/tern/upstash controls — new
@hookflo/tern/cloudflare adapter — new
New Platform Addition
Support added for
- Doppler
- Sentry
- Sanity
- Grafana
v2.2.7 - stable
2.2.7
Stable pre-release
v2.0.2 2.2.0
Schema Normalization
v2.0.0 2.0.0
Stable Beta
This version have tested webhook verification platforms
- Stripe
- Supabase
- Github
- Clerk