diff --git a/src/features/opencode-skill-loader/skill-discovery.ts b/src/features/opencode-skill-loader/skill-discovery.ts index fb991e44a..2ee2cbca3 100644 --- a/src/features/opencode-skill-loader/skill-discovery.ts +++ b/src/features/opencode-skill-loader/skill-discovery.ts @@ -3,19 +3,20 @@ import { discoverSkills } from "./loader" import type { LoadedSkill } from "./types" import type { SkillResolutionOptions } from "./skill-resolution-options" -const cachedSkillsByProvider = new Map() +const skillCache = new Map() export function clearSkillCache(): void { - cachedSkillsByProvider.clear() + skillCache.clear() } export async function getAllSkills(options?: SkillResolutionOptions): Promise { - const cacheKey = options?.browserProvider ?? "playwright" + const directory = options?.directory ?? process.cwd() + const cacheKey = `${options?.browserProvider ?? "playwright"}:${directory}` const hasDisabledSkills = options?.disabledSkills && options.disabledSkills.size > 0 // Skip cache if disabledSkills is provided (varies between calls) if (!hasDisabledSkills) { - const cached = cachedSkillsByProvider.get(cacheKey) + const cached = skillCache.get(cacheKey) if (cached) return cached } @@ -69,7 +70,7 @@ export async function getAllSkills(options?: SkillResolutionOptions): Promise !options!.disabledSkills!.has(skill.name)) } else { - cachedSkillsByProvider.set(cacheKey, allSkills) + skillCache.set(cacheKey, allSkills) } return allSkills