aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-common/src/meshbay_common/protocol.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-common/src/meshbay_common/protocol.py')
-rw-r--r--packages/meshbay-common/src/meshbay_common/protocol.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/packages/meshbay-common/src/meshbay_common/protocol.py b/packages/meshbay-common/src/meshbay_common/protocol.py
index 1aadafe..a1c971f 100644
--- a/packages/meshbay-common/src/meshbay_common/protocol.py
+++ b/packages/meshbay-common/src/meshbay_common/protocol.py
@@ -11,8 +11,10 @@ Every message carries a "v" field for protocol version.
from dataclasses import dataclass, field
from typing import Any
-MNP_VERSION = "0.1"
-MHP_VERSION = "0.1"
+# The wire versions live in meshbay_common/__init__.py — one source, because a
+# second copy here said "0.1" while every message on the wire carried "0.2".
+# Nothing imported it, which is the only reason it was harmless.
+from meshbay_common import MNP_VERSION, MHP_VERSION # noqa: F401 (re-export)
# ── MNP message types ─────────────────────────────────────────────────────────
@@ -74,6 +76,12 @@ class MNP:
INVITE_CREATE = "invite_create" # operator → node: issue a pairing code
MEMBER_REVOKE = "member_revoke" # operator → node: stop serving the key
MEMBER_REVOKE_ACK = "member_revoke_ack"
+ MEMBER_UNPIN = "member_unpin" # operator → node: forget an identity
+ MEMBER_UNPIN_ACK = "member_unpin_ack"
+ # Rotation is the half of revocation that revocation cannot do: the node
+ # generates a fresh key itself, so no key material crosses the wire.
+ GEK_ROTATE = "gek_rotate" # operator → node: new group key
+ GEK_ROTATE_ACK = "gek_rotate_ack"
INVITE_RESULT = "invite_result" # node → operator: the code, once