diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-08-29 18:42:43 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-08-29 18:52:53 +0200 |
| commit | 1f8a52484412b48205e5ff6aac506428e2fb77ed (patch) | |
| tree | 5598419ee4caef21f607876de6af2d30d6452191 /packages/meshbay-node/src/meshbay_node/daemon.py | |
| parent | 8de80b7e19738b716d9973c0b4ba3b42085f7359 (diff) | |
| download | meshbay-1f8a52484412b48205e5ff6aac506428e2fb77ed.tar.gz | |
feat(node): editable node settings in the Node page (D5)
Expose invite_ttl_hours, pair_ttl_hours, device_request_ttl_minutes,
max_concurrent_streams and transcode_incompatible_video in the Node
management panel. Changes are applied immediately via roster.db and
written back to node.toml so they survive a DB wipe. On startup,
roster overrides take precedence over node.toml defaults.
Draft v6 §2.11 documents the design; MNP gains node_settings_set /
node_settings_set_ack for the browser path.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/daemon.py')
| -rw-r--r-- | packages/meshbay-node/src/meshbay_node/daemon.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/packages/meshbay-node/src/meshbay_node/daemon.py b/packages/meshbay-node/src/meshbay_node/daemon.py index 266693a..e1e4dee 100644 --- a/packages/meshbay-node/src/meshbay_node/daemon.py +++ b/packages/meshbay-node/src/meshbay_node/daemon.py @@ -267,6 +267,20 @@ class NodeDaemon: await self._roster.open() await self._roster.purge_expired() + # Apply any roster overrides to node config (panel-edited values + # take precedence over node.toml defaults). + nd = self._config.node + defaults = { + "invite_ttl_hours": nd.invite_ttl_hours, + "pair_ttl_hours": nd.pair_ttl_hours, + "device_request_ttl_minutes": nd.device_request_ttl_minutes, + "max_concurrent_streams": nd.max_concurrent_streams, + "transcode_incompatible_video": nd.transcode_incompatible_video, + } + effective = await self._roster.node_settings(defaults) + for k, v in effective.items(): + setattr(nd, k, v) + # X25519 key material for GEK unwrapping from cryptography.hazmat.primitives import serialization sk_x_raw = keys.sk_x25519.private_bytes( |