fix: gate node p2p behind explicit config

This commit is contained in:
lpf
2026-03-08 22:38:00 +08:00
parent 2aa7db9619
commit ad2e732f56
6 changed files with 97 additions and 5 deletions

View File

@@ -142,7 +142,17 @@ func NewAgentLoop(cfg *config.Config, msgBus *bus.MessageBus, provider providers
return nodes.Response{OK: false, Code: "unsupported_action", Node: "local", Action: req.Action, Error: "unsupported local simulated action"}
}
})
nodesRouter := &nodes.Router{P2P: &nodes.WebsocketP2PTransport{Manager: nodesManager}, Relay: &nodes.HTTPRelayTransport{Manager: nodesManager}}
var nodeP2P nodes.Transport
if cfg.Gateway.Nodes.P2P.Enabled {
switch strings.ToLower(strings.TrimSpace(cfg.Gateway.Nodes.P2P.Transport)) {
case "", "websocket_tunnel":
nodeP2P = &nodes.WebsocketP2PTransport{Manager: nodesManager}
case "webrtc":
// Keep the mode explicit but non-default until a direct data channel is production-ready.
nodeP2P = &nodes.WebsocketP2PTransport{Manager: nodesManager}
}
}
nodesRouter := &nodes.Router{P2P: nodeP2P, Relay: &nodes.HTTPRelayTransport{Manager: nodesManager}}
toolsRegistry.Register(tools.NewNodesTool(nodesManager, nodesRouter, filepath.Join(workspace, "memory", "nodes-dispatch-audit.jsonl")))
if cs != nil {

View File

@@ -0,0 +1,32 @@
package agent
import (
"testing"
"clawgo/pkg/bus"
"clawgo/pkg/config"
)
func TestNewAgentLoopDisablesNodeP2PByDefault(t *testing.T) {
cfg := config.DefaultConfig()
cfg.Agents.Defaults.Workspace = t.TempDir()
loop := NewAgentLoop(cfg, bus.NewMessageBus(), stubLLMProvider{}, nil)
if loop.nodeRouter == nil {
t.Fatalf("expected node router to be configured")
}
if loop.nodeRouter.P2P != nil {
t.Fatalf("expected node p2p transport to be disabled by default")
}
}
func TestNewAgentLoopEnablesNodeP2PWhenConfigured(t *testing.T) {
cfg := config.DefaultConfig()
cfg.Agents.Defaults.Workspace = t.TempDir()
cfg.Gateway.Nodes.P2P.Enabled = true
loop := NewAgentLoop(cfg, bus.NewMessageBus(), stubLLMProvider{}, nil)
if loop.nodeRouter == nil || loop.nodeRouter.P2P == nil {
t.Fatalf("expected node p2p transport to be enabled")
}
}