From e4f61771131be635b9e81a19203a00707b4b19df Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Fri, 2 Oct 2026 10:20:09 +0200 Subject: feat(mnp): sharing a folder is decided on the node's machine only (MNP 6.0) root_add, root_update and group_attach leave MNP: adding a directory and switching writable/removable go through the loopback API (native dialog in the desktop app) or the CLI. The operator's Settings tab still lists the roots from any browser, read-only. The desktop app refuses to sign those ops; a loopback flag change now reaches open pages (publish_roots). Co-Authored-By: Claude Opus 5.5 --- packages/meshbay-node/tests/golden/dispatch.json | 5149 ++++++++------------ .../tests/test_admin_challenge_bounds.py | 45 +- packages/meshbay-node/tests/test_node_status.py | 58 +- .../tests/test_root_writable_policy.py | 38 +- .../tests/test_sharing_is_local_only.py | 109 + 5 files changed, 2133 insertions(+), 3266 deletions(-) create mode 100644 packages/meshbay-node/tests/test_sharing_is_local_only.py (limited to 'packages/meshbay-node/tests') diff --git a/packages/meshbay-node/tests/golden/dispatch.json b/packages/meshbay-node/tests/golden/dispatch.json index a7bb543..345b077 100644 --- a/packages/meshbay-node/tests/golden/dispatch.json +++ b/packages/meshbay-node/tests/golden/dispatch.json @@ -84,14 +84,6 @@ "_admin_exec_gek_rotate" ] }, - "group_attach": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_admin_exec_group_attach" - ] - }, "group_detach": { "audit": [], "log": [], @@ -160,14 +152,6 @@ ], "spawned": [] }, - "root_add": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_admin_exec_root_add" - ] - }, "root_eject": { "audit": [], "log": [], @@ -192,14 +176,6 @@ "_admin_exec_root_remove" ] }, - "root_update": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_admin_exec_root_update" - ] - }, "search_listed": { "audit": [], "log": [], @@ -2068,7 +2044,7 @@ "subject": "x", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -2391,7 +2367,7 @@ "subject": "gggggggggggggggggggggggggggggggg", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -2410,7 +2386,7 @@ "subject": "['x']", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -2429,7 +2405,7 @@ "subject": "7", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -2448,7 +2424,7 @@ "subject": "x", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -2718,7 +2694,7 @@ "messages": [], "req_id": 4242, "type": "chat_hist_resp", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -2732,7 +2708,7 @@ "messages": [], "req_id": 4242, "type": "chat_hist_resp", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -2746,7 +2722,7 @@ "messages": [], "req_id": 4242, "type": "chat_hist_resp", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -2760,7 +2736,7 @@ "messages": [], "req_id": 4242, "type": "chat_hist_resp", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -2774,7 +2750,7 @@ "messages": [], "req_id": 4242, "type": "chat_hist_resp", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -2788,7 +2764,7 @@ "messages": [], "req_id": 4242, "type": "chat_hist_resp", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -2802,7 +2778,7 @@ "messages": [], "req_id": 4242, "type": "chat_hist_resp", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -2816,7 +2792,7 @@ "messages": [], "req_id": 4242, "type": "chat_hist_resp", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -8535,7 +8511,7 @@ "subject": "gggggggggggggggggggggggggggggggg", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -8554,7 +8530,7 @@ "subject": "['x']", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -8573,7 +8549,7 @@ "subject": "7", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -8592,7 +8568,7 @@ "subject": "x", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -8757,7 +8733,7 @@ "sent": [], "spawned": [] }, - "group_attach | challenged | bare": { + "group_detach | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -8769,7 +8745,7 @@ ], "spawned": [] }, - "group_attach | challenged | lists": { + "group_detach | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -8781,7 +8757,7 @@ ], "spawned": [] }, - "group_attach | challenged | numbers": { + "group_detach | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -8793,7 +8769,7 @@ ], "spawned": [] }, - "group_attach | challenged | strings": { + "group_detach | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -8805,7 +8781,7 @@ ], "spawned": [] }, - "group_attach | fresh | bare": { + "group_detach | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -8817,7 +8793,7 @@ ], "spawned": [] }, - "group_attach | fresh | lists": { + "group_detach | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -8829,7 +8805,7 @@ ], "spawned": [] }, - "group_attach | fresh | numbers": { + "group_detach | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -8841,7 +8817,7 @@ ], "spawned": [] }, - "group_attach | fresh | strings": { + "group_detach | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -8853,19 +8829,19 @@ ], "spawned": [] }, - "group_attach | member | bare": { + "group_detach | member | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Missing name or shared_dir", + "detail": "Missing group name or id", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "group_attach | member | lists": { + "group_detach | member | lists": { "audit": [], "log": [], "sent": [ @@ -8877,7 +8853,7 @@ ], "spawned": [] }, - "group_attach | member | numbers": { + "group_detach | member | numbers": { "audit": [], "log": [], "sent": [ @@ -8889,7 +8865,7 @@ ], "spawned": [] }, - "group_attach | member | strings": { + "group_detach | member | strings": { "audit": [], "log": [], "sent": [ @@ -8901,19 +8877,19 @@ ], "spawned": [] }, - "group_attach | operator | bare": { + "group_detach | operator | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Missing name or shared_dir", + "detail": "Missing group name or id", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "group_attach | operator | lists": { + "group_detach | operator | lists": { "audit": [], "log": [], "sent": [ @@ -8921,18 +8897,18 @@ "group_id": "", "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", "nonce": "", - "op": "group_attach", + "op": "group_detach", "op_id": "", "req_id": 4242, - "subject": "{\"name\":\"['x']\",\"shared_dir\":\"['x']\",\"writable\":true}", + "subject": "['x']", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] }, - "group_attach | operator | numbers": { + "group_detach | operator | numbers": { "audit": [], "log": [], "sent": [ @@ -8940,18 +8916,18 @@ "group_id": "", "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", "nonce": "", - "op": "group_attach", + "op": "group_detach", "op_id": "", "req_id": 4242, - "subject": "{\"name\":\"7\",\"shared_dir\":\"7\",\"writable\":true}", + "subject": "7", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] }, - "group_attach | operator | strings": { + "group_detach | operator | strings": { "audit": [], "log": [], "sent": [ @@ -8959,18 +8935,18 @@ "group_id": "", "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", "nonce": "", - "op": "group_attach", + "op": "group_detach", "op_id": "", "req_id": 4242, - "subject": "{\"name\":\"x\",\"shared_dir\":\"x\",\"writable\":true}", + "subject": "x", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] }, - "group_attach_ack | challenged | bare": { + "group_detach_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -8982,7 +8958,7 @@ ], "spawned": [] }, - "group_attach_ack | challenged | lists": { + "group_detach_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -8994,7 +8970,7 @@ ], "spawned": [] }, - "group_attach_ack | challenged | numbers": { + "group_detach_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -9006,7 +8982,7 @@ ], "spawned": [] }, - "group_attach_ack | challenged | strings": { + "group_detach_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -9018,7 +8994,7 @@ ], "spawned": [] }, - "group_attach_ack | fresh | bare": { + "group_detach_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -9030,7 +9006,7 @@ ], "spawned": [] }, - "group_attach_ack | fresh | lists": { + "group_detach_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -9042,7 +9018,7 @@ ], "spawned": [] }, - "group_attach_ack | fresh | numbers": { + "group_detach_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -9054,7 +9030,7 @@ ], "spawned": [] }, - "group_attach_ack | fresh | strings": { + "group_detach_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -9066,7 +9042,7 @@ ], "spawned": [] }, - "group_attach_ack | member | bare": { + "group_detach_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9074,7 +9050,7 @@ "sent": [], "spawned": [] }, - "group_attach_ack | member | lists": { + "group_detach_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9082,7 +9058,7 @@ "sent": [], "spawned": [] }, - "group_attach_ack | member | numbers": { + "group_detach_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9090,7 +9066,7 @@ "sent": [], "spawned": [] }, - "group_attach_ack | member | strings": { + "group_detach_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9098,7 +9074,7 @@ "sent": [], "spawned": [] }, - "group_attach_ack | operator | bare": { + "group_detach_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9106,7 +9082,7 @@ "sent": [], "spawned": [] }, - "group_attach_ack | operator | lists": { + "group_detach_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9114,7 +9090,7 @@ "sent": [], "spawned": [] }, - "group_attach_ack | operator | numbers": { + "group_detach_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9122,7 +9098,7 @@ "sent": [], "spawned": [] }, - "group_attach_ack | operator | strings": { + "group_detach_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9130,7 +9106,7 @@ "sent": [], "spawned": [] }, - "group_detach | challenged | bare": { + "group_roster_req | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -9142,7 +9118,7 @@ ], "spawned": [] }, - "group_detach | challenged | lists": { + "group_roster_req | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -9154,7 +9130,7 @@ ], "spawned": [] }, - "group_detach | challenged | numbers": { + "group_roster_req | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -9166,7 +9142,7 @@ ], "spawned": [] }, - "group_detach | challenged | strings": { + "group_roster_req | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -9178,7 +9154,7 @@ ], "spawned": [] }, - "group_detach | fresh | bare": { + "group_roster_req | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -9190,7 +9166,7 @@ ], "spawned": [] }, - "group_detach | fresh | lists": { + "group_roster_req | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -9202,7 +9178,7 @@ ], "spawned": [] }, - "group_detach | fresh | numbers": { + "group_roster_req | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -9214,7 +9190,7 @@ ], "spawned": [] }, - "group_detach | fresh | strings": { + "group_roster_req | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -9226,124 +9202,71 @@ ], "spawned": [] }, - "group_detach | member | bare": { + "group_roster_req | member | bare": { "audit": [], "log": [], - "sent": [ - { - "detail": "Missing group name or id", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_group_roster_req" + ] }, - "group_detach | member | lists": { + "group_roster_req | member | lists": { "audit": [], "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_group_roster_req" + ] }, - "group_detach | member | numbers": { + "group_roster_req | member | numbers": { "audit": [], "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_group_roster_req" + ] }, - "group_detach | member | strings": { + "group_roster_req | member | strings": { "audit": [], "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_group_roster_req" + ] }, - "group_detach | operator | bare": { + "group_roster_req | operator | bare": { "audit": [], "log": [], - "sent": [ - { - "detail": "Missing group name or id", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_group_roster_req" + ] }, - "group_detach | operator | lists": { + "group_roster_req | operator | lists": { "audit": [], "log": [], - "sent": [ - { - "group_id": "", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "group_detach", - "op_id": "", - "req_id": 4242, - "subject": "['x']", - "ts": "", - "type": "admin_challenge", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_group_roster_req" + ] }, - "group_detach | operator | numbers": { + "group_roster_req | operator | numbers": { "audit": [], "log": [], - "sent": [ - { - "group_id": "", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "group_detach", - "op_id": "", - "req_id": 4242, - "subject": "7", - "ts": "", - "type": "admin_challenge", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_group_roster_req" + ] }, - "group_detach | operator | strings": { + "group_roster_req | operator | strings": { "audit": [], "log": [], - "sent": [ - { - "group_id": "", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "group_detach", - "op_id": "", - "req_id": 4242, - "subject": "x", - "ts": "", - "type": "admin_challenge", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_group_roster_req" + ] }, - "group_detach_ack | challenged | bare": { + "group_roster_resp | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -9355,7 +9278,7 @@ ], "spawned": [] }, - "group_detach_ack | challenged | lists": { + "group_roster_resp | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -9367,7 +9290,7 @@ ], "spawned": [] }, - "group_detach_ack | challenged | numbers": { + "group_roster_resp | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -9379,7 +9302,7 @@ ], "spawned": [] }, - "group_detach_ack | challenged | strings": { + "group_roster_resp | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -9391,7 +9314,7 @@ ], "spawned": [] }, - "group_detach_ack | fresh | bare": { + "group_roster_resp | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -9403,7 +9326,7 @@ ], "spawned": [] }, - "group_detach_ack | fresh | lists": { + "group_roster_resp | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -9415,7 +9338,7 @@ ], "spawned": [] }, - "group_detach_ack | fresh | numbers": { + "group_roster_resp | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -9427,7 +9350,7 @@ ], "spawned": [] }, - "group_detach_ack | fresh | strings": { + "group_roster_resp | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -9439,7 +9362,7 @@ ], "spawned": [] }, - "group_detach_ack | member | bare": { + "group_roster_resp | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9447,7 +9370,7 @@ "sent": [], "spawned": [] }, - "group_detach_ack | member | lists": { + "group_roster_resp | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9455,7 +9378,7 @@ "sent": [], "spawned": [] }, - "group_detach_ack | member | numbers": { + "group_roster_resp | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9463,7 +9386,7 @@ "sent": [], "spawned": [] }, - "group_detach_ack | member | strings": { + "group_roster_resp | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9471,7 +9394,7 @@ "sent": [], "spawned": [] }, - "group_detach_ack | operator | bare": { + "group_roster_resp | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9479,7 +9402,7 @@ "sent": [], "spawned": [] }, - "group_detach_ack | operator | lists": { + "group_roster_resp | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9487,7 +9410,7 @@ "sent": [], "spawned": [] }, - "group_detach_ack | operator | numbers": { + "group_roster_resp | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9495,7 +9418,7 @@ "sent": [], "spawned": [] }, - "group_detach_ack | operator | strings": { + "group_roster_resp | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9503,167 +9426,243 @@ "sent": [], "spawned": [] }, - "group_roster_req | challenged | bare": { + "handshake | challenged | bare": { "audit": [], - "log": [], + "log": [ + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], "sent": [ { - "detail": "Handshake required", + "code": "version_unreadable", + "detail": "Unreadable protocol version ''", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "group_roster_req | challenged | lists": { + "handshake | challenged | lists": { "audit": [], - "log": [], + "log": [ + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], "sent": [ { - "detail": "Handshake required", + "code": "version_unreadable", + "detail": "Unreadable protocol version ['x']", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "group_roster_req | challenged | numbers": { + "handshake | challenged | numbers": { "audit": [], - "log": [], + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], "sent": [ { - "detail": "Handshake required", + "detail": "Request failed", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "group_roster_req | challenged | strings": { + "handshake | challenged | strings": { "audit": [], - "log": [], + "log": [ + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], "sent": [ { - "detail": "Handshake required", + "code": "version_unreadable", + "detail": "Unreadable protocol version 'x'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "group_roster_req | fresh | bare": { + "handshake | fresh | bare": { "audit": [], - "log": [], + "log": [ + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], "sent": [ { - "detail": "Handshake required", + "code": "version_unreadable", + "detail": "Unreadable protocol version ''", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "group_roster_req | fresh | lists": { + "handshake | fresh | lists": { "audit": [], - "log": [], + "log": [ + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], "sent": [ { - "detail": "Handshake required", + "code": "version_unreadable", + "detail": "Unreadable protocol version ['x']", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "group_roster_req | fresh | numbers": { + "handshake | fresh | numbers": { "audit": [], - "log": [], + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], "sent": [ { - "detail": "Handshake required", + "detail": "Request failed", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "group_roster_req | fresh | strings": { + "handshake | fresh | strings": { "audit": [], - "log": [], + "log": [ + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], "sent": [ { - "detail": "Handshake required", + "code": "version_unreadable", + "detail": "Unreadable protocol version 'x'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "group_roster_req | member | bare": { + "handshake | member | bare": { "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_group_roster_req" - ] + "log": [ + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], + "sent": [ + { + "code": "version_unreadable", + "detail": "Unreadable protocol version ''", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "group_roster_req | member | lists": { + "handshake | member | lists": { "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_group_roster_req" - ] + "log": [ + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], + "sent": [ + { + "code": "version_unreadable", + "detail": "Unreadable protocol version ['x']", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "group_roster_req | member | numbers": { + "handshake | member | numbers": { "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_group_roster_req" - ] + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "group_roster_req | member | strings": { + "handshake | member | strings": { "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_group_roster_req" - ] + "log": [ + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], + "sent": [ + { + "code": "version_unreadable", + "detail": "Unreadable protocol version 'x'", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "group_roster_req | operator | bare": { + "handshake | operator | bare": { "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_group_roster_req" - ] + "log": [ + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], + "sent": [ + { + "code": "version_unreadable", + "detail": "Unreadable protocol version ''", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "group_roster_req | operator | lists": { + "handshake | operator | lists": { "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_group_roster_req" - ] + "log": [ + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], + "sent": [ + { + "code": "version_unreadable", + "detail": "Unreadable protocol version ['x']", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "group_roster_req | operator | numbers": { + "handshake | operator | numbers": { "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_group_roster_req" - ] + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "group_roster_req | operator | strings": { + "handshake | operator | strings": { "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_group_roster_req" - ] + "log": [ + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], + "sent": [ + { + "code": "version_unreadable", + "detail": "Unreadable protocol version 'x'", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "group_roster_resp | challenged | bare": { + "handshake_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -9675,7 +9674,7 @@ ], "spawned": [] }, - "group_roster_resp | challenged | lists": { + "handshake_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -9687,7 +9686,7 @@ ], "spawned": [] }, - "group_roster_resp | challenged | numbers": { + "handshake_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -9699,7 +9698,7 @@ ], "spawned": [] }, - "group_roster_resp | challenged | strings": { + "handshake_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -9711,7 +9710,7 @@ ], "spawned": [] }, - "group_roster_resp | fresh | bare": { + "handshake_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -9723,7 +9722,7 @@ ], "spawned": [] }, - "group_roster_resp | fresh | lists": { + "handshake_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -9735,7 +9734,7 @@ ], "spawned": [] }, - "group_roster_resp | fresh | numbers": { + "handshake_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -9747,7 +9746,7 @@ ], "spawned": [] }, - "group_roster_resp | fresh | strings": { + "handshake_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -9759,7 +9758,7 @@ ], "spawned": [] }, - "group_roster_resp | member | bare": { + "handshake_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9767,7 +9766,7 @@ "sent": [], "spawned": [] }, - "group_roster_resp | member | lists": { + "handshake_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9775,7 +9774,7 @@ "sent": [], "spawned": [] }, - "group_roster_resp | member | numbers": { + "handshake_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9783,7 +9782,7 @@ "sent": [], "spawned": [] }, - "group_roster_resp | member | strings": { + "handshake_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9791,7 +9790,7 @@ "sent": [], "spawned": [] }, - "group_roster_resp | operator | bare": { + "handshake_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9799,7 +9798,7 @@ "sent": [], "spawned": [] }, - "group_roster_resp | operator | lists": { + "handshake_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9807,7 +9806,7 @@ "sent": [], "spawned": [] }, - "group_roster_resp | operator | numbers": { + "handshake_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9815,7 +9814,7 @@ "sent": [], "spawned": [] }, - "group_roster_resp | operator | strings": { + "handshake_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9823,371 +9822,455 @@ "sent": [], "spawned": [] }, - "handshake | challenged | bare": { + "handshake_challenge | challenged | bare": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version ''", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | challenged | lists": { + "handshake_challenge | challenged | lists": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version ['x']", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | challenged | numbers": { + "handshake_challenge | challenged | numbers": { "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], + "log": [], "sent": [ { - "detail": "Request failed", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | challenged | strings": { + "handshake_challenge | challenged | strings": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version 'x'", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | fresh | bare": { + "handshake_challenge | fresh | bare": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version ''", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | fresh | lists": { + "handshake_challenge | fresh | lists": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version ['x']", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | fresh | numbers": { + "handshake_challenge | fresh | numbers": { "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], + "log": [], "sent": [ { - "detail": "Request failed", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | fresh | strings": { + "handshake_challenge | fresh | strings": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version 'x'", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | member | bare": { + "handshake_challenge | member | bare": { "audit": [], "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "handshake_challenge | member | lists": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "handshake_challenge | member | numbers": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "handshake_challenge | member | strings": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "handshake_challenge | operator | bare": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "handshake_challenge | operator | lists": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "handshake_challenge | operator | numbers": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "handshake_challenge | operator | strings": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], + "spawned": [] + }, + "handshake_response | challenged | bare": { + "audit": [], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version ''", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | member | lists": { + "handshake_response | challenged | lists": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version ['x']", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | member | numbers": { + "handshake_response | challenged | numbers": { "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], + "log": [], "sent": [ { - "detail": "Request failed", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | member | strings": { + "handshake_response | challenged | strings": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version 'x'", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | operator | bare": { + "handshake_response | fresh | bare": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version ''", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | operator | lists": { + "handshake_response | fresh | lists": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version ['x']", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | operator | numbers": { + "handshake_response | fresh | numbers": { "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], + "log": [], "sent": [ { - "detail": "Request failed", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | operator | strings": { + "handshake_response | fresh | strings": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version 'x'", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_ack | challenged | bare": { + "handshake_response | member | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_ack | challenged | lists": { + "handshake_response | member | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_ack | challenged | numbers": { + "handshake_response | member | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_ack | challenged | strings": { + "handshake_response | member | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_ack | fresh | bare": { + "handshake_response | operator | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_ack | fresh | lists": { + "handshake_response | operator | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_ack | fresh | numbers": { + "handshake_response | operator | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_ack | fresh | strings": { + "handshake_response | operator | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_ack | member | bare": { + "index_delta | challenged | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "handshake_ack | member | lists": { + "index_delta | challenged | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "handshake_ack | member | numbers": { + "index_delta | challenged | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "handshake_ack | member | strings": { + "index_delta | challenged | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "handshake_ack | operator | bare": { + "index_delta | fresh | bare": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "index_delta | fresh | lists": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "index_delta | fresh | numbers": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "index_delta | fresh | strings": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "index_delta | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10195,7 +10278,7 @@ "sent": [], "spawned": [] }, - "handshake_ack | operator | lists": { + "index_delta | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10203,7 +10286,7 @@ "sent": [], "spawned": [] }, - "handshake_ack | operator | numbers": { + "index_delta | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10211,7 +10294,7 @@ "sent": [], "spawned": [] }, - "handshake_ack | operator | strings": { + "index_delta | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10219,7 +10302,39 @@ "sent": [], "spawned": [] }, - "handshake_challenge | challenged | bare": { + "index_delta | operator | bare": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "index_delta | operator | lists": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "index_delta | operator | numbers": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "index_delta | operator | strings": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "index_progress | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -10231,7 +10346,7 @@ ], "spawned": [] }, - "handshake_challenge | challenged | lists": { + "index_progress | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -10243,7 +10358,7 @@ ], "spawned": [] }, - "handshake_challenge | challenged | numbers": { + "index_progress | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -10255,7 +10370,7 @@ ], "spawned": [] }, - "handshake_challenge | challenged | strings": { + "index_progress | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -10267,7 +10382,7 @@ ], "spawned": [] }, - "handshake_challenge | fresh | bare": { + "index_progress | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -10279,7 +10394,7 @@ ], "spawned": [] }, - "handshake_challenge | fresh | lists": { + "index_progress | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -10291,7 +10406,7 @@ ], "spawned": [] }, - "handshake_challenge | fresh | numbers": { + "index_progress | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -10303,7 +10418,7 @@ ], "spawned": [] }, - "handshake_challenge | fresh | strings": { + "index_progress | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -10315,7 +10430,7 @@ ], "spawned": [] }, - "handshake_challenge | member | bare": { + "index_progress | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10323,7 +10438,7 @@ "sent": [], "spawned": [] }, - "handshake_challenge | member | lists": { + "index_progress | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10331,7 +10446,7 @@ "sent": [], "spawned": [] }, - "handshake_challenge | member | numbers": { + "index_progress | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10339,7 +10454,7 @@ "sent": [], "spawned": [] }, - "handshake_challenge | member | strings": { + "index_progress | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10347,7 +10462,7 @@ "sent": [], "spawned": [] }, - "handshake_challenge | operator | bare": { + "index_progress | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10355,7 +10470,7 @@ "sent": [], "spawned": [] }, - "handshake_challenge | operator | lists": { + "index_progress | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10363,7 +10478,7 @@ "sent": [], "spawned": [] }, - "handshake_challenge | operator | numbers": { + "index_progress | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10371,7 +10486,7 @@ "sent": [], "spawned": [] }, - "handshake_challenge | operator | strings": { + "index_progress | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10379,199 +10494,215 @@ "sent": [], "spawned": [] }, - "handshake_response | challenged | bare": { + "index_sync | challenged | bare": { "audit": [], "log": [], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | challenged | lists": { + "index_sync | challenged | lists": { "audit": [], "log": [], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | challenged | numbers": { + "index_sync | challenged | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | challenged | strings": { + "index_sync | challenged | strings": { "audit": [], "log": [], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | fresh | bare": { + "index_sync | fresh | bare": { "audit": [], "log": [], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | fresh | lists": { + "index_sync | fresh | lists": { "audit": [], "log": [], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | fresh | numbers": { + "index_sync | fresh | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | fresh | strings": { + "index_sync | fresh | strings": { "audit": [], "log": [], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | member | bare": { + "index_sync | member | bare": { "audit": [], - "log": [], + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Request failed", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | member | lists": { + "index_sync | member | lists": { "audit": [], - "log": [], + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Request failed", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | member | numbers": { + "index_sync | member | numbers": { "audit": [], - "log": [], + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Request failed", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | member | strings": { + "index_sync | member | strings": { "audit": [], - "log": [], + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Request failed", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | operator | bare": { + "index_sync | operator | bare": { "audit": [], - "log": [], + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Request failed", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | operator | lists": { + "index_sync | operator | lists": { "audit": [], - "log": [], + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Request failed", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | operator | numbers": { + "index_sync | operator | numbers": { "audit": [], - "log": [], + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Request failed", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | operator | strings": { + "index_sync | operator | strings": { "audit": [], - "log": [], + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Request failed", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "index_delta | challenged | bare": { + "invite_cancel | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -10583,7 +10714,7 @@ ], "spawned": [] }, - "index_delta | challenged | lists": { + "invite_cancel | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -10595,7 +10726,7 @@ ], "spawned": [] }, - "index_delta | challenged | numbers": { + "invite_cancel | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -10607,7 +10738,7 @@ ], "spawned": [] }, - "index_delta | challenged | strings": { + "invite_cancel | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -10619,7 +10750,7 @@ ], "spawned": [] }, - "index_delta | fresh | bare": { + "invite_cancel | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -10631,7 +10762,7 @@ ], "spawned": [] }, - "index_delta | fresh | lists": { + "invite_cancel | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -10643,7 +10774,7 @@ ], "spawned": [] }, - "index_delta | fresh | numbers": { + "invite_cancel | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -10655,7 +10786,7 @@ ], "spawned": [] }, - "index_delta | fresh | strings": { + "invite_cancel | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -10667,143 +10798,103 @@ ], "spawned": [] }, - "index_delta | member | bare": { + "invite_cancel | member | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Not an invitation id", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "index_delta | member | lists": { + "invite_cancel | member | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Not an invitation id", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "index_delta | member | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "index_delta | member | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "index_delta | operator | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "index_delta | operator | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "index_delta | operator | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "index_delta | operator | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "index_progress | challenged | bare": { + "invite_cancel | member | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Not an invitation id", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "index_progress | challenged | lists": { + "invite_cancel | member | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Not an invitation id", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "index_progress | challenged | numbers": { + "invite_cancel | operator | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Not an invitation id", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "index_progress | challenged | strings": { + "invite_cancel | operator | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Not an invitation id", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "index_progress | fresh | bare": { + "invite_cancel | operator | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Not an invitation id", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "index_progress | fresh | lists": { + "invite_cancel | operator | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Not an invitation id", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "index_progress | fresh | numbers": { + "invite_create | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -10815,7 +10906,7 @@ ], "spawned": [] }, - "index_progress | fresh | strings": { + "invite_create | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -10827,71 +10918,7 @@ ], "spawned": [] }, - "index_progress | member | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "index_progress | member | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "index_progress | member | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "index_progress | member | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "index_progress | operator | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "index_progress | operator | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "index_progress | operator | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "index_progress | operator | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "index_sync | challenged | bare": { + "invite_create | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -10903,7 +10930,7 @@ ], "spawned": [] }, - "index_sync | challenged | lists": { + "invite_create | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -10915,7 +10942,7 @@ ], "spawned": [] }, - "index_sync | challenged | numbers": { + "invite_create | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -10927,7 +10954,7 @@ ], "spawned": [] }, - "index_sync | challenged | strings": { + "invite_create | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -10939,7 +10966,7 @@ ], "spawned": [] }, - "index_sync | fresh | bare": { + "invite_create | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -10951,7 +10978,7 @@ ], "spawned": [] }, - "index_sync | fresh | lists": { + "invite_create | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -10963,143 +10990,103 @@ ], "spawned": [] }, - "index_sync | fresh | numbers": { + "invite_create | member | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Roster not available", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "index_sync | fresh | strings": { + "invite_create | member | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "index_sync | member | bare": { - "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], - "sent": [ - { - "detail": "Request failed", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "index_sync | member | lists": { - "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], - "sent": [ - { - "detail": "Request failed", + "detail": "Roster not available", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "index_sync | member | numbers": { + "invite_create | member | numbers": { "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], + "log": [], "sent": [ { - "detail": "Request failed", + "detail": "Roster not available", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "index_sync | member | strings": { + "invite_create | member | strings": { "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], + "log": [], "sent": [ { - "detail": "Request failed", + "detail": "Roster not available", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "index_sync | operator | bare": { + "invite_create | operator | bare": { "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], + "log": [], "sent": [ { - "detail": "Request failed", + "detail": "Roster not available", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "index_sync | operator | lists": { + "invite_create | operator | lists": { "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], + "log": [], "sent": [ { - "detail": "Request failed", + "detail": "Roster not available", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "index_sync | operator | numbers": { + "invite_create | operator | numbers": { "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], + "log": [], "sent": [ { - "detail": "Request failed", + "detail": "Roster not available", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "index_sync | operator | strings": { + "invite_create | operator | strings": { "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], + "log": [], "sent": [ { - "detail": "Request failed", + "detail": "Roster not available", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "invite_cancel | challenged | bare": { + "invite_link_create | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -11111,7 +11098,7 @@ ], "spawned": [] }, - "invite_cancel | challenged | lists": { + "invite_link_create | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -11123,7 +11110,7 @@ ], "spawned": [] }, - "invite_cancel | challenged | numbers": { + "invite_link_create | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -11135,7 +11122,7 @@ ], "spawned": [] }, - "invite_cancel | challenged | strings": { + "invite_link_create | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -11147,7 +11134,7 @@ ], "spawned": [] }, - "invite_cancel | fresh | bare": { + "invite_link_create | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -11159,7 +11146,7 @@ ], "spawned": [] }, - "invite_cancel | fresh | lists": { + "invite_link_create | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -11171,7 +11158,7 @@ ], "spawned": [] }, - "invite_cancel | fresh | numbers": { + "invite_link_create | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -11183,7 +11170,7 @@ ], "spawned": [] }, - "invite_cancel | fresh | strings": { + "invite_link_create | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -11195,1178 +11182,110 @@ ], "spawned": [] }, - "invite_cancel | member | bare": { + "invite_link_create | member | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Not an invitation id", + "detail": "No operator paired \u2014 run `meshbay-node operator pair`", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "invite_cancel | member | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Not an invitation id", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_cancel | member | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Not an invitation id", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_cancel | member | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Not an invitation id", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_cancel | operator | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Not an invitation id", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_cancel | operator | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Not an invitation id", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_cancel | operator | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Not an invitation id", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_cancel | operator | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Not an invitation id", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_create | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_create | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_create | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_create | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_create | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_create | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_create | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_create | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_create | member | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Roster not available", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_create | member | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Roster not available", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_create | member | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Roster not available", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_create | member | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Roster not available", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_create | operator | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Roster not available", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_create | operator | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Roster not available", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_create | operator | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Roster not available", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_create | operator | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Roster not available", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_create | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_create | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_create | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_create | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_create | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_create | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_create | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_create | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_create | member | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "No operator paired \u2014 run `meshbay-node operator pair`", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_create | member | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Wrong group for this session", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_create | member | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Wrong group for this session", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_create | member | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Wrong group for this session", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_create | operator | bare": { - "audit": [], - "log": [], - "sent": [ - { - "group_id": "gggggggggggggggggggggggggggggggg", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "invite_link_create", - "op_id": "", - "req_id": 4242, - "subject": "link:gggggggggggggggggggggggggggggggg", - "ts": "", - "type": "admin_challenge", - "v": "5.0" - } - ], - "spawned": [] - }, - "invite_link_create | operator | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Wrong group for this session", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_create | operator | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Wrong group for this session", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_create | operator | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Wrong group for this session", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_result | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_result | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_result | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_result | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_result | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_result | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_result | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_result | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_link_result | member | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "invite_link_result | member | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "invite_link_result | member | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "invite_link_result | member | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "invite_link_result | operator | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "invite_link_result | operator | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "invite_link_result | operator | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "invite_link_result | operator | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "invite_result | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_result | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_result | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_result | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_result | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_result | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_result | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_result | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_result | member | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "invite_result | member | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "invite_result | member | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "invite_result | member | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "invite_result | operator | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "invite_result | operator | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "invite_result | operator | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "invite_result | operator | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "join_request | challenged | bare": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_join_request" - ] - }, - "join_request | challenged | lists": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_join_request" - ] - }, - "join_request | challenged | numbers": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_join_request" - ] - }, - "join_request | challenged | strings": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_join_request" - ] - }, - "join_request | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "join_request | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "join_request | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "join_request | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "join_request | member | bare": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_join_request" - ] - }, - "join_request | member | lists": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_join_request" - ] - }, - "join_request | member | numbers": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_join_request" - ] - }, - "join_request | member | strings": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_join_request" - ] - }, - "join_request | operator | bare": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_join_request" - ] - }, - "join_request | operator | lists": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_join_request" - ] - }, - "join_request | operator | numbers": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_join_request" - ] - }, - "join_request | operator | strings": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_join_request" - ] - }, - "join_result | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "join_result | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "join_result | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "join_result | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "join_result | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "join_result | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "join_result | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "join_result | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "join_result | member | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "join_result | member | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "join_result | member | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "join_result | member | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "join_result | operator | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "join_result | operator | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "join_result | operator | numbers": { + "invite_link_create | member | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Wrong group for this session", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "join_result | operator | strings": { + "invite_link_create | member | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Wrong group for this session", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "keypair_bundle_delete | challenged | bare": { + "invite_link_create | member | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Wrong group for this session", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "keypair_bundle_delete | challenged | lists": { + "invite_link_create | operator | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "group_id": "gggggggggggggggggggggggggggggggg", + "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", + "nonce": "", + "op": "invite_link_create", + "op_id": "", "req_id": 4242, - "type": "error" + "subject": "link:gggggggggggggggggggggggggggggggg", + "ts": "", + "type": "admin_challenge", + "v": "6.0" } ], "spawned": [] }, - "keypair_bundle_delete | challenged | numbers": { + "invite_link_create | operator | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Wrong group for this session", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "keypair_bundle_delete | challenged | strings": { + "invite_link_create | operator | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Wrong group for this session", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "keypair_bundle_delete | fresh | bare": { + "invite_link_create | operator | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Wrong group for this session", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "keypair_bundle_delete | fresh | lists": { + "invite_link_result | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -12378,7 +11297,7 @@ ], "spawned": [] }, - "keypair_bundle_delete | fresh | numbers": { + "invite_link_result | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -12390,7 +11309,7 @@ ], "spawned": [] }, - "keypair_bundle_delete | fresh | strings": { + "invite_link_result | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -12402,103 +11321,19 @@ ], "spawned": [] }, - "keypair_bundle_delete | member | bare": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_keypair_bundle_delete" - ] - }, - "keypair_bundle_delete | member | lists": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_keypair_bundle_delete" - ] - }, - "keypair_bundle_delete | member | numbers": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_keypair_bundle_delete" - ] - }, - "keypair_bundle_delete | member | strings": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_keypair_bundle_delete" - ] - }, - "keypair_bundle_delete | operator | bare": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_keypair_bundle_delete" - ] - }, - "keypair_bundle_delete | operator | lists": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_keypair_bundle_delete" - ] - }, - "keypair_bundle_delete | operator | numbers": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_keypair_bundle_delete" - ] - }, - "keypair_bundle_delete | operator | strings": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_keypair_bundle_delete" - ] - }, - "keypair_bundle_fetch | challenged | bare": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_keypair_bundle_fetch" - ] - }, - "keypair_bundle_fetch | challenged | lists": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_keypair_bundle_fetch" - ] - }, - "keypair_bundle_fetch | challenged | numbers": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_keypair_bundle_fetch" - ] - }, - "keypair_bundle_fetch | challenged | strings": { + "invite_link_result | challenged | strings": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_keypair_bundle_fetch" - ] + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "keypair_bundle_fetch | fresh | bare": { + "invite_link_result | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -12510,7 +11345,7 @@ ], "spawned": [] }, - "keypair_bundle_fetch | fresh | lists": { + "invite_link_result | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -12522,7 +11357,7 @@ ], "spawned": [] }, - "keypair_bundle_fetch | fresh | numbers": { + "invite_link_result | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -12534,7 +11369,7 @@ ], "spawned": [] }, - "keypair_bundle_fetch | fresh | strings": { + "invite_link_result | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -12546,7 +11381,7 @@ ], "spawned": [] }, - "keypair_bundle_fetch | member | bare": { + "invite_link_result | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -12554,7 +11389,7 @@ "sent": [], "spawned": [] }, - "keypair_bundle_fetch | member | lists": { + "invite_link_result | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -12562,7 +11397,7 @@ "sent": [], "spawned": [] }, - "keypair_bundle_fetch | member | numbers": { + "invite_link_result | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -12570,7 +11405,7 @@ "sent": [], "spawned": [] }, - "keypair_bundle_fetch | member | strings": { + "invite_link_result | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -12578,7 +11413,7 @@ "sent": [], "spawned": [] }, - "keypair_bundle_fetch | operator | bare": { + "invite_link_result | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -12586,7 +11421,7 @@ "sent": [], "spawned": [] }, - "keypair_bundle_fetch | operator | lists": { + "invite_link_result | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -12594,7 +11429,7 @@ "sent": [], "spawned": [] }, - "keypair_bundle_fetch | operator | numbers": { + "invite_link_result | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -12602,7 +11437,7 @@ "sent": [], "spawned": [] }, - "keypair_bundle_fetch | operator | strings": { + "invite_link_result | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -12610,7 +11445,7 @@ "sent": [], "spawned": [] }, - "keypair_bundle_resp | challenged | bare": { + "invite_result | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -12622,7 +11457,7 @@ ], "spawned": [] }, - "keypair_bundle_resp | challenged | lists": { + "invite_result | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -12634,7 +11469,7 @@ ], "spawned": [] }, - "keypair_bundle_resp | challenged | numbers": { + "invite_result | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -12646,7 +11481,7 @@ ], "spawned": [] }, - "keypair_bundle_resp | challenged | strings": { + "invite_result | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -12658,7 +11493,7 @@ ], "spawned": [] }, - "keypair_bundle_resp | fresh | bare": { + "invite_result | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -12670,7 +11505,7 @@ ], "spawned": [] }, - "keypair_bundle_resp | fresh | lists": { + "invite_result | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -12682,7 +11517,7 @@ ], "spawned": [] }, - "keypair_bundle_resp | fresh | numbers": { + "invite_result | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -12694,7 +11529,7 @@ ], "spawned": [] }, - "keypair_bundle_resp | fresh | strings": { + "invite_result | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -12706,7 +11541,7 @@ ], "spawned": [] }, - "keypair_bundle_resp | member | bare": { + "invite_result | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -12714,7 +11549,7 @@ "sent": [], "spawned": [] }, - "keypair_bundle_resp | member | lists": { + "invite_result | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -12722,7 +11557,7 @@ "sent": [], "spawned": [] }, - "keypair_bundle_resp | member | numbers": { + "invite_result | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -12730,7 +11565,7 @@ "sent": [], "spawned": [] }, - "keypair_bundle_resp | member | strings": { + "invite_result | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -12738,7 +11573,7 @@ "sent": [], "spawned": [] }, - "keypair_bundle_resp | operator | bare": { + "invite_result | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -12746,7 +11581,7 @@ "sent": [], "spawned": [] }, - "keypair_bundle_resp | operator | lists": { + "invite_result | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -12754,7 +11589,7 @@ "sent": [], "spawned": [] }, - "keypair_bundle_resp | operator | numbers": { + "invite_result | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -12762,7 +11597,7 @@ "sent": [], "spawned": [] }, - "keypair_bundle_resp | operator | strings": { + "invite_result | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -12770,55 +11605,39 @@ "sent": [], "spawned": [] }, - "keypair_bundle_store | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_store | challenged | lists": { + "join_request | challenged | bare": { "audit": [], "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_join_request" + ] }, - "keypair_bundle_store | challenged | numbers": { + "join_request | challenged | lists": { "audit": [], "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_join_request" + ] }, - "keypair_bundle_store | challenged | strings": { + "join_request | challenged | numbers": { "audit": [], "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_join_request" + ] }, - "keypair_bundle_store | fresh | bare": { + "join_request | challenged | strings": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_join_request" + ] + }, + "join_request | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -12830,7 +11649,7 @@ ], "spawned": [] }, - "keypair_bundle_store | fresh | lists": { + "join_request | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -12842,7 +11661,7 @@ ], "spawned": [] }, - "keypair_bundle_store | fresh | numbers": { + "join_request | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -12854,7 +11673,7 @@ ], "spawned": [] }, - "keypair_bundle_store | fresh | strings": { + "join_request | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -12866,71 +11685,71 @@ ], "spawned": [] }, - "keypair_bundle_store | member | bare": { + "join_request | member | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_keypair_bundle_store" + "_do_join_request" ] }, - "keypair_bundle_store | member | lists": { + "join_request | member | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_keypair_bundle_store" + "_do_join_request" ] }, - "keypair_bundle_store | member | numbers": { + "join_request | member | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_keypair_bundle_store" + "_do_join_request" ] }, - "keypair_bundle_store | member | strings": { + "join_request | member | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_keypair_bundle_store" + "_do_join_request" ] }, - "keypair_bundle_store | operator | bare": { + "join_request | operator | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_keypair_bundle_store" + "_do_join_request" ] }, - "keypair_bundle_store | operator | lists": { + "join_request | operator | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_keypair_bundle_store" + "_do_join_request" ] }, - "keypair_bundle_store | operator | numbers": { + "join_request | operator | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_keypair_bundle_store" + "_do_join_request" ] }, - "keypair_bundle_store | operator | strings": { + "join_request | operator | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_keypair_bundle_store" + "_do_join_request" ] }, - "link_preview_req | challenged | bare": { + "join_result | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -12942,7 +11761,7 @@ ], "spawned": [] }, - "link_preview_req | challenged | lists": { + "join_result | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -12954,7 +11773,7 @@ ], "spawned": [] }, - "link_preview_req | challenged | numbers": { + "join_result | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -12966,7 +11785,7 @@ ], "spawned": [] }, - "link_preview_req | challenged | strings": { + "join_result | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -12978,7 +11797,7 @@ ], "spawned": [] }, - "link_preview_req | fresh | bare": { + "join_result | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -12990,7 +11809,7 @@ ], "spawned": [] }, - "link_preview_req | fresh | lists": { + "join_result | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -13002,7 +11821,7 @@ ], "spawned": [] }, - "link_preview_req | fresh | numbers": { + "join_result | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -13014,7 +11833,7 @@ ], "spawned": [] }, - "link_preview_req | fresh | strings": { + "join_result | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -13026,71 +11845,71 @@ ], "spawned": [] }, - "link_preview_req | member | bare": { + "join_result | member | bare": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_link_preview_request" - ] + "spawned": [] }, - "link_preview_req | member | lists": { + "join_result | member | lists": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_link_preview_request" - ] + "spawned": [] }, - "link_preview_req | member | numbers": { + "join_result | member | numbers": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_link_preview_request" - ] + "spawned": [] }, - "link_preview_req | member | strings": { + "join_result | member | strings": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_link_preview_request" - ] + "spawned": [] }, - "link_preview_req | operator | bare": { + "join_result | operator | bare": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_link_preview_request" - ] + "spawned": [] }, - "link_preview_req | operator | lists": { + "join_result | operator | lists": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_link_preview_request" - ] + "spawned": [] }, - "link_preview_req | operator | numbers": { + "join_result | operator | numbers": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_link_preview_request" - ] + "spawned": [] }, - "link_preview_req | operator | strings": { + "join_result | operator | strings": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_link_preview_request" - ] + "spawned": [] }, - "link_preview_resp | challenged | bare": { + "keypair_bundle_delete | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -13102,7 +11921,7 @@ ], "spawned": [] }, - "link_preview_resp | challenged | lists": { + "keypair_bundle_delete | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -13114,7 +11933,7 @@ ], "spawned": [] }, - "link_preview_resp | challenged | numbers": { + "keypair_bundle_delete | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -13126,7 +11945,7 @@ ], "spawned": [] }, - "link_preview_resp | challenged | strings": { + "keypair_bundle_delete | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -13138,7 +11957,7 @@ ], "spawned": [] }, - "link_preview_resp | fresh | bare": { + "keypair_bundle_delete | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -13150,7 +11969,7 @@ ], "spawned": [] }, - "link_preview_resp | fresh | lists": { + "keypair_bundle_delete | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -13162,7 +11981,7 @@ ], "spawned": [] }, - "link_preview_resp | fresh | numbers": { + "keypair_bundle_delete | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -13174,7 +11993,7 @@ ], "spawned": [] }, - "link_preview_resp | fresh | strings": { + "keypair_bundle_delete | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -13186,119 +12005,103 @@ ], "spawned": [] }, - "link_preview_resp | member | bare": { + "keypair_bundle_delete | member | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_delete" + ] }, - "link_preview_resp | member | lists": { + "keypair_bundle_delete | member | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_delete" + ] }, - "link_preview_resp | member | numbers": { + "keypair_bundle_delete | member | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_delete" + ] }, - "link_preview_resp | member | strings": { + "keypair_bundle_delete | member | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_delete" + ] }, - "link_preview_resp | operator | bare": { + "keypair_bundle_delete | operator | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_delete" + ] }, - "link_preview_resp | operator | lists": { + "keypair_bundle_delete | operator | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_delete" + ] }, - "link_preview_resp | operator | numbers": { + "keypair_bundle_delete | operator | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_delete" + ] }, - "link_preview_resp | operator | strings": { + "keypair_bundle_delete | operator | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_delete" + ] }, - "media_meta_req | challenged | bare": { + "keypair_bundle_fetch | challenged | bare": { "audit": [], "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_keypair_bundle_fetch" + ] }, - "media_meta_req | challenged | lists": { + "keypair_bundle_fetch | challenged | lists": { "audit": [], "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_keypair_bundle_fetch" + ] }, - "media_meta_req | challenged | numbers": { + "keypair_bundle_fetch | challenged | numbers": { "audit": [], "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_keypair_bundle_fetch" + ] }, - "media_meta_req | challenged | strings": { + "keypair_bundle_fetch | challenged | strings": { "audit": [], "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_keypair_bundle_fetch" + ] }, - "media_meta_req | fresh | bare": { + "keypair_bundle_fetch | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -13310,7 +12113,7 @@ ], "spawned": [] }, - "media_meta_req | fresh | lists": { + "keypair_bundle_fetch | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -13322,7 +12125,7 @@ ], "spawned": [] }, - "media_meta_req | fresh | numbers": { + "keypair_bundle_fetch | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -13334,7 +12137,7 @@ ], "spawned": [] }, - "media_meta_req | fresh | strings": { + "keypair_bundle_fetch | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -13346,71 +12149,71 @@ ], "spawned": [] }, - "media_meta_req | member | bare": { + "keypair_bundle_fetch | member | bare": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_media_meta_request" - ] + "spawned": [] }, - "media_meta_req | member | lists": { + "keypair_bundle_fetch | member | lists": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_media_meta_request" - ] + "spawned": [] }, - "media_meta_req | member | numbers": { + "keypair_bundle_fetch | member | numbers": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_media_meta_request" - ] + "spawned": [] }, - "media_meta_req | member | strings": { + "keypair_bundle_fetch | member | strings": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_media_meta_request" - ] + "spawned": [] }, - "media_meta_req | operator | bare": { + "keypair_bundle_fetch | operator | bare": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_media_meta_request" - ] + "spawned": [] }, - "media_meta_req | operator | lists": { + "keypair_bundle_fetch | operator | lists": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_media_meta_request" - ] + "spawned": [] }, - "media_meta_req | operator | numbers": { + "keypair_bundle_fetch | operator | numbers": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_media_meta_request" - ] + "spawned": [] }, - "media_meta_req | operator | strings": { + "keypair_bundle_fetch | operator | strings": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_media_meta_request" - ] + "spawned": [] }, - "media_meta_resp | challenged | bare": { + "keypair_bundle_resp | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -13422,7 +12225,7 @@ ], "spawned": [] }, - "media_meta_resp | challenged | lists": { + "keypair_bundle_resp | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -13434,7 +12237,7 @@ ], "spawned": [] }, - "media_meta_resp | challenged | numbers": { + "keypair_bundle_resp | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -13446,7 +12249,7 @@ ], "spawned": [] }, - "media_meta_resp | challenged | strings": { + "keypair_bundle_resp | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -13458,7 +12261,7 @@ ], "spawned": [] }, - "media_meta_resp | fresh | bare": { + "keypair_bundle_resp | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -13470,7 +12273,7 @@ ], "spawned": [] }, - "media_meta_resp | fresh | lists": { + "keypair_bundle_resp | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -13482,7 +12285,7 @@ ], "spawned": [] }, - "media_meta_resp | fresh | numbers": { + "keypair_bundle_resp | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -13494,7 +12297,7 @@ ], "spawned": [] }, - "media_meta_resp | fresh | strings": { + "keypair_bundle_resp | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -13506,7 +12309,7 @@ ], "spawned": [] }, - "media_meta_resp | member | bare": { + "keypair_bundle_resp | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -13514,7 +12317,7 @@ "sent": [], "spawned": [] }, - "media_meta_resp | member | lists": { + "keypair_bundle_resp | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -13522,7 +12325,7 @@ "sent": [], "spawned": [] }, - "media_meta_resp | member | numbers": { + "keypair_bundle_resp | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -13530,7 +12333,7 @@ "sent": [], "spawned": [] }, - "media_meta_resp | member | strings": { + "keypair_bundle_resp | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -13538,7 +12341,7 @@ "sent": [], "spawned": [] }, - "media_meta_resp | operator | bare": { + "keypair_bundle_resp | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -13546,7 +12349,7 @@ "sent": [], "spawned": [] }, - "media_meta_resp | operator | lists": { + "keypair_bundle_resp | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -13554,7 +12357,7 @@ "sent": [], "spawned": [] }, - "media_meta_resp | operator | numbers": { + "keypair_bundle_resp | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -13562,7 +12365,7 @@ "sent": [], "spawned": [] }, - "media_meta_resp | operator | strings": { + "keypair_bundle_resp | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -13570,7 +12373,7 @@ "sent": [], "spawned": [] }, - "member_revoke | challenged | bare": { + "keypair_bundle_store | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -13582,7 +12385,7 @@ ], "spawned": [] }, - "member_revoke | challenged | lists": { + "keypair_bundle_store | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -13594,7 +12397,7 @@ ], "spawned": [] }, - "member_revoke | challenged | numbers": { + "keypair_bundle_store | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -13606,7 +12409,7 @@ ], "spawned": [] }, - "member_revoke | challenged | strings": { + "keypair_bundle_store | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -13618,7 +12421,7 @@ ], "spawned": [] }, - "member_revoke | fresh | bare": { + "keypair_bundle_store | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -13630,7 +12433,7 @@ ], "spawned": [] }, - "member_revoke | fresh | lists": { + "keypair_bundle_store | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -13642,7 +12445,7 @@ ], "spawned": [] }, - "member_revoke | fresh | numbers": { + "keypair_bundle_store | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -13654,7 +12457,7 @@ ], "spawned": [] }, - "member_revoke | fresh | strings": { + "keypair_bundle_store | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -13666,124 +12469,231 @@ ], "spawned": [] }, - "member_revoke | member | bare": { + "keypair_bundle_store | member | bare": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_keypair_bundle_store" + ] + }, + "keypair_bundle_store | member | lists": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_keypair_bundle_store" + ] + }, + "keypair_bundle_store | member | numbers": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_keypair_bundle_store" + ] + }, + "keypair_bundle_store | member | strings": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_keypair_bundle_store" + ] + }, + "keypair_bundle_store | operator | bare": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_keypair_bundle_store" + ] + }, + "keypair_bundle_store | operator | lists": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_keypair_bundle_store" + ] + }, + "keypair_bundle_store | operator | numbers": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_keypair_bundle_store" + ] + }, + "keypair_bundle_store | operator | strings": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_keypair_bundle_store" + ] + }, + "link_preview_req | challenged | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Missing user_id", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "member_revoke | member | lists": { + "link_preview_req | challenged | lists": { "audit": [], "log": [], "sent": [ { - "detail": "No authorized key for this", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "member_revoke | member | numbers": { + "link_preview_req | challenged | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "No authorized key for this", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "member_revoke | member | strings": { + "link_preview_req | challenged | strings": { "audit": [], "log": [], "sent": [ { - "detail": "No authorized key for this", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "member_revoke | operator | bare": { + "link_preview_req | fresh | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Missing user_id", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "member_revoke | operator | lists": { + "link_preview_req | fresh | lists": { "audit": [], "log": [], "sent": [ { - "group_id": "gggggggggggggggggggggggggggggggg", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "member_revoke", - "op_id": "", + "detail": "Handshake required", "req_id": 4242, - "subject": "['x']", - "ts": "", - "type": "admin_challenge", - "v": "5.0" + "type": "error" } ], "spawned": [] }, - "member_revoke | operator | numbers": { + "link_preview_req | fresh | numbers": { "audit": [], "log": [], "sent": [ { - "group_id": "gggggggggggggggggggggggggggggggg", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "member_revoke", - "op_id": "", + "detail": "Handshake required", "req_id": 4242, - "subject": "7", - "ts": "", - "type": "admin_challenge", - "v": "5.0" + "type": "error" } ], "spawned": [] }, - "member_revoke | operator | strings": { + "link_preview_req | fresh | strings": { "audit": [], "log": [], "sent": [ { - "group_id": "gggggggggggggggggggggggggggggggg", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "member_revoke", - "op_id": "", + "detail": "Handshake required", "req_id": 4242, - "subject": "x", - "ts": "", - "type": "admin_challenge", - "v": "5.0" + "type": "error" } ], "spawned": [] }, - "member_revoke_ack | challenged | bare": { + "link_preview_req | member | bare": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_link_preview_request" + ] + }, + "link_preview_req | member | lists": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_link_preview_request" + ] + }, + "link_preview_req | member | numbers": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_link_preview_request" + ] + }, + "link_preview_req | member | strings": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_link_preview_request" + ] + }, + "link_preview_req | operator | bare": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_link_preview_request" + ] + }, + "link_preview_req | operator | lists": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_link_preview_request" + ] + }, + "link_preview_req | operator | numbers": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_link_preview_request" + ] + }, + "link_preview_req | operator | strings": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_link_preview_request" + ] + }, + "link_preview_resp | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -13795,7 +12705,7 @@ ], "spawned": [] }, - "member_revoke_ack | challenged | lists": { + "link_preview_resp | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -13807,7 +12717,7 @@ ], "spawned": [] }, - "member_revoke_ack | challenged | numbers": { + "link_preview_resp | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -13819,7 +12729,7 @@ ], "spawned": [] }, - "member_revoke_ack | challenged | strings": { + "link_preview_resp | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -13831,7 +12741,7 @@ ], "spawned": [] }, - "member_revoke_ack | fresh | bare": { + "link_preview_resp | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -13843,7 +12753,7 @@ ], "spawned": [] }, - "member_revoke_ack | fresh | lists": { + "link_preview_resp | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -13855,7 +12765,7 @@ ], "spawned": [] }, - "member_revoke_ack | fresh | numbers": { + "link_preview_resp | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -13867,7 +12777,7 @@ ], "spawned": [] }, - "member_revoke_ack | fresh | strings": { + "link_preview_resp | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -13879,7 +12789,7 @@ ], "spawned": [] }, - "member_revoke_ack | member | bare": { + "link_preview_resp | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -13887,7 +12797,7 @@ "sent": [], "spawned": [] }, - "member_revoke_ack | member | lists": { + "link_preview_resp | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -13895,7 +12805,7 @@ "sent": [], "spawned": [] }, - "member_revoke_ack | member | numbers": { + "link_preview_resp | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -13903,7 +12813,7 @@ "sent": [], "spawned": [] }, - "member_revoke_ack | member | strings": { + "link_preview_resp | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -13911,7 +12821,7 @@ "sent": [], "spawned": [] }, - "member_revoke_ack | operator | bare": { + "link_preview_resp | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -13919,7 +12829,7 @@ "sent": [], "spawned": [] }, - "member_revoke_ack | operator | lists": { + "link_preview_resp | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -13927,7 +12837,7 @@ "sent": [], "spawned": [] }, - "member_revoke_ack | operator | numbers": { + "link_preview_resp | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -13935,7 +12845,7 @@ "sent": [], "spawned": [] }, - "member_revoke_ack | operator | strings": { + "link_preview_resp | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -13943,7 +12853,7 @@ "sent": [], "spawned": [] }, - "member_unpin | challenged | bare": { + "media_meta_req | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -13955,7 +12865,7 @@ ], "spawned": [] }, - "member_unpin | challenged | lists": { + "media_meta_req | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -13967,7 +12877,7 @@ ], "spawned": [] }, - "member_unpin | challenged | numbers": { + "media_meta_req | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -13979,7 +12889,7 @@ ], "spawned": [] }, - "member_unpin | challenged | strings": { + "media_meta_req | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -13991,7 +12901,7 @@ ], "spawned": [] }, - "member_unpin | fresh | bare": { + "media_meta_req | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -14003,7 +12913,7 @@ ], "spawned": [] }, - "member_unpin | fresh | lists": { + "media_meta_req | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -14015,7 +12925,7 @@ ], "spawned": [] }, - "member_unpin | fresh | numbers": { + "media_meta_req | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -14027,7 +12937,7 @@ ], "spawned": [] }, - "member_unpin | fresh | strings": { + "media_meta_req | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -14039,124 +12949,71 @@ ], "spawned": [] }, - "member_unpin | member | bare": { + "media_meta_req | member | bare": { "audit": [], "log": [], - "sent": [ - { - "detail": "Missing user_id", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_media_meta_request" + ] }, - "member_unpin | member | lists": { + "media_meta_req | member | lists": { "audit": [], "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_media_meta_request" + ] }, - "member_unpin | member | numbers": { + "media_meta_req | member | numbers": { "audit": [], "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_media_meta_request" + ] }, - "member_unpin | member | strings": { + "media_meta_req | member | strings": { "audit": [], "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_media_meta_request" + ] }, - "member_unpin | operator | bare": { + "media_meta_req | operator | bare": { "audit": [], "log": [], - "sent": [ - { - "detail": "Missing user_id", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_media_meta_request" + ] }, - "member_unpin | operator | lists": { + "media_meta_req | operator | lists": { "audit": [], "log": [], - "sent": [ - { - "group_id": "gggggggggggggggggggggggggggggggg", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "member_unpin", - "op_id": "", - "req_id": 4242, - "subject": "['x']", - "ts": "", - "type": "admin_challenge", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_media_meta_request" + ] }, - "member_unpin | operator | numbers": { + "media_meta_req | operator | numbers": { "audit": [], "log": [], - "sent": [ - { - "group_id": "gggggggggggggggggggggggggggggggg", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "member_unpin", - "op_id": "", - "req_id": 4242, - "subject": "7", - "ts": "", - "type": "admin_challenge", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_media_meta_request" + ] }, - "member_unpin | operator | strings": { + "media_meta_req | operator | strings": { "audit": [], "log": [], - "sent": [ - { - "group_id": "gggggggggggggggggggggggggggggggg", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "member_unpin", - "op_id": "", - "req_id": 4242, - "subject": "x", - "ts": "", - "type": "admin_challenge", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_media_meta_request" + ] }, - "member_unpin_ack | challenged | bare": { + "media_meta_resp | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -14168,7 +13025,7 @@ ], "spawned": [] }, - "member_unpin_ack | challenged | lists": { + "media_meta_resp | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -14180,7 +13037,7 @@ ], "spawned": [] }, - "member_unpin_ack | challenged | numbers": { + "media_meta_resp | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -14192,7 +13049,7 @@ ], "spawned": [] }, - "member_unpin_ack | challenged | strings": { + "media_meta_resp | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -14204,7 +13061,7 @@ ], "spawned": [] }, - "member_unpin_ack | fresh | bare": { + "media_meta_resp | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -14216,7 +13073,7 @@ ], "spawned": [] }, - "member_unpin_ack | fresh | lists": { + "media_meta_resp | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -14228,7 +13085,7 @@ ], "spawned": [] }, - "member_unpin_ack | fresh | numbers": { + "media_meta_resp | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -14240,7 +13097,7 @@ ], "spawned": [] }, - "member_unpin_ack | fresh | strings": { + "media_meta_resp | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -14252,7 +13109,7 @@ ], "spawned": [] }, - "member_unpin_ack | member | bare": { + "media_meta_resp | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14260,7 +13117,7 @@ "sent": [], "spawned": [] }, - "member_unpin_ack | member | lists": { + "media_meta_resp | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14268,7 +13125,7 @@ "sent": [], "spawned": [] }, - "member_unpin_ack | member | numbers": { + "media_meta_resp | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14276,7 +13133,7 @@ "sent": [], "spawned": [] }, - "member_unpin_ack | member | strings": { + "media_meta_resp | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14284,7 +13141,7 @@ "sent": [], "spawned": [] }, - "member_unpin_ack | operator | bare": { + "media_meta_resp | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14292,7 +13149,7 @@ "sent": [], "spawned": [] }, - "member_unpin_ack | operator | lists": { + "media_meta_resp | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14300,7 +13157,7 @@ "sent": [], "spawned": [] }, - "member_unpin_ack | operator | numbers": { + "media_meta_resp | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14308,7 +13165,7 @@ "sent": [], "spawned": [] }, - "member_unpin_ack | operator | strings": { + "media_meta_resp | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14316,7 +13173,7 @@ "sent": [], "spawned": [] }, - "music_meta_req | challenged | bare": { + "member_revoke | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -14328,7 +13185,7 @@ ], "spawned": [] }, - "music_meta_req | challenged | lists": { + "member_revoke | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -14340,7 +13197,7 @@ ], "spawned": [] }, - "music_meta_req | challenged | numbers": { + "member_revoke | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -14352,7 +13209,7 @@ ], "spawned": [] }, - "music_meta_req | challenged | strings": { + "member_revoke | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -14364,7 +13221,7 @@ ], "spawned": [] }, - "music_meta_req | fresh | bare": { + "member_revoke | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -14376,7 +13233,7 @@ ], "spawned": [] }, - "music_meta_req | fresh | lists": { + "member_revoke | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -14388,7 +13245,7 @@ ], "spawned": [] }, - "music_meta_req | fresh | numbers": { + "member_revoke | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -14400,7 +13257,7 @@ ], "spawned": [] }, - "music_meta_req | fresh | strings": { + "member_revoke | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -14412,71 +13269,124 @@ ], "spawned": [] }, - "music_meta_req | member | bare": { + "member_revoke | member | bare": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_music_meta_request" - ] + "sent": [ + { + "detail": "Missing user_id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "music_meta_req | member | lists": { + "member_revoke | member | lists": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_music_meta_request" - ] + "sent": [ + { + "detail": "No authorized key for this", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "music_meta_req | member | numbers": { + "member_revoke | member | numbers": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_music_meta_request" - ] + "sent": [ + { + "detail": "No authorized key for this", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "music_meta_req | member | strings": { + "member_revoke | member | strings": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_music_meta_request" - ] + "sent": [ + { + "detail": "No authorized key for this", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "music_meta_req | operator | bare": { + "member_revoke | operator | bare": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_music_meta_request" - ] + "sent": [ + { + "detail": "Missing user_id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "music_meta_req | operator | lists": { + "member_revoke | operator | lists": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_music_meta_request" - ] + "sent": [ + { + "group_id": "gggggggggggggggggggggggggggggggg", + "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", + "nonce": "", + "op": "member_revoke", + "op_id": "", + "req_id": 4242, + "subject": "['x']", + "ts": "", + "type": "admin_challenge", + "v": "6.0" + } + ], + "spawned": [] }, - "music_meta_req | operator | numbers": { + "member_revoke | operator | numbers": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_music_meta_request" - ] + "sent": [ + { + "group_id": "gggggggggggggggggggggggggggggggg", + "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", + "nonce": "", + "op": "member_revoke", + "op_id": "", + "req_id": 4242, + "subject": "7", + "ts": "", + "type": "admin_challenge", + "v": "6.0" + } + ], + "spawned": [] }, - "music_meta_req | operator | strings": { + "member_revoke | operator | strings": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_music_meta_request" - ] + "sent": [ + { + "group_id": "gggggggggggggggggggggggggggggggg", + "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", + "nonce": "", + "op": "member_revoke", + "op_id": "", + "req_id": 4242, + "subject": "x", + "ts": "", + "type": "admin_challenge", + "v": "6.0" + } + ], + "spawned": [] }, - "music_meta_resp | challenged | bare": { + "member_revoke_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -14488,7 +13398,7 @@ ], "spawned": [] }, - "music_meta_resp | challenged | lists": { + "member_revoke_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -14500,7 +13410,7 @@ ], "spawned": [] }, - "music_meta_resp | challenged | numbers": { + "member_revoke_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -14512,7 +13422,7 @@ ], "spawned": [] }, - "music_meta_resp | challenged | strings": { + "member_revoke_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -14524,7 +13434,7 @@ ], "spawned": [] }, - "music_meta_resp | fresh | bare": { + "member_revoke_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -14536,7 +13446,7 @@ ], "spawned": [] }, - "music_meta_resp | fresh | lists": { + "member_revoke_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -14548,7 +13458,7 @@ ], "spawned": [] }, - "music_meta_resp | fresh | numbers": { + "member_revoke_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -14560,7 +13470,7 @@ ], "spawned": [] }, - "music_meta_resp | fresh | strings": { + "member_revoke_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -14572,7 +13482,7 @@ ], "spawned": [] }, - "music_meta_resp | member | bare": { + "member_revoke_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14580,7 +13490,7 @@ "sent": [], "spawned": [] }, - "music_meta_resp | member | lists": { + "member_revoke_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14588,7 +13498,7 @@ "sent": [], "spawned": [] }, - "music_meta_resp | member | numbers": { + "member_revoke_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14596,7 +13506,7 @@ "sent": [], "spawned": [] }, - "music_meta_resp | member | strings": { + "member_revoke_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14604,7 +13514,7 @@ "sent": [], "spawned": [] }, - "music_meta_resp | operator | bare": { + "member_revoke_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14612,7 +13522,7 @@ "sent": [], "spawned": [] }, - "music_meta_resp | operator | lists": { + "member_revoke_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14620,7 +13530,7 @@ "sent": [], "spawned": [] }, - "music_meta_resp | operator | numbers": { + "member_revoke_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14628,7 +13538,7 @@ "sent": [], "spawned": [] }, - "music_meta_resp | operator | strings": { + "member_revoke_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14636,7 +13546,7 @@ "sent": [], "spawned": [] }, - "musicbrainz_enabled | challenged | bare": { + "member_unpin | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -14648,7 +13558,7 @@ ], "spawned": [] }, - "musicbrainz_enabled | challenged | lists": { + "member_unpin | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -14660,7 +13570,7 @@ ], "spawned": [] }, - "musicbrainz_enabled | challenged | numbers": { + "member_unpin | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -14672,7 +13582,7 @@ ], "spawned": [] }, - "musicbrainz_enabled | challenged | strings": { + "member_unpin | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -14684,7 +13594,7 @@ ], "spawned": [] }, - "musicbrainz_enabled | fresh | bare": { + "member_unpin | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -14696,7 +13606,7 @@ ], "spawned": [] }, - "musicbrainz_enabled | fresh | lists": { + "member_unpin | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -14708,7 +13618,7 @@ ], "spawned": [] }, - "musicbrainz_enabled | fresh | numbers": { + "member_unpin | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -14720,7 +13630,7 @@ ], "spawned": [] }, - "musicbrainz_enabled | fresh | strings": { + "member_unpin | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -14732,103 +13642,124 @@ ], "spawned": [] }, - "musicbrainz_enabled | member | bare": { + "member_unpin | member | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Missing or invalid 'enabled'", + "detail": "Missing user_id", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "musicbrainz_enabled | member | lists": { + "member_unpin | member | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Missing or invalid 'enabled'", + "detail": "No authorized key for this", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "musicbrainz_enabled | member | numbers": { + "member_unpin | member | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Missing or invalid 'enabled'", + "detail": "No authorized key for this", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "musicbrainz_enabled | member | strings": { + "member_unpin | member | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Missing or invalid 'enabled'", + "detail": "No authorized key for this", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "musicbrainz_enabled | operator | bare": { + "member_unpin | operator | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Missing or invalid 'enabled'", + "detail": "Missing user_id", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "musicbrainz_enabled | operator | lists": { + "member_unpin | operator | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Missing or invalid 'enabled'", + "group_id": "gggggggggggggggggggggggggggggggg", + "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", + "nonce": "", + "op": "member_unpin", + "op_id": "", "req_id": 4242, - "type": "error" + "subject": "['x']", + "ts": "", + "type": "admin_challenge", + "v": "6.0" } ], "spawned": [] }, - "musicbrainz_enabled | operator | numbers": { + "member_unpin | operator | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Missing or invalid 'enabled'", + "group_id": "gggggggggggggggggggggggggggggggg", + "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", + "nonce": "", + "op": "member_unpin", + "op_id": "", "req_id": 4242, - "type": "error" + "subject": "7", + "ts": "", + "type": "admin_challenge", + "v": "6.0" } ], "spawned": [] }, - "musicbrainz_enabled | operator | strings": { + "member_unpin | operator | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Missing or invalid 'enabled'", + "group_id": "gggggggggggggggggggggggggggggggg", + "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", + "nonce": "", + "op": "member_unpin", + "op_id": "", "req_id": 4242, - "type": "error" + "subject": "x", + "ts": "", + "type": "admin_challenge", + "v": "6.0" } ], "spawned": [] }, - "musicbrainz_enabled_ack | challenged | bare": { + "member_unpin_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -14840,7 +13771,7 @@ ], "spawned": [] }, - "musicbrainz_enabled_ack | challenged | lists": { + "member_unpin_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -14852,7 +13783,7 @@ ], "spawned": [] }, - "musicbrainz_enabled_ack | challenged | numbers": { + "member_unpin_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -14864,7 +13795,7 @@ ], "spawned": [] }, - "musicbrainz_enabled_ack | challenged | strings": { + "member_unpin_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -14876,7 +13807,7 @@ ], "spawned": [] }, - "musicbrainz_enabled_ack | fresh | bare": { + "member_unpin_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -14888,7 +13819,7 @@ ], "spawned": [] }, - "musicbrainz_enabled_ack | fresh | lists": { + "member_unpin_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -14900,7 +13831,7 @@ ], "spawned": [] }, - "musicbrainz_enabled_ack | fresh | numbers": { + "member_unpin_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -14912,7 +13843,7 @@ ], "spawned": [] }, - "musicbrainz_enabled_ack | fresh | strings": { + "member_unpin_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -14924,7 +13855,7 @@ ], "spawned": [] }, - "musicbrainz_enabled_ack | member | bare": { + "member_unpin_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14932,7 +13863,7 @@ "sent": [], "spawned": [] }, - "musicbrainz_enabled_ack | member | lists": { + "member_unpin_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14940,7 +13871,7 @@ "sent": [], "spawned": [] }, - "musicbrainz_enabled_ack | member | numbers": { + "member_unpin_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14948,7 +13879,7 @@ "sent": [], "spawned": [] }, - "musicbrainz_enabled_ack | member | strings": { + "member_unpin_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14956,7 +13887,7 @@ "sent": [], "spawned": [] }, - "musicbrainz_enabled_ack | operator | bare": { + "member_unpin_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14964,7 +13895,7 @@ "sent": [], "spawned": [] }, - "musicbrainz_enabled_ack | operator | lists": { + "member_unpin_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14972,7 +13903,7 @@ "sent": [], "spawned": [] }, - "musicbrainz_enabled_ack | operator | numbers": { + "member_unpin_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14980,15 +13911,175 @@ "sent": [], "spawned": [] }, - "musicbrainz_enabled_ack | operator | strings": { + "member_unpin_ack | operator | strings": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "music_meta_req | challenged | bare": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "music_meta_req | challenged | lists": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "music_meta_req | challenged | numbers": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "music_meta_req | challenged | strings": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "music_meta_req | fresh | bare": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "music_meta_req | fresh | lists": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "music_meta_req | fresh | numbers": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "music_meta_req | fresh | strings": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "music_meta_req | member | bare": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_music_meta_request" + ] + }, + "music_meta_req | member | lists": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_music_meta_request" + ] + }, + "music_meta_req | member | numbers": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_music_meta_request" + ] + }, + "music_meta_req | member | strings": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_music_meta_request" + ] + }, + "music_meta_req | operator | bare": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_music_meta_request" + ] + }, + "music_meta_req | operator | lists": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_music_meta_request" + ] + }, + "music_meta_req | operator | numbers": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_music_meta_request" + ] + }, + "music_meta_req | operator | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_music_meta_request" + ] }, - "no_such_type | challenged | bare": { + "music_meta_resp | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -15000,7 +14091,7 @@ ], "spawned": [] }, - "no_such_type | challenged | lists": { + "music_meta_resp | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -15012,7 +14103,7 @@ ], "spawned": [] }, - "no_such_type | challenged | numbers": { + "music_meta_resp | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -15024,7 +14115,7 @@ ], "spawned": [] }, - "no_such_type | challenged | strings": { + "music_meta_resp | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -15036,7 +14127,7 @@ ], "spawned": [] }, - "no_such_type | fresh | bare": { + "music_meta_resp | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -15048,7 +14139,7 @@ ], "spawned": [] }, - "no_such_type | fresh | lists": { + "music_meta_resp | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -15060,7 +14151,7 @@ ], "spawned": [] }, - "no_such_type | fresh | numbers": { + "music_meta_resp | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -15072,7 +14163,7 @@ ], "spawned": [] }, - "no_such_type | fresh | strings": { + "music_meta_resp | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -15084,7 +14175,7 @@ ], "spawned": [] }, - "no_such_type | member | bare": { + "music_meta_resp | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15092,7 +14183,7 @@ "sent": [], "spawned": [] }, - "no_such_type | member | lists": { + "music_meta_resp | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15100,7 +14191,7 @@ "sent": [], "spawned": [] }, - "no_such_type | member | numbers": { + "music_meta_resp | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15108,7 +14199,7 @@ "sent": [], "spawned": [] }, - "no_such_type | member | strings": { + "music_meta_resp | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15116,7 +14207,7 @@ "sent": [], "spawned": [] }, - "no_such_type | operator | bare": { + "music_meta_resp | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15124,7 +14215,7 @@ "sent": [], "spawned": [] }, - "no_such_type | operator | lists": { + "music_meta_resp | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15132,7 +14223,7 @@ "sent": [], "spawned": [] }, - "no_such_type | operator | numbers": { + "music_meta_resp | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15140,7 +14231,7 @@ "sent": [], "spawned": [] }, - "no_such_type | operator | strings": { + "music_meta_resp | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15148,7 +14239,7 @@ "sent": [], "spawned": [] }, - "node_reload | challenged | bare": { + "musicbrainz_enabled | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -15160,7 +14251,7 @@ ], "spawned": [] }, - "node_reload | challenged | lists": { + "musicbrainz_enabled | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -15172,7 +14263,7 @@ ], "spawned": [] }, - "node_reload | challenged | numbers": { + "musicbrainz_enabled | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -15184,7 +14275,7 @@ ], "spawned": [] }, - "node_reload | challenged | strings": { + "musicbrainz_enabled | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -15196,7 +14287,7 @@ ], "spawned": [] }, - "node_reload | fresh | bare": { + "musicbrainz_enabled | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -15208,7 +14299,7 @@ ], "spawned": [] }, - "node_reload | fresh | lists": { + "musicbrainz_enabled | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -15220,7 +14311,7 @@ ], "spawned": [] }, - "node_reload | fresh | numbers": { + "musicbrainz_enabled | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -15232,7 +14323,7 @@ ], "spawned": [] }, - "node_reload | fresh | strings": { + "musicbrainz_enabled | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -15244,231 +14335,103 @@ ], "spawned": [] }, - "node_reload | member | bare": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_node_reload" - ] - }, - "node_reload | member | lists": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_node_reload" - ] - }, - "node_reload | member | numbers": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_node_reload" - ] - }, - "node_reload | member | strings": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_node_reload" - ] - }, - "node_reload | operator | bare": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_node_reload" - ] - }, - "node_reload | operator | lists": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_node_reload" - ] - }, - "node_reload | operator | numbers": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_node_reload" - ] - }, - "node_reload | operator | strings": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_node_reload" - ] - }, - "node_reload_ack | challenged | bare": { + "musicbrainz_enabled | member | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "node_reload_ack | challenged | lists": { + "musicbrainz_enabled | member | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "node_reload_ack | challenged | numbers": { + "musicbrainz_enabled | member | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "node_reload_ack | challenged | strings": { + "musicbrainz_enabled | member | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "node_reload_ack | fresh | bare": { + "musicbrainz_enabled | operator | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "node_reload_ack | fresh | lists": { + "musicbrainz_enabled | operator | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "node_reload_ack | fresh | numbers": { + "musicbrainz_enabled | operator | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "node_reload_ack | fresh | strings": { + "musicbrainz_enabled | operator | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "node_reload_ack | member | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "node_reload_ack | member | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "node_reload_ack | member | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "node_reload_ack | member | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "node_reload_ack | operator | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "node_reload_ack | operator | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "node_reload_ack | operator | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "node_reload_ack | operator | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "node_settings_set | challenged | bare": { + "musicbrainz_enabled_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -15480,7 +14443,7 @@ ], "spawned": [] }, - "node_settings_set | challenged | lists": { + "musicbrainz_enabled_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -15492,7 +14455,7 @@ ], "spawned": [] }, - "node_settings_set | challenged | numbers": { + "musicbrainz_enabled_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -15504,7 +14467,7 @@ ], "spawned": [] }, - "node_settings_set | challenged | strings": { + "musicbrainz_enabled_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -15516,7 +14479,7 @@ ], "spawned": [] }, - "node_settings_set | fresh | bare": { + "musicbrainz_enabled_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -15528,7 +14491,7 @@ ], "spawned": [] }, - "node_settings_set | fresh | lists": { + "musicbrainz_enabled_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -15540,7 +14503,7 @@ ], "spawned": [] }, - "node_settings_set | fresh | numbers": { + "musicbrainz_enabled_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -15552,7 +14515,7 @@ ], "spawned": [] }, - "node_settings_set | fresh | strings": { + "musicbrainz_enabled_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -15564,71 +14527,71 @@ ], "spawned": [] }, - "node_settings_set | member | bare": { + "musicbrainz_enabled_ack | member | bare": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_node_settings_set" - ] + "spawned": [] }, - "node_settings_set | member | lists": { + "musicbrainz_enabled_ack | member | lists": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_node_settings_set" - ] + "spawned": [] }, - "node_settings_set | member | numbers": { + "musicbrainz_enabled_ack | member | numbers": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_node_settings_set" - ] + "spawned": [] }, - "node_settings_set | member | strings": { + "musicbrainz_enabled_ack | member | strings": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_node_settings_set" - ] + "spawned": [] }, - "node_settings_set | operator | bare": { + "musicbrainz_enabled_ack | operator | bare": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_node_settings_set" - ] + "spawned": [] }, - "node_settings_set | operator | lists": { + "musicbrainz_enabled_ack | operator | lists": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_node_settings_set" - ] + "spawned": [] }, - "node_settings_set | operator | numbers": { + "musicbrainz_enabled_ack | operator | numbers": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_node_settings_set" - ] + "spawned": [] }, - "node_settings_set | operator | strings": { + "musicbrainz_enabled_ack | operator | strings": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_node_settings_set" - ] + "spawned": [] }, - "node_settings_set_ack | challenged | bare": { + "no_such_type | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -15640,7 +14603,7 @@ ], "spawned": [] }, - "node_settings_set_ack | challenged | lists": { + "no_such_type | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -15652,7 +14615,7 @@ ], "spawned": [] }, - "node_settings_set_ack | challenged | numbers": { + "no_such_type | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -15664,7 +14627,7 @@ ], "spawned": [] }, - "node_settings_set_ack | challenged | strings": { + "no_such_type | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -15676,7 +14639,7 @@ ], "spawned": [] }, - "node_settings_set_ack | fresh | bare": { + "no_such_type | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -15688,7 +14651,7 @@ ], "spawned": [] }, - "node_settings_set_ack | fresh | lists": { + "no_such_type | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -15700,7 +14663,7 @@ ], "spawned": [] }, - "node_settings_set_ack | fresh | numbers": { + "no_such_type | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -15712,7 +14675,7 @@ ], "spawned": [] }, - "node_settings_set_ack | fresh | strings": { + "no_such_type | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -15724,7 +14687,7 @@ ], "spawned": [] }, - "node_settings_set_ack | member | bare": { + "no_such_type | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15732,7 +14695,7 @@ "sent": [], "spawned": [] }, - "node_settings_set_ack | member | lists": { + "no_such_type | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15740,7 +14703,7 @@ "sent": [], "spawned": [] }, - "node_settings_set_ack | member | numbers": { + "no_such_type | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15748,7 +14711,7 @@ "sent": [], "spawned": [] }, - "node_settings_set_ack | member | strings": { + "no_such_type | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15756,7 +14719,7 @@ "sent": [], "spawned": [] }, - "node_settings_set_ack | operator | bare": { + "no_such_type | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15764,7 +14727,7 @@ "sent": [], "spawned": [] }, - "node_settings_set_ack | operator | lists": { + "no_such_type | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15772,7 +14735,7 @@ "sent": [], "spawned": [] }, - "node_settings_set_ack | operator | numbers": { + "no_such_type | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15780,7 +14743,7 @@ "sent": [], "spawned": [] }, - "node_settings_set_ack | operator | strings": { + "no_such_type | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15788,7 +14751,7 @@ "sent": [], "spawned": [] }, - "node_status | challenged | bare": { + "node_reload | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -15800,7 +14763,7 @@ ], "spawned": [] }, - "node_status | challenged | lists": { + "node_reload | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -15812,7 +14775,7 @@ ], "spawned": [] }, - "node_status | challenged | numbers": { + "node_reload | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -15824,7 +14787,7 @@ ], "spawned": [] }, - "node_status | challenged | strings": { + "node_reload | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -15836,7 +14799,7 @@ ], "spawned": [] }, - "node_status | fresh | bare": { + "node_reload | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -15848,7 +14811,7 @@ ], "spawned": [] }, - "node_status | fresh | lists": { + "node_reload | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -15860,7 +14823,7 @@ ], "spawned": [] }, - "node_status | fresh | numbers": { + "node_reload | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -15872,7 +14835,7 @@ ], "spawned": [] }, - "node_status | fresh | strings": { + "node_reload | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -15884,71 +14847,71 @@ ], "spawned": [] }, - "node_status | member | bare": { + "node_reload | member | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_status" + "_do_node_reload" ] }, - "node_status | member | lists": { + "node_reload | member | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_status" + "_do_node_reload" ] }, - "node_status | member | numbers": { + "node_reload | member | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_status" + "_do_node_reload" ] }, - "node_status | member | strings": { + "node_reload | member | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_status" + "_do_node_reload" ] }, - "node_status | operator | bare": { + "node_reload | operator | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_status" + "_do_node_reload" ] }, - "node_status | operator | lists": { + "node_reload | operator | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_status" + "_do_node_reload" ] }, - "node_status | operator | numbers": { + "node_reload | operator | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_status" + "_do_node_reload" ] }, - "node_status | operator | strings": { + "node_reload | operator | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_status" + "_do_node_reload" ] }, - "node_status_ack | challenged | bare": { + "node_reload_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -15960,7 +14923,7 @@ ], "spawned": [] }, - "node_status_ack | challenged | lists": { + "node_reload_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -15972,7 +14935,7 @@ ], "spawned": [] }, - "node_status_ack | challenged | numbers": { + "node_reload_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -15984,7 +14947,7 @@ ], "spawned": [] }, - "node_status_ack | challenged | strings": { + "node_reload_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -15996,7 +14959,7 @@ ], "spawned": [] }, - "node_status_ack | fresh | bare": { + "node_reload_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -16008,7 +14971,7 @@ ], "spawned": [] }, - "node_status_ack | fresh | lists": { + "node_reload_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -16020,7 +14983,7 @@ ], "spawned": [] }, - "node_status_ack | fresh | numbers": { + "node_reload_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -16032,7 +14995,7 @@ ], "spawned": [] }, - "node_status_ack | fresh | strings": { + "node_reload_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -16044,7 +15007,7 @@ ], "spawned": [] }, - "node_status_ack | member | bare": { + "node_reload_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16052,7 +15015,7 @@ "sent": [], "spawned": [] }, - "node_status_ack | member | lists": { + "node_reload_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16060,7 +15023,7 @@ "sent": [], "spawned": [] }, - "node_status_ack | member | numbers": { + "node_reload_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16068,7 +15031,7 @@ "sent": [], "spawned": [] }, - "node_status_ack | member | strings": { + "node_reload_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16076,7 +15039,7 @@ "sent": [], "spawned": [] }, - "node_status_ack | operator | bare": { + "node_reload_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16084,7 +15047,7 @@ "sent": [], "spawned": [] }, - "node_status_ack | operator | lists": { + "node_reload_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16092,7 +15055,7 @@ "sent": [], "spawned": [] }, - "node_status_ack | operator | numbers": { + "node_reload_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16100,7 +15063,7 @@ "sent": [], "spawned": [] }, - "node_status_ack | operator | strings": { + "node_reload_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16108,7 +15071,7 @@ "sent": [], "spawned": [] }, - "ping | challenged | bare": { + "node_settings_set | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -16120,7 +15083,7 @@ ], "spawned": [] }, - "ping | challenged | lists": { + "node_settings_set | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -16132,7 +15095,7 @@ ], "spawned": [] }, - "ping | challenged | numbers": { + "node_settings_set | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -16144,7 +15107,7 @@ ], "spawned": [] }, - "ping | challenged | strings": { + "node_settings_set | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -16156,7 +15119,7 @@ ], "spawned": [] }, - "ping | fresh | bare": { + "node_settings_set | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -16168,7 +15131,7 @@ ], "spawned": [] }, - "ping | fresh | lists": { + "node_settings_set | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -16180,7 +15143,7 @@ ], "spawned": [] }, - "ping | fresh | numbers": { + "node_settings_set | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -16192,7 +15155,7 @@ ], "spawned": [] }, - "ping | fresh | strings": { + "node_settings_set | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -16204,115 +15167,71 @@ ], "spawned": [] }, - "ping | member | bare": { + "node_settings_set | member | bare": { "audit": [], "log": [], - "sent": [ - { - "req_id": 4242, - "token": null, - "type": "pong", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_node_settings_set" + ] }, - "ping | member | lists": { + "node_settings_set | member | lists": { "audit": [], "log": [], - "sent": [ - { - "req_id": 4242, - "token": [ - "x" - ], - "type": "pong", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_node_settings_set" + ] }, - "ping | member | numbers": { + "node_settings_set | member | numbers": { "audit": [], "log": [], - "sent": [ - { - "req_id": 4242, - "token": 7, - "type": "pong", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_node_settings_set" + ] }, - "ping | member | strings": { + "node_settings_set | member | strings": { "audit": [], "log": [], - "sent": [ - { - "req_id": 4242, - "token": "x", - "type": "pong", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_node_settings_set" + ] }, - "ping | operator | bare": { + "node_settings_set | operator | bare": { "audit": [], "log": [], - "sent": [ - { - "req_id": 4242, - "token": null, - "type": "pong", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_node_settings_set" + ] }, - "ping | operator | lists": { + "node_settings_set | operator | lists": { "audit": [], "log": [], - "sent": [ - { - "req_id": 4242, - "token": [ - "x" - ], - "type": "pong", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_node_settings_set" + ] }, - "ping | operator | numbers": { + "node_settings_set | operator | numbers": { "audit": [], "log": [], - "sent": [ - { - "req_id": 4242, - "token": 7, - "type": "pong", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_node_settings_set" + ] }, - "ping | operator | strings": { + "node_settings_set | operator | strings": { "audit": [], "log": [], - "sent": [ - { - "req_id": 4242, - "token": "x", - "type": "pong", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_node_settings_set" + ] }, - "pong | challenged | bare": { + "node_settings_set_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -16324,7 +15243,7 @@ ], "spawned": [] }, - "pong | challenged | lists": { + "node_settings_set_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -16336,7 +15255,7 @@ ], "spawned": [] }, - "pong | challenged | numbers": { + "node_settings_set_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -16348,7 +15267,7 @@ ], "spawned": [] }, - "pong | challenged | strings": { + "node_settings_set_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -16360,7 +15279,7 @@ ], "spawned": [] }, - "pong | fresh | bare": { + "node_settings_set_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -16372,7 +15291,7 @@ ], "spawned": [] }, - "pong | fresh | lists": { + "node_settings_set_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -16384,7 +15303,7 @@ ], "spawned": [] }, - "pong | fresh | numbers": { + "node_settings_set_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -16396,7 +15315,7 @@ ], "spawned": [] }, - "pong | fresh | strings": { + "node_settings_set_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -16408,7 +15327,7 @@ ], "spawned": [] }, - "pong | member | bare": { + "node_settings_set_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16416,7 +15335,7 @@ "sent": [], "spawned": [] }, - "pong | member | lists": { + "node_settings_set_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16424,7 +15343,7 @@ "sent": [], "spawned": [] }, - "pong | member | numbers": { + "node_settings_set_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16432,7 +15351,7 @@ "sent": [], "spawned": [] }, - "pong | member | strings": { + "node_settings_set_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16440,7 +15359,7 @@ "sent": [], "spawned": [] }, - "pong | operator | bare": { + "node_settings_set_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16448,7 +15367,7 @@ "sent": [], "spawned": [] }, - "pong | operator | lists": { + "node_settings_set_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16456,7 +15375,7 @@ "sent": [], "spawned": [] }, - "pong | operator | numbers": { + "node_settings_set_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16464,7 +15383,7 @@ "sent": [], "spawned": [] }, - "pong | operator | strings": { + "node_settings_set_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16472,7 +15391,7 @@ "sent": [], "spawned": [] }, - "root_add | challenged | bare": { + "node_status | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -16484,7 +15403,7 @@ ], "spawned": [] }, - "root_add | challenged | lists": { + "node_status | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -16496,7 +15415,7 @@ ], "spawned": [] }, - "root_add | challenged | numbers": { + "node_status | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -16508,7 +15427,7 @@ ], "spawned": [] }, - "root_add | challenged | strings": { + "node_status | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -16520,7 +15439,7 @@ ], "spawned": [] }, - "root_add | fresh | bare": { + "node_status | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -16532,7 +15451,7 @@ ], "spawned": [] }, - "root_add | fresh | lists": { + "node_status | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -16544,7 +15463,7 @@ ], "spawned": [] }, - "root_add | fresh | numbers": { + "node_status | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -16556,7 +15475,7 @@ ], "spawned": [] }, - "root_add | fresh | strings": { + "node_status | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -16568,124 +15487,71 @@ ], "spawned": [] }, - "root_add | member | bare": { + "node_status | member | bare": { "audit": [], "log": [], - "sent": [ - { - "detail": "Missing group_id or path", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_node_status" + ] }, - "root_add | member | lists": { + "node_status | member | lists": { "audit": [], "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_node_status" + ] }, - "root_add | member | numbers": { + "node_status | member | numbers": { "audit": [], "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_node_status" + ] }, - "root_add | member | strings": { + "node_status | member | strings": { "audit": [], "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_node_status" + ] }, - "root_add | operator | bare": { + "node_status | operator | bare": { "audit": [], "log": [], - "sent": [ - { - "detail": "Missing group_id or path", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_node_status" + ] }, - "root_add | operator | lists": { + "node_status | operator | lists": { "audit": [], "log": [], - "sent": [ - { - "group_id": "['x']", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "root_add", - "op_id": "", - "req_id": 4242, - "subject": "{\"kind\":\"['x']\",\"name\":\"['x']\",\"path\":\"['x']\",\"removable\":true,\"writable\":true}", - "ts": "", - "type": "admin_challenge", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_node_status" + ] }, - "root_add | operator | numbers": { + "node_status | operator | numbers": { "audit": [], "log": [], - "sent": [ - { - "group_id": "7", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "root_add", - "op_id": "", - "req_id": 4242, - "subject": "{\"kind\":\"7\",\"name\":\"7\",\"path\":\"7\",\"removable\":true,\"writable\":true}", - "ts": "", - "type": "admin_challenge", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_node_status" + ] }, - "root_add | operator | strings": { + "node_status | operator | strings": { "audit": [], "log": [], - "sent": [ - { - "group_id": "x", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "root_add", - "op_id": "", - "req_id": 4242, - "subject": "{\"kind\":\"x\",\"name\":\"x\",\"path\":\"x\",\"removable\":true,\"writable\":true}", - "ts": "", - "type": "admin_challenge", - "v": "5.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_node_status" + ] }, - "root_add_ack | challenged | bare": { + "node_status_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -16697,7 +15563,7 @@ ], "spawned": [] }, - "root_add_ack | challenged | lists": { + "node_status_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -16709,7 +15575,7 @@ ], "spawned": [] }, - "root_add_ack | challenged | numbers": { + "node_status_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -16721,7 +15587,7 @@ ], "spawned": [] }, - "root_add_ack | challenged | strings": { + "node_status_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -16733,7 +15599,7 @@ ], "spawned": [] }, - "root_add_ack | fresh | bare": { + "node_status_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -16745,7 +15611,7 @@ ], "spawned": [] }, - "root_add_ack | fresh | lists": { + "node_status_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -16757,7 +15623,7 @@ ], "spawned": [] }, - "root_add_ack | fresh | numbers": { + "node_status_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -16769,7 +15635,7 @@ ], "spawned": [] }, - "root_add_ack | fresh | strings": { + "node_status_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -16781,7 +15647,7 @@ ], "spawned": [] }, - "root_add_ack | member | bare": { + "node_status_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16789,7 +15655,7 @@ "sent": [], "spawned": [] }, - "root_add_ack | member | lists": { + "node_status_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16797,7 +15663,7 @@ "sent": [], "spawned": [] }, - "root_add_ack | member | numbers": { + "node_status_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16805,7 +15671,7 @@ "sent": [], "spawned": [] }, - "root_add_ack | member | strings": { + "node_status_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16813,7 +15679,7 @@ "sent": [], "spawned": [] }, - "root_add_ack | operator | bare": { + "node_status_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16821,7 +15687,7 @@ "sent": [], "spawned": [] }, - "root_add_ack | operator | lists": { + "node_status_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16829,7 +15695,7 @@ "sent": [], "spawned": [] }, - "root_add_ack | operator | numbers": { + "node_status_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16837,7 +15703,7 @@ "sent": [], "spawned": [] }, - "root_add_ack | operator | strings": { + "node_status_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16845,7 +15711,7 @@ "sent": [], "spawned": [] }, - "root_eject | challenged | bare": { + "ping | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -16857,7 +15723,7 @@ ], "spawned": [] }, - "root_eject | challenged | lists": { + "ping | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -16869,7 +15735,7 @@ ], "spawned": [] }, - "root_eject | challenged | numbers": { + "ping | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -16881,7 +15747,7 @@ ], "spawned": [] }, - "root_eject | challenged | strings": { + "ping | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -16893,7 +15759,7 @@ ], "spawned": [] }, - "root_eject | fresh | bare": { + "ping | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -16905,7 +15771,7 @@ ], "spawned": [] }, - "root_eject | fresh | lists": { + "ping | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -16917,7 +15783,7 @@ ], "spawned": [] }, - "root_eject | fresh | numbers": { + "ping | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -16929,7 +15795,7 @@ ], "spawned": [] }, - "root_eject | fresh | strings": { + "ping | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -16941,124 +15807,115 @@ ], "spawned": [] }, - "root_eject | member | bare": { + "ping | member | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Missing group_id or root_name", "req_id": 4242, - "type": "error" + "token": null, + "type": "pong", + "v": "6.0" } ], "spawned": [] }, - "root_eject | member | lists": { + "ping | member | lists": { "audit": [], "log": [], "sent": [ { - "detail": "No authorized key for this", "req_id": 4242, - "type": "error" + "token": [ + "x" + ], + "type": "pong", + "v": "6.0" } ], "spawned": [] }, - "root_eject | member | numbers": { + "ping | member | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "No authorized key for this", "req_id": 4242, - "type": "error" + "token": 7, + "type": "pong", + "v": "6.0" } ], "spawned": [] }, - "root_eject | member | strings": { + "ping | member | strings": { "audit": [], "log": [], "sent": [ { - "detail": "No authorized key for this", "req_id": 4242, - "type": "error" + "token": "x", + "type": "pong", + "v": "6.0" } ], "spawned": [] }, - "root_eject | operator | bare": { + "ping | operator | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Missing group_id or root_name", "req_id": 4242, - "type": "error" + "token": null, + "type": "pong", + "v": "6.0" } ], "spawned": [] }, - "root_eject | operator | lists": { + "ping | operator | lists": { "audit": [], "log": [], "sent": [ { - "group_id": "['x']", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "root_eject", - "op_id": "", "req_id": 4242, - "subject": "['x']", - "ts": "", - "type": "admin_challenge", - "v": "5.0" + "token": [ + "x" + ], + "type": "pong", + "v": "6.0" } ], "spawned": [] }, - "root_eject | operator | numbers": { + "ping | operator | numbers": { "audit": [], "log": [], "sent": [ { - "group_id": "7", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "root_eject", - "op_id": "", "req_id": 4242, - "subject": "7", - "ts": "", - "type": "admin_challenge", - "v": "5.0" + "token": 7, + "type": "pong", + "v": "6.0" } ], "spawned": [] }, - "root_eject | operator | strings": { + "ping | operator | strings": { "audit": [], "log": [], "sent": [ { - "group_id": "x", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "root_eject", - "op_id": "", "req_id": 4242, - "subject": "x", - "ts": "", - "type": "admin_challenge", - "v": "5.0" + "token": "x", + "type": "pong", + "v": "6.0" } ], "spawned": [] }, - "root_eject_ack | challenged | bare": { + "pong | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -17070,7 +15927,7 @@ ], "spawned": [] }, - "root_eject_ack | challenged | lists": { + "pong | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -17082,7 +15939,7 @@ ], "spawned": [] }, - "root_eject_ack | challenged | numbers": { + "pong | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -17094,7 +15951,7 @@ ], "spawned": [] }, - "root_eject_ack | challenged | strings": { + "pong | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -17106,7 +15963,7 @@ ], "spawned": [] }, - "root_eject_ack | fresh | bare": { + "pong | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -17118,7 +15975,7 @@ ], "spawned": [] }, - "root_eject_ack | fresh | lists": { + "pong | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -17130,7 +15987,7 @@ ], "spawned": [] }, - "root_eject_ack | fresh | numbers": { + "pong | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -17142,7 +15999,7 @@ ], "spawned": [] }, - "root_eject_ack | fresh | strings": { + "pong | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -17154,7 +16011,7 @@ ], "spawned": [] }, - "root_eject_ack | member | bare": { + "pong | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17162,7 +16019,7 @@ "sent": [], "spawned": [] }, - "root_eject_ack | member | lists": { + "pong | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17170,7 +16027,7 @@ "sent": [], "spawned": [] }, - "root_eject_ack | member | numbers": { + "pong | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17178,7 +16035,7 @@ "sent": [], "spawned": [] }, - "root_eject_ack | member | strings": { + "pong | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17186,7 +16043,7 @@ "sent": [], "spawned": [] }, - "root_eject_ack | operator | bare": { + "pong | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17194,7 +16051,7 @@ "sent": [], "spawned": [] }, - "root_eject_ack | operator | lists": { + "pong | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17202,7 +16059,7 @@ "sent": [], "spawned": [] }, - "root_eject_ack | operator | numbers": { + "pong | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17210,7 +16067,7 @@ "sent": [], "spawned": [] }, - "root_eject_ack | operator | strings": { + "pong | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17218,7 +16075,7 @@ "sent": [], "spawned": [] }, - "root_plug | challenged | bare": { + "root_eject | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -17230,7 +16087,7 @@ ], "spawned": [] }, - "root_plug | challenged | lists": { + "root_eject | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -17242,7 +16099,7 @@ ], "spawned": [] }, - "root_plug | challenged | numbers": { + "root_eject | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -17254,7 +16111,7 @@ ], "spawned": [] }, - "root_plug | challenged | strings": { + "root_eject | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -17266,7 +16123,7 @@ ], "spawned": [] }, - "root_plug | fresh | bare": { + "root_eject | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -17278,7 +16135,7 @@ ], "spawned": [] }, - "root_plug | fresh | lists": { + "root_eject | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -17290,7 +16147,7 @@ ], "spawned": [] }, - "root_plug | fresh | numbers": { + "root_eject | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -17302,7 +16159,7 @@ ], "spawned": [] }, - "root_plug | fresh | strings": { + "root_eject | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -17314,7 +16171,7 @@ ], "spawned": [] }, - "root_plug | member | bare": { + "root_eject | member | bare": { "audit": [], "log": [], "sent": [ @@ -17326,7 +16183,7 @@ ], "spawned": [] }, - "root_plug | member | lists": { + "root_eject | member | lists": { "audit": [], "log": [], "sent": [ @@ -17338,7 +16195,7 @@ ], "spawned": [] }, - "root_plug | member | numbers": { + "root_eject | member | numbers": { "audit": [], "log": [], "sent": [ @@ -17350,7 +16207,7 @@ ], "spawned": [] }, - "root_plug | member | strings": { + "root_eject | member | strings": { "audit": [], "log": [], "sent": [ @@ -17362,7 +16219,7 @@ ], "spawned": [] }, - "root_plug | operator | bare": { + "root_eject | operator | bare": { "audit": [], "log": [], "sent": [ @@ -17374,7 +16231,7 @@ ], "spawned": [] }, - "root_plug | operator | lists": { + "root_eject | operator | lists": { "audit": [], "log": [], "sent": [ @@ -17382,18 +16239,18 @@ "group_id": "['x']", "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", "nonce": "", - "op": "root_plug", + "op": "root_eject", "op_id": "", "req_id": 4242, "subject": "['x']", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] }, - "root_plug | operator | numbers": { + "root_eject | operator | numbers": { "audit": [], "log": [], "sent": [ @@ -17401,18 +16258,18 @@ "group_id": "7", "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", "nonce": "", - "op": "root_plug", + "op": "root_eject", "op_id": "", "req_id": 4242, "subject": "7", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] }, - "root_plug | operator | strings": { + "root_eject | operator | strings": { "audit": [], "log": [], "sent": [ @@ -17420,18 +16277,18 @@ "group_id": "x", "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", "nonce": "", - "op": "root_plug", + "op": "root_eject", "op_id": "", "req_id": 4242, "subject": "x", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] }, - "root_plug_ack | challenged | bare": { + "root_eject_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -17443,7 +16300,7 @@ ], "spawned": [] }, - "root_plug_ack | challenged | lists": { + "root_eject_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -17455,7 +16312,7 @@ ], "spawned": [] }, - "root_plug_ack | challenged | numbers": { + "root_eject_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -17467,7 +16324,7 @@ ], "spawned": [] }, - "root_plug_ack | challenged | strings": { + "root_eject_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -17479,7 +16336,7 @@ ], "spawned": [] }, - "root_plug_ack | fresh | bare": { + "root_eject_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -17491,7 +16348,7 @@ ], "spawned": [] }, - "root_plug_ack | fresh | lists": { + "root_eject_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -17503,7 +16360,7 @@ ], "spawned": [] }, - "root_plug_ack | fresh | numbers": { + "root_eject_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -17515,7 +16372,7 @@ ], "spawned": [] }, - "root_plug_ack | fresh | strings": { + "root_eject_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -17527,7 +16384,7 @@ ], "spawned": [] }, - "root_plug_ack | member | bare": { + "root_eject_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17535,7 +16392,7 @@ "sent": [], "spawned": [] }, - "root_plug_ack | member | lists": { + "root_eject_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17543,7 +16400,7 @@ "sent": [], "spawned": [] }, - "root_plug_ack | member | numbers": { + "root_eject_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17551,7 +16408,7 @@ "sent": [], "spawned": [] }, - "root_plug_ack | member | strings": { + "root_eject_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17559,7 +16416,7 @@ "sent": [], "spawned": [] }, - "root_plug_ack | operator | bare": { + "root_eject_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17567,7 +16424,7 @@ "sent": [], "spawned": [] }, - "root_plug_ack | operator | lists": { + "root_eject_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17575,7 +16432,7 @@ "sent": [], "spawned": [] }, - "root_plug_ack | operator | numbers": { + "root_eject_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17583,7 +16440,7 @@ "sent": [], "spawned": [] }, - "root_plug_ack | operator | strings": { + "root_eject_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17591,7 +16448,7 @@ "sent": [], "spawned": [] }, - "root_remove | challenged | bare": { + "root_plug | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -17603,7 +16460,7 @@ ], "spawned": [] }, - "root_remove | challenged | lists": { + "root_plug | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -17615,7 +16472,7 @@ ], "spawned": [] }, - "root_remove | challenged | numbers": { + "root_plug | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -17627,7 +16484,7 @@ ], "spawned": [] }, - "root_remove | challenged | strings": { + "root_plug | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -17639,7 +16496,7 @@ ], "spawned": [] }, - "root_remove | fresh | bare": { + "root_plug | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -17651,7 +16508,7 @@ ], "spawned": [] }, - "root_remove | fresh | lists": { + "root_plug | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -17663,7 +16520,7 @@ ], "spawned": [] }, - "root_remove | fresh | numbers": { + "root_plug | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -17675,7 +16532,7 @@ ], "spawned": [] }, - "root_remove | fresh | strings": { + "root_plug | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -17687,7 +16544,7 @@ ], "spawned": [] }, - "root_remove | member | bare": { + "root_plug | member | bare": { "audit": [], "log": [], "sent": [ @@ -17699,7 +16556,7 @@ ], "spawned": [] }, - "root_remove | member | lists": { + "root_plug | member | lists": { "audit": [], "log": [], "sent": [ @@ -17711,7 +16568,7 @@ ], "spawned": [] }, - "root_remove | member | numbers": { + "root_plug | member | numbers": { "audit": [], "log": [], "sent": [ @@ -17723,7 +16580,7 @@ ], "spawned": [] }, - "root_remove | member | strings": { + "root_plug | member | strings": { "audit": [], "log": [], "sent": [ @@ -17735,7 +16592,7 @@ ], "spawned": [] }, - "root_remove | operator | bare": { + "root_plug | operator | bare": { "audit": [], "log": [], "sent": [ @@ -17747,7 +16604,7 @@ ], "spawned": [] }, - "root_remove | operator | lists": { + "root_plug | operator | lists": { "audit": [], "log": [], "sent": [ @@ -17755,18 +16612,18 @@ "group_id": "['x']", "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", "nonce": "", - "op": "root_remove", + "op": "root_plug", "op_id": "", "req_id": 4242, "subject": "['x']", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] }, - "root_remove | operator | numbers": { + "root_plug | operator | numbers": { "audit": [], "log": [], "sent": [ @@ -17774,18 +16631,18 @@ "group_id": "7", "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", "nonce": "", - "op": "root_remove", + "op": "root_plug", "op_id": "", "req_id": 4242, "subject": "7", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] }, - "root_remove | operator | strings": { + "root_plug | operator | strings": { "audit": [], "log": [], "sent": [ @@ -17793,18 +16650,18 @@ "group_id": "x", "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", "nonce": "", - "op": "root_remove", + "op": "root_plug", "op_id": "", "req_id": 4242, "subject": "x", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] }, - "root_remove_ack | challenged | bare": { + "root_plug_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -17816,7 +16673,7 @@ ], "spawned": [] }, - "root_remove_ack | challenged | lists": { + "root_plug_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -17828,7 +16685,7 @@ ], "spawned": [] }, - "root_remove_ack | challenged | numbers": { + "root_plug_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -17840,7 +16697,7 @@ ], "spawned": [] }, - "root_remove_ack | challenged | strings": { + "root_plug_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -17852,7 +16709,7 @@ ], "spawned": [] }, - "root_remove_ack | fresh | bare": { + "root_plug_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -17864,7 +16721,7 @@ ], "spawned": [] }, - "root_remove_ack | fresh | lists": { + "root_plug_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -17876,7 +16733,7 @@ ], "spawned": [] }, - "root_remove_ack | fresh | numbers": { + "root_plug_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -17888,7 +16745,7 @@ ], "spawned": [] }, - "root_remove_ack | fresh | strings": { + "root_plug_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -17900,7 +16757,7 @@ ], "spawned": [] }, - "root_remove_ack | member | bare": { + "root_plug_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17908,7 +16765,7 @@ "sent": [], "spawned": [] }, - "root_remove_ack | member | lists": { + "root_plug_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17916,7 +16773,7 @@ "sent": [], "spawned": [] }, - "root_remove_ack | member | numbers": { + "root_plug_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17924,7 +16781,7 @@ "sent": [], "spawned": [] }, - "root_remove_ack | member | strings": { + "root_plug_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17932,7 +16789,7 @@ "sent": [], "spawned": [] }, - "root_remove_ack | operator | bare": { + "root_plug_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17940,7 +16797,7 @@ "sent": [], "spawned": [] }, - "root_remove_ack | operator | lists": { + "root_plug_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17948,7 +16805,7 @@ "sent": [], "spawned": [] }, - "root_remove_ack | operator | numbers": { + "root_plug_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17956,7 +16813,7 @@ "sent": [], "spawned": [] }, - "root_remove_ack | operator | strings": { + "root_plug_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17964,7 +16821,7 @@ "sent": [], "spawned": [] }, - "root_update | challenged | bare": { + "root_remove | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -17976,7 +16833,7 @@ ], "spawned": [] }, - "root_update | challenged | lists": { + "root_remove | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -17988,7 +16845,7 @@ ], "spawned": [] }, - "root_update | challenged | numbers": { + "root_remove | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -18000,7 +16857,7 @@ ], "spawned": [] }, - "root_update | challenged | strings": { + "root_remove | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -18012,7 +16869,7 @@ ], "spawned": [] }, - "root_update | fresh | bare": { + "root_remove | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -18024,7 +16881,7 @@ ], "spawned": [] }, - "root_update | fresh | lists": { + "root_remove | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -18036,7 +16893,7 @@ ], "spawned": [] }, - "root_update | fresh | numbers": { + "root_remove | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -18048,7 +16905,7 @@ ], "spawned": [] }, - "root_update | fresh | strings": { + "root_remove | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -18060,7 +16917,7 @@ ], "spawned": [] }, - "root_update | member | bare": { + "root_remove | member | bare": { "audit": [], "log": [], "sent": [ @@ -18072,7 +16929,7 @@ ], "spawned": [] }, - "root_update | member | lists": { + "root_remove | member | lists": { "audit": [], "log": [], "sent": [ @@ -18084,7 +16941,7 @@ ], "spawned": [] }, - "root_update | member | numbers": { + "root_remove | member | numbers": { "audit": [], "log": [], "sent": [ @@ -18096,7 +16953,7 @@ ], "spawned": [] }, - "root_update | member | strings": { + "root_remove | member | strings": { "audit": [], "log": [], "sent": [ @@ -18108,7 +16965,7 @@ ], "spawned": [] }, - "root_update | operator | bare": { + "root_remove | operator | bare": { "audit": [], "log": [], "sent": [ @@ -18120,7 +16977,7 @@ ], "spawned": [] }, - "root_update | operator | lists": { + "root_remove | operator | lists": { "audit": [], "log": [], "sent": [ @@ -18128,18 +16985,18 @@ "group_id": "['x']", "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", "nonce": "", - "op": "root_update", + "op": "root_remove", "op_id": "", "req_id": 4242, - "subject": "['x']:rw=on,rem=on", + "subject": "['x']", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] }, - "root_update | operator | numbers": { + "root_remove | operator | numbers": { "audit": [], "log": [], "sent": [ @@ -18147,18 +17004,18 @@ "group_id": "7", "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", "nonce": "", - "op": "root_update", + "op": "root_remove", "op_id": "", "req_id": 4242, - "subject": "7:rw=on,rem=on", + "subject": "7", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] }, - "root_update | operator | strings": { + "root_remove | operator | strings": { "audit": [], "log": [], "sent": [ @@ -18166,18 +17023,18 @@ "group_id": "x", "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", "nonce": "", - "op": "root_update", + "op": "root_remove", "op_id": "", "req_id": 4242, - "subject": "x:rw=on,rem=on", + "subject": "x", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] }, - "root_update_ack | challenged | bare": { + "root_remove_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -18189,7 +17046,7 @@ ], "spawned": [] }, - "root_update_ack | challenged | lists": { + "root_remove_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -18201,7 +17058,7 @@ ], "spawned": [] }, - "root_update_ack | challenged | numbers": { + "root_remove_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -18213,7 +17070,7 @@ ], "spawned": [] }, - "root_update_ack | challenged | strings": { + "root_remove_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -18225,7 +17082,7 @@ ], "spawned": [] }, - "root_update_ack | fresh | bare": { + "root_remove_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -18237,7 +17094,7 @@ ], "spawned": [] }, - "root_update_ack | fresh | lists": { + "root_remove_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -18249,7 +17106,7 @@ ], "spawned": [] }, - "root_update_ack | fresh | numbers": { + "root_remove_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -18261,7 +17118,7 @@ ], "spawned": [] }, - "root_update_ack | fresh | strings": { + "root_remove_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -18273,7 +17130,7 @@ ], "spawned": [] }, - "root_update_ack | member | bare": { + "root_remove_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18281,7 +17138,7 @@ "sent": [], "spawned": [] }, - "root_update_ack | member | lists": { + "root_remove_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18289,7 +17146,7 @@ "sent": [], "spawned": [] }, - "root_update_ack | member | numbers": { + "root_remove_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18297,7 +17154,7 @@ "sent": [], "spawned": [] }, - "root_update_ack | member | strings": { + "root_remove_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18305,7 +17162,7 @@ "sent": [], "spawned": [] }, - "root_update_ack | operator | bare": { + "root_remove_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18313,7 +17170,7 @@ "sent": [], "spawned": [] }, - "root_update_ack | operator | lists": { + "root_remove_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18321,7 +17178,7 @@ "sent": [], "spawned": [] }, - "root_update_ack | operator | numbers": { + "root_remove_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18329,7 +17186,7 @@ "sent": [], "spawned": [] }, - "root_update_ack | operator | strings": { + "root_remove_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21119,7 +19976,7 @@ "subject": "{\"language\":null,\"token\":null}", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -21162,7 +20019,7 @@ "subject": "{\"language\":\"x\",\"token\":\"sha256:2d711642b726b04401627ca9fbac32f5c8530fb1903cc4db02258717921a4881\"}", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] @@ -23049,7 +21906,7 @@ "subject": "d=7,u=7", "ts": "", "type": "admin_challenge", - "v": "5.0" + "v": "6.0" } ], "spawned": [] diff --git a/packages/meshbay-node/tests/test_admin_challenge_bounds.py b/packages/meshbay-node/tests/test_admin_challenge_bounds.py index fd3b2f1..9dcb750 100644 --- a/packages/meshbay-node/tests/test_admin_challenge_bounds.py +++ b/packages/meshbay-node/tests/test_admin_challenge_bounds.py @@ -3,8 +3,9 @@ What a connection may leave waiting for a signature (docs/MESHBAY_DESIGN.md §13 Anyone authenticated can ask for an admin challenge — the signature is checked later — so a member who never answers must not make the node keep every request. -Measured before the bound: 200 `root_add` of 1 MiB each from a plain member held -200 pending operations and ~400 MiB for the life of the connection. +Measured before the bound: 200 `root_add` (an op since removed) of 1 MiB each +from a plain member held 200 pending operations and ~400 MiB for the life of +the connection. """ import struct @@ -48,23 +49,24 @@ def _member_session(): return s -def _root_add(s, path: str) -> dict: - s._dispatch_message({"type": "root_add", "group_id": GROUP, "path": path}) +def _ask(s, path: str) -> dict: + """A signed op whose subject is whatever the caller sends.""" + s._dispatch_message({"type": "chat_directory", "path": path}) return s._channel.sent[-1] def test_a_member_cannot_pile_up_challenges(): s = _member_session() for i in range(MAX_PENDING_ADMIN_OPS): - assert _root_add(s, f"/srv/{i}")["type"] == "admin_challenge" - refused = _root_add(s, "/srv/one-too-many") + assert _ask(s, f"/srv/{i}")["type"] == "admin_challenge" + refused = _ask(s, "/srv/one-too-many") assert refused["type"] == "error" and refused["code"] == "too_many_pending" assert len(s._admin_ops) == MAX_PENDING_ADMIN_OPS def test_an_oversized_request_is_not_kept(): s = _member_session() - refused = _root_add(s, "x" * (MAX_ADMIN_OP_BYTES + 1)) + refused = _ask(s, "x" * (MAX_ADMIN_OP_BYTES + 1)) assert refused["type"] == "error" and refused["code"] == "too_large" assert s._admin_ops == {} @@ -72,21 +74,21 @@ def test_an_oversized_request_is_not_kept(): def test_an_expired_challenge_frees_its_place(): s = _member_session() for i in range(MAX_PENDING_ADMIN_OPS): - _root_add(s, f"/srv/{i}") + _ask(s, f"/srv/{i}") for pending in s._admin_ops.values(): pending["ts"] -= 10_000 - assert _root_add(s, "/srv/after-expiry")["type"] == "admin_challenge" + assert _ask(s, "/srv/after-expiry")["type"] == "admin_challenge" assert len(s._admin_ops) == 1 def test_answering_a_challenge_frees_its_place(): s = _member_session() for i in range(MAX_PENDING_ADMIN_OPS): - _root_add(s, f"/srv/{i}") + _ask(s, f"/srv/{i}") op_id = next(iter(s._admin_ops)) s._dispatch_message({"type": "admin_response", "op_id": op_id, "signature": "!!"}) assert len(s._admin_ops) == MAX_PENDING_ADMIN_OPS - 1 - assert _root_add(s, "/srv/next")["type"] == "admin_challenge" + assert _ask(s, "/srv/next")["type"] == "admin_challenge" assert all(time.time() - p["ts"] < 5 for p in s._admin_ops.values()) @@ -95,27 +97,6 @@ def test_answering_a_challenge_frees_its_place(): # The signature covers the subject and nothing else of a request, so every value # the executor acts on has to be in it. -def test_root_add_signs_whether_members_may_write(): - from meshbay_common.adminop import root_add_subject - s = _member_session() - s._dispatch_message({"type": "root_add", "group_id": GROUP, "path": "/srv/drop", - "name": "Drop", "writable": True, "removable": False}) - challenge = s._channel.sent[-1] - assert challenge["subject"] == root_add_subject("/srv/drop", "Drop", "generic", - True, False) - assert challenge["subject"] != root_add_subject("/srv/drop", "Drop", "generic", - False, False) - - -def test_group_attach_signs_the_directory_it_exposes(): - from meshbay_common.adminop import group_attach_subject - s = _member_session() - s._dispatch_message({"type": "group_attach", "name": "photos", - "shared_dir": "/home/me/Photos"}) - assert s._channel.sent[-1]["subject"] == group_attach_subject( - "photos", "/home/me/Photos", True) - - def test_invite_create_signs_the_name_it_records(): from meshbay_common.adminop import invite_create_subject s = _member_session() diff --git a/packages/meshbay-node/tests/test_node_status.py b/packages/meshbay-node/tests/test_node_status.py index bd63f8e..257c60c 100644 --- a/packages/meshbay-node/tests/test_node_status.py +++ b/packages/meshbay-node/tests/test_node_status.py @@ -1,9 +1,10 @@ """ -node_status, root_add, root_remove over MNP. +node_status and root_remove over MNP. These test the D5 node management panel's server-side behaviour: the admin identity check on node_status, the list_groups operation, and the root -add/remove flows through the MNP handlers. +removal flow through the MNP handlers. Adding a root is not an MNP message +(MNP 6.0); `ops.add_root` is still tested here, as the loopback and CLI use it. """ import base64 @@ -478,32 +479,6 @@ async def test_remove_root_succeeds_with_two_roots(tmp_path): assert cfg.roots[0].name == "dir1" -# ── root_add MNP handler ─────────────────────────────────────────────────── - -async def test_root_add_issues_challenge(tmp_path, roster): - session = await _session(tmp_path, roster, operator=True, - node_user_id="grenet") - session._do_root_add({"group_id": GROUP, "path": "/tmp/test"}) - msg = _last(session) - assert msg["type"] == "admin_challenge" - - -async def test_root_add_refuses_without_authority(tmp_path, roster): - session = await _session(tmp_path, roster, operator=False) - session._do_root_add({"group_id": GROUP, "path": "/tmp/test"}) - msg = _last(session) - assert msg["type"] == "error" - assert "authorized" in msg["detail"].lower() - - -async def test_root_add_refuses_missing_fields(tmp_path, roster): - session = await _session(tmp_path, roster, operator=True, - node_user_id="grenet") - session._do_root_add({"group_id": GROUP}) - assert _last(session)["type"] == "error" - assert "Missing" in _last(session)["detail"] - - # ── root_remove MNP handler ──────────────────────────────────────────────── async def test_root_remove_issues_challenge(tmp_path, roster): @@ -677,33 +652,6 @@ async def test_denylist_clear_refused_for_non_admin(tmp_path, roster): assert msg["type"] == "error" -# ── group_attach MNP handler ──────────────────────────────────────────── - -async def test_group_attach_issues_challenge(tmp_path, roster): - session = await _session(tmp_path, roster, operator=True, - node_user_id="grenet") - session._do_group_attach({"name": "test-group", "shared_dir": "/tmp/share"}) - msg = _last(session) - assert msg["type"] == "admin_challenge" - - -async def test_group_attach_refused_without_authority(tmp_path, roster): - session = await _session(tmp_path, roster, operator=False) - session._do_group_attach({"name": "test-group", "shared_dir": "/tmp/share"}) - msg = _last(session) - assert msg["type"] == "error" - assert "authorized" in msg["detail"].lower() - - -async def test_group_attach_refuses_missing_fields(tmp_path, roster): - session = await _session(tmp_path, roster, operator=True, - node_user_id="grenet") - session._do_group_attach({"name": "test-group"}) - msg = _last(session) - assert msg["type"] == "error" - assert "Missing" in msg["detail"] - - # ── node_reload MNP handler ───────────────────────────────────────────── async def test_node_reload_runs_for_admin(tmp_path, roster): diff --git a/packages/meshbay-node/tests/test_root_writable_policy.py b/packages/meshbay-node/tests/test_root_writable_policy.py index 0cd9af8..0dc5d6d 100644 --- a/packages/meshbay-node/tests/test_root_writable_policy.py +++ b/packages/meshbay-node/tests/test_root_writable_policy.py @@ -12,8 +12,9 @@ The properties this holds: A member with an old tab open, or one speaking MNP directly, gets the same answer. That half is pinned in `test_security_regressions.py`, next to the overwrite properties it belongs with; -* the setting is changed by a **signed** operator instruction, or it is a - suggestion any member can undo; +* the setting is changed **on the node's own machine** — the desktop + application over loopback, or the CLI — and never over MNP, where a signature + proves only that the operator's key signed (`test_sharing_is_local_only.py`); * it is stored on the **node**, never the hub. A hub that could decide who writes to the operator's disk would have authority over the node. @@ -26,7 +27,7 @@ from pathlib import Path import pytest from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey -from meshbay_common.adminop import OP_ROOT_EJECT, OP_ROOT_PLUG, OP_ROOT_UPDATE +from meshbay_common.adminop import OP_ROOT_EJECT, OP_ROOT_PLUG from meshbay_common.crypto import generate_gek from meshbay_common.protocol import MNP from meshbay_node.indexer.group_index import GroupIndex @@ -163,34 +164,6 @@ def _capture_challenges(session) -> list[tuple[str, str]]: return issued -async def test_changing_a_roots_flags_needs_a_signature(tmp_path): - """The flags are not applied by the request — only by the signed response.""" - session = _session(tmp_path, "the-operator", operator="the-operator") - issued = _capture_challenges(session) - - session._do_root_update({"group_id": "g" * 32, "root_name": "shared", - "writable": False}) - - assert [op for op, _ in issued] == [OP_ROOT_UPDATE] - assert session._ctx["roots"].roots[0].writable is True, ( - "applied before it was signed") - - -async def test_the_subject_names_the_outcome_not_the_operation(tmp_path): - """ - The operator is shown the subject before signing, so it has to say what will - be true afterwards. "shared" alone would have them authorize a change they - cannot see the direction of. - """ - session = _session(tmp_path, "op", operator="op") - issued = _capture_challenges(session) - - session._do_root_update({"group_id": "g" * 32, "root_name": "shared", - "writable": True, "removable": True}) - - assert issued == [(OP_ROOT_UPDATE, "shared:rw=on,rem=on")] - - async def test_eject_and_plug_are_signed_too(tmp_path): """ Hiding a group's whole library from every member is not a lesser act than @@ -214,8 +187,7 @@ async def test_a_request_with_nobody_to_authorize_it_is_refused(tmp_path): issued = _capture_challenges(session) session._has_admin_authority = lambda: False - session._do_root_update({"group_id": "g" * 32, "root_name": "shared", - "writable": True}) + session._do_root_eject({"group_id": "g" * 32, "root_name": "shared"}) assert issued == [] assert [m for m in session.sent if m.get("type") == "error"] diff --git a/packages/meshbay-node/tests/test_sharing_is_local_only.py b/packages/meshbay-node/tests/test_sharing_is_local_only.py new file mode 100644 index 0000000..cd550e4 --- /dev/null +++ b/packages/meshbay-node/tests/test_sharing_is_local_only.py @@ -0,0 +1,109 @@ +""" +What of the operator's disk is shared, and who may write there, is decided on +the node's own machine — never over MNP (MNP 6.0). + +A signed operation proves that the operator's key signed, not that the operator +meant it: in a browser the key is driven by code the hub serves, and in the +desktop application by a renderer that parses content from nodes. `root_add`, +`root_update` and `group_attach` let either of them share any folder on the +machine, or open one to writes, from anywhere. They are gone; the loopback API +(behind a native dialog in the desktop application) and the CLI remain. + +And the consequence that has to hold for the operator's list to stay true: a +flag changed through the loopback API reaches every connected page, which the +MNP ack used to do. +""" + +from dataclasses import asdict +from pathlib import Path +from types import SimpleNamespace + +import pytest +from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey +from meshbay_common import adminop +from meshbay_common.protocol import MNP +from meshbay_node import ops +from meshbay_node.config import GroupConfig, RootSpec +from meshbay_node.indexer.indexer import DirectoryIndexer +from meshbay_node.roots import RootSet +from meshbay_node.transport.webrtc.admin import _ADMIN_EXECUTORS +from meshbay_node.transport.webrtc.dispatch import _HANDLERS +from meshbay_node.transport.webrtc_server import WebRTCPeerSession +from test_admin_challenge_bounds import _PC, _Channel + +GROUP = "g" * 32 +GONE = ("root_add", "root_update", "group_attach") + + +@pytest.mark.parametrize("mtype", GONE) +def test_no_message_widens_what_the_node_shares(mtype): + assert mtype not in _HANDLERS, f"{mtype} is dispatched again" + assert mtype not in _ADMIN_EXECUTORS, f"{mtype} can be executed again" + assert mtype not in vars(MNP).values(), f"{mtype} is back in the protocol" + assert mtype not in vars(adminop).values(), f"{mtype} is a signed op again" + + +@pytest.mark.parametrize("mtype", GONE) +def test_an_older_client_asking_is_issued_nothing_to_sign(mtype): + """A 5.x client still sends these. Nothing it sends may come back as a + challenge — a challenge is what a compromised page needs signed.""" + ctx = {"sk_node": Ed25519PrivateKey.from_private_bytes(b"\x01" * 32), + "groups": {GROUP: {}}, "has_admin_authority": True} + s = WebRTCPeerSession(_PC(), ctx, peer_id="peer") + s._channel = _Channel() + s._audit = lambda *a, **k: None + s._user_id, s._group_id = "operator", GROUP + + s._dispatch_message({"type": mtype, "group_id": GROUP, "path": "/home/someone", + "shared_dir": "/home/someone", "name": "x", + "root_name": "x", "writable": True}) + + assert s._admin_ops == {} + assert not [m for m in s._channel.sent if m.get("type") == "admin_challenge"] + + +def _state(tmp_path: Path, indexer_roots: RootSet | None = None): + (tmp_path / "media").mkdir() + cfg = GroupConfig(id=GROUP, name="plop", + roots=[RootSpec(path=str(tmp_path / "media"), name="media")]) + conf = tmp_path / "node.toml" + conf.write_text( + f'[[groups]]\nid = "{GROUP}"\nname = "plop"\n\n' + f' [[groups.roots]]\n path = "{(tmp_path / "media").as_posix()}"\n' + f' name = "media"\n', encoding="utf-8") + live = RootSet.build([asdict(r) for r in cfg.roots]) + pushed: list[list[dict]] = [] + + async def on_change(indexer): + pushed.append(indexer.index.roots) + + indexer = DirectoryIndexer(indexer_roots or live, GROUP, + Ed25519PrivateKey.generate(), None, + on_change=on_change) + state = {"config": SimpleNamespace(groups=[cfg]), "config_path": str(conf), + "groups_ctx": {GROUP: {"roots": live}}, + "indexers": {GROUP: indexer}} + return state, pushed + + +async def test_a_flag_changed_on_the_node_reaches_every_open_page(tmp_path): + state, pushed = _state(tmp_path) + + await ops.update_root(state, GROUP, "media", writable=True) + + assert pushed, "nothing was pushed — open pages keep the old flag" + assert pushed[-1][0]["writable"] is True + + +async def test_the_pushed_table_is_right_when_the_indexer_holds_its_own_set(tmp_path): + """The indexer and the group context normally share one RootSet; when they + do not, the table peers receive is the indexer's, and must carry the flag.""" + (tmp_path / "media").mkdir() + own = RootSet.build([{"path": str(tmp_path / "media"), "name": "media"}]) + (tmp_path / "media").rmdir() + state, pushed = _state(tmp_path, indexer_roots=own) + + await ops.update_root(state, GROUP, "media", removable=True) + + assert pushed[-1][0]["removable"] is True + assert state["groups_ctx"][GROUP]["roots"].by_name("media").removable is True -- cgit v1.2.3