fix: type errors in console-core and session

- Fix ExtractTablesWithRelations type compatibility with drizzle-orm beta
- Migrate Session.list() and Session.children() from Storage to SQLite
This commit is contained in:
Dax Raad 2026-02-01 20:31:02 -05:00
commit 4ec6293054
2 changed files with 15 additions and 15 deletions

View file

@ -4,7 +4,6 @@ export * from "drizzle-orm"
import { Client } from "@planetscale/database" import { Client } from "@planetscale/database"
import { MySqlTransaction, type MySqlTransactionConfig } from "drizzle-orm/mysql-core" import { MySqlTransaction, type MySqlTransactionConfig } from "drizzle-orm/mysql-core"
import type { ExtractTablesWithRelations } from "drizzle-orm"
import type { PlanetScalePreparedQueryHKT, PlanetscaleQueryResultHKT } from "drizzle-orm/planetscale-serverless" import type { PlanetScalePreparedQueryHKT, PlanetscaleQueryResultHKT } from "drizzle-orm/planetscale-serverless"
import { Context } from "../context" import { Context } from "../context"
import { memo } from "../util/memo" import { memo } from "../util/memo"
@ -14,7 +13,7 @@ export namespace Database {
PlanetscaleQueryResultHKT, PlanetscaleQueryResultHKT,
PlanetScalePreparedQueryHKT, PlanetScalePreparedQueryHKT,
Record<string, never>, Record<string, never>,
ExtractTablesWithRelations<Record<string, never>> any
> >
const client = memo(() => { const client = memo(() => {

View file

@ -10,7 +10,7 @@ import { Flag } from "../flag/flag"
import { Identifier } from "../id/id" import { Identifier } from "../id/id"
import { Installation } from "../installation" import { Installation } from "../installation"
import { Database, NotFoundError, eq } from "../storage/db" import { Database, NotFoundError, eq, and } from "../storage/db"
import { SessionTable, MessageTable, PartTable } from "./session.sql" import { SessionTable, MessageTable, PartTable } from "./session.sql"
import { Storage } from "@/storage/storage" import { Storage } from "@/storage/storage"
import { Log } from "../util/log" import { Log } from "../util/log"
@ -505,23 +505,24 @@ export namespace Session {
export function* list() { export function* list() {
const project = Instance.project const project = Instance.project
for (const item of await Storage.list(["session", project.id])) { const rows = Database.use((db) =>
const session = await Storage.read<Info>(item).catch(() => undefined) db.select().from(SessionTable).where(eq(SessionTable.project_id, project.id)).all(),
if (!session) continue )
yield session for (const row of rows) {
yield fromRow(row)
} }
} }
export const children = fn(Identifier.schema("session"), async (parentID) => { export const children = fn(Identifier.schema("session"), async (parentID) => {
const project = Instance.project const project = Instance.project
const result = [] as Session.Info[] const rows = Database.use((db) =>
for (const item of await Storage.list(["session", project.id])) { db
const session = await Storage.read<Info>(item).catch(() => undefined) .select()
if (!session) continue .from(SessionTable)
if (session.parentID !== parentID) continue .where(and(eq(SessionTable.project_id, project.id), eq(SessionTable.parent_id, parentID)))
result.push(session) .all(),
} )
return result return rows.map(fromRow)
}) })
export const remove = fn(Identifier.schema("session"), async (sessionID) => { export const remove = fn(Identifier.schema("session"), async (sessionID) => {