The socket carries invalidation on both backends, and a transport to ride it
mizan-django's socket sent a bare result, so a mutation called over it dropped
its invalidation while the same mutation over HTTP applied it. Both backends
now put the {result, invalidate, merge} envelope in `data` — the shape the
Tauri and webview transports already document — so mizanCall applies
server-driven invalidation identically whichever transport carried the call.
Two channel tests pinned the bare-result shape and move with the contract.
FastAPI gains a `ctx` action: without it a socket transport cannot fetch a
context bundle, and every app needs an HTTP connection beside the socket.
@mizan/ws-transport implements MizanTransport over one connection — RPC and
context bundles correlated by id, channel subscriptions re-sent on reconnect,
in-flight calls rejected when the socket closes under them.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
14
frontends/mizan-ws-transport/package.json
Normal file
14
frontends/mizan-ws-transport/package.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "@mizan/ws-transport",
|
||||
"version": "0.1.0",
|
||||
"description": "Mizan transport carrying RPC, context bundles and channel subscriptions over one WebSocket.",
|
||||
"type": "module",
|
||||
"main": "src/index.ts",
|
||||
"exports": {
|
||||
".": "./src/index.ts"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@mizan/base": "*"
|
||||
},
|
||||
"license": "Elastic-2.0"
|
||||
}
|
||||
Reference in New Issue
Block a user