From fd770dc6293be67298f582de5800f2ca6fe24a8b Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Sun, 16 Aug 2026 15:28:53 +0200 Subject: feat(common): MNP 0.2 — liveness, and chat history read the way it is written MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `get_messages` pages forward from the oldest message. That is the right shape for "what happened since I last looked" and the wrong one for opening a conversation, and the browser asked it for `since=0, limit=200` — so a group with more than two hundred messages showed its first two hundred and the exchange anyone came for was unreachable. Demonstrated on 300 messages: the newest was simply absent from the answer. `get_recent` and `get_before` page backwards, cursored on the row id rather than the timestamp. Nothing makes a `time.time()` float unique, and a cursor on a value two rows can share eventually skips a message or repeats it. PING/PONG covers liveness on an already-open channel: a DataChannel whose peer vanished without closing still reads as connected, and nothing noticed until a real request hung. It is not a discovery mechanism — opening a connection to ping costs a full ICE/DTLS handshake, measured at 0.6-7 s across two ISPs — so presence in the group list comes from the hub's registry instead. Both additions are backward compatible: an 0.1 peer sends no `before` and is answered with the newest page, which is what it wanted. Co-Authored-By: Claude Opus 5 --- packages/meshbay-common/src/meshbay_common/__init__.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'packages/meshbay-common/src/meshbay_common/__init__.py') diff --git a/packages/meshbay-common/src/meshbay_common/__init__.py b/packages/meshbay-common/src/meshbay_common/__init__.py index ef0f1f6..60a9dc7 100644 --- a/packages/meshbay-common/src/meshbay_common/__init__.py +++ b/packages/meshbay-common/src/meshbay_common/__init__.py @@ -1,5 +1,8 @@ """MeshBay common — shared crypto primitives and protocol types.""" -__version__ = "0.4.0" -MNP_VERSION = "0.1" +__version__ = "0.5.0" +# 0.2: added PING/PONG, and `before`/`has_more` on chat history. Both are +# additive — an 0.1 peer sends no `before` and gets the newest page, which is +# what it wanted — so this is a MINOR bump, not a MAJOR one. +MNP_VERSION = "0.2" MHP_VERSION = "0.1" -- cgit v1.2.3