From 50dd24196743c5c3bc579f473c3a1b07d0f49c9a Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Tue, 17 Mar 2026 15:30:17 -0400 Subject: [PATCH] Remove unused Instances.invalidate static method --- packages/opencode/src/effect/instances.ts | 123 ++++++++++------------ 1 file changed, 55 insertions(+), 68 deletions(-) diff --git a/packages/opencode/src/effect/instances.ts b/packages/opencode/src/effect/instances.ts index 075663f080..382fe4c0d0 100644 --- a/packages/opencode/src/effect/instances.ts +++ b/packages/opencode/src/effect/instances.ts @@ -1,31 +1,31 @@ -import { Effect, Layer, LayerMap, ServiceMap } from "effect"; -import { FileService } from "@/file"; -import { FileTimeService } from "@/file/time"; -import { FileWatcherService } from "@/file/watcher"; -import { FormatService } from "@/format"; -import { PermissionService } from "@/permission/service"; -import { Instance } from "@/project/instance"; -import { VcsService } from "@/project/vcs"; -import { ProviderAuthService } from "@/provider/auth-service"; -import { QuestionService } from "@/question/service"; -import { SkillService } from "@/skill/skill"; -import { SnapshotService } from "@/snapshot"; -import { InstanceContext } from "./instance-context"; -import { registerDisposer } from "./instance-registry"; +import { Effect, Layer, LayerMap, ServiceMap } from "effect" +import { FileService } from "@/file" +import { FileTimeService } from "@/file/time" +import { FileWatcherService } from "@/file/watcher" +import { FormatService } from "@/format" +import { PermissionService } from "@/permission/service" +import { Instance } from "@/project/instance" +import { VcsService } from "@/project/vcs" +import { ProviderAuthService } from "@/provider/auth-service" +import { QuestionService } from "@/question/service" +import { SkillService } from "@/skill/skill" +import { SnapshotService } from "@/snapshot" +import { InstanceContext } from "./instance-context" +import { registerDisposer } from "./instance-registry" -export { InstanceContext } from "./instance-context"; +export { InstanceContext } from "./instance-context" export type InstanceServices = - | QuestionService - | PermissionService - | ProviderAuthService - | FileWatcherService - | VcsService - | FileTimeService - | FormatService - | FileService - | SkillService - | SnapshotService; + | QuestionService + | PermissionService + | ProviderAuthService + | FileWatcherService + | VcsService + | FileTimeService + | FormatService + | FileService + | SkillService + | SnapshotService // NOTE: LayerMap only passes the key (directory string) to lookup, but we need // the full instance context (directory, worktree, project). We read from the @@ -34,50 +34,37 @@ export type InstanceServices = // This should go away once the old Instance type is removed and lookup can load // the full context directly. function lookup(_key: string) { - const ctx = Layer.sync(InstanceContext, () => - InstanceContext.of(Instance.current), - ); - return Layer.mergeAll( - Layer.fresh(QuestionService.layer), - Layer.fresh(PermissionService.layer), - Layer.fresh(ProviderAuthService.layer), - Layer.fresh(FileWatcherService.layer).pipe(Layer.orDie), - Layer.fresh(VcsService.layer), - Layer.fresh(FileTimeService.layer).pipe(Layer.orDie), - Layer.fresh(FormatService.layer), - Layer.fresh(FileService.layer), - Layer.fresh(SkillService.layer), - Layer.fresh(SnapshotService.layer), - ).pipe(Layer.provide(ctx)); + const ctx = Layer.sync(InstanceContext, () => InstanceContext.of(Instance.current)) + return Layer.mergeAll( + Layer.fresh(QuestionService.layer), + Layer.fresh(PermissionService.layer), + Layer.fresh(ProviderAuthService.layer), + Layer.fresh(FileWatcherService.layer).pipe(Layer.orDie), + Layer.fresh(VcsService.layer), + Layer.fresh(FileTimeService.layer).pipe(Layer.orDie), + Layer.fresh(FormatService.layer), + Layer.fresh(FileService.layer), + Layer.fresh(SkillService.layer), + Layer.fresh(SnapshotService.layer), + ).pipe(Layer.provide(ctx)) } -export class Instances extends ServiceMap.Service< - Instances, - LayerMap.LayerMap ->()("opencode/Instances") { - static readonly layer = Layer.effect( - Instances, - Effect.gen(function* () { - const layerMap = yield* LayerMap.make(lookup, { - idleTimeToLive: Infinity, - }); - const unregister = registerDisposer((directory) => - Effect.runPromise(layerMap.invalidate(directory)), - ); - yield* Effect.addFinalizer(() => Effect.sync(unregister)); - return Instances.of(layerMap); - }), - ); +export class Instances extends ServiceMap.Service>()( + "opencode/Instances", +) { + static readonly layer = Layer.effect( + Instances, + Effect.gen(function* () { + const layerMap = yield* LayerMap.make(lookup, { + idleTimeToLive: Infinity, + }) + const unregister = registerDisposer((directory) => Effect.runPromise(layerMap.invalidate(directory))) + yield* Effect.addFinalizer(() => Effect.sync(unregister)) + return Instances.of(layerMap) + }), + ) - static get( - directory: string, - ): Layer.Layer { - return Layer.unwrap( - Instances.use((map) => Effect.succeed(map.get(directory))), - ); - } - - static invalidate(directory: string): Effect.Effect { - return Instances.use((map) => map.invalidate(directory)); - } + static get(directory: string): Layer.Layer { + return Layer.unwrap(Instances.use((map) => Effect.succeed(map.get(directory)))) + } }