@v5x/web/svelte exposes a rune-friendly state object backed by @v5x/web.
snapshot and status getters, and connection methods that forward to the shared client. The getters use Svelte 5 reactivity through createSubscriber; no svelte/store API is involved.
Client lifecycle
Keep a stable shared state object for each app or tool surface. Create it in module or route-level state when the same V5 connection should be reused across components, instead of recreating it during component updates. Pass an explicit client when tests, dependency injection, or composition need to own the client lifecycle:v5.disconnect() when a route, tool surface, or abandoned workflow should release the V5 device. This stops the web client’s background refresh timer and disposes the underlying @v5x/serial device when one is connected.