diff --git a/README.md b/README.md index 71054482..1662a0ca 100644 --- a/README.md +++ b/README.md @@ -227,7 +227,7 @@ The tray is currently in beta. Feedback is highly appreciated at [github.com/onl **Push notifications (Beta)** -- Receive browser push notifications when quotas cross thresholds. onWatch is a PWA (Progressive Web App) - install it from your browser for a native app experience. Uses Web Push protocol (VAPID) with zero external dependencies. Configure delivery channels (email, push, webhook, or any combination) per your preference. -**Webhook notifications (Beta)** -- POST a JSON payload to any HTTP endpoint on warning, critical, reset, auth error, and Codex quota-starter events. Works with ntfy, Gotify, and custom services, with optional bearer-token auth and custom headers. Payloads never contain credentials. See [docs/WEBHOOK_SETUP.md](docs/WEBHOOK_SETUP.md). +**Webhook notifications (Beta)** -- POST a JSON payload to any HTTP endpoint on warning, critical, reset, auth error, Codex quota-starter, and banked Codex reset expiry events. Works with ntfy, Gotify, and custom services, with optional bearer-token auth and custom headers. Payloads never contain credentials. See [docs/WEBHOOK_SETUP.md](docs/WEBHOOK_SETUP.md). **Dark/Light mode** -- Toggle via sun/moon icon in the header. Auto-detects system preference on first visit and persists your choice across sessions. diff --git a/docs/WEBHOOK_SETUP.md b/docs/WEBHOOK_SETUP.md index dc60c4f9..02a417ab 100644 --- a/docs/WEBHOOK_SETUP.md +++ b/docs/WEBHOOK_SETUP.md @@ -38,8 +38,13 @@ The test button uses the *saved* configuration, so save before testing. | `auth_error` | A provider token refresh or authentication fails | | `starter_success` | The Codex auto quota-starter successfully started a limit window | | `starter_failure` | The Codex auto quota-starter ping failed | +| `reset_credit_expiry` | A banked Codex reset expires within 24 hours | | `test` | You press **Send Test Webhook** | +A newly added event is off for webhooks that already exist: its stored value is +absent, and only `warning` and `critical` default on. Tick it once under +**Webhook Configuration** and save. + ## Payload `POST` with `Content-Type: application/json`: @@ -62,7 +67,9 @@ The test button uses the *saved* configuration, so save before testing. Optional fields are omitted rather than sent as zero. `reset_at` appears only when the provider reports a reset time. `quota_key`, `utilization`, `limit`, and -`threshold` are absent on auth-error and starter events. +`threshold` are absent on auth-error and starter events. On +`reset_credit_expiry`, `quota_key` is the reset credit ID and `reset_at` is the +expiry time. **The payload never contains credentials** - no OAuth tokens, API keys, or the webhook bearer token itself.