refactor(v2): move session storage under storage

This commit is contained in:
Kit Langton 2026-05-20 17:07:34 -04:00
commit dc55ece384
7 changed files with 12 additions and 12 deletions

View file

@ -10,8 +10,8 @@ import { optionalOmitUndefined } from "@opencode-ai/core/schema"
import { EventV2 } from "@opencode-ai/core/event"
import { EventV2Bridge } from "@/event-v2-bridge"
import { ModelV2 } from "@opencode-ai/core/model"
import { SessionStorage } from "./session/storage"
import { SessionStorageSql } from "./session/storage-sql"
import { SessionStorage } from "./storage/session"
import { SessionStorageSql } from "./storage/session-sql"
export const Delivery = Schema.Literals(["immediate", "deferred"]).annotate({
identifier: "Session.Delivery",

View file

@ -1,6 +1,6 @@
import { DateTime, Effect, Layer } from "effect"
import { SessionMessage } from "@opencode-ai/core/session-message"
import { SessionStorage } from "./storage"
import { SessionStorage } from "./session"
export const make = (state: {
readonly sessions: Map<string, SessionStorage.SessionRow>
@ -98,4 +98,4 @@ function compareRows(aID: string, aTime: number, bID: string, bTime: number, ord
return order === "asc" ? result : -result
}
export * as SessionStorageMemory from "./storage-memory"
export * as SessionStorageMemory from "./session-memory"

View file

@ -2,7 +2,7 @@ import { SessionMessageTable, SessionTable } from "@/session/session.sql"
import { and, asc, Database, desc, eq, gt, gte, isNull, like, lt, or, type SQL } from "@/storage/db"
import { SessionMessage } from "@opencode-ai/core/session-message"
import { Effect, Layer, Schema } from "effect"
import { SessionStorage } from "./storage"
import { SessionStorage } from "./session"
const decodeMessage = Schema.decodeUnknownSync(SessionMessage.Message)
const decodeSessionRow = Schema.decodeUnknownSync(SessionStorage.SessionRow)
@ -170,4 +170,4 @@ function fromSessionRow(row: typeof SessionTable.$inferSelect) {
})
}
export * as SessionStorageSql from "./storage-sql"
export * as SessionStorageSql from "./session-sql"

View file

@ -97,4 +97,4 @@ export function pageOrder(order: SortOrder, direction: PageDirection) {
export class Service extends Context.Service<Service, Interface>()("@opencode/v2/session/Storage") {}
export * as SessionStorage from "./storage"
export * as SessionStorage from "./session"

View file

@ -36,7 +36,7 @@ import { SessionRunState } from "../../src/session/run-state"
import { MessageID, PartID, SessionID } from "../../src/session/schema"
import { SessionStatus } from "../../src/session/status"
import { SessionV2 } from "../../src/v2/session"
import { SessionStorageSql } from "../../src/v2/session/storage-sql"
import { SessionStorageSql } from "../../src/v2/storage/session-sql"
import { Skill } from "../../src/skill"
import { SystemPrompt } from "../../src/session/system"
import { Shell } from "../../src/shell/shell"

View file

@ -4,9 +4,9 @@ import { ProjectTable } from "@/project/project.sql"
import { SessionID } from "@/session/schema"
import { SessionMessageTable, SessionTable } from "@/session/session.sql"
import { Database } from "@/storage/db"
import { SessionStorage } from "@/v2/session/storage"
import { SessionStorageMemory } from "@/v2/session/storage-memory"
import { SessionStorageSql } from "@/v2/session/storage-sql"
import { SessionStorage } from "@/v2/storage/session"
import { SessionStorageMemory } from "@/v2/storage/session-memory"
import { SessionStorageSql } from "@/v2/storage/session-sql"
import { EventV2 } from "@opencode-ai/core/event"
import { SessionMessage } from "@opencode-ai/core/session-message"
import { eq, or } from "@/storage/db"

View file

@ -465,7 +465,7 @@ Avoid leaking Drizzle or SQLite error codes above the storage implementation. Fo
The first implementation PR should be small and reversible:
- Add `packages/opencode/src/v2/session/storage.ts` with the `SessionStorage` service shape.
- Add `packages/opencode/src/v2/storage/session.ts` with the `SessionStorage` service shape.
- Implement SQL and in-memory read backends for `get`, `list`, `messages`, and `context`.
- Refactor `v2/session.ts` to consume `SessionStorage.Service` instead of raw Drizzle calls.
- Keep table schemas and existing migrations unchanged.