fix(tools): remove cron from coding profile to match documented behavior

The cron tool was incorrectly assigned to the "coding" profile, but docs
define coding as: group:fs, group:runtime, group:sessions, group:memory,
image. Cron belongs to group:automation alongside gateway (which already
had profiles: []).

This caused a runtime warning on platforms where cron is unavailable:
"tools.profile (coding) allowlist contains unknown entries (cron)"

Fixes #49098
This commit is contained in:
andienguyen-ecoligo 2026-03-17 13:05:09 -04:00
parent 7b61b025ff
commit 3eaeeb7a98
3 changed files with 3 additions and 3 deletions

View File

@ -198,7 +198,7 @@ const CORE_TOOL_DEFINITIONS: CoreToolDefinition[] = [
label: "cron",
description: "Schedule tasks",
sectionId: "automation",
profiles: ["coding"],
profiles: [],
includeInOpenClawGroup: true,
},
{

View File

@ -56,7 +56,7 @@ describe("tool-policy", () => {
it("resolves known profiles and ignores unknown ones", () => {
const coding = resolveToolProfilePolicy("coding");
expect(coding?.allow).toContain("read");
expect(coding?.allow).toContain("cron");
expect(coding?.allow).not.toContain("cron");
expect(coding?.allow).not.toContain("gateway");
expect(resolveToolProfilePolicy("nope")).toBeUndefined();
});

View File

@ -125,7 +125,7 @@ describe("tools invoke HTTP denylist", () => {
expect(cronRes.status).toBe(200);
});
it("keeps cron available under coding profile without exposing gateway", async () => {
it("keeps cron available via gateway.tools.allow without exposing gateway", async () => {
cfg = {
tools: {
profile: "coding",