From 754387590fa1754436b4648f969915888c6f6c9e Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Fri, 2 Oct 2026 10:51:19 +0200 Subject: refactor(mnp): remove ten operator messages no client sent node_status, node_settings_set, roster_read, denylist_read, denylist_clear, node_reload and the signed gek_rotate, member_unpin, transfer_limits, group_detach leave MNP 6.0; the Node page and the CLI do this work over loopback. Their ops keep their tests, moved to the ops level. Co-Authored-By: Claude Opus 5.5 --- packages/meshbay-node/src/meshbay_node/ops/chat.py | 2 +- .../meshbay-node/src/meshbay_node/ops/settings.py | 6 +- .../src/meshbay_node/transport/webrtc/admin.py | 49 +- .../src/meshbay_node/transport/webrtc/chat.py | 6 +- .../src/meshbay_node/transport/webrtc/dispatch.py | 10 - .../src/meshbay_node/transport/webrtc/group_ops.py | 84 - .../src/meshbay_node/transport/webrtc/node_ops.py | 210 +- packages/meshbay-node/src/meshbay_node/ui/app.py | 7 +- packages/meshbay-node/tests/golden/dispatch.json | 10313 +++++++------------ packages/meshbay-node/tests/test_admin_ops_mnp.py | 176 +- packages/meshbay-node/tests/test_node_status.py | 236 +- .../tests/test_security_regressions.py | 99 +- 12 files changed, 3550 insertions(+), 7648 deletions(-) (limited to 'packages/meshbay-node') diff --git a/packages/meshbay-node/src/meshbay_node/ops/chat.py b/packages/meshbay-node/src/meshbay_node/ops/chat.py index 469e907..539284b 100644 --- a/packages/meshbay-node/src/meshbay_node/ops/chat.py +++ b/packages/meshbay-node/src/meshbay_node/ops/chat.py @@ -17,7 +17,7 @@ log = logging.getLogger("meshbay_node.ops") # # The key a group's chat archive is encrypted under. Generated here, by the # node, and never by a member — the C5b rule is about key material arriving from -# outside, and this is the same rule that lets `gek_rotate` be a signed +# outside, and this is the same rule that lets a group key rotation be an # instruction rather than a delivery. # # An *epoch* rather than a rotation, and the distinction is the whole design: diff --git a/packages/meshbay-node/src/meshbay_node/ops/settings.py b/packages/meshbay-node/src/meshbay_node/ops/settings.py index eade6ca..906cd03 100644 --- a/packages/meshbay-node/src/meshbay_node/ops/settings.py +++ b/packages/meshbay-node/src/meshbay_node/ops/settings.py @@ -182,9 +182,9 @@ async def set_transfer_limits(state: dict, group_id: str, Same shape as every other operator setting: lives on the node (roster.db, not the hub and not node.toml, for the reason change 5 gives — a hub that - decided this would have authority over someone else's machine), signed - (webrtc_server checks the caller's admin authority before this runs), and - live, so the pools are updated in place rather than at the next restart. + decided this would have authority over someone else's machine), set on the + node's own machine (loopback API, CLI), and live, so the pools are updated + in place rather than at the next restart. """ roster = _roster(state) ctx = _group_ctx(state, group_id) diff --git a/packages/meshbay-node/src/meshbay_node/transport/webrtc/admin.py b/packages/meshbay-node/src/meshbay_node/transport/webrtc/admin.py index 738dbce..9a6cbd1 100644 --- a/packages/meshbay-node/src/meshbay_node/transport/webrtc/admin.py +++ b/packages/meshbay-node/src/meshbay_node/transport/webrtc/admin.py @@ -17,13 +17,10 @@ from meshbay_common.adminop import ( OP_CHAT_LINK_PREVIEW, OP_DIR_DELETE, OP_FILE_DELETE, - OP_GEK_ROTATE, - OP_GROUP_DETACH, OP_INVITE_CANCEL, OP_INVITE_CREATE, OP_INVITE_LINK_CREATE, OP_MEMBER_REVOKE, - OP_MEMBER_UNPIN, OP_MUSICBRAINZ_ENABLED, OP_ROOT_EJECT, OP_ROOT_PLUG, @@ -34,7 +31,6 @@ from meshbay_common.adminop import ( OP_TMDB_ENABLED, OP_TMDB_OVERRIDE, OP_TMDB_REMATCH, - OP_TRANSFER_LIMITS, admin_transcript, ) from meshbay_common.crypto import pk_to_b64 @@ -59,10 +55,7 @@ _ADMIN_EXECUTORS = { OP_INVITE_CREATE: "_admin_exec_invite_create", OP_INVITE_LINK_CREATE: "_admin_exec_invite_link_create", OP_INVITE_CANCEL: "_admin_exec_invite_cancel", - OP_GEK_ROTATE: "_admin_exec_gek_rotate", - OP_MEMBER_UNPIN: "_admin_exec_member_unpin", OP_APPS_ENABLED: "_admin_exec_apps_enabled", - OP_TRANSFER_LIMITS: "_admin_exec_transfer_limits", OP_SET_SCAN_SETTINGS: "_admin_exec_set_scan_settings", OP_TMDB_CONFIG: "_admin_exec_tmdb_config", OP_TMDB_ENABLED: "_admin_exec_tmdb_enabled", @@ -77,7 +70,6 @@ _ADMIN_EXECUTORS = { OP_CHAT_EPOCH: "_admin_exec_chat_epoch", OP_ROOT_EJECT: "_admin_exec_root_eject", OP_ROOT_PLUG: "_admin_exec_root_plug", - OP_GROUP_DETACH: "_admin_exec_group_detach", } @@ -174,49 +166,12 @@ class AdminMixin: says "the hub says you are the owner", which is the one thing NS4 and M3 rule out: a hub that can name the operator can install itself as node administrator. It rides the handshake ack so a client knows whether - to offer the Node page at all, and every operation is gated on - `_operator_device()` below. + to offer operator controls at all; every operation is gated on a + signature (`_verify_admin_sig`). """ node_user_id = self._ctx.get("node_user_id") return bool(node_user_id and self._user_id == node_user_id) - async def _operator_device(self) -> bool: - """ - Whether this connection may run the node's own controls. - - Two things, and the second is the one that cannot be forged: - - - the account is the one this node belongs to (`_is_node_admin`), which - is what keeps node-wide controls with the machine's owner rather than - with every paired operator of every group on it; and - - **the device on this connection proved a key the node pinned as an - operator**. `device_hello` is signed over a transcript naming this - node, this group and this connection's nonce, and `operator_pks()` is - rebuilt from the roster on each call, so an unpinned browser and a - revoked one are both refused at once. - - The second clause is the fix for the door this used to leave open. - `node_status`, `node_settings_set`, `roster_read`, `denylist_read`, - `denylist_clear` and `node_reload` were gated on the account id alone — - a value the hub chooses. An active hub that can also reach the group key - (which §3.5 concedes it can in an open-join group) could therefore mint - a token for the owner's account and read `node_status`, which lists - every group on the node with the operator's **absolute paths**, or clear - the denylist, which is the persisted revocation H4 exists to keep. - - It holds no user keys and cannot countersign anything, so it cannot - produce a `device_hello` — which is the same property device linking - rests on (§3.3), applied to the node's own surface. - """ - if not self._is_node_admin(): - return False - if not self._device_confirmed or not self._pinned_pk: - return False - roster = self._ctx.get("roster") - if roster is None: - return False - return self._pinned_pk in await roster.operator_pks() - def _has_admin_authority(self) -> bool: """ Cheap synchronous pre-check: is there anyone who could authorize this? diff --git a/packages/meshbay-node/src/meshbay_node/transport/webrtc/chat.py b/packages/meshbay-node/src/meshbay_node/transport/webrtc/chat.py index 493d7f0..dc43ae2 100644 --- a/packages/meshbay-node/src/meshbay_node/transport/webrtc/chat.py +++ b/packages/meshbay-node/src/meshbay_node/transport/webrtc/chat.py @@ -198,9 +198,9 @@ class ChatMixin: There is no switch to turn chat encryption on: MNP 2.0 has no plaintext chat to fall back to. What an operator may want to do deliberately is - move the key on — the same instruction as `gek_rotate`, and signed for - the same reason. The removals that matter (member revoke, member unpin, - device revoke, `gek_rotate`) already open one by themselves. + move the key on, which is signed like the rest. The removals that matter + (member revoke, member unpin, device revoke, a group key rotation) + already open one by themselves. """ group_id = str(msg.get("group_id", "")).strip() or self._group_id if not group_id: diff --git a/packages/meshbay-node/src/meshbay_node/transport/webrtc/dispatch.py b/packages/meshbay-node/src/meshbay_node/transport/webrtc/dispatch.py index 1ba5445..4bf9dbb 100644 --- a/packages/meshbay-node/src/meshbay_node/transport/webrtc/dispatch.py +++ b/packages/meshbay-node/src/meshbay_node/transport/webrtc/dispatch.py @@ -48,7 +48,6 @@ _HANDLERS = { MNP.DEVICE_REVOKE: ("_do_device_revoke", SPAWNED), MNP.DEVICE_HELLO: ("_do_device_hello", SPAWNED), MNP.APPS_ENABLED: ("_do_apps_enabled", INLINE), - MNP.TRANSFER_LIMITS: ("_do_transfer_limits", INLINE), MNP.SET_SCAN_SETTINGS: ("_do_set_scan_settings", INLINE), MNP.TMDB_CONFIG: ("_do_tmdb_config", INLINE), MNP.TMDB_ENABLED: ("_do_tmdb_enabled", INLINE), @@ -68,18 +67,9 @@ _HANDLERS = { MNP.MUSIC_META_REQ: ("_do_music_meta_request", SPAWNED), MNP.AUDIO_TRANSCODE_REQ: ("_do_audio_transcode_request", SPAWNED), MNP.SUBTITLE_REQ: ("_do_subtitle_request", SPAWNED), - MNP.MEMBER_UNPIN: ("_do_member_unpin", INLINE), - MNP.GEK_ROTATE: ("_do_gek_rotate", INLINE), - MNP.NODE_STATUS: ("_do_node_status", SPAWNED), MNP.ROOT_REMOVE: ("_do_root_remove", INLINE), MNP.ROOT_EJECT: ("_do_root_eject", INLINE), MNP.ROOT_PLUG: ("_do_root_plug", INLINE), - MNP.ROSTER_READ: ("_do_roster_read", SPAWNED), - MNP.DENYLIST_READ: ("_do_denylist_read", SPAWNED), - MNP.DENYLIST_CLEAR: ("_do_denylist_clear", SPAWNED), - MNP.GROUP_DETACH: ("_do_group_detach", INLINE), - MNP.NODE_SETTINGS_SET: ("_do_node_settings_set", SPAWNED), - MNP.NODE_RELOAD: ("_do_node_reload", SPAWNED), MNP.KEYPAIR_BUNDLE_STORE: ("_do_keypair_bundle_store", SPAWNED), MNP.KEYPAIR_BUNDLE_DELETE: ("_do_keypair_bundle_delete", SPAWNED), MNP.USER_BLOB_STORE: ("_do_user_blob_store", SPAWNED), diff --git a/packages/meshbay-node/src/meshbay_node/transport/webrtc/group_ops.py b/packages/meshbay-node/src/meshbay_node/transport/webrtc/group_ops.py index 3756eac..a94e2aa 100644 --- a/packages/meshbay-node/src/meshbay_node/transport/webrtc/group_ops.py +++ b/packages/meshbay-node/src/meshbay_node/transport/webrtc/group_ops.py @@ -5,9 +5,7 @@ from meshbay_common import MNP_VERSION from meshbay_common.adminop import ( OP_APP_DIRECTORIES, OP_APPS_ENABLED, - OP_GEK_ROTATE, OP_MEMBER_REVOKE, - OP_MEMBER_UNPIN, OP_SEARCH_LISTED, ) from meshbay_common.groupbox import PURPOSE_ROSTER, seal @@ -41,88 +39,6 @@ class GroupOpsMixin: return self._issue_admin_challenge(OP_MEMBER_REVOKE, user_id) - def _do_gek_rotate(self, msg: dict) -> None: - """ - Ask for a new group key. Operator only, and signed. - - This is what actually removes a revoked member's access: revocation - stops the node serving the *next* key, and they still hold the current - one. The node generates the replacement itself — nothing arriving here - contributes key material, which is what the C5b rule is about. - """ - group_id = str(msg.get("group_id", "")).strip() or self._group_id - if not group_id: - self._send({"type": "error", "detail": "No group on this connection"}) - return - if not self._has_admin_authority(): - self._send({"type": "error", "detail": "No authorized key for this"}) - return - self._issue_admin_challenge(OP_GEK_ROTATE, group_id, group_id=group_id) - - async def _admin_exec_gek_rotate( - self, pending: dict, transcript: bytes, sig: bytes, - ) -> None: - if not await self._verify_admin_sig(transcript, sig): - self._send({"type": "error", "detail": "Signature verification failed"}) - self._audit("admin_auth_failed", f"gek_rotate:{pending['subject'][:8]}") - return - try: - result = await self._run_op( - ops.set_gek, pending["subject"], rotate=True) - except ops.OpError as e: - self._send({"type": "error", "detail": e.message}) - return - # The operator is rotating because somebody left, and the chat archive - # key is not derived from the group key — so rotating that one does not - # move this one. Doing both here is what makes "rotate after a removal" - # mean the same thing for chat as it does for files. - await self._new_chat_epoch(pending["subject"], "gek_rotate") - self._audit("gek_rotate", pending["subject"]) - self._send({ - "type": MNP.GEK_ROTATE_ACK, "v": MNP_VERSION, - "group_id": pending["subject"], - "authorized_members": result.get("authorized_members", 0), - # Said plainly, because rotating is the step people skip: content - # already downloaded stays readable to whoever holds it. - "note": "members re-receive the key on their next connect; content " - "already downloaded is unaffected", - }) - - def _do_member_unpin(self, msg: dict) -> None: - """Forget a pinned identity, so someone can pair again with a new key.""" - user_id = str(msg.get("user_id", "")).strip() - if not user_id: - self._send({"type": "error", "detail": "Missing user_id"}) - return - if user_id == self._user_id: - # Unpinning yourself over the connection your pin authorizes would - # end that connection's authority mid-operation. - self._send({"type": "error", "detail": "Cannot unpin yourself"}) - return - if not self._has_admin_authority(): - self._send({"type": "error", "detail": "No authorized key for this"}) - return - self._issue_admin_challenge(OP_MEMBER_UNPIN, user_id) - - async def _admin_exec_member_unpin( - self, pending: dict, transcript: bytes, sig: bytes, - ) -> None: - user_id = pending["subject"] - if not await self._verify_admin_sig(transcript, sig): - self._send({"type": "error", "detail": "Signature verification failed"}) - self._audit("admin_auth_failed", f"member_unpin:{user_id[:8]}") - return - try: - # The new chat epochs and the closed sessions are the op's own - # (`ops.members._after_removal`), for every door alike. - await self._run_op(ops.unpin_member, user_id) - except ops.OpError as e: - self._send({"type": "error", "detail": e.message}) - return - self._audit("member_unpin", user_id) - self._send({"type": MNP.MEMBER_UNPIN_ACK, "v": MNP_VERSION, - "user_id": user_id}) - # Every "application" a group can show. Photos joins this set (and # apps.js's registry, client-side) when it lands; nothing else about # this handler changes. DEFAULT_APPS (roster.py) deliberately does not diff --git a/packages/meshbay-node/src/meshbay_node/transport/webrtc/node_ops.py b/packages/meshbay-node/src/meshbay_node/transport/webrtc/node_ops.py index acaa33f..237a359 100644 --- a/packages/meshbay-node/src/meshbay_node/transport/webrtc/node_ops.py +++ b/packages/meshbay-node/src/meshbay_node/transport/webrtc/node_ops.py @@ -1,16 +1,16 @@ -"""The operator's controls over the node itself: status and settings, roster -and denylist, roots, hosted groups, reload, scan pacing and transfer limits.""" +"""The operator's controls over a group's roots and scan pacing that MNP carries: +removing, ejecting and plugging a root. What widens the sharing, and the node's +own status, settings, roster and denylist, are the loopback API's and the CLI's +(MNP 6.0).""" import logging from meshbay_common import MNP_VERSION from meshbay_common.adminop import ( - OP_GROUP_DETACH, OP_ROOT_EJECT, OP_ROOT_PLUG, OP_ROOT_REMOVE, OP_SET_SCAN_SETTINGS, - OP_TRANSFER_LIMITS, ) from meshbay_common.protocol import MNP @@ -55,64 +55,6 @@ class NodeOpsMixin: self._issue_admin_challenge( OP_SET_SCAN_SETTINGS, f"{reconcile:g},{debounce:g}") - MIN_TRANSFER_LIMIT = 1 - MAX_TRANSFER_LIMIT = 32 - - def _do_transfer_limits(self, msg: dict) -> None: - """How many transfers one member may run at once in this group. - - Zero is not "unlimited" and is refused: a member who may not transfer at - all is a member the operator revokes, and reading 0 as no-limit would - make the most dangerous value the easiest to type by accident. - """ - try: - downloads = int(msg.get("downloads")) - uploads = int(msg.get("uploads")) - except (TypeError, ValueError): - self._send({"type": "error", "detail": "Invalid transfer limits"}) - return - for value in (downloads, uploads): - if not (self.MIN_TRANSFER_LIMIT <= value <= self.MAX_TRANSFER_LIMIT): - self._send({"type": "error", - "detail": f"transfer limits must be between " - f"{self.MIN_TRANSFER_LIMIT} and " - f"{self.MAX_TRANSFER_LIMIT}"}) - return - if not self._has_admin_authority(): - self._send({"type": "error", "detail": "No authorized key for this"}) - return - self._issue_admin_challenge(OP_TRANSFER_LIMITS, - f"d={downloads},u={uploads}") - - async def _admin_exec_transfer_limits( - self, pending: dict, transcript: bytes, sig: bytes, - ) -> None: - try: - parts = dict(p.split("=") for p in pending["subject"].split(",")) - downloads, uploads = int(parts["d"]), int(parts["u"]) - except (ValueError, KeyError): - self._send({"type": "error", "detail": "Invalid transfer limits"}) - return - if not await self._verify_admin_sig(transcript, sig): - self._send({"type": "error", "detail": "Signature verification failed"}) - self._audit("admin_auth_failed", f"transfer_limits:{pending['subject']}") - return - try: - result = await self._run_op( - ops.set_transfer_limits, self._group_id or "", downloads, uploads) - except ops.OpError as e: - self._send({"type": "error", "detail": e.message}) - return - self._audit("transfer_limits", pending["subject"]) - - notice = {"type": MNP.TRANSFER_LIMITS_ACK, "v": MNP_VERSION, - "limits": result["limits"]} - for session in list(self._peer_registry().values()): - try: - session._send(notice) - except Exception: - pass - async def _admin_exec_set_scan_settings( self, pending: dict, transcript: bytes, sig: bytes, ) -> None: @@ -141,150 +83,6 @@ class NodeOpsMixin: except Exception: pass - # ── Node management (D5) ───────────────────────────────────────────────── - - async def _do_node_status(self, msg: dict) -> None: - """All groups, roots, peers — the operator's overview. - - Including every root's absolute path, which is why this is gated on a - proved operator device and not on an account the hub named. - """ - node_uid = self._ctx.get("node_user_id") - log.info("node_status: user=%s node_user=%s owner=%s device=%s", - self._user_id, node_uid, self._is_node_admin(), - "confirmed" if self._device_confirmed else "unidentified") - if not await self._operator_device(): - self._send({"type": "error", "detail": "Not the node operator", - "code": "not_operator"}) - return - try: - result = await self._run_op(ops.list_groups) - self._send({"type": MNP.NODE_STATUS_ACK, "v": MNP_VERSION, **result}) - except ops.OpError as e: - self._send({"type": "error", "detail": e.message}) - except Exception as e: - log.error("node_status failed: %s", e, exc_info=True) - self._send({"type": "error", "detail": "Internal error"}) - - async def _do_node_settings_set(self, msg: dict) -> None: - if not await self._operator_device(): - self._send({"type": "error", "detail": "Not the node operator", - "code": "not_operator"}) - return - settings = msg.get("settings", {}) - if not settings: - self._send({"type": "error", "detail": "No settings provided"}) - return - try: - result = await self._run_op(ops.set_node_settings, settings) - self._send({"type": MNP.NODE_SETTINGS_SET_ACK, "v": MNP_VERSION, - **result}) - except ops.OpError as e: - self._send({"type": "error", "detail": e.message}) - except Exception as e: - log.error("node_settings_set failed: %s", e, exc_info=True) - self._send({"type": "error", "detail": "Internal error"}) - - async def _do_roster_read(self, msg: dict) -> None: - if not await self._operator_device(): - self._send({"type": "error", "detail": "Not the node operator", - "code": "not_operator"}) - return - group_id = str(msg.get("group_id", "")).strip() - try: - result = await self._run_op(ops.read_roster, group_id) - self._send({"type": MNP.ROSTER_READ_ACK, "v": MNP_VERSION, **result}) - except ops.OpError as e: - self._send({"type": "error", "detail": e.message}) - except Exception as e: - log.error("roster_read failed: %s", e, exc_info=True) - self._send({"type": "error", "detail": "Internal error"}) - - async def _do_denylist_read(self, msg: dict) -> None: - if not await self._operator_device(): - self._send({"type": "error", "detail": "Not the node operator", - "code": "not_operator"}) - return - try: - result = await self._run_op(ops.read_denylist) - self._send({"type": MNP.DENYLIST_READ_ACK, "v": MNP_VERSION, **result}) - except ops.OpError as e: - self._send({"type": "error", "detail": e.message}) - except Exception as e: - log.error("denylist_read failed: %s", e, exc_info=True) - self._send({"type": "error", "detail": "Internal error"}) - - async def _do_denylist_clear(self, msg: dict) -> None: - if not await self._operator_device(): - self._send({"type": "error", "detail": "Not the node operator", - "code": "not_operator"}) - return - subject = str(msg.get("subject", "")).strip() - try: - result = await self._run_op(ops.clear_denylist, subject=subject) - self._audit("denylist_clear", subject or "all") - self._send({"type": MNP.DENYLIST_CLEAR_ACK, "v": MNP_VERSION, **result}) - except ops.OpError as e: - self._send({"type": "error", "detail": e.message}) - except Exception as e: - log.error("denylist_clear failed: %s", e, exc_info=True) - self._send({"type": "error", "detail": "Internal error"}) - - def _do_group_detach(self, msg: dict) -> None: - name = str(msg.get("name", "")).strip() - if not name: - self._send({"type": "error", "detail": "Missing group name or id"}) - return - if not self._has_admin_authority(): - self._send({"type": "error", "detail": "No authorized key for this"}) - return - self._issue_admin_challenge( - OP_GROUP_DETACH, name, - payload={"name": name}, - group_id="") - - async def _admin_exec_group_detach( - self, pending: dict, transcript: bytes, sig: bytes, - ) -> None: - if not await self._verify_admin_sig(transcript, sig): - self._send({"type": "error", "detail": "Signature verification failed"}) - self._audit("admin_auth_failed", - f"group_detach:{pending['subject'][:16]}") - return - p = pending.get("payload") or {} - try: - result = await self._run_op(ops.detach_group, p["name"]) - except ops.OpError as e: - self._send({"type": "error", "detail": e.message}) - return - self._audit("group_detach", pending["subject"]) - self._send({"type": MNP.GROUP_DETACH_ACK, "v": MNP_VERSION, **result}) - state = self._ctx.get("daemon_state") - reload_fn = state.get("reload_fn") if state else None - if reload_fn: - try: - await reload_fn() - except Exception as e: - log.error("Reload after group_detach failed: %s", e) - - async def _do_node_reload(self, msg: dict) -> None: - if not await self._operator_device(): - self._send({"type": "error", "detail": "Not the node operator", - "code": "not_operator"}) - return - state = self._ctx.get("daemon_state") - reload_fn = state.get("reload_fn") if state else None - if not reload_fn: - self._send({"type": "error", "detail": "Reload not available"}) - return - try: - await reload_fn() - self._send({"type": MNP.NODE_RELOAD_ACK, "v": MNP_VERSION, - "status": "reloaded"}) - except Exception as e: - log.error("node_reload failed: %s", e, exc_info=True) - self._send({"type": "error", "detail": "Reload failed"}) - def _do_root_remove(self, msg: dict) -> None: target_group = str(msg.get("group_id", "")).strip() root_name = str(msg.get("root_name", "")).strip() diff --git a/packages/meshbay-node/src/meshbay_node/ui/app.py b/packages/meshbay-node/src/meshbay_node/ui/app.py index f810903..db11a09 100644 --- a/packages/meshbay-node/src/meshbay_node/ui/app.py +++ b/packages/meshbay-node/src/meshbay_node/ui/app.py @@ -535,10 +535,9 @@ def create_ui_app(state: dict) -> FastAPI: @app.put("/api/groups/{group_id}/transfer-limits") async def set_transfer_limits(group_id: str, payload: dict): - # The same `ops.set_transfer_limits` the signed MNP handler calls. The - # op existed with only that one door, and nothing anywhere opened it — - # so the per-member cap sat at its default of 2 with no way to change - # it, which from outside is indistinguishable from a hardcoded 2. + # The only door to `ops.set_transfer_limits` (the CLI uses it). It once + # had only a signed MNP message, which nothing anywhere sent — so the + # per-member cap sat at its default of 2 with no way to change it. return await _op(lambda: ops.set_transfer_limits( state, group_id, int(payload.get("downloads", 0)), int(payload.get("uploads", 0)))) diff --git a/packages/meshbay-node/tests/golden/dispatch.json b/packages/meshbay-node/tests/golden/dispatch.json index 345b077..61bbc45 100644 --- a/packages/meshbay-node/tests/golden/dispatch.json +++ b/packages/meshbay-node/tests/golden/dispatch.json @@ -76,22 +76,6 @@ "_admin_exec_file_delete" ] }, - "gek_rotate": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_admin_exec_gek_rotate" - ] - }, - "group_detach": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_admin_exec_group_detach" - ] - }, "invite_cancel": { "audit": [], "log": [], @@ -124,14 +108,6 @@ "_admin_exec_member_revoke" ] }, - "member_unpin": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_admin_exec_member_unpin" - ] - }, "musicbrainz_enabled": { "audit": [], "log": [], @@ -223,14 +199,6 @@ "spawned": [ "_admin_exec_tmdb_rematch" ] - }, - "transfer_limits": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_admin_exec_transfer_limits" - ] } }, "dispatch": { @@ -4005,7 +3973,7 @@ "sent": [], "spawned": [] }, - "denylist_clear | challenged | bare": { + "device_add | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -4017,7 +3985,7 @@ ], "spawned": [] }, - "denylist_clear | challenged | lists": { + "device_add | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -4029,7 +3997,7 @@ ], "spawned": [] }, - "denylist_clear | challenged | numbers": { + "device_add | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -4041,7 +4009,7 @@ ], "spawned": [] }, - "denylist_clear | challenged | strings": { + "device_add | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -4053,7 +4021,7 @@ ], "spawned": [] }, - "denylist_clear | fresh | bare": { + "device_add | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -4065,7 +4033,7 @@ ], "spawned": [] }, - "denylist_clear | fresh | lists": { + "device_add | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -4077,7 +4045,7 @@ ], "spawned": [] }, - "denylist_clear | fresh | numbers": { + "device_add | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -4089,7 +4057,7 @@ ], "spawned": [] }, - "denylist_clear | fresh | strings": { + "device_add | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -4101,71 +4069,71 @@ ], "spawned": [] }, - "denylist_clear | member | bare": { + "device_add | member | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_denylist_clear" + "_do_device_add" ] }, - "denylist_clear | member | lists": { + "device_add | member | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_denylist_clear" + "_do_device_add" ] }, - "denylist_clear | member | numbers": { + "device_add | member | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_denylist_clear" + "_do_device_add" ] }, - "denylist_clear | member | strings": { + "device_add | member | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_denylist_clear" + "_do_device_add" ] }, - "denylist_clear | operator | bare": { + "device_add | operator | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_denylist_clear" + "_do_device_add" ] }, - "denylist_clear | operator | lists": { + "device_add | operator | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_denylist_clear" + "_do_device_add" ] }, - "denylist_clear | operator | numbers": { + "device_add | operator | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_denylist_clear" + "_do_device_add" ] }, - "denylist_clear | operator | strings": { + "device_add | operator | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_denylist_clear" + "_do_device_add" ] }, - "denylist_clear_ack | challenged | bare": { + "device_add_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -4177,7 +4145,7 @@ ], "spawned": [] }, - "denylist_clear_ack | challenged | lists": { + "device_add_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -4189,7 +4157,7 @@ ], "spawned": [] }, - "denylist_clear_ack | challenged | numbers": { + "device_add_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -4201,7 +4169,7 @@ ], "spawned": [] }, - "denylist_clear_ack | challenged | strings": { + "device_add_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -4213,7 +4181,7 @@ ], "spawned": [] }, - "denylist_clear_ack | fresh | bare": { + "device_add_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -4225,7 +4193,7 @@ ], "spawned": [] }, - "denylist_clear_ack | fresh | lists": { + "device_add_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -4237,7 +4205,7 @@ ], "spawned": [] }, - "denylist_clear_ack | fresh | numbers": { + "device_add_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -4249,7 +4217,7 @@ ], "spawned": [] }, - "denylist_clear_ack | fresh | strings": { + "device_add_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -4261,7 +4229,7 @@ ], "spawned": [] }, - "denylist_clear_ack | member | bare": { + "device_add_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4269,7 +4237,7 @@ "sent": [], "spawned": [] }, - "denylist_clear_ack | member | lists": { + "device_add_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4277,7 +4245,7 @@ "sent": [], "spawned": [] }, - "denylist_clear_ack | member | numbers": { + "device_add_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4285,7 +4253,7 @@ "sent": [], "spawned": [] }, - "denylist_clear_ack | member | strings": { + "device_add_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4293,7 +4261,7 @@ "sent": [], "spawned": [] }, - "denylist_clear_ack | operator | bare": { + "device_add_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4301,7 +4269,7 @@ "sent": [], "spawned": [] }, - "denylist_clear_ack | operator | lists": { + "device_add_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4309,7 +4277,7 @@ "sent": [], "spawned": [] }, - "denylist_clear_ack | operator | numbers": { + "device_add_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4317,7 +4285,7 @@ "sent": [], "spawned": [] }, - "denylist_clear_ack | operator | strings": { + "device_add_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4325,7 +4293,7 @@ "sent": [], "spawned": [] }, - "denylist_read | challenged | bare": { + "device_add_request | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -4337,7 +4305,7 @@ ], "spawned": [] }, - "denylist_read | challenged | lists": { + "device_add_request | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -4349,7 +4317,7 @@ ], "spawned": [] }, - "denylist_read | challenged | numbers": { + "device_add_request | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -4361,7 +4329,7 @@ ], "spawned": [] }, - "denylist_read | challenged | strings": { + "device_add_request | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -4373,7 +4341,7 @@ ], "spawned": [] }, - "denylist_read | fresh | bare": { + "device_add_request | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -4385,7 +4353,7 @@ ], "spawned": [] }, - "denylist_read | fresh | lists": { + "device_add_request | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -4397,7 +4365,7 @@ ], "spawned": [] }, - "denylist_read | fresh | numbers": { + "device_add_request | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -4409,7 +4377,7 @@ ], "spawned": [] }, - "denylist_read | fresh | strings": { + "device_add_request | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -4421,71 +4389,71 @@ ], "spawned": [] }, - "denylist_read | member | bare": { + "device_add_request | member | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_denylist_read" + "_do_device_request" ] }, - "denylist_read | member | lists": { + "device_add_request | member | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_denylist_read" + "_do_device_request" ] }, - "denylist_read | member | numbers": { + "device_add_request | member | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_denylist_read" + "_do_device_request" ] }, - "denylist_read | member | strings": { + "device_add_request | member | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_denylist_read" + "_do_device_request" ] }, - "denylist_read | operator | bare": { + "device_add_request | operator | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_denylist_read" + "_do_device_request" ] }, - "denylist_read | operator | lists": { + "device_add_request | operator | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_denylist_read" + "_do_device_request" ] }, - "denylist_read | operator | numbers": { + "device_add_request | operator | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_denylist_read" + "_do_device_request" ] }, - "denylist_read | operator | strings": { + "device_add_request | operator | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_denylist_read" + "_do_device_request" ] }, - "denylist_read_ack | challenged | bare": { + "device_add_request_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -4497,7 +4465,7 @@ ], "spawned": [] }, - "denylist_read_ack | challenged | lists": { + "device_add_request_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -4509,7 +4477,7 @@ ], "spawned": [] }, - "denylist_read_ack | challenged | numbers": { + "device_add_request_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -4521,7 +4489,7 @@ ], "spawned": [] }, - "denylist_read_ack | challenged | strings": { + "device_add_request_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -4533,7 +4501,7 @@ ], "spawned": [] }, - "denylist_read_ack | fresh | bare": { + "device_add_request_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -4545,7 +4513,7 @@ ], "spawned": [] }, - "denylist_read_ack | fresh | lists": { + "device_add_request_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -4557,7 +4525,7 @@ ], "spawned": [] }, - "denylist_read_ack | fresh | numbers": { + "device_add_request_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -4569,7 +4537,7 @@ ], "spawned": [] }, - "denylist_read_ack | fresh | strings": { + "device_add_request_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -4581,7 +4549,7 @@ ], "spawned": [] }, - "denylist_read_ack | member | bare": { + "device_add_request_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4589,7 +4557,7 @@ "sent": [], "spawned": [] }, - "denylist_read_ack | member | lists": { + "device_add_request_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4597,7 +4565,7 @@ "sent": [], "spawned": [] }, - "denylist_read_ack | member | numbers": { + "device_add_request_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4605,7 +4573,7 @@ "sent": [], "spawned": [] }, - "denylist_read_ack | member | strings": { + "device_add_request_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4613,7 +4581,7 @@ "sent": [], "spawned": [] }, - "denylist_read_ack | operator | bare": { + "device_add_request_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4621,7 +4589,7 @@ "sent": [], "spawned": [] }, - "denylist_read_ack | operator | lists": { + "device_add_request_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4629,7 +4597,7 @@ "sent": [], "spawned": [] }, - "denylist_read_ack | operator | numbers": { + "device_add_request_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4637,7 +4605,7 @@ "sent": [], "spawned": [] }, - "denylist_read_ack | operator | strings": { + "device_add_request_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4645,7 +4613,7 @@ "sent": [], "spawned": [] }, - "device_add | challenged | bare": { + "device_hello | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -4657,7 +4625,7 @@ ], "spawned": [] }, - "device_add | challenged | lists": { + "device_hello | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -4669,7 +4637,7 @@ ], "spawned": [] }, - "device_add | challenged | numbers": { + "device_hello | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -4681,7 +4649,7 @@ ], "spawned": [] }, - "device_add | challenged | strings": { + "device_hello | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -4693,7 +4661,7 @@ ], "spawned": [] }, - "device_add | fresh | bare": { + "device_hello | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -4705,7 +4673,7 @@ ], "spawned": [] }, - "device_add | fresh | lists": { + "device_hello | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -4717,7 +4685,7 @@ ], "spawned": [] }, - "device_add | fresh | numbers": { + "device_hello | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -4729,7 +4697,7 @@ ], "spawned": [] }, - "device_add | fresh | strings": { + "device_hello | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -4741,71 +4709,71 @@ ], "spawned": [] }, - "device_add | member | bare": { + "device_hello | member | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_add" + "_do_device_hello" ] }, - "device_add | member | lists": { + "device_hello | member | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_add" + "_do_device_hello" ] }, - "device_add | member | numbers": { + "device_hello | member | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_add" + "_do_device_hello" ] }, - "device_add | member | strings": { + "device_hello | member | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_add" + "_do_device_hello" ] }, - "device_add | operator | bare": { + "device_hello | operator | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_add" + "_do_device_hello" ] }, - "device_add | operator | lists": { + "device_hello | operator | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_add" + "_do_device_hello" ] }, - "device_add | operator | numbers": { + "device_hello | operator | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_add" + "_do_device_hello" ] }, - "device_add | operator | strings": { + "device_hello | operator | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_add" + "_do_device_hello" ] }, - "device_add_ack | challenged | bare": { + "device_hello_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -4817,7 +4785,7 @@ ], "spawned": [] }, - "device_add_ack | challenged | lists": { + "device_hello_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -4829,7 +4797,7 @@ ], "spawned": [] }, - "device_add_ack | challenged | numbers": { + "device_hello_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -4841,7 +4809,7 @@ ], "spawned": [] }, - "device_add_ack | challenged | strings": { + "device_hello_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -4853,7 +4821,7 @@ ], "spawned": [] }, - "device_add_ack | fresh | bare": { + "device_hello_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -4865,7 +4833,7 @@ ], "spawned": [] }, - "device_add_ack | fresh | lists": { + "device_hello_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -4877,7 +4845,7 @@ ], "spawned": [] }, - "device_add_ack | fresh | numbers": { + "device_hello_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -4889,7 +4857,7 @@ ], "spawned": [] }, - "device_add_ack | fresh | strings": { + "device_hello_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -4901,7 +4869,7 @@ ], "spawned": [] }, - "device_add_ack | member | bare": { + "device_hello_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4909,7 +4877,7 @@ "sent": [], "spawned": [] }, - "device_add_ack | member | lists": { + "device_hello_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4917,7 +4885,7 @@ "sent": [], "spawned": [] }, - "device_add_ack | member | numbers": { + "device_hello_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4925,7 +4893,7 @@ "sent": [], "spawned": [] }, - "device_add_ack | member | strings": { + "device_hello_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4933,7 +4901,7 @@ "sent": [], "spawned": [] }, - "device_add_ack | operator | bare": { + "device_hello_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4941,7 +4909,7 @@ "sent": [], "spawned": [] }, - "device_add_ack | operator | lists": { + "device_hello_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4949,7 +4917,7 @@ "sent": [], "spawned": [] }, - "device_add_ack | operator | numbers": { + "device_hello_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4957,7 +4925,7 @@ "sent": [], "spawned": [] }, - "device_add_ack | operator | strings": { + "device_hello_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -4965,7 +4933,7 @@ "sent": [], "spawned": [] }, - "device_add_request | challenged | bare": { + "device_list | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -4977,7 +4945,7 @@ ], "spawned": [] }, - "device_add_request | challenged | lists": { + "device_list | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -4989,7 +4957,7 @@ ], "spawned": [] }, - "device_add_request | challenged | numbers": { + "device_list | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -5001,7 +4969,7 @@ ], "spawned": [] }, - "device_add_request | challenged | strings": { + "device_list | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -5013,7 +4981,7 @@ ], "spawned": [] }, - "device_add_request | fresh | bare": { + "device_list | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -5025,7 +4993,7 @@ ], "spawned": [] }, - "device_add_request | fresh | lists": { + "device_list | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -5037,7 +5005,7 @@ ], "spawned": [] }, - "device_add_request | fresh | numbers": { + "device_list | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -5049,7 +5017,7 @@ ], "spawned": [] }, - "device_add_request | fresh | strings": { + "device_list | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -5061,71 +5029,71 @@ ], "spawned": [] }, - "device_add_request | member | bare": { + "device_list | member | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_request" + "_do_device_list" ] }, - "device_add_request | member | lists": { + "device_list | member | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_request" + "_do_device_list" ] }, - "device_add_request | member | numbers": { + "device_list | member | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_request" + "_do_device_list" ] }, - "device_add_request | member | strings": { + "device_list | member | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_request" + "_do_device_list" ] }, - "device_add_request | operator | bare": { + "device_list | operator | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_request" + "_do_device_list" ] }, - "device_add_request | operator | lists": { + "device_list | operator | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_request" + "_do_device_list" ] }, - "device_add_request | operator | numbers": { + "device_list | operator | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_request" + "_do_device_list" ] }, - "device_add_request | operator | strings": { + "device_list | operator | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_request" + "_do_device_list" ] }, - "device_add_request_ack | challenged | bare": { + "device_list_result | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -5137,7 +5105,7 @@ ], "spawned": [] }, - "device_add_request_ack | challenged | lists": { + "device_list_result | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -5149,7 +5117,7 @@ ], "spawned": [] }, - "device_add_request_ack | challenged | numbers": { + "device_list_result | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -5161,7 +5129,7 @@ ], "spawned": [] }, - "device_add_request_ack | challenged | strings": { + "device_list_result | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -5173,7 +5141,7 @@ ], "spawned": [] }, - "device_add_request_ack | fresh | bare": { + "device_list_result | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -5185,7 +5153,7 @@ ], "spawned": [] }, - "device_add_request_ack | fresh | lists": { + "device_list_result | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -5197,7 +5165,7 @@ ], "spawned": [] }, - "device_add_request_ack | fresh | numbers": { + "device_list_result | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -5209,7 +5177,7 @@ ], "spawned": [] }, - "device_add_request_ack | fresh | strings": { + "device_list_result | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -5221,7 +5189,7 @@ ], "spawned": [] }, - "device_add_request_ack | member | bare": { + "device_list_result | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -5229,7 +5197,7 @@ "sent": [], "spawned": [] }, - "device_add_request_ack | member | lists": { + "device_list_result | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -5237,7 +5205,7 @@ "sent": [], "spawned": [] }, - "device_add_request_ack | member | numbers": { + "device_list_result | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -5245,7 +5213,7 @@ "sent": [], "spawned": [] }, - "device_add_request_ack | member | strings": { + "device_list_result | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -5253,7 +5221,7 @@ "sent": [], "spawned": [] }, - "device_add_request_ack | operator | bare": { + "device_list_result | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -5261,7 +5229,7 @@ "sent": [], "spawned": [] }, - "device_add_request_ack | operator | lists": { + "device_list_result | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -5269,7 +5237,7 @@ "sent": [], "spawned": [] }, - "device_add_request_ack | operator | numbers": { + "device_list_result | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -5277,7 +5245,7 @@ "sent": [], "spawned": [] }, - "device_add_request_ack | operator | strings": { + "device_list_result | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -5285,7 +5253,7 @@ "sent": [], "spawned": [] }, - "device_hello | challenged | bare": { + "device_lookup | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -5297,7 +5265,7 @@ ], "spawned": [] }, - "device_hello | challenged | lists": { + "device_lookup | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -5309,7 +5277,7 @@ ], "spawned": [] }, - "device_hello | challenged | numbers": { + "device_lookup | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -5321,7 +5289,7 @@ ], "spawned": [] }, - "device_hello | challenged | strings": { + "device_lookup | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -5333,7 +5301,7 @@ ], "spawned": [] }, - "device_hello | fresh | bare": { + "device_lookup | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -5345,7 +5313,7 @@ ], "spawned": [] }, - "device_hello | fresh | lists": { + "device_lookup | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -5357,7 +5325,7 @@ ], "spawned": [] }, - "device_hello | fresh | numbers": { + "device_lookup | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -5369,7 +5337,7 @@ ], "spawned": [] }, - "device_hello | fresh | strings": { + "device_lookup | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -5381,71 +5349,71 @@ ], "spawned": [] }, - "device_hello | member | bare": { + "device_lookup | member | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_hello" + "_do_device_lookup" ] }, - "device_hello | member | lists": { + "device_lookup | member | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_hello" + "_do_device_lookup" ] }, - "device_hello | member | numbers": { + "device_lookup | member | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_hello" + "_do_device_lookup" ] }, - "device_hello | member | strings": { + "device_lookup | member | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_hello" + "_do_device_lookup" ] }, - "device_hello | operator | bare": { + "device_lookup | operator | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_hello" + "_do_device_lookup" ] }, - "device_hello | operator | lists": { + "device_lookup | operator | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_hello" + "_do_device_lookup" ] }, - "device_hello | operator | numbers": { + "device_lookup | operator | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_hello" + "_do_device_lookup" ] }, - "device_hello | operator | strings": { + "device_lookup | operator | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_hello" + "_do_device_lookup" ] }, - "device_hello_ack | challenged | bare": { + "device_lookup_result | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -5457,7 +5425,7 @@ ], "spawned": [] }, - "device_hello_ack | challenged | lists": { + "device_lookup_result | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -5469,7 +5437,7 @@ ], "spawned": [] }, - "device_hello_ack | challenged | numbers": { + "device_lookup_result | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -5481,7 +5449,7 @@ ], "spawned": [] }, - "device_hello_ack | challenged | strings": { + "device_lookup_result | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -5493,7 +5461,7 @@ ], "spawned": [] }, - "device_hello_ack | fresh | bare": { + "device_lookup_result | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -5505,7 +5473,7 @@ ], "spawned": [] }, - "device_hello_ack | fresh | lists": { + "device_lookup_result | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -5517,7 +5485,7 @@ ], "spawned": [] }, - "device_hello_ack | fresh | numbers": { + "device_lookup_result | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -5529,7 +5497,7 @@ ], "spawned": [] }, - "device_hello_ack | fresh | strings": { + "device_lookup_result | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -5541,7 +5509,7 @@ ], "spawned": [] }, - "device_hello_ack | member | bare": { + "device_lookup_result | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -5549,7 +5517,7 @@ "sent": [], "spawned": [] }, - "device_hello_ack | member | lists": { + "device_lookup_result | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -5557,7 +5525,7 @@ "sent": [], "spawned": [] }, - "device_hello_ack | member | numbers": { + "device_lookup_result | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -5565,7 +5533,7 @@ "sent": [], "spawned": [] }, - "device_hello_ack | member | strings": { + "device_lookup_result | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -5573,7 +5541,7 @@ "sent": [], "spawned": [] }, - "device_hello_ack | operator | bare": { + "device_lookup_result | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -5581,7 +5549,7 @@ "sent": [], "spawned": [] }, - "device_hello_ack | operator | lists": { + "device_lookup_result | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -5589,7 +5557,7 @@ "sent": [], "spawned": [] }, - "device_hello_ack | operator | numbers": { + "device_lookup_result | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -5597,7 +5565,7 @@ "sent": [], "spawned": [] }, - "device_hello_ack | operator | strings": { + "device_lookup_result | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -5605,7 +5573,7 @@ "sent": [], "spawned": [] }, - "device_list | challenged | bare": { + "device_revoke | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -5617,7 +5585,7 @@ ], "spawned": [] }, - "device_list | challenged | lists": { + "device_revoke | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -5629,7 +5597,7 @@ ], "spawned": [] }, - "device_list | challenged | numbers": { + "device_revoke | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -5641,7 +5609,7 @@ ], "spawned": [] }, - "device_list | challenged | strings": { + "device_revoke | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -5653,7 +5621,7 @@ ], "spawned": [] }, - "device_list | fresh | bare": { + "device_revoke | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -5665,7 +5633,7 @@ ], "spawned": [] }, - "device_list | fresh | lists": { + "device_revoke | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -5677,7 +5645,7 @@ ], "spawned": [] }, - "device_list | fresh | numbers": { + "device_revoke | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -5689,7 +5657,7 @@ ], "spawned": [] }, - "device_list | fresh | strings": { + "device_revoke | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -5701,71 +5669,71 @@ ], "spawned": [] }, - "device_list | member | bare": { + "device_revoke | member | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_list" + "_do_device_revoke" ] }, - "device_list | member | lists": { + "device_revoke | member | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_list" + "_do_device_revoke" ] }, - "device_list | member | numbers": { + "device_revoke | member | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_list" + "_do_device_revoke" ] }, - "device_list | member | strings": { + "device_revoke | member | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_list" + "_do_device_revoke" ] }, - "device_list | operator | bare": { + "device_revoke | operator | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_list" + "_do_device_revoke" ] }, - "device_list | operator | lists": { + "device_revoke | operator | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_list" + "_do_device_revoke" ] }, - "device_list | operator | numbers": { + "device_revoke | operator | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_list" + "_do_device_revoke" ] }, - "device_list | operator | strings": { + "device_revoke | operator | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_list" + "_do_device_revoke" ] }, - "device_list_result | challenged | bare": { + "dir_create | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -5777,7 +5745,7 @@ ], "spawned": [] }, - "device_list_result | challenged | lists": { + "dir_create | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -5789,7 +5757,7 @@ ], "spawned": [] }, - "device_list_result | challenged | numbers": { + "dir_create | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -5801,7 +5769,7 @@ ], "spawned": [] }, - "device_list_result | challenged | strings": { + "dir_create | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -5813,7 +5781,7 @@ ], "spawned": [] }, - "device_list_result | fresh | bare": { + "dir_create | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -5825,7 +5793,7 @@ ], "spawned": [] }, - "device_list_result | fresh | lists": { + "dir_create | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -5837,7 +5805,7 @@ ], "spawned": [] }, - "device_list_result | fresh | numbers": { + "dir_create | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -5849,7 +5817,7 @@ ], "spawned": [] }, - "device_list_result | fresh | strings": { + "dir_create | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -5861,71 +5829,71 @@ ], "spawned": [] }, - "device_list_result | member | bare": { + "dir_create | member | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_dir_create" + ] }, - "device_list_result | member | lists": { + "dir_create | member | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_dir_create" + ] }, - "device_list_result | member | numbers": { + "dir_create | member | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_dir_create" + ] }, - "device_list_result | member | strings": { + "dir_create | member | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_dir_create" + ] }, - "device_list_result | operator | bare": { + "dir_create | operator | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_dir_create" + ] }, - "device_list_result | operator | lists": { + "dir_create | operator | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_dir_create" + ] }, - "device_list_result | operator | numbers": { + "dir_create | operator | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_dir_create" + ] }, - "device_list_result | operator | strings": { + "dir_create | operator | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_dir_create" + ] }, - "device_lookup | challenged | bare": { + "dir_create_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -5937,7 +5905,7 @@ ], "spawned": [] }, - "device_lookup | challenged | lists": { + "dir_create_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -5949,7 +5917,7 @@ ], "spawned": [] }, - "device_lookup | challenged | numbers": { + "dir_create_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -5961,7 +5929,7 @@ ], "spawned": [] }, - "device_lookup | challenged | strings": { + "dir_create_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -5973,7 +5941,7 @@ ], "spawned": [] }, - "device_lookup | fresh | bare": { + "dir_create_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -5985,7 +5953,7 @@ ], "spawned": [] }, - "device_lookup | fresh | lists": { + "dir_create_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -5997,7 +5965,7 @@ ], "spawned": [] }, - "device_lookup | fresh | numbers": { + "dir_create_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -6009,7 +5977,7 @@ ], "spawned": [] }, - "device_lookup | fresh | strings": { + "dir_create_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -6021,71 +5989,231 @@ ], "spawned": [] }, - "device_lookup | member | bare": { + "dir_create_ack | member | bare": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_device_lookup" + "spawned": [] + }, + "dir_create_ack | member | lists": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "dir_create_ack | member | numbers": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "dir_create_ack | member | strings": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "dir_create_ack | operator | bare": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "dir_create_ack | operator | lists": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "dir_create_ack | operator | numbers": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "dir_create_ack | operator | strings": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "dir_delete | challenged | bare": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "dir_delete | challenged | lists": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "dir_delete | challenged | numbers": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "dir_delete | challenged | strings": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "dir_delete | fresh | bare": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "dir_delete | fresh | lists": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "dir_delete | fresh | numbers": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "dir_delete | fresh | strings": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "dir_delete | member | bare": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_dir_delete" ] }, - "device_lookup | member | lists": { + "dir_delete | member | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_lookup" + "_do_dir_delete" ] }, - "device_lookup | member | numbers": { + "dir_delete | member | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_lookup" + "_do_dir_delete" ] }, - "device_lookup | member | strings": { + "dir_delete | member | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_lookup" + "_do_dir_delete" ] }, - "device_lookup | operator | bare": { + "dir_delete | operator | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_lookup" + "_do_dir_delete" ] }, - "device_lookup | operator | lists": { + "dir_delete | operator | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_lookup" + "_do_dir_delete" ] }, - "device_lookup | operator | numbers": { + "dir_delete | operator | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_lookup" + "_do_dir_delete" ] }, - "device_lookup | operator | strings": { + "dir_delete | operator | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_device_lookup" + "_do_dir_delete" ] }, - "device_lookup_result | challenged | bare": { + "dir_delete_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -6097,7 +6225,7 @@ ], "spawned": [] }, - "device_lookup_result | challenged | lists": { + "dir_delete_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -6109,7 +6237,7 @@ ], "spawned": [] }, - "device_lookup_result | challenged | numbers": { + "dir_delete_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -6121,7 +6249,7 @@ ], "spawned": [] }, - "device_lookup_result | challenged | strings": { + "dir_delete_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -6133,7 +6261,7 @@ ], "spawned": [] }, - "device_lookup_result | fresh | bare": { + "dir_delete_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -6145,7 +6273,7 @@ ], "spawned": [] }, - "device_lookup_result | fresh | lists": { + "dir_delete_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -6157,7 +6285,7 @@ ], "spawned": [] }, - "device_lookup_result | fresh | numbers": { + "dir_delete_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -6169,7 +6297,7 @@ ], "spawned": [] }, - "device_lookup_result | fresh | strings": { + "dir_delete_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -6181,7 +6309,7 @@ ], "spawned": [] }, - "device_lookup_result | member | bare": { + "dir_delete_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -6189,7 +6317,7 @@ "sent": [], "spawned": [] }, - "device_lookup_result | member | lists": { + "dir_delete_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -6197,7 +6325,7 @@ "sent": [], "spawned": [] }, - "device_lookup_result | member | numbers": { + "dir_delete_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -6205,7 +6333,7 @@ "sent": [], "spawned": [] }, - "device_lookup_result | member | strings": { + "dir_delete_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -6213,7 +6341,7 @@ "sent": [], "spawned": [] }, - "device_lookup_result | operator | bare": { + "dir_delete_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -6221,7 +6349,7 @@ "sent": [], "spawned": [] }, - "device_lookup_result | operator | lists": { + "dir_delete_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -6229,7 +6357,7 @@ "sent": [], "spawned": [] }, - "device_lookup_result | operator | numbers": { + "dir_delete_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -6237,7 +6365,7 @@ "sent": [], "spawned": [] }, - "device_lookup_result | operator | strings": { + "dir_delete_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -6245,7 +6373,7 @@ "sent": [], "spawned": [] }, - "device_revoke | challenged | bare": { + "file_chunk | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -6257,7 +6385,7 @@ ], "spawned": [] }, - "device_revoke | challenged | lists": { + "file_chunk | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -6269,7 +6397,7 @@ ], "spawned": [] }, - "device_revoke | challenged | numbers": { + "file_chunk | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -6281,7 +6409,7 @@ ], "spawned": [] }, - "device_revoke | challenged | strings": { + "file_chunk | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -6293,7 +6421,7 @@ ], "spawned": [] }, - "device_revoke | fresh | bare": { + "file_chunk | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -6305,7 +6433,7 @@ ], "spawned": [] }, - "device_revoke | fresh | lists": { + "file_chunk | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -6317,7 +6445,7 @@ ], "spawned": [] }, - "device_revoke | fresh | numbers": { + "file_chunk | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -6329,7 +6457,7 @@ ], "spawned": [] }, - "device_revoke | fresh | strings": { + "file_chunk | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -6341,71 +6469,71 @@ ], "spawned": [] }, - "device_revoke | member | bare": { + "file_chunk | member | bare": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_device_revoke" - ] + "spawned": [] }, - "device_revoke | member | lists": { + "file_chunk | member | lists": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_device_revoke" - ] + "spawned": [] }, - "device_revoke | member | numbers": { + "file_chunk | member | numbers": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_device_revoke" - ] + "spawned": [] }, - "device_revoke | member | strings": { + "file_chunk | member | strings": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_device_revoke" - ] + "spawned": [] }, - "device_revoke | operator | bare": { + "file_chunk | operator | bare": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_device_revoke" - ] + "spawned": [] }, - "device_revoke | operator | lists": { + "file_chunk | operator | lists": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_device_revoke" - ] + "spawned": [] }, - "device_revoke | operator | numbers": { + "file_chunk | operator | numbers": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_device_revoke" - ] + "spawned": [] }, - "device_revoke | operator | strings": { + "file_chunk | operator | strings": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_device_revoke" - ] + "spawned": [] }, - "dir_create | challenged | bare": { + "file_delete | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -6417,7 +6545,7 @@ ], "spawned": [] }, - "dir_create | challenged | lists": { + "file_delete | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -6429,7 +6557,7 @@ ], "spawned": [] }, - "dir_create | challenged | numbers": { + "file_delete | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -6441,7 +6569,7 @@ ], "spawned": [] }, - "dir_create | challenged | strings": { + "file_delete | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -6453,7 +6581,7 @@ ], "spawned": [] }, - "dir_create | fresh | bare": { + "file_delete | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -6465,7 +6593,7 @@ ], "spawned": [] }, - "dir_create | fresh | lists": { + "file_delete | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -6477,7 +6605,7 @@ ], "spawned": [] }, - "dir_create | fresh | numbers": { + "file_delete | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -6489,7 +6617,7 @@ ], "spawned": [] }, - "dir_create | fresh | strings": { + "file_delete | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -6501,71 +6629,115 @@ ], "spawned": [] }, - "dir_create | member | bare": { + "file_delete | member | bare": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_dir_create" - ] + "sent": [ + { + "detail": "Missing file_id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "dir_create | member | lists": { + "file_delete | member | lists": { "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_dir_create" - ] + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "dir_create | member | numbers": { + "file_delete | member | numbers": { "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_dir_create" - ] + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "dir_create | member | strings": { + "file_delete | member | strings": { "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_dir_create" - ] + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "dir_create | operator | bare": { + "file_delete | operator | bare": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_dir_create" - ] + "sent": [ + { + "detail": "Missing file_id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "dir_create | operator | lists": { + "file_delete | operator | lists": { "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_dir_create" - ] + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "dir_create | operator | numbers": { + "file_delete | operator | numbers": { "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_dir_create" - ] + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "dir_create | operator | strings": { + "file_delete | operator | strings": { "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_dir_create" - ] + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "dir_create_ack | challenged | bare": { + "file_delete_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -6577,7 +6749,7 @@ ], "spawned": [] }, - "dir_create_ack | challenged | lists": { + "file_delete_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -6589,7 +6761,7 @@ ], "spawned": [] }, - "dir_create_ack | challenged | numbers": { + "file_delete_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -6601,7 +6773,7 @@ ], "spawned": [] }, - "dir_create_ack | challenged | strings": { + "file_delete_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -6613,7 +6785,7 @@ ], "spawned": [] }, - "dir_create_ack | fresh | bare": { + "file_delete_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -6625,7 +6797,7 @@ ], "spawned": [] }, - "dir_create_ack | fresh | lists": { + "file_delete_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -6637,7 +6809,7 @@ ], "spawned": [] }, - "dir_create_ack | fresh | numbers": { + "file_delete_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -6649,7 +6821,7 @@ ], "spawned": [] }, - "dir_create_ack | fresh | strings": { + "file_delete_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -6661,7 +6833,7 @@ ], "spawned": [] }, - "dir_create_ack | member | bare": { + "file_delete_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -6669,7 +6841,7 @@ "sent": [], "spawned": [] }, - "dir_create_ack | member | lists": { + "file_delete_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -6677,7 +6849,7 @@ "sent": [], "spawned": [] }, - "dir_create_ack | member | numbers": { + "file_delete_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -6685,7 +6857,7 @@ "sent": [], "spawned": [] }, - "dir_create_ack | member | strings": { + "file_delete_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -6693,7 +6865,7 @@ "sent": [], "spawned": [] }, - "dir_create_ack | operator | bare": { + "file_delete_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -6701,7 +6873,7 @@ "sent": [], "spawned": [] }, - "dir_create_ack | operator | lists": { + "file_delete_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -6709,7 +6881,7 @@ "sent": [], "spawned": [] }, - "dir_create_ack | operator | numbers": { + "file_delete_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -6717,7 +6889,7 @@ "sent": [], "spawned": [] }, - "dir_create_ack | operator | strings": { + "file_delete_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -6725,7 +6897,7 @@ "sent": [], "spawned": [] }, - "dir_delete | challenged | bare": { + "file_req | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -6737,7 +6909,7 @@ ], "spawned": [] }, - "dir_delete | challenged | lists": { + "file_req | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -6749,7 +6921,7 @@ ], "spawned": [] }, - "dir_delete | challenged | numbers": { + "file_req | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -6761,7 +6933,7 @@ ], "spawned": [] }, - "dir_delete | challenged | strings": { + "file_req | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -6773,7 +6945,7 @@ ], "spawned": [] }, - "dir_delete | fresh | bare": { + "file_req | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -6785,7 +6957,7 @@ ], "spawned": [] }, - "dir_delete | fresh | lists": { + "file_req | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -6797,7 +6969,7 @@ ], "spawned": [] }, - "dir_delete | fresh | numbers": { + "file_req | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -6809,7 +6981,7 @@ ], "spawned": [] }, - "dir_delete | fresh | strings": { + "file_req | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -6821,71 +6993,71 @@ ], "spawned": [] }, - "dir_delete | member | bare": { + "file_req | member | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_dir_delete" + "_do_file_request" ] }, - "dir_delete | member | lists": { + "file_req | member | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_dir_delete" + "_do_file_request" ] }, - "dir_delete | member | numbers": { + "file_req | member | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_dir_delete" + "_do_file_request" ] }, - "dir_delete | member | strings": { + "file_req | member | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_dir_delete" + "_do_file_request" ] }, - "dir_delete | operator | bare": { + "file_req | operator | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_dir_delete" + "_do_file_request" ] }, - "dir_delete | operator | lists": { + "file_req | operator | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_dir_delete" + "_do_file_request" ] }, - "dir_delete | operator | numbers": { + "file_req | operator | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_dir_delete" + "_do_file_request" ] }, - "dir_delete | operator | strings": { + "file_req | operator | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_dir_delete" + "_do_file_request" ] }, - "dir_delete_ack | challenged | bare": { + "file_upload | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -6897,7 +7069,7 @@ ], "spawned": [] }, - "dir_delete_ack | challenged | lists": { + "file_upload | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -6909,7 +7081,7 @@ ], "spawned": [] }, - "dir_delete_ack | challenged | numbers": { + "file_upload | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -6921,7 +7093,7 @@ ], "spawned": [] }, - "dir_delete_ack | challenged | strings": { + "file_upload | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -6933,7 +7105,7 @@ ], "spawned": [] }, - "dir_delete_ack | fresh | bare": { + "file_upload | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -6945,7 +7117,7 @@ ], "spawned": [] }, - "dir_delete_ack | fresh | lists": { + "file_upload | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -6957,7 +7129,7 @@ ], "spawned": [] }, - "dir_delete_ack | fresh | numbers": { + "file_upload | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -6969,7 +7141,7 @@ ], "spawned": [] }, - "dir_delete_ack | fresh | strings": { + "file_upload | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -6981,71 +7153,71 @@ ], "spawned": [] }, - "dir_delete_ack | member | bare": { + "file_upload | member | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_file_upload" + ] }, - "dir_delete_ack | member | lists": { + "file_upload | member | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_file_upload" + ] }, - "dir_delete_ack | member | numbers": { + "file_upload | member | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_file_upload" + ] }, - "dir_delete_ack | member | strings": { + "file_upload | member | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_file_upload" + ] }, - "dir_delete_ack | operator | bare": { + "file_upload | operator | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_file_upload" + ] }, - "dir_delete_ack | operator | lists": { + "file_upload | operator | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_file_upload" + ] }, - "dir_delete_ack | operator | numbers": { + "file_upload | operator | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_file_upload" + ] }, - "dir_delete_ack | operator | strings": { + "file_upload | operator | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_file_upload" + ] }, - "file_chunk | challenged | bare": { + "file_upload_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -7057,7 +7229,7 @@ ], "spawned": [] }, - "file_chunk | challenged | lists": { + "file_upload_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -7069,7 +7241,7 @@ ], "spawned": [] }, - "file_chunk | challenged | numbers": { + "file_upload_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -7081,7 +7253,7 @@ ], "spawned": [] }, - "file_chunk | challenged | strings": { + "file_upload_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -7093,7 +7265,7 @@ ], "spawned": [] }, - "file_chunk | fresh | bare": { + "file_upload_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -7105,7 +7277,7 @@ ], "spawned": [] }, - "file_chunk | fresh | lists": { + "file_upload_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -7117,7 +7289,7 @@ ], "spawned": [] }, - "file_chunk | fresh | numbers": { + "file_upload_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -7129,7 +7301,7 @@ ], "spawned": [] }, - "file_chunk | fresh | strings": { + "file_upload_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -7141,7 +7313,7 @@ ], "spawned": [] }, - "file_chunk | member | bare": { + "file_upload_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -7149,7 +7321,7 @@ "sent": [], "spawned": [] }, - "file_chunk | member | lists": { + "file_upload_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -7157,7 +7329,7 @@ "sent": [], "spawned": [] }, - "file_chunk | member | numbers": { + "file_upload_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -7165,7 +7337,7 @@ "sent": [], "spawned": [] }, - "file_chunk | member | strings": { + "file_upload_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -7173,7 +7345,7 @@ "sent": [], "spawned": [] }, - "file_chunk | operator | bare": { + "file_upload_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -7181,7 +7353,7 @@ "sent": [], "spawned": [] }, - "file_chunk | operator | lists": { + "file_upload_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -7189,7 +7361,7 @@ "sent": [], "spawned": [] }, - "file_chunk | operator | numbers": { + "file_upload_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -7197,7 +7369,7 @@ "sent": [], "spawned": [] }, - "file_chunk | operator | strings": { + "file_upload_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -7205,55 +7377,39 @@ "sent": [], "spawned": [] }, - "file_delete | challenged | bare": { + "gek_bundle_fetch | challenged | bare": { "audit": [], "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_gek_bundle_fetch" + ] }, - "file_delete | challenged | lists": { + "gek_bundle_fetch | challenged | lists": { "audit": [], "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_gek_bundle_fetch" + ] }, - "file_delete | challenged | numbers": { + "gek_bundle_fetch | challenged | numbers": { "audit": [], "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_gek_bundle_fetch" + ] }, - "file_delete | challenged | strings": { + "gek_bundle_fetch | challenged | strings": { "audit": [], "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_gek_bundle_fetch" + ] }, - "file_delete | fresh | bare": { + "gek_bundle_fetch | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -7265,7 +7421,7 @@ ], "spawned": [] }, - "file_delete | fresh | lists": { + "gek_bundle_fetch | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -7277,7 +7433,7 @@ ], "spawned": [] }, - "file_delete | fresh | numbers": { + "gek_bundle_fetch | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -7289,7 +7445,7 @@ ], "spawned": [] }, - "file_delete | fresh | strings": { + "gek_bundle_fetch | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -7301,115 +7457,71 @@ ], "spawned": [] }, - "file_delete | member | bare": { + "gek_bundle_fetch | member | bare": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing file_id", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "file_delete | member | lists": { + "gek_bundle_fetch | member | lists": { "audit": [], "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], - "sent": [ - { - "detail": "Request failed", - "req_id": 4242, - "type": "error" - } + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "file_delete | member | numbers": { + "gek_bundle_fetch | member | numbers": { "audit": [], "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], - "sent": [ - { - "detail": "Request failed", - "req_id": 4242, - "type": "error" - } + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "file_delete | member | strings": { + "gek_bundle_fetch | member | strings": { "audit": [], "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], - "sent": [ - { - "detail": "Request failed", - "req_id": 4242, - "type": "error" - } + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "file_delete | operator | bare": { + "gek_bundle_fetch | operator | bare": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing file_id", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "file_delete | operator | lists": { + "gek_bundle_fetch | operator | lists": { "audit": [], "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], - "sent": [ - { - "detail": "Request failed", - "req_id": 4242, - "type": "error" - } + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "file_delete | operator | numbers": { + "gek_bundle_fetch | operator | numbers": { "audit": [], "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], - "sent": [ - { - "detail": "Request failed", - "req_id": 4242, - "type": "error" - } + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "file_delete | operator | strings": { + "gek_bundle_fetch | operator | strings": { "audit": [], "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], - "sent": [ - { - "detail": "Request failed", - "req_id": 4242, - "type": "error" - } + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "file_delete_ack | challenged | bare": { + "gek_bundle_resp | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -7421,7 +7533,7 @@ ], "spawned": [] }, - "file_delete_ack | challenged | lists": { + "gek_bundle_resp | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -7433,7 +7545,7 @@ ], "spawned": [] }, - "file_delete_ack | challenged | numbers": { + "gek_bundle_resp | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -7445,7 +7557,7 @@ ], "spawned": [] }, - "file_delete_ack | challenged | strings": { + "gek_bundle_resp | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -7457,7 +7569,7 @@ ], "spawned": [] }, - "file_delete_ack | fresh | bare": { + "gek_bundle_resp | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -7469,7 +7581,7 @@ ], "spawned": [] }, - "file_delete_ack | fresh | lists": { + "gek_bundle_resp | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -7481,7 +7593,7 @@ ], "spawned": [] }, - "file_delete_ack | fresh | numbers": { + "gek_bundle_resp | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -7493,7 +7605,7 @@ ], "spawned": [] }, - "file_delete_ack | fresh | strings": { + "gek_bundle_resp | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -7505,7 +7617,7 @@ ], "spawned": [] }, - "file_delete_ack | member | bare": { + "gek_bundle_resp | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -7513,7 +7625,7 @@ "sent": [], "spawned": [] }, - "file_delete_ack | member | lists": { + "gek_bundle_resp | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -7521,7 +7633,7 @@ "sent": [], "spawned": [] }, - "file_delete_ack | member | numbers": { + "gek_bundle_resp | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -7529,7 +7641,7 @@ "sent": [], "spawned": [] }, - "file_delete_ack | member | strings": { + "gek_bundle_resp | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -7537,7 +7649,7 @@ "sent": [], "spawned": [] }, - "file_delete_ack | operator | bare": { + "gek_bundle_resp | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -7545,7 +7657,7 @@ "sent": [], "spawned": [] }, - "file_delete_ack | operator | lists": { + "gek_bundle_resp | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -7553,7 +7665,7 @@ "sent": [], "spawned": [] }, - "file_delete_ack | operator | numbers": { + "gek_bundle_resp | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -7561,7 +7673,7 @@ "sent": [], "spawned": [] }, - "file_delete_ack | operator | strings": { + "gek_bundle_resp | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -7569,7 +7681,7 @@ "sent": [], "spawned": [] }, - "file_req | challenged | bare": { + "group_roster_req | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -7581,7 +7693,7 @@ ], "spawned": [] }, - "file_req | challenged | lists": { + "group_roster_req | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -7593,7 +7705,7 @@ ], "spawned": [] }, - "file_req | challenged | numbers": { + "group_roster_req | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -7605,7 +7717,7 @@ ], "spawned": [] }, - "file_req | challenged | strings": { + "group_roster_req | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -7617,7 +7729,7 @@ ], "spawned": [] }, - "file_req | fresh | bare": { + "group_roster_req | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -7629,7 +7741,7 @@ ], "spawned": [] }, - "file_req | fresh | lists": { + "group_roster_req | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -7641,7 +7753,7 @@ ], "spawned": [] }, - "file_req | fresh | numbers": { + "group_roster_req | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -7653,7 +7765,7 @@ ], "spawned": [] }, - "file_req | fresh | strings": { + "group_roster_req | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -7665,71 +7777,71 @@ ], "spawned": [] }, - "file_req | member | bare": { + "group_roster_req | member | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_file_request" + "_do_group_roster_req" ] }, - "file_req | member | lists": { + "group_roster_req | member | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_file_request" + "_do_group_roster_req" ] }, - "file_req | member | numbers": { + "group_roster_req | member | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_file_request" + "_do_group_roster_req" ] }, - "file_req | member | strings": { + "group_roster_req | member | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_file_request" + "_do_group_roster_req" ] }, - "file_req | operator | bare": { + "group_roster_req | operator | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_file_request" + "_do_group_roster_req" ] }, - "file_req | operator | lists": { + "group_roster_req | operator | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_file_request" + "_do_group_roster_req" ] }, - "file_req | operator | numbers": { + "group_roster_req | operator | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_file_request" + "_do_group_roster_req" ] }, - "file_req | operator | strings": { + "group_roster_req | operator | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_file_request" + "_do_group_roster_req" ] }, - "file_upload | challenged | bare": { + "group_roster_resp | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -7741,7 +7853,7 @@ ], "spawned": [] }, - "file_upload | challenged | lists": { + "group_roster_resp | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -7753,7 +7865,7 @@ ], "spawned": [] }, - "file_upload | challenged | numbers": { + "group_roster_resp | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -7765,7 +7877,7 @@ ], "spawned": [] }, - "file_upload | challenged | strings": { + "group_roster_resp | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -7777,7 +7889,7 @@ ], "spawned": [] }, - "file_upload | fresh | bare": { + "group_roster_resp | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -7789,7 +7901,7 @@ ], "spawned": [] }, - "file_upload | fresh | lists": { + "group_roster_resp | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -7801,7 +7913,7 @@ ], "spawned": [] }, - "file_upload | fresh | numbers": { + "group_roster_resp | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -7813,7 +7925,7 @@ ], "spawned": [] }, - "file_upload | fresh | strings": { + "group_roster_resp | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -7825,263 +7937,355 @@ ], "spawned": [] }, - "file_upload | member | bare": { + "group_roster_resp | member | bare": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_file_upload" - ] + "spawned": [] }, - "file_upload | member | lists": { + "group_roster_resp | member | lists": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_file_upload" - ] + "spawned": [] }, - "file_upload | member | numbers": { + "group_roster_resp | member | numbers": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_file_upload" - ] + "spawned": [] }, - "file_upload | member | strings": { + "group_roster_resp | member | strings": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_file_upload" - ] + "spawned": [] }, - "file_upload | operator | bare": { + "group_roster_resp | operator | bare": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_file_upload" - ] + "spawned": [] }, - "file_upload | operator | lists": { + "group_roster_resp | operator | lists": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_file_upload" - ] + "spawned": [] }, - "file_upload | operator | numbers": { + "group_roster_resp | operator | numbers": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_file_upload" - ] + "spawned": [] }, - "file_upload | operator | strings": { + "group_roster_resp | operator | strings": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_file_upload" - ] + "spawned": [] }, - "file_upload_ack | 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": [] }, - "file_upload_ack | 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": [] }, - "file_upload_ack | 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": [] }, - "file_upload_ack | 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": [] }, - "file_upload_ack | 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": [] }, - "file_upload_ack | 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": [] }, - "file_upload_ack | 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": [] }, - "file_upload_ack | 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": [] }, - "file_upload_ack | member | bare": { + "handshake | member | bare": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], + "sent": [ + { + "code": "version_unreadable", + "detail": "Unreadable protocol version ''", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "file_upload_ack | member | lists": { + "handshake | member | lists": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], + "sent": [ + { + "code": "version_unreadable", + "detail": "Unreadable protocol version ['x']", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "file_upload_ack | member | numbers": { + "handshake | member | numbers": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "file_upload_ack | member | strings": { + "handshake | member | strings": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], + "sent": [ + { + "code": "version_unreadable", + "detail": "Unreadable protocol version 'x'", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "file_upload_ack | operator | bare": { + "handshake | operator | bare": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], + "sent": [ + { + "code": "version_unreadable", + "detail": "Unreadable protocol version ''", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "file_upload_ack | operator | lists": { + "handshake | operator | lists": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], + "sent": [ + { + "code": "version_unreadable", + "detail": "Unreadable protocol version ['x']", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "file_upload_ack | operator | numbers": { + "handshake | operator | numbers": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "file_upload_ack | operator | strings": { + "handshake | operator | strings": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO WebRTC handshake request: group=%s (peer=%s)" + ], + "sent": [ + { + "code": "version_unreadable", + "detail": "Unreadable protocol version 'x'", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "gek_bundle_fetch | challenged | bare": { + "handshake_ack | challenged | bare": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_gek_bundle_fetch" - ] + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "gek_bundle_fetch | challenged | lists": { + "handshake_ack | challenged | lists": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_gek_bundle_fetch" - ] + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "gek_bundle_fetch | challenged | numbers": { + "handshake_ack | challenged | numbers": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_gek_bundle_fetch" - ] + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "gek_bundle_fetch | challenged | strings": { + "handshake_ack | challenged | strings": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_gek_bundle_fetch" - ] + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "gek_bundle_fetch | fresh | bare": { + "handshake_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -8093,7 +8297,7 @@ ], "spawned": [] }, - "gek_bundle_fetch | fresh | lists": { + "handshake_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -8105,7 +8309,7 @@ ], "spawned": [] }, - "gek_bundle_fetch | fresh | numbers": { + "handshake_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -8117,7 +8321,7 @@ ], "spawned": [] }, - "gek_bundle_fetch | fresh | strings": { + "handshake_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -8129,7 +8333,7 @@ ], "spawned": [] }, - "gek_bundle_fetch | member | bare": { + "handshake_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8137,7 +8341,7 @@ "sent": [], "spawned": [] }, - "gek_bundle_fetch | member | lists": { + "handshake_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8145,7 +8349,7 @@ "sent": [], "spawned": [] }, - "gek_bundle_fetch | member | numbers": { + "handshake_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8153,7 +8357,7 @@ "sent": [], "spawned": [] }, - "gek_bundle_fetch | member | strings": { + "handshake_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8161,7 +8365,7 @@ "sent": [], "spawned": [] }, - "gek_bundle_fetch | operator | bare": { + "handshake_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8169,7 +8373,7 @@ "sent": [], "spawned": [] }, - "gek_bundle_fetch | operator | lists": { + "handshake_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8177,7 +8381,7 @@ "sent": [], "spawned": [] }, - "gek_bundle_fetch | operator | numbers": { + "handshake_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8185,7 +8389,7 @@ "sent": [], "spawned": [] }, - "gek_bundle_fetch | operator | strings": { + "handshake_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8193,7 +8397,7 @@ "sent": [], "spawned": [] }, - "gek_bundle_resp | challenged | bare": { + "handshake_challenge | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -8205,7 +8409,7 @@ ], "spawned": [] }, - "gek_bundle_resp | challenged | lists": { + "handshake_challenge | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -8217,7 +8421,7 @@ ], "spawned": [] }, - "gek_bundle_resp | challenged | numbers": { + "handshake_challenge | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -8229,7 +8433,7 @@ ], "spawned": [] }, - "gek_bundle_resp | challenged | strings": { + "handshake_challenge | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -8241,7 +8445,7 @@ ], "spawned": [] }, - "gek_bundle_resp | fresh | bare": { + "handshake_challenge | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -8253,7 +8457,7 @@ ], "spawned": [] }, - "gek_bundle_resp | fresh | lists": { + "handshake_challenge | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -8265,7 +8469,7 @@ ], "spawned": [] }, - "gek_bundle_resp | fresh | numbers": { + "handshake_challenge | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -8277,7 +8481,7 @@ ], "spawned": [] }, - "gek_bundle_resp | fresh | strings": { + "handshake_challenge | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -8289,7 +8493,7 @@ ], "spawned": [] }, - "gek_bundle_resp | member | bare": { + "handshake_challenge | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8297,7 +8501,7 @@ "sent": [], "spawned": [] }, - "gek_bundle_resp | member | lists": { + "handshake_challenge | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8305,7 +8509,7 @@ "sent": [], "spawned": [] }, - "gek_bundle_resp | member | numbers": { + "handshake_challenge | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8313,7 +8517,7 @@ "sent": [], "spawned": [] }, - "gek_bundle_resp | member | strings": { + "handshake_challenge | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8321,7 +8525,7 @@ "sent": [], "spawned": [] }, - "gek_bundle_resp | operator | bare": { + "handshake_challenge | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8329,7 +8533,7 @@ "sent": [], "spawned": [] }, - "gek_bundle_resp | operator | lists": { + "handshake_challenge | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8337,7 +8541,7 @@ "sent": [], "spawned": [] }, - "gek_bundle_resp | operator | numbers": { + "handshake_challenge | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8345,7 +8549,7 @@ "sent": [], "spawned": [] }, - "gek_bundle_resp | operator | strings": { + "handshake_challenge | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8353,227 +8557,199 @@ "sent": [], "spawned": [] }, - "gek_rotate | challenged | bare": { + "handshake_response | challenged | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "gek_rotate | challenged | lists": { + "handshake_response | challenged | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "gek_rotate | challenged | numbers": { + "handshake_response | challenged | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "gek_rotate | challenged | strings": { + "handshake_response | challenged | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "gek_rotate | fresh | bare": { + "handshake_response | fresh | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "gek_rotate | fresh | lists": { + "handshake_response | fresh | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "gek_rotate | fresh | numbers": { + "handshake_response | fresh | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "gek_rotate | fresh | strings": { + "handshake_response | fresh | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "gek_rotate | member | bare": { + "handshake_response | member | bare": { "audit": [], "log": [], "sent": [ { - "detail": "No authorized key for this", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "gek_rotate | member | lists": { + "handshake_response | member | lists": { "audit": [], "log": [], "sent": [ { - "detail": "No authorized key for this", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "gek_rotate | member | numbers": { + "handshake_response | member | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "No authorized key for this", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "gek_rotate | member | strings": { + "handshake_response | member | strings": { "audit": [], "log": [], "sent": [ { - "detail": "No authorized key for this", + "detail": "No pending handshake challenge", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "gek_rotate | operator | bare": { + "handshake_response | operator | bare": { "audit": [], "log": [], "sent": [ { - "group_id": "gggggggggggggggggggggggggggggggg", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "gek_rotate", - "op_id": "", + "detail": "No pending handshake challenge", "req_id": 4242, - "subject": "gggggggggggggggggggggggggggggggg", - "ts": "", - "type": "admin_challenge", - "v": "6.0" + "type": "error" } ], "spawned": [] }, - "gek_rotate | operator | lists": { + "handshake_response | operator | lists": { "audit": [], "log": [], "sent": [ { - "group_id": "['x']", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "gek_rotate", - "op_id": "", + "detail": "No pending handshake challenge", "req_id": 4242, - "subject": "['x']", - "ts": "", - "type": "admin_challenge", - "v": "6.0" + "type": "error" } ], "spawned": [] }, - "gek_rotate | operator | numbers": { + "handshake_response | operator | numbers": { "audit": [], "log": [], "sent": [ { - "group_id": "7", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "gek_rotate", - "op_id": "", + "detail": "No pending handshake challenge", "req_id": 4242, - "subject": "7", - "ts": "", - "type": "admin_challenge", - "v": "6.0" + "type": "error" } ], "spawned": [] }, - "gek_rotate | operator | strings": { + "handshake_response | operator | strings": { "audit": [], "log": [], "sent": [ { - "group_id": "x", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "gek_rotate", - "op_id": "", + "detail": "No pending handshake challenge", "req_id": 4242, - "subject": "x", - "ts": "", - "type": "admin_challenge", - "v": "6.0" + "type": "error" } ], "spawned": [] }, - "gek_rotate_ack | challenged | bare": { + "index_delta | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -8585,7 +8761,7 @@ ], "spawned": [] }, - "gek_rotate_ack | challenged | lists": { + "index_delta | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -8597,7 +8773,7 @@ ], "spawned": [] }, - "gek_rotate_ack | challenged | numbers": { + "index_delta | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -8609,7 +8785,7 @@ ], "spawned": [] }, - "gek_rotate_ack | challenged | strings": { + "index_delta | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -8621,7 +8797,7 @@ ], "spawned": [] }, - "gek_rotate_ack | fresh | bare": { + "index_delta | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -8633,7 +8809,7 @@ ], "spawned": [] }, - "gek_rotate_ack | fresh | lists": { + "index_delta | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -8645,7 +8821,7 @@ ], "spawned": [] }, - "gek_rotate_ack | fresh | numbers": { + "index_delta | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -8657,7 +8833,7 @@ ], "spawned": [] }, - "gek_rotate_ack | fresh | strings": { + "index_delta | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -8669,7 +8845,7 @@ ], "spawned": [] }, - "gek_rotate_ack | member | bare": { + "index_delta | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8677,7 +8853,7 @@ "sent": [], "spawned": [] }, - "gek_rotate_ack | member | lists": { + "index_delta | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8685,7 +8861,7 @@ "sent": [], "spawned": [] }, - "gek_rotate_ack | member | numbers": { + "index_delta | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8693,7 +8869,7 @@ "sent": [], "spawned": [] }, - "gek_rotate_ack | member | strings": { + "index_delta | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8701,7 +8877,7 @@ "sent": [], "spawned": [] }, - "gek_rotate_ack | operator | bare": { + "index_delta | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8709,7 +8885,7 @@ "sent": [], "spawned": [] }, - "gek_rotate_ack | operator | lists": { + "index_delta | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8717,7 +8893,7 @@ "sent": [], "spawned": [] }, - "gek_rotate_ack | operator | numbers": { + "index_delta | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8725,7 +8901,7 @@ "sent": [], "spawned": [] }, - "gek_rotate_ack | operator | strings": { + "index_delta | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -8733,7 +8909,7 @@ "sent": [], "spawned": [] }, - "group_detach | challenged | bare": { + "index_progress | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -8745,7 +8921,7 @@ ], "spawned": [] }, - "group_detach | challenged | lists": { + "index_progress | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -8757,7 +8933,7 @@ ], "spawned": [] }, - "group_detach | challenged | numbers": { + "index_progress | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -8769,7 +8945,7 @@ ], "spawned": [] }, - "group_detach | challenged | strings": { + "index_progress | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -8781,7 +8957,7 @@ ], "spawned": [] }, - "group_detach | fresh | bare": { + "index_progress | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -8793,7 +8969,7 @@ ], "spawned": [] }, - "group_detach | fresh | lists": { + "index_progress | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -8805,7 +8981,7 @@ ], "spawned": [] }, - "group_detach | fresh | numbers": { + "index_progress | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -8817,7 +8993,7 @@ ], "spawned": [] }, - "group_detach | fresh | strings": { + "index_progress | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -8829,124 +9005,71 @@ ], "spawned": [] }, - "group_detach | member | bare": { + "index_progress | member | bare": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing group name or id", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "group_detach | member | lists": { + "index_progress | member | lists": { "audit": [], - "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "group_detach | member | numbers": { + "index_progress | member | numbers": { "audit": [], - "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "group_detach | member | strings": { + "index_progress | member | strings": { "audit": [], - "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "group_detach | operator | bare": { + "index_progress | operator | bare": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing group name or id", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "group_detach | operator | lists": { + "index_progress | 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": "6.0" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "group_detach | operator | numbers": { + "index_progress | 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": "6.0" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "group_detach | operator | strings": { + "index_progress | 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": "6.0" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "group_detach_ack | challenged | bare": { + "index_sync | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -8958,7 +9081,7 @@ ], "spawned": [] }, - "group_detach_ack | challenged | lists": { + "index_sync | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -8970,7 +9093,7 @@ ], "spawned": [] }, - "group_detach_ack | challenged | numbers": { + "index_sync | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -8982,7 +9105,7 @@ ], "spawned": [] }, - "group_detach_ack | challenged | strings": { + "index_sync | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -8994,7 +9117,7 @@ ], "spawned": [] }, - "group_detach_ack | fresh | bare": { + "index_sync | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -9006,7 +9129,7 @@ ], "spawned": [] }, - "group_detach_ack | fresh | lists": { + "index_sync | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -9018,7 +9141,7 @@ ], "spawned": [] }, - "group_detach_ack | fresh | numbers": { + "index_sync | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -9030,7 +9153,7 @@ ], "spawned": [] }, - "group_detach_ack | fresh | strings": { + "index_sync | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -9042,71 +9165,119 @@ ], "spawned": [] }, - "group_detach_ack | member | bare": { + "index_sync | member | bare": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "group_detach_ack | member | lists": { + "index_sync | member | lists": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "group_detach_ack | member | numbers": { + "index_sync | member | numbers": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "group_detach_ack | member | strings": { + "index_sync | member | strings": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "group_detach_ack | operator | bare": { + "index_sync | operator | bare": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "group_detach_ack | operator | lists": { + "index_sync | operator | lists": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "group_detach_ack | operator | numbers": { + "index_sync | operator | numbers": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "group_detach_ack | operator | strings": { + "index_sync | operator | strings": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "group_roster_req | challenged | bare": { + "invite_cancel | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -9118,7 +9289,7 @@ ], "spawned": [] }, - "group_roster_req | challenged | lists": { + "invite_cancel | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -9130,7 +9301,7 @@ ], "spawned": [] }, - "group_roster_req | challenged | numbers": { + "invite_cancel | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -9142,7 +9313,7 @@ ], "spawned": [] }, - "group_roster_req | challenged | strings": { + "invite_cancel | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -9154,7 +9325,7 @@ ], "spawned": [] }, - "group_roster_req | fresh | bare": { + "invite_cancel | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -9166,7 +9337,7 @@ ], "spawned": [] }, - "group_roster_req | fresh | lists": { + "invite_cancel | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -9178,7 +9349,7 @@ ], "spawned": [] }, - "group_roster_req | fresh | numbers": { + "invite_cancel | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -9190,7 +9361,7 @@ ], "spawned": [] }, - "group_roster_req | fresh | strings": { + "invite_cancel | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -9202,71 +9373,103 @@ ], "spawned": [] }, - "group_roster_req | member | bare": { + "invite_cancel | member | bare": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_group_roster_req" - ] + "sent": [ + { + "detail": "Not an invitation id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "group_roster_req | member | lists": { + "invite_cancel | member | lists": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_group_roster_req" - ] + "sent": [ + { + "detail": "Not an invitation id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "group_roster_req | member | numbers": { + "invite_cancel | member | numbers": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_group_roster_req" - ] + "sent": [ + { + "detail": "Not an invitation id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "group_roster_req | member | strings": { + "invite_cancel | member | strings": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_group_roster_req" - ] + "sent": [ + { + "detail": "Not an invitation id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "group_roster_req | operator | bare": { + "invite_cancel | operator | bare": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_group_roster_req" - ] + "sent": [ + { + "detail": "Not an invitation id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "group_roster_req | operator | lists": { + "invite_cancel | operator | lists": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_group_roster_req" - ] + "sent": [ + { + "detail": "Not an invitation id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "group_roster_req | operator | numbers": { + "invite_cancel | operator | numbers": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_group_roster_req" - ] + "sent": [ + { + "detail": "Not an invitation id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "group_roster_req | operator | strings": { + "invite_cancel | operator | strings": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_group_roster_req" - ] + "sent": [ + { + "detail": "Not an invitation id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "group_roster_resp | challenged | bare": { + "invite_create | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -9278,7 +9481,7 @@ ], "spawned": [] }, - "group_roster_resp | challenged | lists": { + "invite_create | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -9290,7 +9493,7 @@ ], "spawned": [] }, - "group_roster_resp | challenged | numbers": { + "invite_create | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -9302,7 +9505,7 @@ ], "spawned": [] }, - "group_roster_resp | challenged | strings": { + "invite_create | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -9314,7 +9517,7 @@ ], "spawned": [] }, - "group_roster_resp | fresh | bare": { + "invite_create | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -9326,7 +9529,7 @@ ], "spawned": [] }, - "group_roster_resp | fresh | lists": { + "invite_create | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -9338,7 +9541,7 @@ ], "spawned": [] }, - "group_roster_resp | fresh | numbers": { + "invite_create | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -9350,7 +9553,7 @@ ], "spawned": [] }, - "group_roster_resp | fresh | strings": { + "invite_create | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -9362,307 +9565,302 @@ ], "spawned": [] }, - "group_roster_resp | member | bare": { + "invite_create | member | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Roster not available", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "group_roster_resp | member | lists": { + "invite_create | member | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Roster not available", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "group_roster_resp | member | numbers": { + "invite_create | member | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Roster not available", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "group_roster_resp | member | strings": { + "invite_create | member | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Roster not available", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "group_roster_resp | operator | bare": { + "invite_create | operator | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Roster not available", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "group_roster_resp | operator | lists": { + "invite_create | operator | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Roster not available", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "group_roster_resp | operator | numbers": { + "invite_create | operator | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Roster not available", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "group_roster_resp | operator | strings": { + "invite_create | operator | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Roster not available", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "handshake | challenged | bare": { + "invite_link_create | 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": { + "invite_link_create | 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": { + "invite_link_create | 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": { + "invite_link_create | 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": { + "invite_link_create | 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": { + "invite_link_create | 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": { + "invite_link_create | 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": { + "invite_link_create | 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": { + "invite_link_create | member | bare": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version ''", + "detail": "No operator paired \u2014 run `meshbay-node operator pair`", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | member | lists": { + "invite_link_create | member | lists": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version ['x']", + "detail": "Wrong group for this session", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | member | numbers": { + "invite_link_create | member | numbers": { "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], + "log": [], "sent": [ { - "detail": "Request failed", + "detail": "Wrong group for this session", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | member | strings": { + "invite_link_create | member | strings": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version 'x'", + "detail": "Wrong group for this session", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | operator | bare": { + "invite_link_create | operator | bare": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version ''", + "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": [] }, - "handshake | operator | lists": { + "invite_link_create | operator | lists": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version ['x']", + "detail": "Wrong group for this session", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | operator | numbers": { + "invite_link_create | operator | numbers": { "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], + "log": [], "sent": [ { - "detail": "Request failed", + "detail": "Wrong group for this session", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake | operator | strings": { + "invite_link_create | operator | strings": { "audit": [], - "log": [ - "INFO WebRTC handshake request: group=%s (peer=%s)" - ], + "log": [], "sent": [ { - "code": "version_unreadable", - "detail": "Unreadable protocol version 'x'", + "detail": "Wrong group for this session", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_ack | challenged | bare": { + "invite_link_result | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -9674,7 +9872,7 @@ ], "spawned": [] }, - "handshake_ack | challenged | lists": { + "invite_link_result | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -9686,7 +9884,7 @@ ], "spawned": [] }, - "handshake_ack | challenged | numbers": { + "invite_link_result | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -9698,7 +9896,7 @@ ], "spawned": [] }, - "handshake_ack | challenged | strings": { + "invite_link_result | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -9710,7 +9908,7 @@ ], "spawned": [] }, - "handshake_ack | fresh | bare": { + "invite_link_result | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -9722,7 +9920,7 @@ ], "spawned": [] }, - "handshake_ack | fresh | lists": { + "invite_link_result | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -9734,7 +9932,7 @@ ], "spawned": [] }, - "handshake_ack | fresh | numbers": { + "invite_link_result | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -9746,7 +9944,7 @@ ], "spawned": [] }, - "handshake_ack | fresh | strings": { + "invite_link_result | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -9758,7 +9956,7 @@ ], "spawned": [] }, - "handshake_ack | member | bare": { + "invite_link_result | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9766,7 +9964,7 @@ "sent": [], "spawned": [] }, - "handshake_ack | member | lists": { + "invite_link_result | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9774,7 +9972,7 @@ "sent": [], "spawned": [] }, - "handshake_ack | member | numbers": { + "invite_link_result | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9782,7 +9980,7 @@ "sent": [], "spawned": [] }, - "handshake_ack | member | strings": { + "invite_link_result | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9790,7 +9988,7 @@ "sent": [], "spawned": [] }, - "handshake_ack | operator | bare": { + "invite_link_result | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9798,7 +9996,7 @@ "sent": [], "spawned": [] }, - "handshake_ack | operator | lists": { + "invite_link_result | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9806,7 +10004,7 @@ "sent": [], "spawned": [] }, - "handshake_ack | operator | numbers": { + "invite_link_result | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9814,7 +10012,7 @@ "sent": [], "spawned": [] }, - "handshake_ack | operator | strings": { + "invite_link_result | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9822,7 +10020,7 @@ "sent": [], "spawned": [] }, - "handshake_challenge | challenged | bare": { + "invite_result | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -9834,7 +10032,7 @@ ], "spawned": [] }, - "handshake_challenge | challenged | lists": { + "invite_result | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -9846,7 +10044,7 @@ ], "spawned": [] }, - "handshake_challenge | challenged | numbers": { + "invite_result | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -9858,7 +10056,7 @@ ], "spawned": [] }, - "handshake_challenge | challenged | strings": { + "invite_result | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -9870,7 +10068,7 @@ ], "spawned": [] }, - "handshake_challenge | fresh | bare": { + "invite_result | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -9882,7 +10080,7 @@ ], "spawned": [] }, - "handshake_challenge | fresh | lists": { + "invite_result | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -9894,7 +10092,7 @@ ], "spawned": [] }, - "handshake_challenge | fresh | numbers": { + "invite_result | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -9906,7 +10104,7 @@ ], "spawned": [] }, - "handshake_challenge | fresh | strings": { + "invite_result | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -9918,7 +10116,7 @@ ], "spawned": [] }, - "handshake_challenge | member | bare": { + "invite_result | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9926,7 +10124,7 @@ "sent": [], "spawned": [] }, - "handshake_challenge | member | lists": { + "invite_result | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9934,7 +10132,7 @@ "sent": [], "spawned": [] }, - "handshake_challenge | member | numbers": { + "invite_result | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9942,7 +10140,7 @@ "sent": [], "spawned": [] }, - "handshake_challenge | member | strings": { + "invite_result | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9950,7 +10148,7 @@ "sent": [], "spawned": [] }, - "handshake_challenge | operator | bare": { + "invite_result | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9958,7 +10156,7 @@ "sent": [], "spawned": [] }, - "handshake_challenge | operator | lists": { + "invite_result | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9966,7 +10164,7 @@ "sent": [], "spawned": [] }, - "handshake_challenge | operator | numbers": { + "invite_result | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9974,7 +10172,7 @@ "sent": [], "spawned": [] }, - "handshake_challenge | operator | strings": { + "invite_result | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -9982,199 +10180,151 @@ "sent": [], "spawned": [] }, - "handshake_response | challenged | bare": { + "join_request | challenged | bare": { "audit": [], "log": [], - "sent": [ - { - "detail": "No pending handshake challenge", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_join_request" + ] }, - "handshake_response | challenged | lists": { + "join_request | challenged | lists": { "audit": [], "log": [], - "sent": [ - { - "detail": "No pending handshake challenge", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_join_request" + ] }, - "handshake_response | challenged | numbers": { + "join_request | challenged | numbers": { "audit": [], "log": [], - "sent": [ - { - "detail": "No pending handshake challenge", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_join_request" + ] }, - "handshake_response | challenged | strings": { + "join_request | challenged | strings": { "audit": [], "log": [], - "sent": [ - { - "detail": "No pending handshake challenge", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_join_request" + ] }, - "handshake_response | fresh | bare": { + "join_request | fresh | bare": { "audit": [], "log": [], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | fresh | lists": { + "join_request | fresh | lists": { "audit": [], "log": [], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | fresh | numbers": { + "join_request | fresh | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | fresh | strings": { + "join_request | fresh | strings": { "audit": [], "log": [], "sent": [ { - "detail": "No pending handshake challenge", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "handshake_response | member | bare": { + "join_request | member | bare": { "audit": [], "log": [], - "sent": [ - { - "detail": "No pending handshake challenge", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_join_request" + ] }, - "handshake_response | member | lists": { + "join_request | member | lists": { "audit": [], "log": [], - "sent": [ - { - "detail": "No pending handshake challenge", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_join_request" + ] }, - "handshake_response | member | numbers": { + "join_request | member | numbers": { "audit": [], "log": [], - "sent": [ - { - "detail": "No pending handshake challenge", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_join_request" + ] }, - "handshake_response | member | strings": { + "join_request | member | strings": { "audit": [], "log": [], - "sent": [ - { - "detail": "No pending handshake challenge", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_join_request" + ] }, - "handshake_response | operator | bare": { + "join_request | operator | bare": { "audit": [], "log": [], - "sent": [ - { - "detail": "No pending handshake challenge", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_join_request" + ] }, - "handshake_response | operator | lists": { + "join_request | operator | lists": { "audit": [], "log": [], - "sent": [ - { - "detail": "No pending handshake challenge", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_join_request" + ] }, - "handshake_response | operator | numbers": { + "join_request | operator | numbers": { "audit": [], "log": [], - "sent": [ - { - "detail": "No pending handshake challenge", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_join_request" + ] }, - "handshake_response | operator | strings": { + "join_request | operator | strings": { "audit": [], "log": [], - "sent": [ - { - "detail": "No pending handshake challenge", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_join_request" + ] }, - "index_delta | challenged | bare": { + "join_result | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -10186,7 +10336,7 @@ ], "spawned": [] }, - "index_delta | challenged | lists": { + "join_result | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -10198,7 +10348,7 @@ ], "spawned": [] }, - "index_delta | challenged | numbers": { + "join_result | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -10210,7 +10360,7 @@ ], "spawned": [] }, - "index_delta | challenged | strings": { + "join_result | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -10222,7 +10372,7 @@ ], "spawned": [] }, - "index_delta | fresh | bare": { + "join_result | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -10234,7 +10384,7 @@ ], "spawned": [] }, - "index_delta | fresh | lists": { + "join_result | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -10246,7 +10396,7 @@ ], "spawned": [] }, - "index_delta | fresh | numbers": { + "join_result | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -10258,7 +10408,7 @@ ], "spawned": [] }, - "index_delta | fresh | strings": { + "join_result | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -10270,7 +10420,7 @@ ], "spawned": [] }, - "index_delta | member | bare": { + "join_result | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10278,7 +10428,7 @@ "sent": [], "spawned": [] }, - "index_delta | member | lists": { + "join_result | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10286,7 +10436,7 @@ "sent": [], "spawned": [] }, - "index_delta | member | numbers": { + "join_result | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10294,7 +10444,7 @@ "sent": [], "spawned": [] }, - "index_delta | member | strings": { + "join_result | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10302,7 +10452,7 @@ "sent": [], "spawned": [] }, - "index_delta | operator | bare": { + "join_result | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10310,7 +10460,7 @@ "sent": [], "spawned": [] }, - "index_delta | operator | lists": { + "join_result | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10318,7 +10468,7 @@ "sent": [], "spawned": [] }, - "index_delta | operator | numbers": { + "join_result | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10326,7 +10476,7 @@ "sent": [], "spawned": [] }, - "index_delta | operator | strings": { + "join_result | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -10334,7 +10484,7 @@ "sent": [], "spawned": [] }, - "index_progress | challenged | bare": { + "keypair_bundle_delete | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -10346,7 +10496,7 @@ ], "spawned": [] }, - "index_progress | challenged | lists": { + "keypair_bundle_delete | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -10358,7 +10508,7 @@ ], "spawned": [] }, - "index_progress | challenged | numbers": { + "keypair_bundle_delete | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -10370,7 +10520,7 @@ ], "spawned": [] }, - "index_progress | challenged | strings": { + "keypair_bundle_delete | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -10382,7 +10532,7 @@ ], "spawned": [] }, - "index_progress | fresh | bare": { + "keypair_bundle_delete | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -10394,7 +10544,7 @@ ], "spawned": [] }, - "index_progress | fresh | lists": { + "keypair_bundle_delete | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -10406,7 +10556,7 @@ ], "spawned": [] }, - "index_progress | fresh | numbers": { + "keypair_bundle_delete | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -10418,7 +10568,7 @@ ], "spawned": [] }, - "index_progress | fresh | strings": { + "keypair_bundle_delete | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -10430,3864 +10580,103 @@ ], "spawned": [] }, - "index_progress | 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" + ] }, - "index_progress | member | lists": { + "keypair_bundle_delete | member | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "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": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "index_sync | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "index_sync | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "index_sync | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "index_sync | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "index_sync | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "index_sync | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "index_sync | fresh | strings": { - "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", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "index_sync | member | numbers": { - "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], - "sent": [ - { - "detail": "Request failed", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "index_sync | member | strings": { - "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], - "sent": [ - { - "detail": "Request failed", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "index_sync | operator | bare": { - "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], - "sent": [ - { - "detail": "Request failed", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "index_sync | operator | lists": { - "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], - "sent": [ - { - "detail": "Request failed", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "index_sync | operator | numbers": { - "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], - "sent": [ - { - "detail": "Request failed", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "index_sync | operator | strings": { - "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], - "sent": [ - { - "detail": "Request failed", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_cancel | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_cancel | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_cancel | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_cancel | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_cancel | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_cancel | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_cancel | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_cancel | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "invite_cancel | member | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Not an invitation id", - "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": "6.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": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "join_result | operator | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_delete | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_delete | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_delete | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_delete | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_delete | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_delete | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_delete | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_delete | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "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": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_keypair_bundle_fetch" - ] - }, - "keypair_bundle_fetch | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_fetch | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_fetch | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_fetch | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_fetch | member | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_fetch | member | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_fetch | member | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_fetch | member | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_fetch | operator | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_fetch | operator | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_fetch | operator | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_fetch | operator | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_resp | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_resp | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_resp | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_resp | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_resp | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_resp | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_resp | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_resp | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_resp | member | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_resp | member | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_resp | member | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_resp | member | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_resp | operator | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_resp | operator | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_resp | operator | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_resp | operator | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "keypair_bundle_store | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_store | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_store | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_store | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_store | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_store | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_store | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "keypair_bundle_store | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "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": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "link_preview_req | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "link_preview_req | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "link_preview_req | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "link_preview_req | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "link_preview_req | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "link_preview_req | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "link_preview_req | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "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": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "link_preview_resp | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "link_preview_resp | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "link_preview_resp | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "link_preview_resp | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "link_preview_resp | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "link_preview_resp | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "link_preview_resp | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "link_preview_resp | member | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "link_preview_resp | member | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "link_preview_resp | member | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "link_preview_resp | member | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "link_preview_resp | operator | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "link_preview_resp | operator | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "link_preview_resp | operator | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "link_preview_resp | operator | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "media_meta_req | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "media_meta_req | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "media_meta_req | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "media_meta_req | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "media_meta_req | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "media_meta_req | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "media_meta_req | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "media_meta_req | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "media_meta_req | member | bare": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_media_meta_request" - ] - }, - "media_meta_req | member | lists": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_media_meta_request" - ] - }, - "media_meta_req | member | numbers": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_media_meta_request" - ] - }, - "media_meta_req | member | strings": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_media_meta_request" - ] - }, - "media_meta_req | operator | bare": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_media_meta_request" - ] - }, - "media_meta_req | operator | lists": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_media_meta_request" - ] - }, - "media_meta_req | operator | numbers": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_media_meta_request" - ] - }, - "media_meta_req | operator | strings": { - "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_media_meta_request" - ] - }, - "media_meta_resp | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "media_meta_resp | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "media_meta_resp | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "media_meta_resp | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "media_meta_resp | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "media_meta_resp | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "media_meta_resp | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "media_meta_resp | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "media_meta_resp | member | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "media_meta_resp | member | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "media_meta_resp | member | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "media_meta_resp | member | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "media_meta_resp | operator | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "media_meta_resp | operator | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "media_meta_resp | operator | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "media_meta_resp | operator | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "member_revoke | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke | member | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing user_id", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke | member | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke | member | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke | member | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke | operator | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing user_id", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke | operator | lists": { - "audit": [], - "log": [], - "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": [] - }, - "member_revoke | operator | numbers": { - "audit": [], - "log": [], - "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": [] - }, - "member_revoke | operator | strings": { - "audit": [], - "log": [], - "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": [] - }, - "member_revoke_ack | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke_ack | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke_ack | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke_ack | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke_ack | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke_ack | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke_ack | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke_ack | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_revoke_ack | member | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "member_revoke_ack | member | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "member_revoke_ack | member | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "member_revoke_ack | member | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "member_revoke_ack | operator | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "member_revoke_ack | operator | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "member_revoke_ack | operator | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "member_revoke_ack | operator | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "member_unpin | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin | member | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing user_id", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin | member | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin | member | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin | member | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin | operator | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing user_id", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin | 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": "6.0" - } - ], - "spawned": [] - }, - "member_unpin | 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": "6.0" - } - ], - "spawned": [] - }, - "member_unpin | 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": "6.0" - } - ], - "spawned": [] - }, - "member_unpin_ack | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin_ack | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin_ack | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin_ack | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin_ack | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin_ack | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin_ack | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin_ack | fresh | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "member_unpin_ack | member | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "member_unpin_ack | member | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "member_unpin_ack | member | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "member_unpin_ack | member | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "member_unpin_ack | operator | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "member_unpin_ack | operator | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "member_unpin_ack | operator | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "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": [] + "spawned": [ + "_do_keypair_bundle_delete" + ] }, - "music_meta_req | member | bare": { + "keypair_bundle_delete | member | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_music_meta_request" + "_do_keypair_bundle_delete" ] }, - "music_meta_req | member | lists": { + "keypair_bundle_delete | member | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_music_meta_request" + "_do_keypair_bundle_delete" ] }, - "music_meta_req | member | numbers": { + "keypair_bundle_delete | operator | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_music_meta_request" + "_do_keypair_bundle_delete" ] }, - "music_meta_req | member | strings": { + "keypair_bundle_delete | operator | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_music_meta_request" + "_do_keypair_bundle_delete" ] }, - "music_meta_req | operator | bare": { + "keypair_bundle_delete | operator | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_music_meta_request" + "_do_keypair_bundle_delete" ] }, - "music_meta_req | operator | lists": { + "keypair_bundle_delete | operator | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_music_meta_request" + "_do_keypair_bundle_delete" ] }, - "music_meta_req | operator | numbers": { + "keypair_bundle_fetch | challenged | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_music_meta_request" + "_do_keypair_bundle_fetch" ] }, - "music_meta_req | operator | strings": { + "keypair_bundle_fetch | challenged | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_music_meta_request" + "_do_keypair_bundle_fetch" ] }, - "music_meta_resp | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "music_meta_resp | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "music_meta_resp | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "music_meta_resp | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "music_meta_resp | fresh | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "music_meta_resp | fresh | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "music_meta_resp | fresh | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "music_meta_resp | fresh | strings": { + "keypair_bundle_fetch | challenged | numbers": { "audit": [], "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "music_meta_resp | member | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "music_meta_resp | member | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "music_meta_resp | member | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "music_meta_resp | member | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "music_meta_resp | operator | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "music_meta_resp | operator | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "music_meta_resp | operator | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "music_meta_resp | operator | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], "sent": [], - "spawned": [] - }, - "musicbrainz_enabled | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "musicbrainz_enabled | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "musicbrainz_enabled | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "musicbrainz_enabled | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_fetch" + ] }, - "musicbrainz_enabled | fresh | bare": { + "keypair_bundle_fetch | challenged | strings": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_keypair_bundle_fetch" + ] + }, + "keypair_bundle_fetch | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -14299,7 +10688,7 @@ ], "spawned": [] }, - "musicbrainz_enabled | fresh | lists": { + "keypair_bundle_fetch | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -14311,7 +10700,7 @@ ], "spawned": [] }, - "musicbrainz_enabled | fresh | numbers": { + "keypair_bundle_fetch | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -14323,7 +10712,7 @@ ], "spawned": [] }, - "musicbrainz_enabled | fresh | strings": { + "keypair_bundle_fetch | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -14335,103 +10724,71 @@ ], "spawned": [] }, - "musicbrainz_enabled | member | bare": { + "keypair_bundle_fetch | member | bare": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing or invalid 'enabled'", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "musicbrainz_enabled | member | lists": { + "keypair_bundle_fetch | member | lists": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing or invalid 'enabled'", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "musicbrainz_enabled | member | numbers": { + "keypair_bundle_fetch | member | numbers": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing or invalid 'enabled'", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "musicbrainz_enabled | member | strings": { + "keypair_bundle_fetch | member | strings": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing or invalid 'enabled'", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "musicbrainz_enabled | operator | bare": { + "keypair_bundle_fetch | operator | bare": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing or invalid 'enabled'", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "musicbrainz_enabled | operator | lists": { + "keypair_bundle_fetch | operator | lists": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing or invalid 'enabled'", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "musicbrainz_enabled | operator | numbers": { + "keypair_bundle_fetch | operator | numbers": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing or invalid 'enabled'", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "musicbrainz_enabled | operator | strings": { + "keypair_bundle_fetch | operator | strings": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing or invalid 'enabled'", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "musicbrainz_enabled_ack | challenged | bare": { + "keypair_bundle_resp | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -14443,7 +10800,7 @@ ], "spawned": [] }, - "musicbrainz_enabled_ack | challenged | lists": { + "keypair_bundle_resp | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -14455,7 +10812,7 @@ ], "spawned": [] }, - "musicbrainz_enabled_ack | challenged | numbers": { + "keypair_bundle_resp | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -14467,7 +10824,7 @@ ], "spawned": [] }, - "musicbrainz_enabled_ack | challenged | strings": { + "keypair_bundle_resp | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -14479,7 +10836,7 @@ ], "spawned": [] }, - "musicbrainz_enabled_ack | fresh | bare": { + "keypair_bundle_resp | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -14491,7 +10848,7 @@ ], "spawned": [] }, - "musicbrainz_enabled_ack | fresh | lists": { + "keypair_bundle_resp | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -14503,7 +10860,7 @@ ], "spawned": [] }, - "musicbrainz_enabled_ack | fresh | numbers": { + "keypair_bundle_resp | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -14515,7 +10872,7 @@ ], "spawned": [] }, - "musicbrainz_enabled_ack | fresh | strings": { + "keypair_bundle_resp | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -14527,7 +10884,7 @@ ], "spawned": [] }, - "musicbrainz_enabled_ack | member | bare": { + "keypair_bundle_resp | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14535,7 +10892,7 @@ "sent": [], "spawned": [] }, - "musicbrainz_enabled_ack | member | lists": { + "keypair_bundle_resp | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14543,7 +10900,7 @@ "sent": [], "spawned": [] }, - "musicbrainz_enabled_ack | member | numbers": { + "keypair_bundle_resp | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14551,7 +10908,7 @@ "sent": [], "spawned": [] }, - "musicbrainz_enabled_ack | member | strings": { + "keypair_bundle_resp | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14559,7 +10916,7 @@ "sent": [], "spawned": [] }, - "musicbrainz_enabled_ack | operator | bare": { + "keypair_bundle_resp | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14567,7 +10924,7 @@ "sent": [], "spawned": [] }, - "musicbrainz_enabled_ack | operator | lists": { + "keypair_bundle_resp | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14575,7 +10932,7 @@ "sent": [], "spawned": [] }, - "musicbrainz_enabled_ack | operator | numbers": { + "keypair_bundle_resp | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14583,7 +10940,7 @@ "sent": [], "spawned": [] }, - "musicbrainz_enabled_ack | operator | strings": { + "keypair_bundle_resp | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -14591,7 +10948,7 @@ "sent": [], "spawned": [] }, - "no_such_type | challenged | bare": { + "keypair_bundle_store | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -14603,7 +10960,7 @@ ], "spawned": [] }, - "no_such_type | challenged | lists": { + "keypair_bundle_store | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -14615,7 +10972,7 @@ ], "spawned": [] }, - "no_such_type | challenged | numbers": { + "keypair_bundle_store | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -14627,7 +10984,7 @@ ], "spawned": [] }, - "no_such_type | challenged | strings": { + "keypair_bundle_store | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -14639,7 +10996,7 @@ ], "spawned": [] }, - "no_such_type | fresh | bare": { + "keypair_bundle_store | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -14651,7 +11008,7 @@ ], "spawned": [] }, - "no_such_type | fresh | lists": { + "keypair_bundle_store | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -14663,7 +11020,7 @@ ], "spawned": [] }, - "no_such_type | fresh | numbers": { + "keypair_bundle_store | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -14675,7 +11032,7 @@ ], "spawned": [] }, - "no_such_type | fresh | strings": { + "keypair_bundle_store | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -14687,71 +11044,71 @@ ], "spawned": [] }, - "no_such_type | member | bare": { + "keypair_bundle_store | member | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_store" + ] }, - "no_such_type | member | lists": { + "keypair_bundle_store | member | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_store" + ] }, - "no_such_type | member | numbers": { + "keypair_bundle_store | member | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_store" + ] }, - "no_such_type | member | strings": { + "keypair_bundle_store | member | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_store" + ] }, - "no_such_type | operator | bare": { + "keypair_bundle_store | operator | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_store" + ] }, - "no_such_type | operator | lists": { + "keypair_bundle_store | operator | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_store" + ] }, - "no_such_type | operator | numbers": { + "keypair_bundle_store | operator | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_store" + ] }, - "no_such_type | operator | strings": { + "keypair_bundle_store | operator | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_keypair_bundle_store" + ] }, - "node_reload | challenged | bare": { + "link_preview_req | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -14763,7 +11120,7 @@ ], "spawned": [] }, - "node_reload | challenged | lists": { + "link_preview_req | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -14775,7 +11132,7 @@ ], "spawned": [] }, - "node_reload | challenged | numbers": { + "link_preview_req | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -14787,7 +11144,7 @@ ], "spawned": [] }, - "node_reload | challenged | strings": { + "link_preview_req | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -14799,7 +11156,7 @@ ], "spawned": [] }, - "node_reload | fresh | bare": { + "link_preview_req | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -14811,7 +11168,7 @@ ], "spawned": [] }, - "node_reload | fresh | lists": { + "link_preview_req | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -14823,7 +11180,7 @@ ], "spawned": [] }, - "node_reload | fresh | numbers": { + "link_preview_req | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -14835,7 +11192,7 @@ ], "spawned": [] }, - "node_reload | fresh | strings": { + "link_preview_req | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -14847,71 +11204,71 @@ ], "spawned": [] }, - "node_reload | member | bare": { + "link_preview_req | member | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_reload" + "_do_link_preview_request" ] }, - "node_reload | member | lists": { + "link_preview_req | member | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_reload" + "_do_link_preview_request" ] }, - "node_reload | member | numbers": { + "link_preview_req | member | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_reload" + "_do_link_preview_request" ] }, - "node_reload | member | strings": { + "link_preview_req | member | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_reload" + "_do_link_preview_request" ] }, - "node_reload | operator | bare": { + "link_preview_req | operator | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_reload" + "_do_link_preview_request" ] }, - "node_reload | operator | lists": { + "link_preview_req | operator | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_reload" + "_do_link_preview_request" ] }, - "node_reload | operator | numbers": { + "link_preview_req | operator | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_reload" + "_do_link_preview_request" ] }, - "node_reload | operator | strings": { + "link_preview_req | operator | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_reload" + "_do_link_preview_request" ] }, - "node_reload_ack | challenged | bare": { + "link_preview_resp | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -14923,7 +11280,7 @@ ], "spawned": [] }, - "node_reload_ack | challenged | lists": { + "link_preview_resp | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -14935,7 +11292,7 @@ ], "spawned": [] }, - "node_reload_ack | challenged | numbers": { + "link_preview_resp | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -14947,7 +11304,7 @@ ], "spawned": [] }, - "node_reload_ack | challenged | strings": { + "link_preview_resp | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -14959,7 +11316,7 @@ ], "spawned": [] }, - "node_reload_ack | fresh | bare": { + "link_preview_resp | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -14971,7 +11328,7 @@ ], "spawned": [] }, - "node_reload_ack | fresh | lists": { + "link_preview_resp | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -14983,7 +11340,7 @@ ], "spawned": [] }, - "node_reload_ack | fresh | numbers": { + "link_preview_resp | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -14995,7 +11352,7 @@ ], "spawned": [] }, - "node_reload_ack | fresh | strings": { + "link_preview_resp | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -15007,7 +11364,7 @@ ], "spawned": [] }, - "node_reload_ack | member | bare": { + "link_preview_resp | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15015,7 +11372,7 @@ "sent": [], "spawned": [] }, - "node_reload_ack | member | lists": { + "link_preview_resp | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15023,7 +11380,7 @@ "sent": [], "spawned": [] }, - "node_reload_ack | member | numbers": { + "link_preview_resp | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15031,7 +11388,7 @@ "sent": [], "spawned": [] }, - "node_reload_ack | member | strings": { + "link_preview_resp | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15039,7 +11396,7 @@ "sent": [], "spawned": [] }, - "node_reload_ack | operator | bare": { + "link_preview_resp | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15047,7 +11404,7 @@ "sent": [], "spawned": [] }, - "node_reload_ack | operator | lists": { + "link_preview_resp | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15055,7 +11412,7 @@ "sent": [], "spawned": [] }, - "node_reload_ack | operator | numbers": { + "link_preview_resp | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15063,7 +11420,7 @@ "sent": [], "spawned": [] }, - "node_reload_ack | operator | strings": { + "link_preview_resp | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15071,7 +11428,7 @@ "sent": [], "spawned": [] }, - "node_settings_set | challenged | bare": { + "media_meta_req | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -15083,7 +11440,7 @@ ], "spawned": [] }, - "node_settings_set | challenged | lists": { + "media_meta_req | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -15095,7 +11452,7 @@ ], "spawned": [] }, - "node_settings_set | challenged | numbers": { + "media_meta_req | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -15107,7 +11464,7 @@ ], "spawned": [] }, - "node_settings_set | challenged | strings": { + "media_meta_req | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -15119,7 +11476,7 @@ ], "spawned": [] }, - "node_settings_set | fresh | bare": { + "media_meta_req | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -15131,7 +11488,7 @@ ], "spawned": [] }, - "node_settings_set | fresh | lists": { + "media_meta_req | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -15143,7 +11500,7 @@ ], "spawned": [] }, - "node_settings_set | fresh | numbers": { + "media_meta_req | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -15155,7 +11512,7 @@ ], "spawned": [] }, - "node_settings_set | fresh | strings": { + "media_meta_req | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -15167,71 +11524,71 @@ ], "spawned": [] }, - "node_settings_set | member | bare": { + "media_meta_req | member | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_settings_set" + "_do_media_meta_request" ] }, - "node_settings_set | member | lists": { + "media_meta_req | member | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_settings_set" + "_do_media_meta_request" ] }, - "node_settings_set | member | numbers": { + "media_meta_req | member | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_settings_set" + "_do_media_meta_request" ] }, - "node_settings_set | member | strings": { + "media_meta_req | member | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_settings_set" + "_do_media_meta_request" ] }, - "node_settings_set | operator | bare": { + "media_meta_req | operator | bare": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_settings_set" + "_do_media_meta_request" ] }, - "node_settings_set | operator | lists": { + "media_meta_req | operator | lists": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_settings_set" + "_do_media_meta_request" ] }, - "node_settings_set | operator | numbers": { + "media_meta_req | operator | numbers": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_settings_set" + "_do_media_meta_request" ] }, - "node_settings_set | operator | strings": { + "media_meta_req | operator | strings": { "audit": [], "log": [], "sent": [], "spawned": [ - "_do_node_settings_set" + "_do_media_meta_request" ] }, - "node_settings_set_ack | challenged | bare": { + "media_meta_resp | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -15243,7 +11600,7 @@ ], "spawned": [] }, - "node_settings_set_ack | challenged | lists": { + "media_meta_resp | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -15255,7 +11612,7 @@ ], "spawned": [] }, - "node_settings_set_ack | challenged | numbers": { + "media_meta_resp | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -15267,7 +11624,7 @@ ], "spawned": [] }, - "node_settings_set_ack | challenged | strings": { + "media_meta_resp | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -15279,7 +11636,7 @@ ], "spawned": [] }, - "node_settings_set_ack | fresh | bare": { + "media_meta_resp | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -15291,7 +11648,7 @@ ], "spawned": [] }, - "node_settings_set_ack | fresh | lists": { + "media_meta_resp | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -15303,7 +11660,7 @@ ], "spawned": [] }, - "node_settings_set_ack | fresh | numbers": { + "media_meta_resp | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -15315,7 +11672,7 @@ ], "spawned": [] }, - "node_settings_set_ack | fresh | strings": { + "media_meta_resp | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -15327,7 +11684,7 @@ ], "spawned": [] }, - "node_settings_set_ack | member | bare": { + "media_meta_resp | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15335,7 +11692,7 @@ "sent": [], "spawned": [] }, - "node_settings_set_ack | member | lists": { + "media_meta_resp | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15343,7 +11700,7 @@ "sent": [], "spawned": [] }, - "node_settings_set_ack | member | numbers": { + "media_meta_resp | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15351,7 +11708,7 @@ "sent": [], "spawned": [] }, - "node_settings_set_ack | member | strings": { + "media_meta_resp | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15359,7 +11716,7 @@ "sent": [], "spawned": [] }, - "node_settings_set_ack | operator | bare": { + "media_meta_resp | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15367,7 +11724,7 @@ "sent": [], "spawned": [] }, - "node_settings_set_ack | operator | lists": { + "media_meta_resp | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15375,7 +11732,7 @@ "sent": [], "spawned": [] }, - "node_settings_set_ack | operator | numbers": { + "media_meta_resp | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15383,7 +11740,7 @@ "sent": [], "spawned": [] }, - "node_settings_set_ack | operator | strings": { + "media_meta_resp | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15391,7 +11748,7 @@ "sent": [], "spawned": [] }, - "node_status | challenged | bare": { + "member_revoke | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -15403,7 +11760,7 @@ ], "spawned": [] }, - "node_status | challenged | lists": { + "member_revoke | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -15415,7 +11772,7 @@ ], "spawned": [] }, - "node_status | challenged | numbers": { + "member_revoke | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -15427,7 +11784,7 @@ ], "spawned": [] }, - "node_status | challenged | strings": { + "member_revoke | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -15439,7 +11796,7 @@ ], "spawned": [] }, - "node_status | fresh | bare": { + "member_revoke | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -15451,7 +11808,7 @@ ], "spawned": [] }, - "node_status | fresh | lists": { + "member_revoke | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -15463,7 +11820,7 @@ ], "spawned": [] }, - "node_status | fresh | numbers": { + "member_revoke | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -15475,7 +11832,7 @@ ], "spawned": [] }, - "node_status | fresh | strings": { + "member_revoke | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -15487,71 +11844,124 @@ ], "spawned": [] }, - "node_status | member | bare": { + "member_revoke | member | bare": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_node_status" - ] + "sent": [ + { + "detail": "Missing user_id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "node_status | member | lists": { + "member_revoke | member | lists": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_node_status" - ] + "sent": [ + { + "detail": "No authorized key for this", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "node_status | member | numbers": { + "member_revoke | member | numbers": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_node_status" - ] + "sent": [ + { + "detail": "No authorized key for this", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "node_status | member | strings": { + "member_revoke | member | strings": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_node_status" - ] + "sent": [ + { + "detail": "No authorized key for this", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "node_status | operator | bare": { + "member_revoke | operator | bare": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_node_status" - ] + "sent": [ + { + "detail": "Missing user_id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "node_status | operator | lists": { + "member_revoke | operator | lists": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_node_status" - ] + "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": [] }, - "node_status | operator | numbers": { + "member_revoke | operator | numbers": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_node_status" - ] + "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": [] }, - "node_status | operator | strings": { + "member_revoke | operator | strings": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_node_status" - ] + "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": [] }, - "node_status_ack | challenged | bare": { + "member_revoke_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -15563,7 +11973,7 @@ ], "spawned": [] }, - "node_status_ack | challenged | lists": { + "member_revoke_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -15575,7 +11985,7 @@ ], "spawned": [] }, - "node_status_ack | challenged | numbers": { + "member_revoke_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -15587,7 +11997,7 @@ ], "spawned": [] }, - "node_status_ack | challenged | strings": { + "member_revoke_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -15599,7 +12009,7 @@ ], "spawned": [] }, - "node_status_ack | fresh | bare": { + "member_revoke_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -15611,7 +12021,7 @@ ], "spawned": [] }, - "node_status_ack | fresh | lists": { + "member_revoke_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -15623,7 +12033,7 @@ ], "spawned": [] }, - "node_status_ack | fresh | numbers": { + "member_revoke_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -15635,7 +12045,7 @@ ], "spawned": [] }, - "node_status_ack | fresh | strings": { + "member_revoke_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -15647,7 +12057,7 @@ ], "spawned": [] }, - "node_status_ack | member | bare": { + "member_revoke_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15655,7 +12065,7 @@ "sent": [], "spawned": [] }, - "node_status_ack | member | lists": { + "member_revoke_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15663,7 +12073,7 @@ "sent": [], "spawned": [] }, - "node_status_ack | member | numbers": { + "member_revoke_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15671,7 +12081,7 @@ "sent": [], "spawned": [] }, - "node_status_ack | member | strings": { + "member_revoke_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15679,7 +12089,7 @@ "sent": [], "spawned": [] }, - "node_status_ack | operator | bare": { + "member_revoke_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15687,7 +12097,7 @@ "sent": [], "spawned": [] }, - "node_status_ack | operator | lists": { + "member_revoke_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15695,7 +12105,7 @@ "sent": [], "spawned": [] }, - "node_status_ack | operator | numbers": { + "member_revoke_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15703,7 +12113,7 @@ "sent": [], "spawned": [] }, - "node_status_ack | operator | strings": { + "member_revoke_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -15711,55 +12121,7 @@ "sent": [], "spawned": [] }, - "ping | challenged | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "ping | challenged | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "ping | challenged | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "ping | challenged | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Handshake required", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "ping | fresh | bare": { + "music_meta_req | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -15771,7 +12133,7 @@ ], "spawned": [] }, - "ping | fresh | lists": { + "music_meta_req | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -15783,7 +12145,7 @@ ], "spawned": [] }, - "ping | fresh | numbers": { + "music_meta_req | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -15795,7 +12157,7 @@ ], "spawned": [] }, - "ping | fresh | strings": { + "music_meta_req | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -15807,115 +12169,119 @@ ], "spawned": [] }, - "ping | member | bare": { + "music_meta_req | fresh | bare": { "audit": [], "log": [], "sent": [ { + "detail": "Handshake required", "req_id": 4242, - "token": null, - "type": "pong", - "v": "6.0" + "type": "error" } ], "spawned": [] }, - "ping | member | lists": { + "music_meta_req | fresh | lists": { "audit": [], "log": [], "sent": [ { + "detail": "Handshake required", "req_id": 4242, - "token": [ - "x" - ], - "type": "pong", - "v": "6.0" + "type": "error" } ], "spawned": [] }, - "ping | member | numbers": { + "music_meta_req | fresh | numbers": { "audit": [], "log": [], "sent": [ { + "detail": "Handshake required", "req_id": 4242, - "token": 7, - "type": "pong", - "v": "6.0" + "type": "error" } ], "spawned": [] }, - "ping | member | strings": { + "music_meta_req | fresh | strings": { "audit": [], "log": [], "sent": [ { + "detail": "Handshake required", "req_id": 4242, - "token": "x", - "type": "pong", - "v": "6.0" + "type": "error" } ], "spawned": [] }, - "ping | operator | bare": { + "music_meta_req | member | bare": { "audit": [], "log": [], - "sent": [ - { - "req_id": 4242, - "token": null, - "type": "pong", - "v": "6.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_music_meta_request" + ] }, - "ping | operator | lists": { + "music_meta_req | member | lists": { "audit": [], "log": [], - "sent": [ - { - "req_id": 4242, - "token": [ - "x" - ], - "type": "pong", - "v": "6.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_music_meta_request" + ] }, - "ping | operator | numbers": { + "music_meta_req | member | numbers": { "audit": [], "log": [], - "sent": [ - { - "req_id": 4242, - "token": 7, - "type": "pong", - "v": "6.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_music_meta_request" + ] }, - "ping | operator | strings": { + "music_meta_req | member | strings": { "audit": [], "log": [], - "sent": [ - { - "req_id": 4242, - "token": "x", - "type": "pong", - "v": "6.0" - } - ], - "spawned": [] + "sent": [], + "spawned": [ + "_do_music_meta_request" + ] }, - "pong | challenged | bare": { + "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": [], + "sent": [], + "spawned": [ + "_do_music_meta_request" + ] + }, + "music_meta_resp | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -15927,7 +12293,7 @@ ], "spawned": [] }, - "pong | challenged | lists": { + "music_meta_resp | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -15939,7 +12305,7 @@ ], "spawned": [] }, - "pong | challenged | numbers": { + "music_meta_resp | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -15951,7 +12317,7 @@ ], "spawned": [] }, - "pong | challenged | strings": { + "music_meta_resp | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -15963,7 +12329,7 @@ ], "spawned": [] }, - "pong | fresh | bare": { + "music_meta_resp | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -15975,7 +12341,7 @@ ], "spawned": [] }, - "pong | fresh | lists": { + "music_meta_resp | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -15987,7 +12353,7 @@ ], "spawned": [] }, - "pong | fresh | numbers": { + "music_meta_resp | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -15999,7 +12365,7 @@ ], "spawned": [] }, - "pong | fresh | strings": { + "music_meta_resp | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -16011,7 +12377,7 @@ ], "spawned": [] }, - "pong | member | bare": { + "music_meta_resp | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16019,7 +12385,7 @@ "sent": [], "spawned": [] }, - "pong | member | lists": { + "music_meta_resp | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16027,7 +12393,7 @@ "sent": [], "spawned": [] }, - "pong | member | numbers": { + "music_meta_resp | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16035,7 +12401,7 @@ "sent": [], "spawned": [] }, - "pong | member | strings": { + "music_meta_resp | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16043,7 +12409,7 @@ "sent": [], "spawned": [] }, - "pong | operator | bare": { + "music_meta_resp | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16051,7 +12417,7 @@ "sent": [], "spawned": [] }, - "pong | operator | lists": { + "music_meta_resp | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16059,7 +12425,7 @@ "sent": [], "spawned": [] }, - "pong | operator | numbers": { + "music_meta_resp | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16067,228 +12433,367 @@ "sent": [], "spawned": [] }, - "pong | operator | strings": { + "music_meta_resp | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" ], - "sent": [], + "sent": [], + "spawned": [] + }, + "musicbrainz_enabled | challenged | bare": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "musicbrainz_enabled | challenged | lists": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "musicbrainz_enabled | challenged | numbers": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "musicbrainz_enabled | challenged | strings": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "musicbrainz_enabled | fresh | bare": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "musicbrainz_enabled | fresh | lists": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "musicbrainz_enabled | fresh | numbers": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] + }, + "musicbrainz_enabled | fresh | strings": { + "audit": [], + "log": [], + "sent": [ + { + "detail": "Handshake required", + "req_id": 4242, + "type": "error" + } + ], "spawned": [] }, - "root_eject | challenged | bare": { + "musicbrainz_enabled | member | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "root_eject | challenged | lists": { + "musicbrainz_enabled | member | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "root_eject | challenged | numbers": { + "musicbrainz_enabled | member | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "root_eject | challenged | strings": { + "musicbrainz_enabled | member | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "root_eject | fresh | bare": { + "musicbrainz_enabled | operator | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "root_eject | fresh | lists": { + "musicbrainz_enabled | operator | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "root_eject | fresh | numbers": { + "musicbrainz_enabled | operator | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "root_eject | fresh | strings": { + "musicbrainz_enabled | operator | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "root_eject | member | bare": { + "musicbrainz_enabled_ack | challenged | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Missing group_id or root_name", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "root_eject | member | lists": { + "musicbrainz_enabled_ack | challenged | lists": { "audit": [], "log": [], "sent": [ { - "detail": "No authorized key for this", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "root_eject | member | numbers": { + "musicbrainz_enabled_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "No authorized key for this", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "root_eject | member | strings": { + "musicbrainz_enabled_ack | challenged | strings": { "audit": [], "log": [], "sent": [ { - "detail": "No authorized key for this", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "root_eject | operator | bare": { + "musicbrainz_enabled_ack | fresh | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Missing group_id or root_name", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "root_eject | operator | lists": { + "musicbrainz_enabled_ack | fresh | lists": { "audit": [], "log": [], "sent": [ { - "group_id": "['x']", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "root_eject", - "op_id": "", + "detail": "Handshake required", "req_id": 4242, - "subject": "['x']", - "ts": "", - "type": "admin_challenge", - "v": "6.0" + "type": "error" } ], "spawned": [] }, - "root_eject | operator | numbers": { + "musicbrainz_enabled_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ { - "group_id": "7", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "root_eject", - "op_id": "", + "detail": "Handshake required", "req_id": 4242, - "subject": "7", - "ts": "", - "type": "admin_challenge", - "v": "6.0" + "type": "error" } ], "spawned": [] }, - "root_eject | operator | strings": { + "musicbrainz_enabled_ack | fresh | strings": { "audit": [], "log": [], "sent": [ { - "group_id": "x", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "root_eject", - "op_id": "", + "detail": "Handshake required", "req_id": 4242, - "subject": "x", - "ts": "", - "type": "admin_challenge", - "v": "6.0" + "type": "error" } ], "spawned": [] }, - "root_eject_ack | challenged | bare": { + "musicbrainz_enabled_ack | member | bare": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "musicbrainz_enabled_ack | member | lists": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "musicbrainz_enabled_ack | member | numbers": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "musicbrainz_enabled_ack | member | strings": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "musicbrainz_enabled_ack | operator | bare": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "musicbrainz_enabled_ack | operator | lists": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "musicbrainz_enabled_ack | operator | numbers": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "musicbrainz_enabled_ack | operator | strings": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "no_such_type | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -16300,7 +12805,7 @@ ], "spawned": [] }, - "root_eject_ack | challenged | lists": { + "no_such_type | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -16312,7 +12817,7 @@ ], "spawned": [] }, - "root_eject_ack | challenged | numbers": { + "no_such_type | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -16324,7 +12829,7 @@ ], "spawned": [] }, - "root_eject_ack | challenged | strings": { + "no_such_type | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -16336,7 +12841,7 @@ ], "spawned": [] }, - "root_eject_ack | fresh | bare": { + "no_such_type | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -16348,7 +12853,7 @@ ], "spawned": [] }, - "root_eject_ack | fresh | lists": { + "no_such_type | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -16360,7 +12865,7 @@ ], "spawned": [] }, - "root_eject_ack | fresh | numbers": { + "no_such_type | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -16372,7 +12877,7 @@ ], "spawned": [] }, - "root_eject_ack | fresh | strings": { + "no_such_type | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -16384,7 +12889,7 @@ ], "spawned": [] }, - "root_eject_ack | member | bare": { + "no_such_type | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16392,7 +12897,7 @@ "sent": [], "spawned": [] }, - "root_eject_ack | member | lists": { + "no_such_type | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16400,7 +12905,7 @@ "sent": [], "spawned": [] }, - "root_eject_ack | member | numbers": { + "no_such_type | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16408,7 +12913,7 @@ "sent": [], "spawned": [] }, - "root_eject_ack | member | strings": { + "no_such_type | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16416,7 +12921,7 @@ "sent": [], "spawned": [] }, - "root_eject_ack | operator | bare": { + "no_such_type | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16424,7 +12929,7 @@ "sent": [], "spawned": [] }, - "root_eject_ack | operator | lists": { + "no_such_type | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16432,7 +12937,7 @@ "sent": [], "spawned": [] }, - "root_eject_ack | operator | numbers": { + "no_such_type | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16440,7 +12945,7 @@ "sent": [], "spawned": [] }, - "root_eject_ack | operator | strings": { + "no_such_type | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16448,7 +12953,7 @@ "sent": [], "spawned": [] }, - "root_plug | challenged | bare": { + "ping | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -16460,7 +12965,7 @@ ], "spawned": [] }, - "root_plug | challenged | lists": { + "ping | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -16472,7 +12977,7 @@ ], "spawned": [] }, - "root_plug | challenged | numbers": { + "ping | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -16484,7 +12989,7 @@ ], "spawned": [] }, - "root_plug | challenged | strings": { + "ping | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -16496,7 +13001,7 @@ ], "spawned": [] }, - "root_plug | fresh | bare": { + "ping | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -16508,7 +13013,7 @@ ], "spawned": [] }, - "root_plug | fresh | lists": { + "ping | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -16520,7 +13025,7 @@ ], "spawned": [] }, - "root_plug | fresh | numbers": { + "ping | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -16532,7 +13037,7 @@ ], "spawned": [] }, - "root_plug | fresh | strings": { + "ping | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -16544,124 +13049,115 @@ ], "spawned": [] }, - "root_plug | 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_plug | 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_plug | 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_plug | 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_plug | 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_plug | operator | lists": { - "audit": [], - "log": [], - "sent": [ - { - "group_id": "['x']", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "root_plug", - "op_id": "", + "ping | operator | lists": { + "audit": [], + "log": [], + "sent": [ + { "req_id": 4242, - "subject": "['x']", - "ts": "", - "type": "admin_challenge", + "token": [ + "x" + ], + "type": "pong", "v": "6.0" } ], "spawned": [] }, - "root_plug | operator | numbers": { + "ping | operator | numbers": { "audit": [], "log": [], "sent": [ { - "group_id": "7", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "root_plug", - "op_id": "", "req_id": 4242, - "subject": "7", - "ts": "", - "type": "admin_challenge", + "token": 7, + "type": "pong", "v": "6.0" } ], "spawned": [] }, - "root_plug | operator | strings": { + "ping | operator | strings": { "audit": [], "log": [], "sent": [ { - "group_id": "x", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "root_plug", - "op_id": "", "req_id": 4242, - "subject": "x", - "ts": "", - "type": "admin_challenge", + "token": "x", + "type": "pong", "v": "6.0" } ], "spawned": [] }, - "root_plug_ack | challenged | bare": { + "pong | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -16673,7 +13169,7 @@ ], "spawned": [] }, - "root_plug_ack | challenged | lists": { + "pong | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -16685,7 +13181,7 @@ ], "spawned": [] }, - "root_plug_ack | challenged | numbers": { + "pong | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -16697,7 +13193,7 @@ ], "spawned": [] }, - "root_plug_ack | challenged | strings": { + "pong | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -16709,7 +13205,7 @@ ], "spawned": [] }, - "root_plug_ack | fresh | bare": { + "pong | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -16721,7 +13217,7 @@ ], "spawned": [] }, - "root_plug_ack | fresh | lists": { + "pong | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -16733,7 +13229,7 @@ ], "spawned": [] }, - "root_plug_ack | fresh | numbers": { + "pong | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -16745,7 +13241,7 @@ ], "spawned": [] }, - "root_plug_ack | fresh | strings": { + "pong | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -16757,7 +13253,7 @@ ], "spawned": [] }, - "root_plug_ack | member | bare": { + "pong | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16765,7 +13261,7 @@ "sent": [], "spawned": [] }, - "root_plug_ack | member | lists": { + "pong | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16773,7 +13269,7 @@ "sent": [], "spawned": [] }, - "root_plug_ack | member | numbers": { + "pong | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16781,7 +13277,7 @@ "sent": [], "spawned": [] }, - "root_plug_ack | member | strings": { + "pong | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16789,7 +13285,7 @@ "sent": [], "spawned": [] }, - "root_plug_ack | operator | bare": { + "pong | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16797,7 +13293,7 @@ "sent": [], "spawned": [] }, - "root_plug_ack | operator | lists": { + "pong | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16805,7 +13301,7 @@ "sent": [], "spawned": [] }, - "root_plug_ack | operator | numbers": { + "pong | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16813,7 +13309,7 @@ "sent": [], "spawned": [] }, - "root_plug_ack | operator | strings": { + "pong | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -16821,7 +13317,7 @@ "sent": [], "spawned": [] }, - "root_remove | challenged | bare": { + "root_eject | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -16833,7 +13329,7 @@ ], "spawned": [] }, - "root_remove | challenged | lists": { + "root_eject | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -16845,7 +13341,7 @@ ], "spawned": [] }, - "root_remove | challenged | numbers": { + "root_eject | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -16857,7 +13353,7 @@ ], "spawned": [] }, - "root_remove | challenged | strings": { + "root_eject | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -16869,7 +13365,7 @@ ], "spawned": [] }, - "root_remove | fresh | bare": { + "root_eject | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -16881,7 +13377,7 @@ ], "spawned": [] }, - "root_remove | fresh | lists": { + "root_eject | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -16893,7 +13389,7 @@ ], "spawned": [] }, - "root_remove | fresh | numbers": { + "root_eject | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -16905,7 +13401,7 @@ ], "spawned": [] }, - "root_remove | fresh | strings": { + "root_eject | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -16917,7 +13413,7 @@ ], "spawned": [] }, - "root_remove | member | bare": { + "root_eject | member | bare": { "audit": [], "log": [], "sent": [ @@ -16929,7 +13425,7 @@ ], "spawned": [] }, - "root_remove | member | lists": { + "root_eject | member | lists": { "audit": [], "log": [], "sent": [ @@ -16941,7 +13437,7 @@ ], "spawned": [] }, - "root_remove | member | numbers": { + "root_eject | member | numbers": { "audit": [], "log": [], "sent": [ @@ -16953,7 +13449,7 @@ ], "spawned": [] }, - "root_remove | member | strings": { + "root_eject | member | strings": { "audit": [], "log": [], "sent": [ @@ -16965,7 +13461,7 @@ ], "spawned": [] }, - "root_remove | operator | bare": { + "root_eject | operator | bare": { "audit": [], "log": [], "sent": [ @@ -16977,7 +13473,7 @@ ], "spawned": [] }, - "root_remove | operator | lists": { + "root_eject | operator | lists": { "audit": [], "log": [], "sent": [ @@ -16985,7 +13481,7 @@ "group_id": "['x']", "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", "nonce": "", - "op": "root_remove", + "op": "root_eject", "op_id": "", "req_id": 4242, "subject": "['x']", @@ -16996,7 +13492,7 @@ ], "spawned": [] }, - "root_remove | operator | numbers": { + "root_eject | operator | numbers": { "audit": [], "log": [], "sent": [ @@ -17004,7 +13500,7 @@ "group_id": "7", "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", "nonce": "", - "op": "root_remove", + "op": "root_eject", "op_id": "", "req_id": 4242, "subject": "7", @@ -17015,7 +13511,7 @@ ], "spawned": [] }, - "root_remove | operator | strings": { + "root_eject | operator | strings": { "audit": [], "log": [], "sent": [ @@ -17023,7 +13519,7 @@ "group_id": "x", "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", "nonce": "", - "op": "root_remove", + "op": "root_eject", "op_id": "", "req_id": 4242, "subject": "x", @@ -17034,7 +13530,7 @@ ], "spawned": [] }, - "root_remove_ack | challenged | bare": { + "root_eject_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -17046,7 +13542,7 @@ ], "spawned": [] }, - "root_remove_ack | challenged | lists": { + "root_eject_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -17058,7 +13554,7 @@ ], "spawned": [] }, - "root_remove_ack | challenged | numbers": { + "root_eject_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -17070,7 +13566,7 @@ ], "spawned": [] }, - "root_remove_ack | challenged | strings": { + "root_eject_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -17082,7 +13578,7 @@ ], "spawned": [] }, - "root_remove_ack | fresh | bare": { + "root_eject_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -17094,7 +13590,7 @@ ], "spawned": [] }, - "root_remove_ack | fresh | lists": { + "root_eject_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -17106,7 +13602,7 @@ ], "spawned": [] }, - "root_remove_ack | fresh | numbers": { + "root_eject_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -17118,7 +13614,7 @@ ], "spawned": [] }, - "root_remove_ack | fresh | strings": { + "root_eject_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -17130,7 +13626,7 @@ ], "spawned": [] }, - "root_remove_ack | member | bare": { + "root_eject_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17138,7 +13634,7 @@ "sent": [], "spawned": [] }, - "root_remove_ack | member | lists": { + "root_eject_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17146,7 +13642,7 @@ "sent": [], "spawned": [] }, - "root_remove_ack | member | numbers": { + "root_eject_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17154,7 +13650,7 @@ "sent": [], "spawned": [] }, - "root_remove_ack | member | strings": { + "root_eject_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17162,7 +13658,7 @@ "sent": [], "spawned": [] }, - "root_remove_ack | operator | bare": { + "root_eject_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17170,7 +13666,7 @@ "sent": [], "spawned": [] }, - "root_remove_ack | operator | lists": { + "root_eject_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17178,7 +13674,7 @@ "sent": [], "spawned": [] }, - "root_remove_ack | operator | numbers": { + "root_eject_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17186,7 +13682,7 @@ "sent": [], "spawned": [] }, - "root_remove_ack | operator | strings": { + "root_eject_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17194,7 +13690,7 @@ "sent": [], "spawned": [] }, - "roster_read | challenged | bare": { + "root_plug | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -17206,7 +13702,7 @@ ], "spawned": [] }, - "roster_read | challenged | lists": { + "root_plug | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -17218,7 +13714,7 @@ ], "spawned": [] }, - "roster_read | challenged | numbers": { + "root_plug | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -17230,7 +13726,7 @@ ], "spawned": [] }, - "roster_read | challenged | strings": { + "root_plug | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -17242,7 +13738,7 @@ ], "spawned": [] }, - "roster_read | fresh | bare": { + "root_plug | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -17254,7 +13750,7 @@ ], "spawned": [] }, - "roster_read | fresh | lists": { + "root_plug | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -17266,7 +13762,7 @@ ], "spawned": [] }, - "roster_read | fresh | numbers": { + "root_plug | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -17278,7 +13774,7 @@ ], "spawned": [] }, - "roster_read | fresh | strings": { + "root_plug | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -17290,71 +13786,124 @@ ], "spawned": [] }, - "roster_read | member | bare": { + "root_plug | member | bare": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_roster_read" - ] + "sent": [ + { + "detail": "Missing group_id or root_name", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "roster_read | member | lists": { + "root_plug | member | lists": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_roster_read" - ] + "sent": [ + { + "detail": "No authorized key for this", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "roster_read | member | numbers": { + "root_plug | member | numbers": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_roster_read" - ] + "sent": [ + { + "detail": "No authorized key for this", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "roster_read | member | strings": { + "root_plug | member | strings": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_roster_read" - ] + "sent": [ + { + "detail": "No authorized key for this", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "roster_read | operator | bare": { + "root_plug | operator | bare": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_roster_read" - ] + "sent": [ + { + "detail": "Missing group_id or root_name", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "roster_read | operator | lists": { + "root_plug | operator | lists": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_roster_read" - ] + "sent": [ + { + "group_id": "['x']", + "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", + "nonce": "", + "op": "root_plug", + "op_id": "", + "req_id": 4242, + "subject": "['x']", + "ts": "", + "type": "admin_challenge", + "v": "6.0" + } + ], + "spawned": [] }, - "roster_read | operator | numbers": { + "root_plug | operator | numbers": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_roster_read" - ] + "sent": [ + { + "group_id": "7", + "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", + "nonce": "", + "op": "root_plug", + "op_id": "", + "req_id": 4242, + "subject": "7", + "ts": "", + "type": "admin_challenge", + "v": "6.0" + } + ], + "spawned": [] }, - "roster_read | operator | strings": { + "root_plug | operator | strings": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_roster_read" - ] + "sent": [ + { + "group_id": "x", + "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", + "nonce": "", + "op": "root_plug", + "op_id": "", + "req_id": 4242, + "subject": "x", + "ts": "", + "type": "admin_challenge", + "v": "6.0" + } + ], + "spawned": [] }, - "roster_read_ack | challenged | bare": { + "root_plug_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -17366,7 +13915,7 @@ ], "spawned": [] }, - "roster_read_ack | challenged | lists": { + "root_plug_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -17378,7 +13927,7 @@ ], "spawned": [] }, - "roster_read_ack | challenged | numbers": { + "root_plug_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -17390,7 +13939,7 @@ ], "spawned": [] }, - "roster_read_ack | challenged | strings": { + "root_plug_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -17402,7 +13951,7 @@ ], "spawned": [] }, - "roster_read_ack | fresh | bare": { + "root_plug_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -17414,7 +13963,7 @@ ], "spawned": [] }, - "roster_read_ack | fresh | lists": { + "root_plug_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -17426,7 +13975,7 @@ ], "spawned": [] }, - "roster_read_ack | fresh | numbers": { + "root_plug_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -17438,7 +13987,7 @@ ], "spawned": [] }, - "roster_read_ack | fresh | strings": { + "root_plug_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -17450,7 +13999,7 @@ ], "spawned": [] }, - "roster_read_ack | member | bare": { + "root_plug_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17458,7 +14007,7 @@ "sent": [], "spawned": [] }, - "roster_read_ack | member | lists": { + "root_plug_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17466,7 +14015,7 @@ "sent": [], "spawned": [] }, - "roster_read_ack | member | numbers": { + "root_plug_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17474,7 +14023,7 @@ "sent": [], "spawned": [] }, - "roster_read_ack | member | strings": { + "root_plug_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17482,7 +14031,7 @@ "sent": [], "spawned": [] }, - "roster_read_ack | operator | bare": { + "root_plug_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17490,7 +14039,7 @@ "sent": [], "spawned": [] }, - "roster_read_ack | operator | lists": { + "root_plug_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17498,7 +14047,7 @@ "sent": [], "spawned": [] }, - "roster_read_ack | operator | numbers": { + "root_plug_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17506,7 +14055,7 @@ "sent": [], "spawned": [] }, - "roster_read_ack | operator | strings": { + "root_plug_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -17514,7 +14063,7 @@ "sent": [], "spawned": [] }, - "search_listed | challenged | bare": { + "root_remove | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -17526,7 +14075,7 @@ ], "spawned": [] }, - "search_listed | challenged | lists": { + "root_remove | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -17538,7 +14087,7 @@ ], "spawned": [] }, - "search_listed | challenged | numbers": { + "root_remove | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -17550,7 +14099,7 @@ ], "spawned": [] }, - "search_listed | challenged | strings": { + "root_remove | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -17562,7 +14111,7 @@ ], "spawned": [] }, - "search_listed | fresh | bare": { + "root_remove | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -17574,7 +14123,7 @@ ], "spawned": [] }, - "search_listed | fresh | lists": { + "root_remove | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -17586,7 +14135,7 @@ ], "spawned": [] }, - "search_listed | fresh | numbers": { + "root_remove | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -17598,7 +14147,7 @@ ], "spawned": [] }, - "search_listed | fresh | strings": { + "root_remove | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -17610,263 +14159,124 @@ ], "spawned": [] }, - "search_listed | member | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing or invalid 'listed'", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "search_listed | member | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing or invalid 'listed'", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "search_listed | member | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing or invalid 'listed'", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "search_listed | member | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing or invalid 'listed'", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "search_listed | operator | bare": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing or invalid 'listed'", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "search_listed | operator | lists": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing or invalid 'listed'", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "search_listed | operator | numbers": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing or invalid 'listed'", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "search_listed | operator | strings": { - "audit": [], - "log": [], - "sent": [ - { - "detail": "Missing or invalid 'listed'", - "req_id": 4242, - "type": "error" - } - ], - "spawned": [] - }, - "search_listed_ack | challenged | bare": { + "root_remove | member | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing group_id or root_name", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "search_listed_ack | challenged | lists": { + "root_remove | member | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No authorized key for this", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "search_listed_ack | challenged | numbers": { + "root_remove | member | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No authorized key for this", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "search_listed_ack | challenged | strings": { + "root_remove | member | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "No authorized key for this", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "search_listed_ack | fresh | bare": { + "root_remove | operator | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing group_id or root_name", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "search_listed_ack | fresh | lists": { + "root_remove | operator | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "group_id": "['x']", + "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", + "nonce": "", + "op": "root_remove", + "op_id": "", "req_id": 4242, - "type": "error" + "subject": "['x']", + "ts": "", + "type": "admin_challenge", + "v": "6.0" } ], "spawned": [] }, - "search_listed_ack | fresh | numbers": { + "root_remove | operator | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "group_id": "7", + "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", + "nonce": "", + "op": "root_remove", + "op_id": "", "req_id": 4242, - "type": "error" + "subject": "7", + "ts": "", + "type": "admin_challenge", + "v": "6.0" } ], "spawned": [] }, - "search_listed_ack | fresh | strings": { + "root_remove | operator | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "group_id": "x", + "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", + "nonce": "", + "op": "root_remove", + "op_id": "", "req_id": 4242, - "type": "error" + "subject": "x", + "ts": "", + "type": "admin_challenge", + "v": "6.0" } ], "spawned": [] }, - "search_listed_ack | member | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "search_listed_ack | member | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "search_listed_ack | member | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "search_listed_ack | member | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "search_listed_ack | operator | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "search_listed_ack | operator | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "search_listed_ack | operator | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "search_listed_ack | operator | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "season_meta_req | challenged | bare": { + "root_remove_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -17878,7 +14288,7 @@ ], "spawned": [] }, - "season_meta_req | challenged | lists": { + "root_remove_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -17890,7 +14300,7 @@ ], "spawned": [] }, - "season_meta_req | challenged | numbers": { + "root_remove_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -17902,7 +14312,7 @@ ], "spawned": [] }, - "season_meta_req | challenged | strings": { + "root_remove_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -17914,7 +14324,7 @@ ], "spawned": [] }, - "season_meta_req | fresh | bare": { + "root_remove_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -17926,7 +14336,7 @@ ], "spawned": [] }, - "season_meta_req | fresh | lists": { + "root_remove_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -17938,7 +14348,7 @@ ], "spawned": [] }, - "season_meta_req | fresh | numbers": { + "root_remove_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -17950,7 +14360,7 @@ ], "spawned": [] }, - "season_meta_req | fresh | strings": { + "root_remove_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -17962,71 +14372,71 @@ ], "spawned": [] }, - "season_meta_req | member | bare": { + "root_remove_ack | member | bare": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_season_meta_request" - ] + "spawned": [] }, - "season_meta_req | member | lists": { + "root_remove_ack | member | lists": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_season_meta_request" - ] + "spawned": [] }, - "season_meta_req | member | numbers": { + "root_remove_ack | member | numbers": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_season_meta_request" - ] + "spawned": [] }, - "season_meta_req | member | strings": { + "root_remove_ack | member | strings": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_season_meta_request" - ] + "spawned": [] }, - "season_meta_req | operator | bare": { + "root_remove_ack | operator | bare": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_season_meta_request" - ] + "spawned": [] }, - "season_meta_req | operator | lists": { + "root_remove_ack | operator | lists": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_season_meta_request" - ] + "spawned": [] }, - "season_meta_req | operator | numbers": { + "root_remove_ack | operator | numbers": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_season_meta_request" - ] + "spawned": [] }, - "season_meta_req | operator | strings": { + "root_remove_ack | operator | strings": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], - "spawned": [ - "_do_season_meta_request" - ] + "spawned": [] }, - "season_meta_resp | challenged | bare": { + "search_listed | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -18038,7 +14448,7 @@ ], "spawned": [] }, - "season_meta_resp | challenged | lists": { + "search_listed | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -18050,7 +14460,7 @@ ], "spawned": [] }, - "season_meta_resp | challenged | numbers": { + "search_listed | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -18062,7 +14472,7 @@ ], "spawned": [] }, - "season_meta_resp | challenged | strings": { + "search_listed | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -18074,7 +14484,7 @@ ], "spawned": [] }, - "season_meta_resp | fresh | bare": { + "search_listed | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -18086,7 +14496,7 @@ ], "spawned": [] }, - "season_meta_resp | fresh | lists": { + "search_listed | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -18098,7 +14508,7 @@ ], "spawned": [] }, - "season_meta_resp | fresh | numbers": { + "search_listed | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -18110,7 +14520,7 @@ ], "spawned": [] }, - "season_meta_resp | fresh | strings": { + "search_listed | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -18122,119 +14532,103 @@ ], "spawned": [] }, - "season_meta_resp | member | bare": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "season_meta_resp | member | lists": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "season_meta_resp | member | numbers": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "season_meta_resp | member | strings": { - "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], - "sent": [], - "spawned": [] - }, - "season_meta_resp | operator | bare": { + "search_listed | member | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Missing or invalid 'listed'", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "season_meta_resp | operator | lists": { + "search_listed | member | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Missing or invalid 'listed'", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "season_meta_resp | operator | numbers": { + "search_listed | member | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Missing or invalid 'listed'", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "season_meta_resp | operator | strings": { + "search_listed | member | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Missing or invalid 'listed'", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "set_scan_settings | challenged | bare": { + "search_listed | operator | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'listed'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "set_scan_settings | challenged | lists": { + "search_listed | operator | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'listed'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "set_scan_settings | challenged | numbers": { + "search_listed | operator | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'listed'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "set_scan_settings | challenged | strings": { + "search_listed | operator | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Handshake required", + "detail": "Missing or invalid 'listed'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "set_scan_settings | fresh | bare": { + "search_listed_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -18246,7 +14640,7 @@ ], "spawned": [] }, - "set_scan_settings | fresh | lists": { + "search_listed_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -18258,7 +14652,7 @@ ], "spawned": [] }, - "set_scan_settings | fresh | numbers": { + "search_listed_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -18270,7 +14664,7 @@ ], "spawned": [] }, - "set_scan_settings | fresh | strings": { + "search_listed_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -18282,103 +14676,119 @@ ], "spawned": [] }, - "set_scan_settings | member | bare": { + "search_listed_ack | fresh | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Invalid scan settings", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "set_scan_settings | member | lists": { + "search_listed_ack | fresh | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Invalid scan settings", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "set_scan_settings | member | numbers": { + "search_listed_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "reconcile_interval_secs must be between 10 and 86400", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "set_scan_settings | member | strings": { + "search_listed_ack | fresh | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Invalid scan settings", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "set_scan_settings | operator | bare": { + "search_listed_ack | member | bare": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "search_listed_ack | member | lists": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "search_listed_ack | member | numbers": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "search_listed_ack | member | strings": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Invalid scan settings", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "set_scan_settings | operator | lists": { + "search_listed_ack | operator | bare": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Invalid scan settings", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "set_scan_settings | operator | numbers": { + "search_listed_ack | operator | lists": { "audit": [], - "log": [], - "sent": [ - { - "detail": "reconcile_interval_secs must be between 10 and 86400", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "set_scan_settings | operator | strings": { + "search_listed_ack | operator | numbers": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Invalid scan settings", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "set_scan_settings_ack | challenged | bare": { + "search_listed_ack | operator | strings": { + "audit": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], + "sent": [], + "spawned": [] + }, + "season_meta_req | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -18390,7 +14800,7 @@ ], "spawned": [] }, - "set_scan_settings_ack | challenged | lists": { + "season_meta_req | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -18402,7 +14812,7 @@ ], "spawned": [] }, - "set_scan_settings_ack | challenged | numbers": { + "season_meta_req | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -18414,7 +14824,7 @@ ], "spawned": [] }, - "set_scan_settings_ack | challenged | strings": { + "season_meta_req | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -18426,7 +14836,7 @@ ], "spawned": [] }, - "set_scan_settings_ack | fresh | bare": { + "season_meta_req | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -18438,7 +14848,7 @@ ], "spawned": [] }, - "set_scan_settings_ack | fresh | lists": { + "season_meta_req | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -18450,7 +14860,7 @@ ], "spawned": [] }, - "set_scan_settings_ack | fresh | numbers": { + "season_meta_req | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -18462,7 +14872,7 @@ ], "spawned": [] }, - "set_scan_settings_ack | fresh | strings": { + "season_meta_req | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -18474,71 +14884,71 @@ ], "spawned": [] }, - "set_scan_settings_ack | member | bare": { + "season_meta_req | member | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_season_meta_request" + ] }, - "set_scan_settings_ack | member | lists": { + "season_meta_req | member | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_season_meta_request" + ] }, - "set_scan_settings_ack | member | numbers": { + "season_meta_req | member | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_season_meta_request" + ] }, - "set_scan_settings_ack | member | strings": { + "season_meta_req | member | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_season_meta_request" + ] }, - "set_scan_settings_ack | operator | bare": { + "season_meta_req | operator | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_season_meta_request" + ] }, - "set_scan_settings_ack | operator | lists": { + "season_meta_req | operator | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_season_meta_request" + ] }, - "set_scan_settings_ack | operator | numbers": { + "season_meta_req | operator | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_season_meta_request" + ] }, - "set_scan_settings_ack | operator | strings": { + "season_meta_req | operator | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_season_meta_request" + ] }, - "stream_data | challenged | bare": { + "season_meta_resp | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -18550,7 +14960,7 @@ ], "spawned": [] }, - "stream_data | challenged | lists": { + "season_meta_resp | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -18562,7 +14972,7 @@ ], "spawned": [] }, - "stream_data | challenged | numbers": { + "season_meta_resp | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -18574,7 +14984,7 @@ ], "spawned": [] }, - "stream_data | challenged | strings": { + "season_meta_resp | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -18586,7 +14996,7 @@ ], "spawned": [] }, - "stream_data | fresh | bare": { + "season_meta_resp | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -18598,7 +15008,7 @@ ], "spawned": [] }, - "stream_data | fresh | lists": { + "season_meta_resp | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -18610,7 +15020,7 @@ ], "spawned": [] }, - "stream_data | fresh | numbers": { + "season_meta_resp | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -18622,7 +15032,7 @@ ], "spawned": [] }, - "stream_data | fresh | strings": { + "season_meta_resp | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -18634,7 +15044,7 @@ ], "spawned": [] }, - "stream_data | member | bare": { + "season_meta_resp | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18642,7 +15052,7 @@ "sent": [], "spawned": [] }, - "stream_data | member | lists": { + "season_meta_resp | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18650,7 +15060,7 @@ "sent": [], "spawned": [] }, - "stream_data | member | numbers": { + "season_meta_resp | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18658,7 +15068,7 @@ "sent": [], "spawned": [] }, - "stream_data | member | strings": { + "season_meta_resp | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18666,7 +15076,7 @@ "sent": [], "spawned": [] }, - "stream_data | operator | bare": { + "season_meta_resp | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18674,7 +15084,7 @@ "sent": [], "spawned": [] }, - "stream_data | operator | lists": { + "season_meta_resp | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18682,7 +15092,7 @@ "sent": [], "spawned": [] }, - "stream_data | operator | numbers": { + "season_meta_resp | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18690,7 +15100,7 @@ "sent": [], "spawned": [] }, - "stream_data | operator | strings": { + "season_meta_resp | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18698,7 +15108,7 @@ "sent": [], "spawned": [] }, - "stream_end | challenged | bare": { + "set_scan_settings | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -18710,7 +15120,7 @@ ], "spawned": [] }, - "stream_end | challenged | lists": { + "set_scan_settings | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -18722,7 +15132,7 @@ ], "spawned": [] }, - "stream_end | challenged | numbers": { + "set_scan_settings | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -18734,7 +15144,7 @@ ], "spawned": [] }, - "stream_end | challenged | strings": { + "set_scan_settings | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -18746,7 +15156,7 @@ ], "spawned": [] }, - "stream_end | fresh | bare": { + "set_scan_settings | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -18758,7 +15168,7 @@ ], "spawned": [] }, - "stream_end | fresh | lists": { + "set_scan_settings | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -18770,7 +15180,7 @@ ], "spawned": [] }, - "stream_end | fresh | numbers": { + "set_scan_settings | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -18782,7 +15192,7 @@ ], "spawned": [] }, - "stream_end | fresh | strings": { + "set_scan_settings | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -18794,71 +15204,103 @@ ], "spawned": [] }, - "stream_end | member | bare": { + "set_scan_settings | member | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Invalid scan settings", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "stream_end | member | lists": { + "set_scan_settings | member | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Invalid scan settings", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "stream_end | member | numbers": { + "set_scan_settings | member | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "reconcile_interval_secs must be between 10 and 86400", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "stream_end | member | strings": { + "set_scan_settings | member | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Invalid scan settings", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "stream_end | operator | bare": { + "set_scan_settings | operator | bare": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Invalid scan settings", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "stream_end | operator | lists": { + "set_scan_settings | operator | lists": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Invalid scan settings", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "stream_end | operator | numbers": { + "set_scan_settings | operator | numbers": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "reconcile_interval_secs must be between 10 and 86400", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "stream_end | operator | strings": { + "set_scan_settings | operator | strings": { "audit": [], - "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "log": [], + "sent": [ + { + "detail": "Invalid scan settings", + "req_id": 4242, + "type": "error" + } ], - "sent": [], "spawned": [] }, - "stream_init | challenged | bare": { + "set_scan_settings_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -18870,7 +15312,7 @@ ], "spawned": [] }, - "stream_init | challenged | lists": { + "set_scan_settings_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -18882,7 +15324,7 @@ ], "spawned": [] }, - "stream_init | challenged | numbers": { + "set_scan_settings_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -18894,7 +15336,7 @@ ], "spawned": [] }, - "stream_init | challenged | strings": { + "set_scan_settings_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -18906,7 +15348,7 @@ ], "spawned": [] }, - "stream_init | fresh | bare": { + "set_scan_settings_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -18918,7 +15360,7 @@ ], "spawned": [] }, - "stream_init | fresh | lists": { + "set_scan_settings_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -18930,7 +15372,7 @@ ], "spawned": [] }, - "stream_init | fresh | numbers": { + "set_scan_settings_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -18942,7 +15384,7 @@ ], "spawned": [] }, - "stream_init | fresh | strings": { + "set_scan_settings_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -18954,7 +15396,7 @@ ], "spawned": [] }, - "stream_init | member | bare": { + "set_scan_settings_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18962,7 +15404,7 @@ "sent": [], "spawned": [] }, - "stream_init | member | lists": { + "set_scan_settings_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18970,7 +15412,7 @@ "sent": [], "spawned": [] }, - "stream_init | member | numbers": { + "set_scan_settings_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18978,7 +15420,7 @@ "sent": [], "spawned": [] }, - "stream_init | member | strings": { + "set_scan_settings_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18986,7 +15428,7 @@ "sent": [], "spawned": [] }, - "stream_init | operator | bare": { + "set_scan_settings_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -18994,7 +15436,7 @@ "sent": [], "spawned": [] }, - "stream_init | operator | lists": { + "set_scan_settings_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -19002,7 +15444,7 @@ "sent": [], "spawned": [] }, - "stream_init | operator | numbers": { + "set_scan_settings_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -19010,7 +15452,7 @@ "sent": [], "spawned": [] }, - "stream_init | operator | strings": { + "set_scan_settings_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -19018,7 +15460,7 @@ "sent": [], "spawned": [] }, - "stream_more | challenged | bare": { + "stream_data | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -19030,7 +15472,7 @@ ], "spawned": [] }, - "stream_more | challenged | lists": { + "stream_data | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -19042,7 +15484,7 @@ ], "spawned": [] }, - "stream_more | challenged | numbers": { + "stream_data | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -19054,7 +15496,7 @@ ], "spawned": [] }, - "stream_more | challenged | strings": { + "stream_data | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -19066,7 +15508,7 @@ ], "spawned": [] }, - "stream_more | fresh | bare": { + "stream_data | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -19078,7 +15520,7 @@ ], "spawned": [] }, - "stream_more | fresh | lists": { + "stream_data | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -19090,7 +15532,7 @@ ], "spawned": [] }, - "stream_more | fresh | numbers": { + "stream_data | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -19102,7 +15544,7 @@ ], "spawned": [] }, - "stream_more | fresh | strings": { + "stream_data | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -19114,55 +15556,71 @@ ], "spawned": [] }, - "stream_more | member | bare": { + "stream_data | member | bare": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], "spawned": [] }, - "stream_more | member | lists": { + "stream_data | member | lists": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], "spawned": [] }, - "stream_more | member | numbers": { + "stream_data | member | numbers": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], "spawned": [] }, - "stream_more | member | strings": { + "stream_data | member | strings": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], "spawned": [] }, - "stream_more | operator | bare": { + "stream_data | operator | bare": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], "spawned": [] }, - "stream_more | operator | lists": { + "stream_data | operator | lists": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], "spawned": [] }, - "stream_more | operator | numbers": { + "stream_data | operator | numbers": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], "spawned": [] }, - "stream_more | operator | strings": { + "stream_data | operator | strings": { "audit": [], - "log": [], + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" + ], "sent": [], "spawned": [] }, - "stream_req | challenged | bare": { + "stream_end | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -19174,7 +15632,7 @@ ], "spawned": [] }, - "stream_req | challenged | lists": { + "stream_end | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -19186,7 +15644,7 @@ ], "spawned": [] }, - "stream_req | challenged | numbers": { + "stream_end | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -19198,7 +15656,7 @@ ], "spawned": [] }, - "stream_req | challenged | strings": { + "stream_end | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -19210,7 +15668,7 @@ ], "spawned": [] }, - "stream_req | fresh | bare": { + "stream_end | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -19222,7 +15680,7 @@ ], "spawned": [] }, - "stream_req | fresh | lists": { + "stream_end | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -19234,7 +15692,7 @@ ], "spawned": [] }, - "stream_req | fresh | numbers": { + "stream_end | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -19246,7 +15704,7 @@ ], "spawned": [] }, - "stream_req | fresh | strings": { + "stream_end | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -19258,87 +15716,71 @@ ], "spawned": [] }, - "stream_req | member | bare": { + "stream_end | member | bare": { "audit": [], "log": [ - "INFO stream: req file=%s credits=%s slots_free=%s prev=%s" + "WARNING Unknown MNP message type on DataChannel: %s" ], "sent": [], - "spawned": [ - "_replace_stream" - ] + "spawned": [] }, - "stream_req | member | lists": { + "stream_end | member | lists": { "audit": [], "log": [ - "INFO stream: req file=%s credits=%s slots_free=%s prev=%s" + "WARNING Unknown MNP message type on DataChannel: %s" ], "sent": [], - "spawned": [ - "_replace_stream" - ] + "spawned": [] }, - "stream_req | member | numbers": { + "stream_end | member | numbers": { "audit": [], "log": [ - "INFO stream: req file=%s credits=%s slots_free=%s prev=%s" + "WARNING Unknown MNP message type on DataChannel: %s" ], "sent": [], - "spawned": [ - "_replace_stream" - ] + "spawned": [] }, - "stream_req | member | strings": { + "stream_end | member | strings": { "audit": [], "log": [ - "INFO stream: req file=%s credits=%s slots_free=%s prev=%s" + "WARNING Unknown MNP message type on DataChannel: %s" ], "sent": [], - "spawned": [ - "_replace_stream" - ] + "spawned": [] }, - "stream_req | operator | bare": { + "stream_end | operator | bare": { "audit": [], "log": [ - "INFO stream: req file=%s credits=%s slots_free=%s prev=%s" + "WARNING Unknown MNP message type on DataChannel: %s" ], "sent": [], - "spawned": [ - "_replace_stream" - ] + "spawned": [] }, - "stream_req | operator | lists": { + "stream_end | operator | lists": { "audit": [], "log": [ - "INFO stream: req file=%s credits=%s slots_free=%s prev=%s" + "WARNING Unknown MNP message type on DataChannel: %s" ], "sent": [], - "spawned": [ - "_replace_stream" - ] + "spawned": [] }, - "stream_req | operator | numbers": { + "stream_end | operator | numbers": { "audit": [], "log": [ - "INFO stream: req file=%s credits=%s slots_free=%s prev=%s" + "WARNING Unknown MNP message type on DataChannel: %s" ], "sent": [], - "spawned": [ - "_replace_stream" - ] + "spawned": [] }, - "stream_req | operator | strings": { + "stream_end | operator | strings": { "audit": [], "log": [ - "INFO stream: req file=%s credits=%s slots_free=%s prev=%s" + "WARNING Unknown MNP message type on DataChannel: %s" ], "sent": [], - "spawned": [ - "_replace_stream" - ] + "spawned": [] }, - "stream_stop | challenged | bare": { + "stream_init | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -19350,7 +15792,7 @@ ], "spawned": [] }, - "stream_stop | challenged | lists": { + "stream_init | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -19362,7 +15804,7 @@ ], "spawned": [] }, - "stream_stop | challenged | numbers": { + "stream_init | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -19374,7 +15816,7 @@ ], "spawned": [] }, - "stream_stop | challenged | strings": { + "stream_init | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -19386,7 +15828,7 @@ ], "spawned": [] }, - "stream_stop | fresh | bare": { + "stream_init | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -19398,7 +15840,7 @@ ], "spawned": [] }, - "stream_stop | fresh | lists": { + "stream_init | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -19410,7 +15852,7 @@ ], "spawned": [] }, - "stream_stop | fresh | numbers": { + "stream_init | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -19422,7 +15864,7 @@ ], "spawned": [] }, - "stream_stop | fresh | strings": { + "stream_init | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -19434,71 +15876,71 @@ ], "spawned": [] }, - "stream_stop | member | bare": { + "stream_init | member | bare": { "audit": [], "log": [ - "INFO stream: stop received %.1fs after start, %d segments sent" + "WARNING Unknown MNP message type on DataChannel: %s" ], "sent": [], "spawned": [] }, - "stream_stop | member | lists": { + "stream_init | member | lists": { "audit": [], "log": [ - "INFO stream: stop received %.1fs after start, %d segments sent" + "WARNING Unknown MNP message type on DataChannel: %s" ], "sent": [], "spawned": [] }, - "stream_stop | member | numbers": { + "stream_init | member | numbers": { "audit": [], "log": [ - "INFO stream: stop received %.1fs after start, %d segments sent" + "WARNING Unknown MNP message type on DataChannel: %s" ], "sent": [], "spawned": [] }, - "stream_stop | member | strings": { + "stream_init | member | strings": { "audit": [], "log": [ - "INFO stream: stop received %.1fs after start, %d segments sent" + "WARNING Unknown MNP message type on DataChannel: %s" ], "sent": [], "spawned": [] }, - "stream_stop | operator | bare": { + "stream_init | operator | bare": { "audit": [], "log": [ - "INFO stream: stop received %.1fs after start, %d segments sent" + "WARNING Unknown MNP message type on DataChannel: %s" ], "sent": [], "spawned": [] }, - "stream_stop | operator | lists": { + "stream_init | operator | lists": { "audit": [], "log": [ - "INFO stream: stop received %.1fs after start, %d segments sent" + "WARNING Unknown MNP message type on DataChannel: %s" ], "sent": [], "spawned": [] }, - "stream_stop | operator | numbers": { + "stream_init | operator | numbers": { "audit": [], "log": [ - "INFO stream: stop received %.1fs after start, %d segments sent" + "WARNING Unknown MNP message type on DataChannel: %s" ], "sent": [], "spawned": [] }, - "stream_stop | operator | strings": { + "stream_init | operator | strings": { "audit": [], "log": [ - "INFO stream: stop received %.1fs after start, %d segments sent" + "WARNING Unknown MNP message type on DataChannel: %s" ], "sent": [], "spawned": [] }, - "subtitle_req | challenged | bare": { + "stream_more | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -19510,7 +15952,7 @@ ], "spawned": [] }, - "subtitle_req | challenged | lists": { + "stream_more | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -19522,7 +15964,7 @@ ], "spawned": [] }, - "subtitle_req | challenged | numbers": { + "stream_more | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -19534,7 +15976,7 @@ ], "spawned": [] }, - "subtitle_req | challenged | strings": { + "stream_more | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -19546,7 +15988,7 @@ ], "spawned": [] }, - "subtitle_req | fresh | bare": { + "stream_more | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -19558,7 +16000,7 @@ ], "spawned": [] }, - "subtitle_req | fresh | lists": { + "stream_more | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -19570,7 +16012,7 @@ ], "spawned": [] }, - "subtitle_req | fresh | numbers": { + "stream_more | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -19582,7 +16024,7 @@ ], "spawned": [] }, - "subtitle_req | fresh | strings": { + "stream_more | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -19594,71 +16036,55 @@ ], "spawned": [] }, - "subtitle_req | member | bare": { + "stream_more | member | bare": { "audit": [], "log": [], "sent": [], - "spawned": [ - "_do_subtitle_request" - ] + "spawned": [] }, - "subtitle_req | member | lists": { + "stream_more | member | lists": { "audit": [], "log": [], "sent": [], - "spawned": [ - "_do_subtitle_request" - ] + "spawned": [] }, - "subtitle_req | member | numbers": { + "stream_more | member | numbers": { "audit": [], "log": [], "sent": [], - "spawned": [ - "_do_subtitle_request" - ] + "spawned": [] }, - "subtitle_req | member | strings": { + "stream_more | member | strings": { "audit": [], "log": [], "sent": [], - "spawned": [ - "_do_subtitle_request" - ] + "spawned": [] }, - "subtitle_req | operator | bare": { + "stream_more | operator | bare": { "audit": [], "log": [], "sent": [], - "spawned": [ - "_do_subtitle_request" - ] + "spawned": [] }, - "subtitle_req | operator | lists": { + "stream_more | operator | lists": { "audit": [], "log": [], "sent": [], - "spawned": [ - "_do_subtitle_request" - ] + "spawned": [] }, - "subtitle_req | operator | numbers": { + "stream_more | operator | numbers": { "audit": [], "log": [], "sent": [], - "spawned": [ - "_do_subtitle_request" - ] + "spawned": [] }, - "subtitle_req | operator | strings": { + "stream_more | operator | strings": { "audit": [], "log": [], "sent": [], - "spawned": [ - "_do_subtitle_request" - ] + "spawned": [] }, - "subtitle_resp | challenged | bare": { + "stream_req | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -19670,7 +16096,7 @@ ], "spawned": [] }, - "subtitle_resp | challenged | lists": { + "stream_req | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -19682,7 +16108,7 @@ ], "spawned": [] }, - "subtitle_resp | challenged | numbers": { + "stream_req | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -19694,7 +16120,7 @@ ], "spawned": [] }, - "subtitle_resp | challenged | strings": { + "stream_req | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -19706,7 +16132,7 @@ ], "spawned": [] }, - "subtitle_resp | fresh | bare": { + "stream_req | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -19718,7 +16144,7 @@ ], "spawned": [] }, - "subtitle_resp | fresh | lists": { + "stream_req | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -19730,7 +16156,7 @@ ], "spawned": [] }, - "subtitle_resp | fresh | numbers": { + "stream_req | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -19742,7 +16168,7 @@ ], "spawned": [] }, - "subtitle_resp | fresh | strings": { + "stream_req | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -19754,71 +16180,87 @@ ], "spawned": [] }, - "subtitle_resp | member | bare": { + "stream_req | member | bare": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO stream: req file=%s credits=%s slots_free=%s prev=%s" ], "sent": [], - "spawned": [] + "spawned": [ + "_replace_stream" + ] }, - "subtitle_resp | member | lists": { + "stream_req | member | lists": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO stream: req file=%s credits=%s slots_free=%s prev=%s" ], "sent": [], - "spawned": [] + "spawned": [ + "_replace_stream" + ] }, - "subtitle_resp | member | numbers": { + "stream_req | member | numbers": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO stream: req file=%s credits=%s slots_free=%s prev=%s" ], "sent": [], - "spawned": [] + "spawned": [ + "_replace_stream" + ] }, - "subtitle_resp | member | strings": { + "stream_req | member | strings": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO stream: req file=%s credits=%s slots_free=%s prev=%s" ], "sent": [], - "spawned": [] + "spawned": [ + "_replace_stream" + ] }, - "subtitle_resp | operator | bare": { + "stream_req | operator | bare": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO stream: req file=%s credits=%s slots_free=%s prev=%s" ], "sent": [], - "spawned": [] + "spawned": [ + "_replace_stream" + ] }, - "subtitle_resp | operator | lists": { + "stream_req | operator | lists": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO stream: req file=%s credits=%s slots_free=%s prev=%s" ], "sent": [], - "spawned": [] + "spawned": [ + "_replace_stream" + ] }, - "subtitle_resp | operator | numbers": { + "stream_req | operator | numbers": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO stream: req file=%s credits=%s slots_free=%s prev=%s" ], "sent": [], - "spawned": [] + "spawned": [ + "_replace_stream" + ] }, - "subtitle_resp | operator | strings": { + "stream_req | operator | strings": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO stream: req file=%s credits=%s slots_free=%s prev=%s" ], "sent": [], - "spawned": [] + "spawned": [ + "_replace_stream" + ] }, - "tmdb_config | challenged | bare": { + "stream_stop | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -19830,7 +16272,7 @@ ], "spawned": [] }, - "tmdb_config | challenged | lists": { + "stream_stop | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -19842,7 +16284,7 @@ ], "spawned": [] }, - "tmdb_config | challenged | numbers": { + "stream_stop | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -19854,7 +16296,7 @@ ], "spawned": [] }, - "tmdb_config | challenged | strings": { + "stream_stop | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -19866,7 +16308,7 @@ ], "spawned": [] }, - "tmdb_config | fresh | bare": { + "stream_stop | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -19878,7 +16320,7 @@ ], "spawned": [] }, - "tmdb_config | fresh | lists": { + "stream_stop | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -19890,7 +16332,7 @@ ], "spawned": [] }, - "tmdb_config | fresh | numbers": { + "stream_stop | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -19902,7 +16344,7 @@ ], "spawned": [] }, - "tmdb_config | fresh | strings": { + "stream_stop | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -19914,117 +16356,231 @@ ], "spawned": [] }, - "tmdb_config | member | bare": { + "stream_stop | member | bare": { + "audit": [], + "log": [ + "INFO stream: stop received %.1fs after start, %d segments sent" + ], + "sent": [], + "spawned": [] + }, + "stream_stop | member | lists": { + "audit": [], + "log": [ + "INFO stream: stop received %.1fs after start, %d segments sent" + ], + "sent": [], + "spawned": [] + }, + "stream_stop | member | numbers": { + "audit": [], + "log": [ + "INFO stream: stop received %.1fs after start, %d segments sent" + ], + "sent": [], + "spawned": [] + }, + "stream_stop | member | strings": { + "audit": [], + "log": [ + "INFO stream: stop received %.1fs after start, %d segments sent" + ], + "sent": [], + "spawned": [] + }, + "stream_stop | operator | bare": { + "audit": [], + "log": [ + "INFO stream: stop received %.1fs after start, %d segments sent" + ], + "sent": [], + "spawned": [] + }, + "stream_stop | operator | lists": { + "audit": [], + "log": [ + "INFO stream: stop received %.1fs after start, %d segments sent" + ], + "sent": [], + "spawned": [] + }, + "stream_stop | operator | numbers": { + "audit": [], + "log": [ + "INFO stream: stop received %.1fs after start, %d segments sent" + ], + "sent": [], + "spawned": [] + }, + "stream_stop | operator | strings": { + "audit": [], + "log": [ + "INFO stream: stop received %.1fs after start, %d segments sent" + ], + "sent": [], + "spawned": [] + }, + "subtitle_req | challenged | bare": { "audit": [], "log": [], "sent": [ { - "detail": "No authorized key for this", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_config | member | lists": { + "subtitle_req | challenged | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Invalid 'token'", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_config | member | numbers": { + "subtitle_req | challenged | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Invalid 'token'", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_config | member | strings": { + "subtitle_req | challenged | strings": { "audit": [], "log": [], "sent": [ { - "detail": "No authorized key for this", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_config | operator | bare": { + "subtitle_req | fresh | bare": { "audit": [], "log": [], "sent": [ { - "group_id": "", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "tmdb_config", - "op_id": "", + "detail": "Handshake required", "req_id": 4242, - "subject": "{\"language\":null,\"token\":null}", - "ts": "", - "type": "admin_challenge", - "v": "6.0" + "type": "error" } ], "spawned": [] }, - "tmdb_config | operator | lists": { + "subtitle_req | fresh | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Invalid 'token'", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_config | operator | numbers": { + "subtitle_req | fresh | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Invalid 'token'", + "detail": "Handshake required", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_config | operator | strings": { + "subtitle_req | fresh | strings": { "audit": [], "log": [], "sent": [ { - "group_id": "", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "tmdb_config", - "op_id": "", + "detail": "Handshake required", "req_id": 4242, - "subject": "{\"language\":\"x\",\"token\":\"sha256:2d711642b726b04401627ca9fbac32f5c8530fb1903cc4db02258717921a4881\"}", - "ts": "", - "type": "admin_challenge", - "v": "6.0" + "type": "error" } ], "spawned": [] }, - "tmdb_config_ack | challenged | bare": { + "subtitle_req | member | bare": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_subtitle_request" + ] + }, + "subtitle_req | member | lists": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_subtitle_request" + ] + }, + "subtitle_req | member | numbers": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_subtitle_request" + ] + }, + "subtitle_req | member | strings": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_subtitle_request" + ] + }, + "subtitle_req | operator | bare": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_subtitle_request" + ] + }, + "subtitle_req | operator | lists": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_subtitle_request" + ] + }, + "subtitle_req | operator | numbers": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_subtitle_request" + ] + }, + "subtitle_req | operator | strings": { + "audit": [], + "log": [], + "sent": [], + "spawned": [ + "_do_subtitle_request" + ] + }, + "subtitle_resp | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -20036,7 +16592,7 @@ ], "spawned": [] }, - "tmdb_config_ack | challenged | lists": { + "subtitle_resp | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -20048,7 +16604,7 @@ ], "spawned": [] }, - "tmdb_config_ack | challenged | numbers": { + "subtitle_resp | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -20060,7 +16616,7 @@ ], "spawned": [] }, - "tmdb_config_ack | challenged | strings": { + "subtitle_resp | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -20072,7 +16628,7 @@ ], "spawned": [] }, - "tmdb_config_ack | fresh | bare": { + "subtitle_resp | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -20084,7 +16640,7 @@ ], "spawned": [] }, - "tmdb_config_ack | fresh | lists": { + "subtitle_resp | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -20096,7 +16652,7 @@ ], "spawned": [] }, - "tmdb_config_ack | fresh | numbers": { + "subtitle_resp | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -20108,7 +16664,7 @@ ], "spawned": [] }, - "tmdb_config_ack | fresh | strings": { + "subtitle_resp | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -20120,7 +16676,7 @@ ], "spawned": [] }, - "tmdb_config_ack | member | bare": { + "subtitle_resp | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20128,7 +16684,7 @@ "sent": [], "spawned": [] }, - "tmdb_config_ack | member | lists": { + "subtitle_resp | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20136,7 +16692,7 @@ "sent": [], "spawned": [] }, - "tmdb_config_ack | member | numbers": { + "subtitle_resp | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20144,7 +16700,7 @@ "sent": [], "spawned": [] }, - "tmdb_config_ack | member | strings": { + "subtitle_resp | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20152,7 +16708,7 @@ "sent": [], "spawned": [] }, - "tmdb_config_ack | operator | bare": { + "subtitle_resp | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20160,7 +16716,7 @@ "sent": [], "spawned": [] }, - "tmdb_config_ack | operator | lists": { + "subtitle_resp | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20168,7 +16724,7 @@ "sent": [], "spawned": [] }, - "tmdb_config_ack | operator | numbers": { + "subtitle_resp | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20176,7 +16732,7 @@ "sent": [], "spawned": [] }, - "tmdb_config_ack | operator | strings": { + "subtitle_resp | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20184,7 +16740,7 @@ "sent": [], "spawned": [] }, - "tmdb_enabled | challenged | bare": { + "tmdb_config | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -20196,7 +16752,7 @@ ], "spawned": [] }, - "tmdb_enabled | challenged | lists": { + "tmdb_config | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -20208,7 +16764,7 @@ ], "spawned": [] }, - "tmdb_enabled | challenged | numbers": { + "tmdb_config | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -20220,7 +16776,7 @@ ], "spawned": [] }, - "tmdb_enabled | challenged | strings": { + "tmdb_config | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -20232,7 +16788,7 @@ ], "spawned": [] }, - "tmdb_enabled | fresh | bare": { + "tmdb_config | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -20244,7 +16800,7 @@ ], "spawned": [] }, - "tmdb_enabled | fresh | lists": { + "tmdb_config | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -20256,7 +16812,7 @@ ], "spawned": [] }, - "tmdb_enabled | fresh | numbers": { + "tmdb_config | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -20268,7 +16824,7 @@ ], "spawned": [] }, - "tmdb_enabled | fresh | strings": { + "tmdb_config | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -20280,103 +16836,117 @@ ], "spawned": [] }, - "tmdb_enabled | member | bare": { + "tmdb_config | member | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Missing or invalid 'enabled'", + "detail": "No authorized key for this", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_enabled | member | lists": { + "tmdb_config | member | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Missing or invalid 'enabled'", + "detail": "Invalid 'token'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_enabled | member | numbers": { + "tmdb_config | member | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Missing or invalid 'enabled'", + "detail": "Invalid 'token'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_enabled | member | strings": { + "tmdb_config | member | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Missing or invalid 'enabled'", + "detail": "No authorized key for this", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_enabled | operator | bare": { + "tmdb_config | operator | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Missing or invalid 'enabled'", + "group_id": "", + "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", + "nonce": "", + "op": "tmdb_config", + "op_id": "", "req_id": 4242, - "type": "error" + "subject": "{\"language\":null,\"token\":null}", + "ts": "", + "type": "admin_challenge", + "v": "6.0" } ], "spawned": [] }, - "tmdb_enabled | operator | lists": { + "tmdb_config | operator | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Missing or invalid 'enabled'", + "detail": "Invalid 'token'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_enabled | operator | numbers": { + "tmdb_config | operator | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Missing or invalid 'enabled'", + "detail": "Invalid 'token'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_enabled | operator | strings": { + "tmdb_config | operator | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Missing or invalid 'enabled'", + "group_id": "", + "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", + "nonce": "", + "op": "tmdb_config", + "op_id": "", "req_id": 4242, - "type": "error" + "subject": "{\"language\":\"x\",\"token\":\"sha256:2d711642b726b04401627ca9fbac32f5c8530fb1903cc4db02258717921a4881\"}", + "ts": "", + "type": "admin_challenge", + "v": "6.0" } ], "spawned": [] }, - "tmdb_enabled_ack | challenged | bare": { + "tmdb_config_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -20388,7 +16958,7 @@ ], "spawned": [] }, - "tmdb_enabled_ack | challenged | lists": { + "tmdb_config_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -20400,7 +16970,7 @@ ], "spawned": [] }, - "tmdb_enabled_ack | challenged | numbers": { + "tmdb_config_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -20412,7 +16982,7 @@ ], "spawned": [] }, - "tmdb_enabled_ack | challenged | strings": { + "tmdb_config_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -20424,7 +16994,7 @@ ], "spawned": [] }, - "tmdb_enabled_ack | fresh | bare": { + "tmdb_config_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -20436,7 +17006,7 @@ ], "spawned": [] }, - "tmdb_enabled_ack | fresh | lists": { + "tmdb_config_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -20448,7 +17018,7 @@ ], "spawned": [] }, - "tmdb_enabled_ack | fresh | numbers": { + "tmdb_config_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -20460,7 +17030,7 @@ ], "spawned": [] }, - "tmdb_enabled_ack | fresh | strings": { + "tmdb_config_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -20472,7 +17042,7 @@ ], "spawned": [] }, - "tmdb_enabled_ack | member | bare": { + "tmdb_config_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20480,7 +17050,7 @@ "sent": [], "spawned": [] }, - "tmdb_enabled_ack | member | lists": { + "tmdb_config_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20488,7 +17058,7 @@ "sent": [], "spawned": [] }, - "tmdb_enabled_ack | member | numbers": { + "tmdb_config_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20496,7 +17066,7 @@ "sent": [], "spawned": [] }, - "tmdb_enabled_ack | member | strings": { + "tmdb_config_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20504,7 +17074,7 @@ "sent": [], "spawned": [] }, - "tmdb_enabled_ack | operator | bare": { + "tmdb_config_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20512,7 +17082,7 @@ "sent": [], "spawned": [] }, - "tmdb_enabled_ack | operator | lists": { + "tmdb_config_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20520,7 +17090,7 @@ "sent": [], "spawned": [] }, - "tmdb_enabled_ack | operator | numbers": { + "tmdb_config_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20528,7 +17098,7 @@ "sent": [], "spawned": [] }, - "tmdb_enabled_ack | operator | strings": { + "tmdb_config_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20536,7 +17106,7 @@ "sent": [], "spawned": [] }, - "tmdb_override | challenged | bare": { + "tmdb_enabled | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -20548,7 +17118,7 @@ ], "spawned": [] }, - "tmdb_override | challenged | lists": { + "tmdb_enabled | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -20560,7 +17130,7 @@ ], "spawned": [] }, - "tmdb_override | challenged | numbers": { + "tmdb_enabled | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -20572,7 +17142,7 @@ ], "spawned": [] }, - "tmdb_override | challenged | strings": { + "tmdb_enabled | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -20584,7 +17154,7 @@ ], "spawned": [] }, - "tmdb_override | fresh | bare": { + "tmdb_enabled | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -20596,7 +17166,7 @@ ], "spawned": [] }, - "tmdb_override | fresh | lists": { + "tmdb_enabled | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -20608,7 +17178,7 @@ ], "spawned": [] }, - "tmdb_override | fresh | numbers": { + "tmdb_enabled | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -20620,7 +17190,7 @@ ], "spawned": [] }, - "tmdb_override | fresh | strings": { + "tmdb_enabled | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -20632,103 +17202,103 @@ ], "spawned": [] }, - "tmdb_override | member | bare": { + "tmdb_enabled | member | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Missing file_id", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_override | member | lists": { + "tmdb_enabled | member | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Missing file_id", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_override | member | numbers": { + "tmdb_enabled | member | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Missing file_id", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_override | member | strings": { + "tmdb_enabled | member | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Missing tmdb_id or media_type", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_override | operator | bare": { + "tmdb_enabled | operator | bare": { "audit": [], "log": [], "sent": [ { - "detail": "Missing file_id", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_override | operator | lists": { + "tmdb_enabled | operator | lists": { "audit": [], "log": [], "sent": [ { - "detail": "Missing file_id", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_override | operator | numbers": { + "tmdb_enabled | operator | numbers": { "audit": [], "log": [], "sent": [ { - "detail": "Missing file_id", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_override | operator | strings": { + "tmdb_enabled | operator | strings": { "audit": [], "log": [], "sent": [ { - "detail": "Missing tmdb_id or media_type", + "detail": "Missing or invalid 'enabled'", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_override_ack | challenged | bare": { + "tmdb_enabled_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -20740,7 +17310,7 @@ ], "spawned": [] }, - "tmdb_override_ack | challenged | lists": { + "tmdb_enabled_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -20752,7 +17322,7 @@ ], "spawned": [] }, - "tmdb_override_ack | challenged | numbers": { + "tmdb_enabled_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -20764,7 +17334,7 @@ ], "spawned": [] }, - "tmdb_override_ack | challenged | strings": { + "tmdb_enabled_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -20776,7 +17346,7 @@ ], "spawned": [] }, - "tmdb_override_ack | fresh | bare": { + "tmdb_enabled_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -20788,7 +17358,7 @@ ], "spawned": [] }, - "tmdb_override_ack | fresh | lists": { + "tmdb_enabled_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -20800,7 +17370,7 @@ ], "spawned": [] }, - "tmdb_override_ack | fresh | numbers": { + "tmdb_enabled_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -20812,7 +17382,7 @@ ], "spawned": [] }, - "tmdb_override_ack | fresh | strings": { + "tmdb_enabled_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -20824,7 +17394,7 @@ ], "spawned": [] }, - "tmdb_override_ack | member | bare": { + "tmdb_enabled_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20832,7 +17402,7 @@ "sent": [], "spawned": [] }, - "tmdb_override_ack | member | lists": { + "tmdb_enabled_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20840,7 +17410,7 @@ "sent": [], "spawned": [] }, - "tmdb_override_ack | member | numbers": { + "tmdb_enabled_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20848,7 +17418,7 @@ "sent": [], "spawned": [] }, - "tmdb_override_ack | member | strings": { + "tmdb_enabled_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20856,7 +17426,7 @@ "sent": [], "spawned": [] }, - "tmdb_override_ack | operator | bare": { + "tmdb_enabled_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20864,7 +17434,7 @@ "sent": [], "spawned": [] }, - "tmdb_override_ack | operator | lists": { + "tmdb_enabled_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20872,7 +17442,7 @@ "sent": [], "spawned": [] }, - "tmdb_override_ack | operator | numbers": { + "tmdb_enabled_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20880,7 +17450,7 @@ "sent": [], "spawned": [] }, - "tmdb_override_ack | operator | strings": { + "tmdb_enabled_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -20888,7 +17458,7 @@ "sent": [], "spawned": [] }, - "tmdb_rematch | challenged | bare": { + "tmdb_override | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -20900,7 +17470,7 @@ ], "spawned": [] }, - "tmdb_rematch | challenged | lists": { + "tmdb_override | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -20912,7 +17482,7 @@ ], "spawned": [] }, - "tmdb_rematch | challenged | numbers": { + "tmdb_override | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -20924,7 +17494,7 @@ ], "spawned": [] }, - "tmdb_rematch | challenged | strings": { + "tmdb_override | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -20936,7 +17506,7 @@ ], "spawned": [] }, - "tmdb_rematch | fresh | bare": { + "tmdb_override | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -20948,7 +17518,7 @@ ], "spawned": [] }, - "tmdb_rematch | fresh | lists": { + "tmdb_override | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -20960,7 +17530,7 @@ ], "spawned": [] }, - "tmdb_rematch | fresh | numbers": { + "tmdb_override | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -20972,7 +17542,7 @@ ], "spawned": [] }, - "tmdb_rematch | fresh | strings": { + "tmdb_override | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -20984,7 +17554,7 @@ ], "spawned": [] }, - "tmdb_rematch | member | bare": { + "tmdb_override | member | bare": { "audit": [], "log": [], "sent": [ @@ -20996,7 +17566,7 @@ ], "spawned": [] }, - "tmdb_rematch | member | lists": { + "tmdb_override | member | lists": { "audit": [], "log": [], "sent": [ @@ -21008,7 +17578,7 @@ ], "spawned": [] }, - "tmdb_rematch | member | numbers": { + "tmdb_override | member | numbers": { "audit": [], "log": [], "sent": [ @@ -21020,21 +17590,19 @@ ], "spawned": [] }, - "tmdb_rematch | member | strings": { + "tmdb_override | member | strings": { "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], + "log": [], "sent": [ { - "detail": "Request failed", + "detail": "Missing tmdb_id or media_type", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_rematch | operator | bare": { + "tmdb_override | operator | bare": { "audit": [], "log": [], "sent": [ @@ -21046,7 +17614,7 @@ ], "spawned": [] }, - "tmdb_rematch | operator | lists": { + "tmdb_override | operator | lists": { "audit": [], "log": [], "sent": [ @@ -21058,7 +17626,7 @@ ], "spawned": [] }, - "tmdb_rematch | operator | numbers": { + "tmdb_override | operator | numbers": { "audit": [], "log": [], "sent": [ @@ -21070,21 +17638,19 @@ ], "spawned": [] }, - "tmdb_rematch | operator | strings": { + "tmdb_override | operator | strings": { "audit": [], - "log": [ - "ERROR Error handling %s on DataChannel: %s" - ], + "log": [], "sent": [ { - "detail": "Request failed", + "detail": "Missing tmdb_id or media_type", "req_id": 4242, "type": "error" } ], "spawned": [] }, - "tmdb_rematch_ack | challenged | bare": { + "tmdb_override_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -21096,7 +17662,7 @@ ], "spawned": [] }, - "tmdb_rematch_ack | challenged | lists": { + "tmdb_override_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -21108,7 +17674,7 @@ ], "spawned": [] }, - "tmdb_rematch_ack | challenged | numbers": { + "tmdb_override_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -21120,7 +17686,7 @@ ], "spawned": [] }, - "tmdb_rematch_ack | challenged | strings": { + "tmdb_override_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -21132,7 +17698,7 @@ ], "spawned": [] }, - "tmdb_rematch_ack | fresh | bare": { + "tmdb_override_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -21144,7 +17710,7 @@ ], "spawned": [] }, - "tmdb_rematch_ack | fresh | lists": { + "tmdb_override_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -21156,7 +17722,7 @@ ], "spawned": [] }, - "tmdb_rematch_ack | fresh | numbers": { + "tmdb_override_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -21168,7 +17734,7 @@ ], "spawned": [] }, - "tmdb_rematch_ack | fresh | strings": { + "tmdb_override_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -21180,7 +17746,7 @@ ], "spawned": [] }, - "tmdb_rematch_ack | member | bare": { + "tmdb_override_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21188,7 +17754,7 @@ "sent": [], "spawned": [] }, - "tmdb_rematch_ack | member | lists": { + "tmdb_override_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21196,7 +17762,7 @@ "sent": [], "spawned": [] }, - "tmdb_rematch_ack | member | numbers": { + "tmdb_override_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21204,7 +17770,7 @@ "sent": [], "spawned": [] }, - "tmdb_rematch_ack | member | strings": { + "tmdb_override_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21212,7 +17778,7 @@ "sent": [], "spawned": [] }, - "tmdb_rematch_ack | operator | bare": { + "tmdb_override_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21220,7 +17786,7 @@ "sent": [], "spawned": [] }, - "tmdb_rematch_ack | operator | lists": { + "tmdb_override_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21228,7 +17794,7 @@ "sent": [], "spawned": [] }, - "tmdb_rematch_ack | operator | numbers": { + "tmdb_override_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21236,7 +17802,7 @@ "sent": [], "spawned": [] }, - "tmdb_rematch_ack | operator | strings": { + "tmdb_override_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21244,7 +17810,7 @@ "sent": [], "spawned": [] }, - "tmdb_search_req | challenged | bare": { + "tmdb_rematch | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -21256,7 +17822,7 @@ ], "spawned": [] }, - "tmdb_search_req | challenged | lists": { + "tmdb_rematch | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -21268,7 +17834,7 @@ ], "spawned": [] }, - "tmdb_search_req | challenged | numbers": { + "tmdb_rematch | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -21280,7 +17846,7 @@ ], "spawned": [] }, - "tmdb_search_req | challenged | strings": { + "tmdb_rematch | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -21292,7 +17858,7 @@ ], "spawned": [] }, - "tmdb_search_req | fresh | bare": { + "tmdb_rematch | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -21304,7 +17870,7 @@ ], "spawned": [] }, - "tmdb_search_req | fresh | lists": { + "tmdb_rematch | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -21316,7 +17882,7 @@ ], "spawned": [] }, - "tmdb_search_req | fresh | numbers": { + "tmdb_rematch | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -21328,7 +17894,7 @@ ], "spawned": [] }, - "tmdb_search_req | fresh | strings": { + "tmdb_rematch | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -21340,71 +17906,107 @@ ], "spawned": [] }, - "tmdb_search_req | member | bare": { + "tmdb_rematch | member | bare": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_tmdb_search_request" - ] + "sent": [ + { + "detail": "Missing file_id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "tmdb_search_req | member | lists": { + "tmdb_rematch | member | lists": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_tmdb_search_request" - ] + "sent": [ + { + "detail": "Missing file_id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "tmdb_search_req | member | numbers": { + "tmdb_rematch | member | numbers": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_tmdb_search_request" - ] + "sent": [ + { + "detail": "Missing file_id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "tmdb_search_req | member | strings": { + "tmdb_rematch | member | strings": { "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_tmdb_search_request" - ] + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "tmdb_search_req | operator | bare": { + "tmdb_rematch | operator | bare": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_tmdb_search_request" - ] + "sent": [ + { + "detail": "Missing file_id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "tmdb_search_req | operator | lists": { + "tmdb_rematch | operator | lists": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_tmdb_search_request" - ] + "sent": [ + { + "detail": "Missing file_id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "tmdb_search_req | operator | numbers": { + "tmdb_rematch | operator | numbers": { "audit": [], "log": [], - "sent": [], - "spawned": [ - "_do_tmdb_search_request" - ] + "sent": [ + { + "detail": "Missing file_id", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "tmdb_search_req | operator | strings": { + "tmdb_rematch | operator | strings": { "audit": [], - "log": [], - "sent": [], - "spawned": [ - "_do_tmdb_search_request" - ] + "log": [ + "ERROR Error handling %s on DataChannel: %s" + ], + "sent": [ + { + "detail": "Request failed", + "req_id": 4242, + "type": "error" + } + ], + "spawned": [] }, - "tmdb_search_resp | challenged | bare": { + "tmdb_rematch_ack | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -21416,7 +18018,7 @@ ], "spawned": [] }, - "tmdb_search_resp | challenged | lists": { + "tmdb_rematch_ack | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -21428,7 +18030,7 @@ ], "spawned": [] }, - "tmdb_search_resp | challenged | numbers": { + "tmdb_rematch_ack | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -21440,7 +18042,7 @@ ], "spawned": [] }, - "tmdb_search_resp | challenged | strings": { + "tmdb_rematch_ack | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -21452,7 +18054,7 @@ ], "spawned": [] }, - "tmdb_search_resp | fresh | bare": { + "tmdb_rematch_ack | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -21464,7 +18066,7 @@ ], "spawned": [] }, - "tmdb_search_resp | fresh | lists": { + "tmdb_rematch_ack | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -21476,7 +18078,7 @@ ], "spawned": [] }, - "tmdb_search_resp | fresh | numbers": { + "tmdb_rematch_ack | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -21488,7 +18090,7 @@ ], "spawned": [] }, - "tmdb_search_resp | fresh | strings": { + "tmdb_rematch_ack | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -21500,7 +18102,7 @@ ], "spawned": [] }, - "tmdb_search_resp | member | bare": { + "tmdb_rematch_ack | member | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21508,7 +18110,7 @@ "sent": [], "spawned": [] }, - "tmdb_search_resp | member | lists": { + "tmdb_rematch_ack | member | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21516,7 +18118,7 @@ "sent": [], "spawned": [] }, - "tmdb_search_resp | member | numbers": { + "tmdb_rematch_ack | member | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21524,7 +18126,7 @@ "sent": [], "spawned": [] }, - "tmdb_search_resp | member | strings": { + "tmdb_rematch_ack | member | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21532,7 +18134,7 @@ "sent": [], "spawned": [] }, - "tmdb_search_resp | operator | bare": { + "tmdb_rematch_ack | operator | bare": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21540,7 +18142,7 @@ "sent": [], "spawned": [] }, - "tmdb_search_resp | operator | lists": { + "tmdb_rematch_ack | operator | lists": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21548,7 +18150,7 @@ "sent": [], "spawned": [] }, - "tmdb_search_resp | operator | numbers": { + "tmdb_rematch_ack | operator | numbers": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21556,7 +18158,7 @@ "sent": [], "spawned": [] }, - "tmdb_search_resp | operator | strings": { + "tmdb_rematch_ack | operator | strings": { "audit": [], "log": [ "WARNING Unknown MNP message type on DataChannel: %s" @@ -21564,7 +18166,7 @@ "sent": [], "spawned": [] }, - "transfer_close | challenged | bare": { + "tmdb_search_req | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -21576,7 +18178,7 @@ ], "spawned": [] }, - "transfer_close | challenged | lists": { + "tmdb_search_req | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -21588,7 +18190,7 @@ ], "spawned": [] }, - "transfer_close | challenged | numbers": { + "tmdb_search_req | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -21600,7 +18202,7 @@ ], "spawned": [] }, - "transfer_close | challenged | strings": { + "tmdb_search_req | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -21612,7 +18214,7 @@ ], "spawned": [] }, - "transfer_close | fresh | bare": { + "tmdb_search_req | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -21624,7 +18226,7 @@ ], "spawned": [] }, - "transfer_close | fresh | lists": { + "tmdb_search_req | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -21636,7 +18238,7 @@ ], "spawned": [] }, - "transfer_close | fresh | numbers": { + "tmdb_search_req | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -21648,7 +18250,7 @@ ], "spawned": [] }, - "transfer_close | fresh | strings": { + "tmdb_search_req | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -21660,71 +18262,71 @@ ], "spawned": [] }, - "transfer_close | member | bare": { + "tmdb_search_req | member | bare": { "audit": [], - "log": [ - "INFO transfer: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_tmdb_search_request" + ] }, - "transfer_close | member | lists": { + "tmdb_search_req | member | lists": { "audit": [], - "log": [ - "INFO transfer: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_tmdb_search_request" + ] }, - "transfer_close | member | numbers": { + "tmdb_search_req | member | numbers": { "audit": [], - "log": [ - "INFO transfer: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_tmdb_search_request" + ] }, - "transfer_close | member | strings": { + "tmdb_search_req | member | strings": { "audit": [], - "log": [ - "INFO transfer: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_tmdb_search_request" + ] }, - "transfer_close | operator | bare": { + "tmdb_search_req | operator | bare": { "audit": [], - "log": [ - "INFO transfer: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_tmdb_search_request" + ] }, - "transfer_close | operator | lists": { + "tmdb_search_req | operator | lists": { "audit": [], - "log": [ - "INFO transfer: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_tmdb_search_request" + ] }, - "transfer_close | operator | numbers": { + "tmdb_search_req | operator | numbers": { "audit": [], - "log": [ - "INFO transfer: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_tmdb_search_request" + ] }, - "transfer_close | operator | strings": { + "tmdb_search_req | operator | strings": { "audit": [], - "log": [ - "INFO transfer: %s" - ], + "log": [], "sent": [], - "spawned": [] + "spawned": [ + "_do_tmdb_search_request" + ] }, - "transfer_limits | challenged | bare": { + "tmdb_search_resp | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -21736,7 +18338,7 @@ ], "spawned": [] }, - "transfer_limits | challenged | lists": { + "tmdb_search_resp | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -21748,7 +18350,7 @@ ], "spawned": [] }, - "transfer_limits | challenged | numbers": { + "tmdb_search_resp | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -21760,7 +18362,7 @@ ], "spawned": [] }, - "transfer_limits | challenged | strings": { + "tmdb_search_resp | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -21772,7 +18374,7 @@ ], "spawned": [] }, - "transfer_limits | fresh | bare": { + "tmdb_search_resp | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -21784,7 +18386,7 @@ ], "spawned": [] }, - "transfer_limits | fresh | lists": { + "tmdb_search_resp | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -21796,7 +18398,7 @@ ], "spawned": [] }, - "transfer_limits | fresh | numbers": { + "tmdb_search_resp | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -21808,7 +18410,7 @@ ], "spawned": [] }, - "transfer_limits | fresh | strings": { + "tmdb_search_resp | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -21820,110 +18422,71 @@ ], "spawned": [] }, - "transfer_limits | member | bare": { + "tmdb_search_resp | member | bare": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Invalid transfer limits", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "transfer_limits | member | lists": { + "tmdb_search_resp | member | lists": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Invalid transfer limits", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "transfer_limits | member | numbers": { + "tmdb_search_resp | member | numbers": { "audit": [], - "log": [], - "sent": [ - { - "detail": "No authorized key for this", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "transfer_limits | member | strings": { + "tmdb_search_resp | member | strings": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Invalid transfer limits", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "transfer_limits | operator | bare": { + "tmdb_search_resp | operator | bare": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Invalid transfer limits", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "transfer_limits | operator | lists": { + "tmdb_search_resp | operator | lists": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Invalid transfer limits", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "transfer_limits | operator | numbers": { + "tmdb_search_resp | operator | numbers": { "audit": [], - "log": [], - "sent": [ - { - "group_id": "gggggggggggggggggggggggggggggggg", - "node_pk": "iojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1w=", - "nonce": "", - "op": "transfer_limits", - "op_id": "", - "req_id": 4242, - "subject": "d=7,u=7", - "ts": "", - "type": "admin_challenge", - "v": "6.0" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "transfer_limits | operator | strings": { + "tmdb_search_resp | operator | strings": { "audit": [], - "log": [], - "sent": [ - { - "detail": "Invalid transfer limits", - "req_id": 4242, - "type": "error" - } + "log": [ + "WARNING Unknown MNP message type on DataChannel: %s" ], + "sent": [], "spawned": [] }, - "transfer_limits_ack | challenged | bare": { + "transfer_close | challenged | bare": { "audit": [], "log": [], "sent": [ @@ -21935,7 +18498,7 @@ ], "spawned": [] }, - "transfer_limits_ack | challenged | lists": { + "transfer_close | challenged | lists": { "audit": [], "log": [], "sent": [ @@ -21947,7 +18510,7 @@ ], "spawned": [] }, - "transfer_limits_ack | challenged | numbers": { + "transfer_close | challenged | numbers": { "audit": [], "log": [], "sent": [ @@ -21959,7 +18522,7 @@ ], "spawned": [] }, - "transfer_limits_ack | challenged | strings": { + "transfer_close | challenged | strings": { "audit": [], "log": [], "sent": [ @@ -21971,7 +18534,7 @@ ], "spawned": [] }, - "transfer_limits_ack | fresh | bare": { + "transfer_close | fresh | bare": { "audit": [], "log": [], "sent": [ @@ -21983,7 +18546,7 @@ ], "spawned": [] }, - "transfer_limits_ack | fresh | lists": { + "transfer_close | fresh | lists": { "audit": [], "log": [], "sent": [ @@ -21995,7 +18558,7 @@ ], "spawned": [] }, - "transfer_limits_ack | fresh | numbers": { + "transfer_close | fresh | numbers": { "audit": [], "log": [], "sent": [ @@ -22007,7 +18570,7 @@ ], "spawned": [] }, - "transfer_limits_ack | fresh | strings": { + "transfer_close | fresh | strings": { "audit": [], "log": [], "sent": [ @@ -22019,66 +18582,66 @@ ], "spawned": [] }, - "transfer_limits_ack | member | bare": { + "transfer_close | member | bare": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO transfer: %s" ], "sent": [], "spawned": [] }, - "transfer_limits_ack | member | lists": { + "transfer_close | member | lists": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO transfer: %s" ], "sent": [], "spawned": [] }, - "transfer_limits_ack | member | numbers": { + "transfer_close | member | numbers": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO transfer: %s" ], "sent": [], "spawned": [] }, - "transfer_limits_ack | member | strings": { + "transfer_close | member | strings": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO transfer: %s" ], "sent": [], "spawned": [] }, - "transfer_limits_ack | operator | bare": { + "transfer_close | operator | bare": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO transfer: %s" ], "sent": [], "spawned": [] }, - "transfer_limits_ack | operator | lists": { + "transfer_close | operator | lists": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO transfer: %s" ], "sent": [], "spawned": [] }, - "transfer_limits_ack | operator | numbers": { + "transfer_close | operator | numbers": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO transfer: %s" ], "sent": [], "spawned": [] }, - "transfer_limits_ack | operator | strings": { + "transfer_close | operator | strings": { "audit": [], "log": [ - "WARNING Unknown MNP message type on DataChannel: %s" + "INFO transfer: %s" ], "sent": [], "spawned": [] diff --git a/packages/meshbay-node/tests/test_admin_ops_mnp.py b/packages/meshbay-node/tests/test_admin_ops_mnp.py index 7fd1c2b..898228e 100644 --- a/packages/meshbay-node/tests/test_admin_ops_mnp.py +++ b/packages/meshbay-node/tests/test_admin_ops_mnp.py @@ -1,17 +1,14 @@ """ -`gek_rotate` and `member_unpin` over MNP. - -Both are destructive and both are new, so the tests are negative assertions: -nobody without the operator's pinned key can reach them, a signature over the -wrong transcript does not count, and the operation cannot be triggered by the -request message alone. - -The rule these live under is worth restating, because it is easy to read -draft-v5 §5.1 as forbidding them: **"nothing arriving over MNP can activate a -GEK" is about key material arriving from outside** (C5b — a member handing the -node a key of their choosing). An operator-signed instruction where the node -generates the key with its own CSPRNG is a different shape, and it is the only -thing that finishes a revocation: the ex-member still holds the current key. +Rotating the group key and forgetting a pinned identity — `ops.set_gek` and +`ops.unpin_member`, which the Node page and the CLI reach over loopback — and +the H5 rule every signed MNP operation lives under. + +`gek_rotate` and `member_unpin` were MNP messages until 6.0. No client sent +them, so they went; what they did is still tested here, at the door that is +used. **"Nothing arriving over MNP can activate a GEK" is about key material +arriving from outside** (C5b): the node generates the new key with its own +CSPRNG, which is the only thing that finishes a revocation — the ex-member +still holds the current key. """ import base64 @@ -19,14 +16,10 @@ from pathlib import Path import pytest from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey -from meshbay_common.adminop import ( - OP_GEK_ROTATE, - OP_MEMBER_UNPIN, - admin_transcript, -) +from meshbay_common.adminop import OP_CHAT_EPOCH, admin_transcript from meshbay_common.crypto import pk_to_b64 from meshbay_common.join import ROLE_MEMBER, ROLE_OPERATOR -from meshbay_common.protocol import MNP +from meshbay_node import ops from meshbay_node.indexer.group_index import GroupIndex from meshbay_node.roster import open_roster from meshbay_node.transport.webrtc_server import WebRTCPeerSession @@ -127,58 +120,7 @@ async def _drain(session): session.spawned.clear() -async def _sign_and_exec(session, op: str, subject: str, sk, exec_fn): - challenge = _last(session) - assert challenge["type"] == "admin_challenge", challenge - transcript = admin_transcript( - op=op, node_pk_b64=session._node_pk_b64(), group_id=GROUP, - subject=subject, nonce=base64.b64decode(challenge["nonce"]), - ts=challenge["ts"]) - pending = session._admin_ops.get(challenge["op_id"]) or { - "op": op, "subject": subject} - await exec_fn(pending, transcript, sk.sign(transcript)) - - -# ── gek_rotate ─────────────────────────────────────────────────────────────── - -async def test_rotation_needs_an_operator(tmp_path, roster): - """Without a paired operator there is nobody who could sign, so the node - fails closed and says why rather than issuing a challenge nobody can meet.""" - session = await _session(tmp_path, roster, operator=False) - - session._do_gek_rotate({}) - - assert _last(session)["type"] == "error" - assert "authorized key" in _last(session)["detail"] - assert not session._admin_ops - - -async def test_the_request_alone_rotates_nothing(tmp_path, roster): - """The message asks; only a signature acts. A node that rotated here would - let any member lock the group out.""" - session = await _session(tmp_path, roster, operator=True) - before = session._ctx["groups"][GROUP]["gek"] - - session._do_gek_rotate({}) - - assert _last(session)["type"] == "admin_challenge" - assert session._ctx["groups"][GROUP]["gek"] == before - - -async def test_a_members_signature_does_not_rotate(tmp_path, roster): - session = await _session(tmp_path, roster, operator=True) - sk_mallory, pk_mallory = _keypair() - await roster.pin_identity("mallory", "mallory", pk_mallory, pk_mallory, "code") - await roster.set_member(GROUP, "mallory", ROLE_MEMBER, "active", "grenet") - before = session._ctx["groups"][GROUP]["gek"] - - session._do_gek_rotate({}) - await _sign_and_exec(session, OP_GEK_ROTATE, GROUP, sk_mallory, - session._admin_exec_gek_rotate) - - assert _last(session)["type"] == "error" - assert session._ctx["groups"][GROUP]["gek"] == before - +# ── H5: a signature is for one operation ───────────────────────────────────── async def test_a_signature_over_another_operation_does_not_count(tmp_path, roster): """ @@ -191,15 +133,18 @@ async def test_a_signature_over_another_operation_does_not_count(tmp_path, roste control, and the test would pass while proving nothing. """ session = await _session(tmp_path, roster, operator=True) - before = session._ctx["groups"][GROUP]["gek"] + _, pk_bob = _keypair() + await roster.pin_identity("bob", "bob", pk_bob, pk_bob, "code") + await roster.set_member(GROUP, "bob", ROLE_MEMBER, "active", "code") - session._do_gek_rotate({}) + session._do_member_revoke({"user_id": "bob"}) challenge = _last(session) + assert challenge["type"] == "admin_challenge", challenge - # Signed over member_unpin, presented against the pending gek_rotate. + # Signed over chat_epoch, presented against the pending member_revoke. wrong = admin_transcript( - op=OP_MEMBER_UNPIN, node_pk_b64=session._node_pk_b64(), group_id=GROUP, - subject=GROUP, nonce=base64.b64decode(challenge["nonce"]), + op=OP_CHAT_EPOCH, node_pk_b64=session._node_pk_b64(), group_id=GROUP, + subject="bob", nonce=base64.b64decode(challenge["nonce"]), ts=challenge["ts"]) session._do_admin_response({ "op_id": challenge["op_id"], @@ -208,19 +153,18 @@ async def test_a_signature_over_another_operation_does_not_count(tmp_path, roste await _drain(session) assert _last(session)["type"] == "error" - assert session.state["groups_ctx"][GROUP]["gek"] == before + assert (await roster.get_member(GROUP, "bob"))["status"] == "active" + +# ── Rotating the group key ─────────────────────────────────────────────────── -async def test_the_operator_rotates_and_the_node_makes_the_key(tmp_path, roster): +async def test_rotating_makes_a_new_key_on_the_node(tmp_path, roster): session = await _session(tmp_path, roster, operator=True) - before = session._ctx["groups"][GROUP]["gek"] + before = session.state["groups_ctx"][GROUP]["gek"] - session._do_gek_rotate({}) - await _sign_and_exec(session, OP_GEK_ROTATE, GROUP, session.sk_op, - session._admin_exec_gek_rotate) + result = await ops.set_gek(session.state, GROUP, rotate=True) - ack = _last(session) - assert ack["type"] == MNP.GEK_ROTATE_ACK, ack + assert result["rotated"] is True after = session.state["groups_ctx"][GROUP]["gek"] assert after != before, "the key did not change" assert len(after) == 32 @@ -234,54 +178,21 @@ async def test_rotation_reaches_the_index(tmp_path, roster): serve members a listing they cannot open.""" session = await _session(tmp_path, roster, operator=True) - session._do_gek_rotate({}) - await _sign_and_exec(session, OP_GEK_ROTATE, GROUP, session.sk_op, - session._admin_exec_gek_rotate) + await ops.set_gek(session.state, GROUP, rotate=True) assert session.state["indexes"][GROUP].gek == \ session.state["groups_ctx"][GROUP]["gek"] -# ── member_unpin ───────────────────────────────────────────────────────────── - -async def test_unpinning_needs_an_operator(tmp_path, roster): - session = await _session(tmp_path, roster, operator=False) - session._do_member_unpin({"user_id": "bob"}) - assert _last(session)["type"] == "error" - +# ── Forgetting a pinned identity ───────────────────────────────────────────── -async def test_unpinning_yourself_is_refused(tmp_path, roster): - """It would end the authority of the connection performing the operation, - halfway through it.""" - session = await _session(tmp_path, roster, operator=True) - session._do_member_unpin({"user_id": "grenet"}) - assert _last(session)["detail"] == "Cannot unpin yourself" - - -async def test_a_members_signature_does_not_unpin(tmp_path, roster): - session = await _session(tmp_path, roster, operator=True) - sk_bob, pk_bob = _keypair() - await roster.pin_identity("bob", "bob", pk_bob, pk_bob, "code") - - session._do_member_unpin({"user_id": "bob"}) - await _sign_and_exec(session, OP_MEMBER_UNPIN, "bob", sk_bob, - session._admin_exec_member_unpin) - - assert _last(session)["type"] == "error" - assert await roster.get_identity("bob") is not None, ( - "a member removed their own pin — only the operator may") - - -async def test_the_operator_unpins(tmp_path, roster): +async def test_unpinning_forgets_the_identity_and_its_bundle(tmp_path, roster): session = await _session(tmp_path, roster, operator=True) _, pk_bob = _keypair() await roster.pin_identity("bob", "bob", pk_bob, pk_bob, "code") - session._do_member_unpin({"user_id": "bob"}) - await _sign_and_exec(session, OP_MEMBER_UNPIN, "bob", session.sk_op, - session._admin_exec_member_unpin) + await ops.unpin_member(session.state, "bob") - assert _last(session)["type"] == MNP.MEMBER_UNPIN_ACK assert await roster.get_identity("bob") is None # The stored keypair bundle goes too — left behind it blocks the re-join # the unpin exists to enable. @@ -290,8 +201,21 @@ async def test_the_operator_unpins(tmp_path, roster): async def test_unpinning_someone_unknown_says_so(tmp_path, roster): session = await _session(tmp_path, roster, operator=True) - session._do_member_unpin({"user_id": "nobody"}) - await _sign_and_exec(session, OP_MEMBER_UNPIN, "nobody", session.sk_op, - session._admin_exec_member_unpin) - assert _last(session)["type"] == "error" - assert "No such pinned identity" in _last(session)["detail"] + with pytest.raises(ops.OpError, match="No such pinned identity"): + await ops.unpin_member(session.state, "nobody") + + +# ── What MNP no longer carries ─────────────────────────────────────────────── + +@pytest.mark.parametrize("op", ["gek_rotate", "member_unpin", "transfer_limits", + "group_detach"]) +def test_operations_no_client_sent_are_not_signed_ops_any_more(op): + """Gone with MNP 6.0: a door nobody uses is an untested way in. The Node + page and the CLI do the same work over loopback.""" + from meshbay_common import adminop + from meshbay_node.transport.webrtc.admin import _ADMIN_EXECUTORS + from meshbay_node.transport.webrtc.dispatch import _HANDLERS + + assert op not in _HANDLERS + assert op not in _ADMIN_EXECUTORS + assert op not in vars(adminop).values() diff --git a/packages/meshbay-node/tests/test_node_status.py b/packages/meshbay-node/tests/test_node_status.py index 257c60c..075d11f 100644 --- a/packages/meshbay-node/tests/test_node_status.py +++ b/packages/meshbay-node/tests/test_node_status.py @@ -1,25 +1,19 @@ """ -node_status and root_remove over MNP. +The node management panel's server-side behaviour. -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 -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. +The `_is_node_admin` hint, root removal over MNP, and the operations the Node +page and the CLI reach over loopback: listing groups, adding and updating +roots, the roster, the denylist and unpinning. Their own MNP messages +(`node_status`, `root_add`, `roster_read`, …) are gone since MNP 6.0. """ -import base64 from dataclasses import asdict from pathlib import Path import pytest from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey -from meshbay_common.adminop import ( - OP_MEMBER_UNPIN, - admin_transcript, -) from meshbay_common.crypto import pk_to_b64 from meshbay_common.join import ROLE_OPERATOR -from meshbay_common.protocol import MNP from meshbay_node import ops from meshbay_node.indexer.group_index import GroupIndex from meshbay_node.roots import RootSet @@ -134,19 +128,6 @@ async def _session( return session -async def _sign_and_exec(session, op: str, subject: str, sk, exec_fn, - group_id: str = GROUP): - challenge = _last(session) - assert challenge["type"] == "admin_challenge", challenge - transcript = admin_transcript( - op=op, node_pk_b64=session._node_pk_b64(), group_id=group_id, - subject=subject, nonce=base64.b64decode(challenge["nonce"]), - ts=challenge["ts"]) - pending = session._admin_ops.get(challenge["op_id"]) or { - "op": op, "subject": subject} - await exec_fn(pending, transcript, sk.sign(transcript)) - - # ── _is_node_admin ────────────────────────────────────────────────────────── async def test_is_node_admin_matches_user_id(tmp_path, roster): @@ -168,62 +149,6 @@ async def test_is_node_admin_rejects_missing_node_user_id(tmp_path, roster): assert not session._is_node_admin() -# ── node_status ───────────────────────────────────────────────────────────── - -async def test_node_status_returns_groups_for_admin(tmp_path, roster): - session = await _session(tmp_path, roster, operator=True, - node_user_id="grenet") - session._spawn(session._do_node_status({})) - await _drain(session) - msg = _last(session) - assert msg["type"] == MNP.NODE_STATUS_ACK - assert len(msg["groups"]) == 1 - assert msg["groups"][0]["id"] == GROUP - - -async def test_node_status_refused_for_non_admin(tmp_path, roster): - session = await _session(tmp_path, roster, operator=False, - node_user_id="grenet") - session._spawn(session._do_node_status({})) - await _drain(session) - msg = _last(session) - assert msg["type"] == "error" - assert "operator" in msg["detail"].lower() - - -async def test_node_status_refused_when_user_is_operator_but_ids_mismatch( - tmp_path, roster, -): - """A paired operator who is not the node owner cannot see node_status.""" - session = await _session(tmp_path, roster, operator=True, - node_user_id="someone-else") - session._spawn(session._do_node_status({})) - await _drain(session) - msg = _last(session) - assert msg["type"] == "error" - - -async def test_node_status_catches_send_failure(tmp_path, roster): - """If _send itself throws (e.g. msgpack encoding fails), the error must - not silently vanish — it used to, because _send was outside the try block.""" - session = await _session(tmp_path, roster, operator=True, - node_user_id="grenet") - sent = [] - call_count = [0] - - def _exploding_send(msg): - call_count[0] += 1 - if msg.get("type") == "node_status_ack": - raise TypeError("msgpack cannot encode this") - sent.append(msg) - - session._send = _exploding_send - session._spawn(session._do_node_status({})) - await _drain(session) - # The try/except around _send should catch the error and send an error reply - assert any(m.get("type") == "error" for m in sent) - - # ── ops.list_groups ───────────────────────────────────────────────────────── async def test_list_groups_returns_group_metadata(tmp_path): @@ -504,52 +429,32 @@ async def test_root_remove_refuses_missing_fields(tmp_path, roster): assert "Missing" in _last(session)["detail"] -# ── roster_read MNP handler ────────────────────────────────────────────── - -async def test_roster_read_returns_members_for_admin(tmp_path, roster): - session = await _session(tmp_path, roster, operator=True, - node_user_id="grenet") - session._spawn(session._do_roster_read({"group_id": GROUP})) - await _drain(session) - msg = _last(session) - assert msg["type"] == "roster_read_ack" - assert "members" in msg - assert "identities" in msg - - -async def test_roster_read_refused_for_non_admin(tmp_path, roster): - session = await _session(tmp_path, roster, operator=False, - node_user_id="grenet") - session._spawn(session._do_roster_read({"group_id": GROUP})) - await _drain(session) - msg = _last(session) - assert msg["type"] == "error" - +# ── The roster, the denylist and unpinning (loopback, CLI) ────────────────── +# +# Their MNP messages are gone (MNP 6.0, no client sent them); the operations are +# what the Node page and the CLI call. -async def test_roster_read_filters_ghost_members(tmp_path, roster): +async def test_read_roster_filters_ghost_members(tmp_path, roster): """Members whose identity was deleted (revoked then unpinned) are filtered out by read_roster — the LEFT JOIN returns them with pk_ed25519 = NULL but they should never reach the UI.""" session = await _session(tmp_path, roster, operator=True, node_user_id="grenet") - sk2, pk2 = _keypair() + _, pk2 = _keypair() await roster.pin_identity("ghost", "ghost", pk2, pk2, "code") await roster.set_member(GROUP, "ghost", "member", "revoked", "local-cli") await roster._db.execute("DELETE FROM identities WHERE user_id = 'ghost'") await roster._db.commit() # Also add a real member so the roster isn't empty - sk3, pk3 = _keypair() + _, pk3 = _keypair() await roster.pin_identity("real", "real", pk3, pk3, "code") await roster.set_member(GROUP, "real", "member", "active", "local-cli") - session._spawn(session._do_roster_read({"group_id": GROUP})) - await _drain(session) - msg = _last(session) - assert msg["type"] == "roster_read_ack" - ghost = [m for m in msg["members"] if m["user_id"] == "ghost"] - assert len(ghost) == 0, "ghost members must be filtered out" - real = [m for m in msg["members"] if m["user_id"] == "real"] - assert len(real) == 1 + result = await ops.read_roster(session.state, GROUP) + assert "identities" in result + assert not [m for m in result["members"] if m["user_id"] == "ghost"], ( + "ghost members must be filtered out") + assert len([m for m in result["members"] if m["user_id"] == "real"]) == 1 async def test_unpin_fails_for_ghost_member(tmp_path, roster): @@ -557,118 +462,35 @@ async def test_unpin_fails_for_ghost_member(tmp_path, roster): session = await _session(tmp_path, roster, operator=True, node_user_id="grenet") await roster.set_member(GROUP, "ghost", "member", "revoked", "local-cli") - # ghost has no identity row - session._do_member_unpin({"user_id": "ghost"}) - challenge = _last(session) - assert challenge["type"] == "admin_challenge" + with pytest.raises(ops.OpError, match="No such pinned identity"): + await ops.unpin_member(session.state, "ghost") - await _sign_and_exec(session, OP_MEMBER_UNPIN, "ghost", - session.sk_op, session._admin_exec_member_unpin) - msg = _last(session) - assert msg["type"] == "error" - assert "No such pinned identity" in msg["detail"] - - -async def test_unpin_succeeds_for_real_identity(tmp_path, roster): - """Full unpin flow: challenge → sign → exec → identity deleted.""" - session = await _session(tmp_path, roster, operator=True, - node_user_id="grenet") - sk2, pk2 = _keypair() - await roster.pin_identity("target", "target", pk2, pk2, "code") - await roster.set_member(GROUP, "target", "member", "active", "local-cli") - - session._do_member_unpin({"user_id": "target"}) - challenge = _last(session) - assert challenge["type"] == "admin_challenge" - - await _sign_and_exec(session, OP_MEMBER_UNPIN, "target", - session.sk_op, session._admin_exec_member_unpin) - msg = _last(session) - assert msg["type"] == "member_unpin_ack" - assert msg["user_id"] == "target" - - idents = await roster.list_identities() - assert not any(i["user_id"] == "target" for i in idents) - -# ── denylist_read MNP handler ──────────────────────────────────────────── - -async def test_denylist_read_returns_entries_for_admin(tmp_path, roster): +async def test_read_denylist_lists_entries(tmp_path, roster): session = await _session(tmp_path, roster, operator=True, node_user_id="grenet") session.denylist.deny_user("bad-user") - session._spawn(session._do_denylist_read({})) - await _drain(session) - msg = _last(session) - assert msg["type"] == "denylist_read_ack" - assert msg["count"] == 1 - assert "bad-user" in msg["users"] - - -async def test_denylist_read_refused_for_non_admin(tmp_path, roster): - session = await _session(tmp_path, roster, operator=False, - node_user_id="grenet") - session._spawn(session._do_denylist_read({})) - await _drain(session) - msg = _last(session) - assert msg["type"] == "error" - + result = await ops.read_denylist(session.state) + assert result["count"] == 1 + assert "bad-user" in result["users"] -# ── denylist_clear MNP handler ─────────────────────────────────────────── -async def test_denylist_clear_removes_entry_for_admin(tmp_path, roster): +async def test_clear_denylist_removes_one_entry(tmp_path, roster): session = await _session(tmp_path, roster, operator=True, node_user_id="grenet") session.denylist.deny_user("bad-user") session.denylist.deny_user("other-user") - session._spawn(session._do_denylist_clear({"subject": "bad-user"})) - await _drain(session) - msg = _last(session) - assert msg["type"] == "denylist_clear_ack" - assert msg["removed"] == 1 + result = await ops.clear_denylist(session.state, subject="bad-user") + assert result["removed"] == 1 assert "bad-user" not in session.denylist.entries()["users"] assert "other-user" in session.denylist.entries()["users"] -async def test_denylist_clear_all_for_admin(tmp_path, roster): +async def test_clear_denylist_all(tmp_path, roster): session = await _session(tmp_path, roster, operator=True, node_user_id="grenet") session.denylist.deny_user("a") session.denylist.deny_user("b") session.denylist.deny_jti("j") - session._spawn(session._do_denylist_clear({"subject": ""})) - await _drain(session) - msg = _last(session) - assert msg["type"] == "denylist_clear_ack" - assert msg["removed"] == 3 - - -async def test_denylist_clear_refused_for_non_admin(tmp_path, roster): - session = await _session(tmp_path, roster, operator=False, - node_user_id="grenet") - session._spawn(session._do_denylist_clear({"subject": "bad-user"})) - await _drain(session) - msg = _last(session) - assert msg["type"] == "error" - - -# ── node_reload MNP handler ───────────────────────────────────────────── - -async def test_node_reload_runs_for_admin(tmp_path, roster): - session = await _session(tmp_path, roster, operator=True, - node_user_id="grenet") - session._spawn(session._do_node_reload({})) - await _drain(session) - msg = _last(session) - assert msg["type"] == "node_reload_ack" - assert msg["status"] == "reloaded" - assert len(session.reload_called) == 1 - - -async def test_node_reload_refused_for_non_admin(tmp_path, roster): - session = await _session(tmp_path, roster, operator=False, - node_user_id="grenet") - session._spawn(session._do_node_reload({})) - await _drain(session) - msg = _last(session) - assert msg["type"] == "error" + result = await ops.clear_denylist(session.state, subject="") + assert result["removed"] == 3 diff --git a/packages/meshbay-node/tests/test_security_regressions.py b/packages/meshbay-node/tests/test_security_regressions.py index 43e88c2..26a3b1d 100644 --- a/packages/meshbay-node/tests/test_security_regressions.py +++ b/packages/meshbay-node/tests/test_security_regressions.py @@ -842,14 +842,11 @@ def test_node_control_api_serves_no_html(): # ── NS4 / M3: the node's own controls take no authority from the hub ───────── -async def _owner_session(tmp_path, roster, *, device: str = "", - confirmed: bool = False): +async def _owner_session(tmp_path, roster): """A session whose token says it is the account this node belongs to. Which is all a hub can decide: `_user_id` is the `sub` of a JWT it issued, - so this is what an active hub forging a token arrives holding. Whether the - *device* on the connection is one the node pinned as an operator is the - other half, and no token can assert it. + so this is what an active hub forging a token arrives holding. """ from meshbay_node.indexer.group_index import GroupIndex @@ -865,9 +862,6 @@ async def _owner_session(tmp_path, roster, *, device: str = "", } session._group_id = "g" * 32 session._user_id = "the-owner" - session._username = "the-owner" - session._pinned_pk = device - session._device_confirmed = confirmed session._pk_user = "" session.sent = [] session._send = session.sent.append @@ -876,18 +870,18 @@ async def _owner_session(tmp_path, roster, *, device: str = "", @pytest.mark.asyncio -async def test_a_token_naming_the_owner_is_not_node_authority(tmp_path): - """ - The hub holds no user keys, so it cannot countersign a device — but it does - choose what a token says. Six node-wide controls used to be gated on the - account id alone, which is the hub's to decide: `node_status` (every group - on the machine, with the operator's absolute paths), `node_settings_set`, - `roster_read`, `denylist_read`, `denylist_clear` (the persisted revocation - H4 exists to keep) and `node_reload`. - - An active hub reaches a completed handshake wherever it can also obtain the - group key, which §3.5 concedes it can in an open-join group. From there, - "the hub says you are the owner" was the whole of the check. +@pytest.mark.parametrize("mtype", ["node_status", "node_settings_set", "roster_read", + "denylist_read", "denylist_clear", "node_reload"]) +async def test_a_token_naming_the_owner_reaches_no_node_control(tmp_path, mtype): + """ + The hub holds no user keys, but it does choose what a token says. Six + node-wide controls were once gated on the account id alone: `node_status` + (every group on the machine, with the operator's absolute paths), + `node_settings_set`, `roster_read`, `denylist_read`, `denylist_clear` (the + persisted revocation H4 exists to keep) and `node_reload`. A device proof + closed that; MNP 6.0 removed the messages, since no client sent them. They + are the loopback API's and the CLI's — on the operator's own machine — and a + peer naming one over MNP is answered by nobody. """ from meshbay_node.roster import Roster @@ -895,67 +889,8 @@ async def test_a_token_naming_the_owner_is_not_node_authority(tmp_path): await roster.open() try: forged = await _owner_session(tmp_path, roster) - await forged._do_node_status({}) - assert forged.sent[-1]["type"] == "error" - assert forged.sent[-1]["code"] == "not_operator" - - forged.sent.clear() - await forged._do_denylist_read({}) - assert forged.sent[-1]["type"] == "error" - - forged.sent.clear() - await forged._do_denylist_clear({"subject": ""}) - assert forged.sent[-1]["type"] == "error", ( - "clearing the denylist undoes a revocation every node enforces") - finally: - await roster.close() - - -@pytest.mark.asyncio -async def test_an_identified_device_that_is_not_an_operator_is_refused(tmp_path): - """Being a pinned member of the group is not being the node's operator. - - The device proof is real here; what it proves is an ordinary member's key, - and `operator_pks()` is rebuilt from the roster on every call so a revoked - one stops working at once. - """ - from meshbay_common.crypto import pk_to_b64 - from meshbay_node.roster import Roster - - roster = Roster(db_path=tmp_path / "roster.db") - await roster.open() - try: - sk = Ed25519PrivateKey.generate() - member_pk = pk_to_b64(sk.public_key()) - await roster.pin_identity("the-owner", "the-owner", member_pk, - member_pk, "code") - session = await _owner_session(tmp_path, roster, device=member_pk, - confirmed=True) - await session._do_node_status({}) - assert session.sent[-1]["type"] == "error" - finally: - await roster.close() - - -@pytest.mark.asyncio -async def test_a_paired_operator_device_is_what_opens_it(tmp_path): - """The positive case, so the test above is about authority and not about - everything being refused.""" - from meshbay_common.crypto import pk_to_b64 - from meshbay_common.join import ROLE_OPERATOR - from meshbay_node.roster import Roster - - roster = Roster(db_path=tmp_path / "roster.db") - await roster.open() - try: - sk = Ed25519PrivateKey.generate() - pk = pk_to_b64(sk.public_key()) - await roster.pin_identity("the-owner", "the-owner", pk, pk, "code") - await roster.set_member("", "the-owner", ROLE_OPERATOR, "active", - "local-cli") - session = await _owner_session(tmp_path, roster, device=pk, - confirmed=True) - await session._do_denylist_read({}) - assert session.sent[-1]["type"] != "error", session.sent[-1] + forged._dispatch_message({"type": mtype, "subject": "", "group_id": "g" * 32, + "settings": {"max_peers": 1}}) + assert forged.sent == [], f"{mtype} answered over MNP: {forged.sent}" finally: await roster.close() -- cgit v1.2.3