refactor(v2): inline memory storage state

This commit is contained in:
Kit Langton 2026-05-20 17:06:06 -04:00
commit 8b38c9b999
2 changed files with 7 additions and 12 deletions

View file

@ -2,17 +2,10 @@ import { DateTime, Effect, Layer } from "effect"
import { SessionMessage } from "@opencode-ai/core/session-message" import { SessionMessage } from "@opencode-ai/core/session-message"
import { SessionStorage } from "./storage" import { SessionStorage } from "./storage"
export interface State { export const make = (state: {
readonly sessions: Map<string, SessionStorage.SessionRow> readonly sessions: Map<string, SessionStorage.SessionRow>
readonly messages: Map<string, SessionMessage.Message[]> readonly messages: Map<string, SessionMessage.Message[]>
} }) =>
const makeState = (): State => ({
sessions: new Map(),
messages: new Map(),
})
export const make = (state = makeState()) =>
SessionStorage.Service.of({ SessionStorage.Service.of({
get: (sessionID) => Effect.sync(() => state.sessions.get(sessionID)), get: (sessionID) => Effect.sync(() => state.sessions.get(sessionID)),
list: (input) => list: (input) =>
@ -80,8 +73,10 @@ export const make = (state = makeState()) =>
}) })
const storageLayer = Layer.sync(SessionStorage.Service, () => { const storageLayer = Layer.sync(SessionStorage.Service, () => {
const state = makeState() return make({
return make(state) sessions: new Map(),
messages: new Map(),
})
}) })
export const layer = storageLayer export const layer = storageLayer

View file

@ -19,7 +19,7 @@ const sessionB = SessionID.make("ses_storage_b")
const sessionC = SessionID.make("ses_storage_c") const sessionC = SessionID.make("ses_storage_c")
const sessionD = SessionID.make("ses_storage_d") const sessionD = SessionID.make("ses_storage_d")
const encodeMessage = Schema.encodeSync(SessionMessage.Message) const encodeMessage = Schema.encodeSync(SessionMessage.Message)
const memoryState: SessionStorageMemory.State = { const memoryState = {
sessions: new Map(), sessions: new Map(),
messages: new Map(), messages: new Map(),
} }