- Cargo features
wire,driver,server,full. Default isdriverfor backward compatibility. protocolmodule (wire):Command<T>,Reply<T>,ReplyResult<T>,ErrorEnvelope,ErrorCode,new_correlation_id()(uuid v7).presencemodule (wire):DeviceStatus,RunnerStatus,PresenceState.framemodule (wire):FrameHeaderfor WebSocket binary frame transport.topicsmodule (wire): topic builders andparse_device_topicparser.DeviceTypevariants:Dome,Weather,AuxBox.
- Runner publishes retained per-device
DeviceStatuson connect and graceful shutdown. - Runner publishes retained
RunnerStatuson connect, sets LWT for crash detection, publishes graceful Offline on shutdown. - MQTT keepalive default lowered from 30 s to 15 s. Detection latency ~22 s.
- Runner topic parsing rewritten on top of
topics::parse_device_topic; byte-offset slicing removed. RunnerConfigaddsdriver_versionandkeepalive_secsfields.uuiddependency gainsv7andserdefeatures.
- MQTT v3.1.1 is unchanged.
- Existing drivers (qhy-rs, pegasus-rs, eqmount-simulator) need to pass
driver_version: env!("CARGO_PKG_VERSION").to_string()inRunnerConfig. This is the only required source change.