Remove Harvest and Monday integrations

This commit is contained in:
stevef 2026-04-14 10:13:52 +02:00
parent fd4c6711b9
commit e7df4e6fe8
6 changed files with 10 additions and 16 deletions

View file

@ -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,

View file

@ -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)

View file

@ -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,

View file

@ -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 {

View file

@ -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

View file

@ -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,
}