sqry-daemon-protocol 13.0.7

sqryd daemon wire types + framing codec (leaf crate, no sqry-* deps).
Documentation

sqry-daemon-protocol — sqryd daemon wire types + framing codec.

This is a leaf crate with no dependencies on any other sqry-* crate. Both the sqryd daemon itself (sqry-daemon) and the client-side crates that need to speak the wire format (sqry-daemon-client, sqry-lsp, sqry-mcp) depend on this crate without creating a dependency cycle.

Module layout

  • [framing] — 4-byte little-endian length-prefix codec ([framing::read_frame] / [framing::write_frame] plus typed JSON wrappers and [framing::FrameError]).
  • [protocol] — wire types: [DaemonHello], [DaemonHelloResponse], [ShimProtocol], [ShimRegister], [ShimRegisterAck], [ResponseEnvelope], [ResponseMeta], [WorkspaceState], [JsonRpcVersion], [JsonRpcId], [JsonRpcRequest], [JsonRpcResponse], [JsonRpcPayload], [JsonRpcError].

First-frame discrimination

The router in sqry-daemon shape-discriminates the very first frame between [DaemonHello] (CLI / JSON-RPC clients) and [ShimRegister] (Phase 8c shim byte-pump clients). All four first-frame structs — [DaemonHello], [DaemonHelloResponse], [ShimRegister], [ShimRegisterAck] — carry #[serde(deny_unknown_fields)] so that a first frame matching neither shape is rejected with -32600 Invalid Request rather than being silently routed to the wrong path.