docs(http): add ADR-048 and websocket.md — WS carries native session, not gateway
Promote the WebSocket browser path from a section in http-server.md to a first-class spec (websocket.md) and commit the contract-pattern decision (ADR-048): a WS connection carries the native EventEnvelope call-protocol session, not the HTTP gateway shape. The gateway endpoints are HTTP-only; discovery on WS is via services/list/services/schema as ordinary call-protocol ops; subscriptions project as native call.responded events (no SSE). ADR-044 already decided WS as the v1 browser bidirectional path; ADR-048 clarifies the shape of what ADR-044 committed (§1 implies native session; the ADR makes it an explicit implementer-visible rule). The from_wss adapter (importing a remote node's ops over WS) is recorded as out-of-scope with a concrete reversal trigger so it is not re-derived later. Spec cleanup: http-server.md WS section collapsed to a stub pointer; websocket.md Why section references ADRs rather than re-arguing them; length-prefix decision made canonical (no prefix on WS — message boundary is the delimiter); default upgrade path pinned (/alknet/call) with HTTP/2 extended CONNECT noted; indexes (README, http/README, overview) updated.
This commit is contained in:
@@ -9,7 +9,7 @@ last_updated: 2026-06-30
|
||||
> This spec is kept intact for revival. `h3`/WebTransport is not
|
||||
> implemented in the initial `alknet-http` release; the browser
|
||||
> bidirectional path uses WebSocket (see
|
||||
> [http-server.md](http-server.md) §"WebSocket browser path"). ADR-038
|
||||
> [websocket.md](websocket.md)). ADR-038
|
||||
> is superseded; ADR-040 and ADR-043 are parked (their decisions revive
|
||||
> unchanged when WebTransport revives). The reversal trigger is a
|
||||
> concrete deployment needing the ALPN-stream-proxy (a browser running
|
||||
|
||||
Reference in New Issue
Block a user