aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node/src/meshbay_node/daemon.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/daemon.py')
-rw-r--r--packages/meshbay-node/src/meshbay_node/daemon.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/packages/meshbay-node/src/meshbay_node/daemon.py b/packages/meshbay-node/src/meshbay_node/daemon.py
index 966dc69..dcfa8f8 100644
--- a/packages/meshbay-node/src/meshbay_node/daemon.py
+++ b/packages/meshbay-node/src/meshbay_node/daemon.py
@@ -1190,10 +1190,20 @@ class NodeDaemon:
spec["ejected"] = True
return RootSet.build(specs)
- # Every app that keeps directories. Not derived from `enabled_apps`: the
- # context is read once at load and an app enabled later must not find its
- # own setting missing. Adding an app adds a name here and nowhere else on
- # this side.
+ # Every application that keeps directories. This is the one list, and it
+ # lives here because the daemon is what wires a group's context: `roster.py`,
+ # `ops.py` and the rest must name no application at all — that is the
+ # property the reference app exists to demonstrate
+ # (`test_helloworld_proves_the_plugin_claim.py`).
+ #
+ # Not derived from `enabled_apps`: the context is read once at load, and an
+ # application enabled later must not find its own setting missing.
+ #
+ # The handshake ack does **not** get a copy of this. It emits whatever
+ # `<app>_directories` the context holds, so the two cannot drift — a copy
+ # lived in `webrtc_server.py` until 2026-09-10 and had already lost
+ # `helloworld`, which made the app that proves a new one needs no
+ # special-casing the single app whose directories never reached a client.
APP_DIR_KEYS = ("video", "music", "photo", "chat", "helloworld")
async def _app_directories_ctx(self, group_id: str) -> dict: