aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-common/src/meshbay_common/handshake.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-common/src/meshbay_common/handshake.py')
-rw-r--r--packages/meshbay-common/src/meshbay_common/handshake.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/packages/meshbay-common/src/meshbay_common/handshake.py b/packages/meshbay-common/src/meshbay_common/handshake.py
index f7d4911..188a8aa 100644
--- a/packages/meshbay-common/src/meshbay_common/handshake.py
+++ b/packages/meshbay-common/src/meshbay_common/handshake.py
@@ -66,11 +66,19 @@ from meshbay_common import MNP_VERSION
HANDSHAKE_PREFIX = b"meshbay:mnp:handshake:v1"
-# The oldest peer this build will talk to. MNP 1.0 sealed `index_sync`,
-# `index_delta` and the `handshake_ack` payload under the group key, which no
-# 0.x peer can open and which a 0.x peer's own messages do not carry — there is
-# nothing to be compatible with, which is what makes it a MAJOR bump.
-MNP_MIN_SUPPORTED = "1.0"
+# The oldest peer this build will talk to.
+#
+# 2.0 (2026-09-07): chat messages are sealed under a per-device subkey of the
+# group's chat epoch key, and the node refuses a plaintext one. A 1.x peer can
+# neither produce nor read that, so there is nothing to be compatible with —
+# the same reasoning that made 1.0 a MAJOR bump for the sealed index.
+#
+# Moving the floor with the version is the point: a 1.x client is refused here,
+# with `version_too_old` and a sentence saying so, instead of completing a
+# handshake and then discovering that every message it sends is rejected and
+# every message it receives is unreadable. A stated refusal is a bug report; a
+# chat that quietly does not work is a support case.
+MNP_MIN_SUPPORTED = "2.0"
ROLE_CLIENT = "client"
ROLE_NODE = "node"