feat(openapi): document the Realtime control/event plane (#113) - #4
Conversation
Adds the Realtime tag + paths to the canonical OpenAPI so agents discover the live plane via the spec:
/realtime/connect (WS subscribe — documented descriptively; OpenAPI has no native WS),
/realtime/channels/{channel}/publish | /presence | /history (REST).
Each op carries a per-operation server override to https://realtime.wave.online (the plane is served
off the api host) + the real /v1/* path in its description. Validates clean (redocly). Mirrors
wave-realtime-edge#5 + the SDK client (@wave-av/sdk#15). Part of P1 (#115) / agent discovery (P8).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 29 minutes and 51 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ✨ Finishing Touches🧪 Generate unit tests (beta)
✨ Simplify code
Comment |
fix(drift): derive publication from live behaviour, and run the drift gate on pull requests (GA false-green #4)
…same-run pinned supplementary receipt Addresses the 27 open review threads on PR #93 without altering any previously measured output, status, SHA or command. Every addition is grounded in one anonymous live run at 2026-09-08T15:58:01Z whose /healthz reported commit ef1cf411b64e at both its start and end. API-001.md - Reproduction heading no longer calls every check "read-only": #4 sends an unpaid DELETE and the paywall-before-routing assumption is stated; a HEAD variant (402) is shown. - #2 keeps the grep and adds a strict JSON-parse form asserting error_detail.code is present and error is a string (not an object carrying .code). - #5 is narrowed to the declared Pagination envelope and explicitly does not claim to exercise concurrent writes; #5b sweeps every schema property and operation parameter for cursor-style names (NONE; only limit/offset in use). - #6 is scoped to gateway.wave.online/healthz; the header is read on three more public routes (constant on the two that emit it, absent on the two that do not). - The HTTP 401/402 trailer lines after bare `curl -sS` are explained as harness-appended and the literal `curl -w` form is shown with its output. - The private-repo revision comparison is labelled owner-only; /healthz is the public check. - Transcript fence gets a `text` language (MD040). PROTO-001.md - The three-dialect claim is now shown, not asserted: a second command keeps the response body, and crosscheck.py decodes the V1 JSON body, the V2 payment-required header and the MPP www-authenticate request= parameter from one response and compares amount/asset/payTo/network. - The V1/V2 field-name divergence (maxAmountRequired + network:base vs amount + eip155:8453) is documented and tied to the gateway's own public payments.json wire.v1/wire.v2 declaration, which is read back anonymously (norm.py) as the reproducible base -> eip155:8453 normalization. - The abridged www-authenticate transcript is annotated with the elided request=/expires=/ description= parameters so the amount row of the cross-check table is verifiable. - The 05:14Z receipt is marked unpinned (no same-run /healthz); the 15:58:01Z run is pinned. - Transcript fence gets a `text` language (MD040). Guard: public-repo-guard content policy OK; no private repo names, no on-chain addresses. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Adds the Realtime tag + paths to the canonical OpenAPI so agents discover the live plane via the spec (it's already self-described at
realtime.wave.online/openapi.json; this brings it into the central contract)./realtime/connect— WS subscribe (documented descriptively; OpenAPI 3.1 has no native WebSocket)./realtime/channels/{channel}/publish·/presence·/history— REST.serversoverride →https://realtime.wave.online(the plane is off the api host) + the real/v1/*path in its description.Mirrors wave-realtime-edge#5 + the SDK client @wave-av/sdk#15. Part of P1 (#115) and agent discovery (P8).
🤖 Generated with Claude Code
Summary by cubic
Adds the Realtime plane to the canonical OpenAPI so clients can discover live pub/sub. Introduces a
Realtimetag with per-operationserverspointing tohttps://realtime.wave.online./realtime/connectdocumented as a WebSocket upgrade (101); frames:welcome,message,join/leave,presence(real path/v1/connect)./realtime/channels/{channel}/publish,/presence,/history(limit ≤50)./v1/*paths in descriptions for parity with the edge; spec validates clean.Written for commit 9cc83b4. Summary will update on new commits.