From e7df4e6fe82d39da7bc078c3feb73cd9ec98c551 Mon Sep 17 00:00:00 2001 From: stevef Date: Tue, 14 Apr 2026 10:13:52 +0200 Subject: [PATCH] Remove Harvest and Monday integrations --- cluster_config.json | 5 +---- docs/configuration.md | 2 +- k3s/configmap.yaml | 5 +---- pkg/security/policy/checker.go | 2 +- pkg/tools/registry.go | 2 +- pkg/tools/registry_test.go | 10 +++++----- 6 files changed, 10 insertions(+), 16 deletions(-) diff --git a/cluster_config.json b/cluster_config.json index d8433ef24..54ec8f361 100644 --- a/cluster_config.json +++ b/cluster_config.json @@ -410,8 +410,7 @@ "weather": true, "summarize": true, "github": true, - "monday": true, - "harvest": true + "hdn-server": true } } }, @@ -557,8 +556,6 @@ "weather", "summarize", "github", - "monday", - "harvest", "hdn-server" ], "whitelist_enabled": true, diff --git a/docs/configuration.md b/docs/configuration.md index fc1cc061b..31444e2f8 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -77,7 +77,7 @@ When an incoming message includes a **ChatID** (passed in the `/chat` API or ext 1. **Isolated Workspace:** The agent's operations are restricted to `workspace/sessions/{isolationID}/workspace`. 2. **Isolated Memory:** Long-term memory (`MEMORY.md`) is stored and read from the isolated session path. -3. **Isolated Tools:** Tools like `read_file` and `write_file` are automatically pointed to the isolated workspace. Additionally, **MCP server tools** (e.g., Harvest, Monday) and discovery search tools are dynamically registered to each isolated instance, ensuring they inherit the same security boundaries. +3. **Isolated Tools:** Tools like `read_file` and `write_file` are automatically pointed to the isolated workspace. Additionally, **MCP server tools** (e.g., GitHub, Google) and discovery search tools are dynamically registered to each isolated instance, ensuring they inherit the same security boundaries. #### Tenant Identification (Inbound Integration) diff --git a/k3s/configmap.yaml b/k3s/configmap.yaml index 310cbce1e..02bc8fc3b 100644 --- a/k3s/configmap.yaml +++ b/k3s/configmap.yaml @@ -417,8 +417,7 @@ data: "weather": true, "summarize": true, "github": true, - "monday": true, - "harvest": true + "hdn-server": true } } }, @@ -564,8 +563,6 @@ data: "weather", "summarize", "github", - "monday", - "harvest", "hdn-server" ], "whitelist_enabled": true, diff --git a/pkg/security/policy/checker.go b/pkg/security/policy/checker.go index f4b5e13b7..eb51ea467 100644 --- a/pkg/security/policy/checker.go +++ b/pkg/security/policy/checker.go @@ -55,7 +55,7 @@ func (c *Checker) ApproveTool(ctx context.Context, req *agent.ToolApprovalReques if c.Config.AllowedTools[req.Tool] { allowed = true } else { - // Check for prefix matches (e.g. "monday" matches "mcp_monday_...") + // Check for prefix matches (e.g. "github" matches "mcp_github_...") // Match logic consistent with ToolRegistry.Filter for w, ok := range c.Config.AllowedTools { if !ok { diff --git a/pkg/tools/registry.go b/pkg/tools/registry.go index b7d9e8538..ef808b4be 100644 --- a/pkg/tools/registry.go +++ b/pkg/tools/registry.go @@ -445,7 +445,7 @@ func (r *ToolRegistry) Filter(whitelist []string, enabled bool) { if _, exact := whitelistMap[name]; exact { allowed = true } else { - // Check for prefix matches (e.g. "monday" matches "mcp_monday_...") + // Check for prefix matches (e.g. "github" matches "mcp_github_...") for _, w := range whitelist { // Match exact (redundant but safe) or prefix with underscore // We also check for "mcp_" prefix specifically to support MCP tool grouping diff --git a/pkg/tools/registry_test.go b/pkg/tools/registry_test.go index c5f6ed29f..c2c0daa1d 100644 --- a/pkg/tools/registry_test.go +++ b/pkg/tools/registry_test.go @@ -764,14 +764,14 @@ func TestToolRegistry_Filter_SupportsPrefix(t *testing.T) { r := NewToolRegistry() r.Register(newMockTool("read_file", "core tool")) r.Register(newMockTool("write_file", "core tool")) - r.Register(newMockTool("mcp_monday_get_items", "mcp tool")) - r.Register(newMockTool("mcp_harvest_get_entries", "mcp tool")) + r.Register(newMockTool("mcp_github_get_items", "mcp tool")) + r.Register(newMockTool("mcp_google_get_entries", "mcp tool")) r.Register(newMockTool("tool_search_regex", "discovery tool")) - whitelist := []string{"read_file", "monday", "search"} + whitelist := []string{"read_file", "github", "search"} r.Filter(whitelist, true) - // expected: read_file (exact), mcp_monday_get_items (mcp_monday_ prefix), tool_search_regex (tool_search_ prefix) + // expected: read_file (exact), mcp_github_get_items (mcp_github_ prefix), tool_search_regex (tool_search_ prefix) if r.Count() != 3 { t.Errorf("expected 3 tools after filtering, got %d: %v", r.Count(), r.List()) } @@ -779,7 +779,7 @@ func TestToolRegistry_Filter_SupportsPrefix(t *testing.T) { allowed := r.List() expected := map[string]bool{ "read_file": true, - "mcp_monday_get_items": true, + "mcp_github_get_items": true, "tool_search_regex": true, }