From 8b38c9b9998dfd0f76d230739b818fcb3fdb4351 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Wed, 20 May 2026 17:06:06 -0400 Subject: [PATCH] refactor(v2): inline memory storage state --- .../opencode/src/v2/session/storage-memory.ts | 17 ++++++----------- .../opencode/test/v2/session-storage.test.ts | 2 +- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/packages/opencode/src/v2/session/storage-memory.ts b/packages/opencode/src/v2/session/storage-memory.ts index 42f4d9b72d1..13f2b147a9f 100644 --- a/packages/opencode/src/v2/session/storage-memory.ts +++ b/packages/opencode/src/v2/session/storage-memory.ts @@ -2,17 +2,10 @@ import { DateTime, Effect, Layer } from "effect" import { SessionMessage } from "@opencode-ai/core/session-message" import { SessionStorage } from "./storage" -export interface State { +export const make = (state: { readonly sessions: Map readonly messages: Map -} - -const makeState = (): State => ({ - sessions: new Map(), - messages: new Map(), -}) - -export const make = (state = makeState()) => +}) => SessionStorage.Service.of({ get: (sessionID) => Effect.sync(() => state.sessions.get(sessionID)), list: (input) => @@ -80,8 +73,10 @@ export const make = (state = makeState()) => }) const storageLayer = Layer.sync(SessionStorage.Service, () => { - const state = makeState() - return make(state) + return make({ + sessions: new Map(), + messages: new Map(), + }) }) export const layer = storageLayer diff --git a/packages/opencode/test/v2/session-storage.test.ts b/packages/opencode/test/v2/session-storage.test.ts index 002b926b8b5..e68730a86c6 100644 --- a/packages/opencode/test/v2/session-storage.test.ts +++ b/packages/opencode/test/v2/session-storage.test.ts @@ -19,7 +19,7 @@ const sessionB = SessionID.make("ses_storage_b") const sessionC = SessionID.make("ses_storage_c") const sessionD = SessionID.make("ses_storage_d") const encodeMessage = Schema.encodeSync(SessionMessage.Message) -const memoryState: SessionStorageMemory.State = { +const memoryState = { sessions: new Map(), messages: new Map(), }