From ecce65bb673664eea40872e1642b20fc3a29fea7 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Mon, 27 Apr 2026 13:24:50 +0900 Subject: [PATCH] fix(skill): isolate injected skill discovery Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- src/tools/skill/tools.factory.test.ts | 6 ++---- src/tools/skill/tools.ts | 9 +-------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/src/tools/skill/tools.factory.test.ts b/src/tools/skill/tools.factory.test.ts index 5b9a5ba30..b307d9589 100644 --- a/src/tools/skill/tools.factory.test.ts +++ b/src/tools/skill/tools.factory.test.ts @@ -4,13 +4,10 @@ import { afterEach, beforeEach, describe, expect, it, mock, spyOn } from "bun:te import type { ToolContext } from "@opencode-ai/plugin/tool" import type { LoadedSkill } from "../../features/opencode-skill-loader/types" import * as skillContent from "../../features/opencode-skill-loader/skill-content" +import * as commandDiscovery from "../slashcommand/command-discovery" const discoverCommandsSync = mock(() => []) -mock.module("../slashcommand/command-discovery", () => ({ - discoverCommandsSync, -})) - function createMockSkill(name: string): LoadedSkill { return { name, @@ -50,6 +47,7 @@ function createMockContext(sessionID: string): ToolContext { } beforeEach(() => { + spyOn(commandDiscovery, "discoverCommandsSync").mockImplementation(discoverCommandsSync) spyOn(skillContent, "getAllSkills").mockImplementation(getAllSkills) spyOn(skillContent, "clearSkillCache").mockImplementation(clearSkillCache) }) diff --git a/src/tools/skill/tools.ts b/src/tools/skill/tools.ts index d49936f95..1ffbe364b 100644 --- a/src/tools/skill/tools.ts +++ b/src/tools/skill/tools.ts @@ -37,14 +37,7 @@ export function createSkillTool(options: SkillLoadOptions = {}): ToolDefinition disabledSkills: options?.disabledSkills, browserProvider: options?.browserProvider, })) ?? [] - const allSkills = !options.skills - ? discovered - : [ - ...discovered, - ...options.skills.filter( - (skill) => !new Set(discovered.map((discoveredSkill) => discoveredSkill.name)).has(skill.name) - ), - ] + const allSkills = options.skills ? [...options.skills] : discovered if (options.nativeSkills) { try {