What
Implement the SWICG ActivityPub API SSE spec so C2S clients can subscribe to live updates on outbox and inbox collections instead of polling.
Key changes
- SSE stream endpoint (
GET /actors/{id}/{collection}/stream) with push OAuth scope requirement
- Transient-based signal system for efficient polling — avoids unnecessary DB queries when no new items exist
access_token query parameter fallback in OAuth Server for EventSource clients (browser EventSource API cannot send Authorization headers)
eventStream property added to outbox and inbox collection responses
proxyEventStream added to actor endpoints (proxy returns 501 for now — wp_remote_get doesn't support streaming)
- Event type mapping per spec: Create/Announce/Like →
Add, Update → Update, Delete/Undo → Remove
Why
Enables C2S clients to receive real-time notifications of collection changes without polling, completing the push notification story for the C2S API.
Links
What
Implement the SWICG ActivityPub API SSE spec so C2S clients can subscribe to live updates on outbox and inbox collections instead of polling.
Key changes
GET /actors/{id}/{collection}/stream) withpushOAuth scope requirementaccess_tokenquery parameter fallback in OAuth Server for EventSource clients (browser EventSource API cannot send Authorization headers)eventStreamproperty added to outbox and inbox collection responsesproxyEventStreamadded to actorendpoints(proxy returns 501 for now —wp_remote_getdoesn't support streaming)Add, Update →Update, Delete/Undo →RemoveWhy
Enables C2S clients to receive real-time notifications of collection changes without polling, completing the push notification story for the C2S API.
Links