diff --git a/packages/opencode/src/provider/models.ts b/packages/opencode/src/provider/models.ts index 3654f66c79..d3f9fa9eaf 100644 --- a/packages/opencode/src/provider/models.ts +++ b/packages/opencode/src/provider/models.ts @@ -127,12 +127,10 @@ export const layer: Layer.Layer Effect.succeed(undefined)), - Effect.map((v) => v as Record | undefined), - ) + const loadFromDisk = fs.readJson(Flag.OPENCODE_MODELS_PATH ?? filepath).pipe( + Effect.catch(() => Effect.succeed(undefined)), + Effect.map((v) => v as Record | undefined), + ) // Bundled at build time; absent in dev — `tryPromise` covers both. const loadSnapshot = Effect.tryPromise({ diff --git a/packages/opencode/test/provider/models.test.ts b/packages/opencode/test/provider/models.test.ts index feb5bb5893..7ccf126a9c 100644 --- a/packages/opencode/test/provider/models.test.ts +++ b/packages/opencode/test/provider/models.test.ts @@ -154,10 +154,9 @@ describe("ModelsDev Service", () => { state, Effect.gen(function* () { const svc = yield* ModelsDev.Service - return yield* Effect.all( - [svc.get(), svc.get(), svc.get(), svc.get(), svc.get()], - { concurrency: "unbounded" }, - ) + return yield* Effect.all([svc.get(), svc.get(), svc.get(), svc.get(), svc.get()], { + concurrency: "unbounded", + }) }), ) for (const result of results) expect(result).toEqual(fixture)