




























@@ -187,6 +187,40 @@ Cron jobs panel notes:
187187- Gateway persists aborted partial assistant text into transcript history when buffered output exists
188188- Persisted entries include abort metadata so transcript consumers can tell abort partials from normal completion output
189189190+## PWA install and web push
191+192+The Control UI ships a `manifest.webmanifest` and a service worker, so
193+modern browsers can install it as a standalone PWA. Web Push lets the
194+Gateway wake the installed PWA with notifications even when the tab or
195+browser window is not open.
196+197+| Surface | What it does |
198+| ----------------------------------------------------- | ------------------------------------------------------------------ |
199+| `ui/public/manifest.webmanifest` | PWA manifest. Browsers offer "Install app" once it is reachable. |
200+| `ui/public/sw.js` | Service worker that handles `push` events and notification clicks. |
201+| `push/vapid-keys.json` (under the OpenClaw state dir) | Auto-generated VAPID keypair used to sign Web Push payloads. |
202+| `push/web-push-subscriptions.json` | Persisted browser subscription endpoints. |
203+204+Override the VAPID keypair through env vars on the Gateway process when
205+you want to pin keys (for multi-host deployments, secrets rotation, or
206+tests):
207+208+- `OPENCLAW_VAPID_PUBLIC_KEY`
209+- `OPENCLAW_VAPID_PRIVATE_KEY`
210+- `OPENCLAW_VAPID_SUBJECT` (defaults to `mailto:openclaw@localhost`)
211+212+The Control UI uses these scope-gated Gateway methods to register and
213+test browser subscriptions:
214+215+- `push.web.vapidPublicKey` — fetches the active VAPID public key.
216+- `push.web.subscribe` — registers an `endpoint` plus `keys.p256dh`/`keys.auth`.
217+- `push.web.unsubscribe` — removes a registered endpoint.
218+- `push.web.test` — sends a test notification to the caller's subscription.
219+220+Web Push is independent of the iOS APNS relay path
221+(see [Configuration](/gateway/configuration) for relay-backed push) and
222+the existing `push.test` method, which target native mobile pairing.
223+190224## Hosted embeds
191225192226Assistant messages can render hosted web content inline with the `[embed ...]`
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。