Highlights
HTTP(S) webhook notifications (Beta)
onWatch can now POST a JSON payload to any HTTP or HTTPS endpoint when a quota crosses a threshold, resets, hits an authentication problem, or when the Codex auto quota-starter runs. This is the integration path for ntfy, Gotify, Slack or Discord compatible receivers, home automation, and custom monitoring services.
- Configurable endpoint URL, with optional bearer token or custom headers
- Per-event toggles: warning, critical, reset, auth error, and quota-starter success and failure
- Payload carries provider, quota, account, utilization, limit, threshold, reset time and timestamp, and never contains credentials
- One timeout budget spans every retry, so retries never extend how long a poll is blocked. Retries apply to timeouts, 429 and 5xx only, redirects are not followed, and a circuit breaker pauses delivery after repeated failures so an unreachable endpoint cannot slow polling
- Test button in Settings, plus a setup guide with ntfy and Gotify examples at docs/WEBHOOK_SETUP.md
This feature is in Beta. It runs alongside email and push, or on its own, and is enabled under Settings > Notifications. Please try it and report anything that looks wrong in the issue tracker.
Note that the bearer token is encrypted at rest but custom headers are not, so prefer the token field for credentials.
Repeat alerts and cooldown
The "Cooldown (minutes)" setting previously had no effect on any channel. A new "Repeat alerts" toggle, off by default, makes it govern how often an alert repeats while a quota stays over its threshold. With the toggle off, behaviour is unchanged: one alert per quota cycle.
Fixes
- Notification channel toggles (email, push) were silently reset on every settings save
- The SMTP password was double-encrypted when the admin password changed, which broke email authentication until the password was re-entered
- The webhook bearer token is re-keyed along with the SMTP password on an admin password change
- tools/perf-monitor no longer starts a real daemon during tests, which could hang the test suite
What's Changed
Full Changelog: v2.14.2...v2.14.3