From d74da71bdacf17f977afe188e2b5b6167d3a1b74 Mon Sep 17 00:00:00 2001 From: 134 Date: Wed, 5 Aug 2026 21:35:42 +0800 Subject: [PATCH] fix(canvas): raise Claw skill tag limit --- lib/canvas-skill-tags.ts | 4 ++-- tests/routes/admin-settings.test.ts | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/canvas-skill-tags.ts b/lib/canvas-skill-tags.ts index e71ca1487..f9283f630 100644 --- a/lib/canvas-skill-tags.ts +++ b/lib/canvas-skill-tags.ts @@ -225,7 +225,7 @@ function appendMissingCanvasSkillTags( return [ ...tags, ...additions.filter((tag) => !existingIds.has(tag.id)), - ].slice(0, 30); + ].slice(0, 50); } export function normalizeCanvasSkillTags(value: unknown): CanvasSkillTag[] { @@ -261,7 +261,7 @@ export function normalizeCanvasSkillTags(value: unknown): CanvasSkillTag[] { return DEFAULT_CANVAS_SKILL_TAGS; } - return normalized.slice(0, 30); + return normalized.slice(0, 50); } export function normalizeCanvasSkillTagSettings( diff --git a/tests/routes/admin-settings.test.ts b/tests/routes/admin-settings.test.ts index 7d685a589..31ea54778 100644 --- a/tests/routes/admin-settings.test.ts +++ b/tests/routes/admin-settings.test.ts @@ -216,6 +216,23 @@ test.describe.serial("/api/admin/settings", () => { expect(normalized.tags).toEqual(customTags); }); + test("canvas skill tag settings retain more than thirty configured skills", () => { + const configuredTags: CanvasSkillTag[] = Array.from({ length: 31 }, (_, index) => ({ + id: `configured-skill-${index + 1}`, + name: `Configured skill ${index + 1}`, + prompt: `Run configured skill ${index + 1}`, + })); + + const normalized = normalizeCanvasSkillTagSettings({ + enabled: true, + title: "Claw 快捷技能", + tags: configuredTags, + version: CANVAS_SKILL_TAGS_CONFIG_VERSION, + }); + + expect(normalized.tags).toEqual(configuredTags); + }); + test("canvas skill tags still use defaults when no stored setting exists", () => { const normalized = normalizeCanvasSkillTagSettings(null, { requireCurrentVersion: true,