From 762233772162a05be67432aa551a430b939250de Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Fri, 25 Sep 2026 01:30:47 +0200 Subject: refactor(node): split ops.py into the ops package Each section of ops.py becomes a module of meshbay_node/ops/ (core, node_toml, members, chat, groups, roots, files, settings, apps), cut as text; ops/__init__.py keeps the docstring and re-exports every name, so `ops.` is unchanged for every caller. Logger name unchanged. Co-Authored-By: Claude Opus 5.5 --- packages/meshbay-node/tests/test_app_directories.py | 2 +- packages/meshbay-node/tests/test_root_ops_reach_the_live_set.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'packages/meshbay-node/tests') diff --git a/packages/meshbay-node/tests/test_app_directories.py b/packages/meshbay-node/tests/test_app_directories.py index 1b8d1e0..c8a358b 100644 --- a/packages/meshbay-node/tests/test_app_directories.py +++ b/packages/meshbay-node/tests/test_app_directories.py @@ -68,7 +68,7 @@ async def _state(tmp_path: Path, *, writable: bool = True) -> tuple[dict, Roster async def test_an_app_nobody_wrote_code_for_stores_its_directories(tmp_path): """ - The point of the generic pair. Nothing in ops.py, roster.py or the daemon + The point of the generic pair. Nothing in ops, roster.py or the daemon names this app, and it round-trips anyway — which is the difference between a plugin architecture and a list of special cases. """ diff --git a/packages/meshbay-node/tests/test_root_ops_reach_the_live_set.py b/packages/meshbay-node/tests/test_root_ops_reach_the_live_set.py index 6a52c06..e90fdfe 100644 --- a/packages/meshbay-node/tests/test_root_ops_reach_the_live_set.py +++ b/packages/meshbay-node/tests/test_root_ops_reach_the_live_set.py @@ -1,7 +1,7 @@ """ Adding or removing a root has to reach the running node, not only node.toml. -Two front doors do this — the loopback API and a signed MNP op — and `ops.py` +Two front doors do this — the loopback API and a signed MNP op — and `ops` exists so they behave identically. They did not. The loopback path fired the daemon's `reload_fn`, which re-reads node.toml and builds a fresh `RootSet`; the MNP path instead re-pointed the indexer at `groups_ctx[gid]["roots"]`, the -- cgit v1.2.3