Skip to content
-
Device test: measure d2's deadline from its own send, not d1's. The shared timestamp folded d1's whole round trip into d2's 60 ms margin, which the Postgres store exceeds; npm test and test:pg 5/5.OpenVibers · 1 Oct 2026
49fbd9e
-
Tests: the queue-turn test no longer races device liveness. A 60 s turn and a 120 s clock jump, and the device reconnects with its credential at the jumped clock, so whether dave's promoted command reaches the device is no longer decided by real time.OpenVibers · 1 Oct 2026
bce2687
-
Bot profiles emit exactly what the Node plugins accept; effective limits reach the device; pairing bootstraps video (plan T15 follow-up C)OpenVibers · 1 Oct 2026
ca89630
-
OpenVibe.Bot service (plan T15 step 1, ADR-043): robots, devices, one-time pairing codes and device credentials (hashed, rotatable, revocable, never logged or read back), the device WebSocket (credential in the upgrade header only; hello, config, command with deadline, estop, heartbeat, telemetry, ack/nack), the operator WebSocket (private/invite/queue access, per-role allowlists, owner limits clamp values, cooldowns, owner-only e-stop latch, timed turns, service tokens acting for a viewer), audit of every command, bot.* events through the outbox, the REST API and four robot profiles (adeept.adr036 ordinary and mecanum, cozmo, camera.onvif, sim.rover). Command ids are the operator's own idempotency keys, scoped to that operator; the robot always gets a server-minted id, and a duplicate arriving while the first is in flight is answered 'pending' and never sent twice (reserved before the first await; a test proves the race). docs/protocol.md is the wire format. npm test and test:pg 5/5.OpenVibers · 29 Sept 2026
d398445
-
OpenVibe.Bot: the repository (plan T15, ADR-043).OpenVibers · 29 Sept 2026
4766aa9