authorgravatar for anirudh@gosupernova.liveAnirudh Coontoor <anirudh@gosupernova.live> 2026-09-02 22:44:41+05:30
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-02 13:14:41-04:00
logbc918e74ace5dbb4fe1ce73b59d06a9ca1be9ed3
treec85bbb3dcaa6ea434d6bc440f7ec2f243ac6f3fa
parent70cd258d8aac43ea57494527b00bf36de3efa6c0
signature Signed by PGP key B5690EEEBB952194

fix(server): discover project skills for Claude (#9210)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

1 files changed, 13 insertions(+), 0 deletions(-)

apps/server/src/provider/Drivers/ClaudeDriver.ts+13
......@@ -57,6 +57,7 @@ import {
5757 type ProviderSnapshotSettings,
5858} from "../providerUpdateSettings.ts";
5959import { makeClaudeCapabilitiesCacheKey, makeClaudeContinuationGroupKey } from "./ClaudeHome.ts";
60import { discoverClaudeSkills } from "./ClaudeSkills.ts";
6061const decodeClaudeSettings = Schema.decodeSync(ClaudeSettings);
6162
6263const DRIVER_KIND = ProviderDriverKind.make("claudeAgent");
......@@ -212,6 +213,17 @@ export const ClaudeDriver: ProviderDriver<ClaudeSettings, ClaudeDriverEnv> = {
212213 }),
213214 ),
214215 );
216 const snapshotForCwd = (cwd: string) =>
217 !effectiveConfig.enabled
218 ? snapshot.getSnapshot
219 : Effect.all([
220 snapshot.getSnapshot,
221 discoverClaudeSkills(effectiveConfig, cwd, processEnv),
222 ]).pipe(
223 Effect.map(([machineSnapshot, skills]) => ({ ...machineSnapshot, skills })),
224 Effect.provideService(FileSystem.FileSystem, fileSystem),
225 Effect.provideService(Path.Path, path),
226 );
215227
216228 return {
217229 instanceId,
......@@ -224,6 +236,7 @@ export const ClaudeDriver: ProviderDriver<ClaudeSettings, ClaudeDriverEnv> = {
224236 accentColor,
225237 enabled,
226238 snapshot,
239 snapshotForCwd,
227240 adapter,
228241 textGeneration,
229242 } satisfies ProviderInstance;