From ad265797ab24d4d445fa71e54aeb069fd11cabb0 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Tue, 14 Apr 2026 12:38:11 -0400 Subject: [PATCH] refactor(share): remove session share async facade exports (#22386) --- packages/opencode/src/cli/cmd/github.ts | 2 +- .../opencode/src/server/instance/session.ts | 22 ++++++++++++++----- packages/opencode/src/share/session.ts | 8 ------- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/packages/opencode/src/cli/cmd/github.ts b/packages/opencode/src/cli/cmd/github.ts index 28a05512de..9481bec5e5 100644 --- a/packages/opencode/src/cli/cmd/github.ts +++ b/packages/opencode/src/cli/cmd/github.ts @@ -564,7 +564,7 @@ export const GithubRunCommand = cmd({ shareId = await (async () => { if (share === false) return if (!share && repoData.data.private) return - await SessionShare.share(session.id) + await AppRuntime.runPromise(SessionShare.Service.use((svc) => svc.share(session.id))) return session.id.slice(-8) })() console.log("opencode session", session.id) diff --git a/packages/opencode/src/server/instance/session.ts b/packages/opencode/src/server/instance/session.ts index 86d6a8ef42..145b2ccd39 100644 --- a/packages/opencode/src/server/instance/session.ts +++ b/packages/opencode/src/server/instance/session.ts @@ -212,7 +212,7 @@ export const SessionRoutes = lazy(() => validator("json", Session.create.schema), async (c) => { const body = c.req.valid("json") ?? {} - const session = await SessionShare.create(body) + const session = await AppRuntime.runPromise(SessionShare.Service.use((svc) => svc.create(body))) return c.json(session) }, ) @@ -437,8 +437,14 @@ export const SessionRoutes = lazy(() => ), async (c) => { const sessionID = c.req.valid("param").sessionID - await SessionShare.share(sessionID) - const session = await Session.get(sessionID) + const session = await AppRuntime.runPromise( + Effect.gen(function* () { + const share = yield* SessionShare.Service + const session = yield* Session.Service + yield* share.share(sessionID) + return yield* session.get(sessionID) + }), + ) return c.json(session) }, ) @@ -511,8 +517,14 @@ export const SessionRoutes = lazy(() => ), async (c) => { const sessionID = c.req.valid("param").sessionID - await SessionShare.unshare(sessionID) - const session = await Session.get(sessionID) + const session = await AppRuntime.runPromise( + Effect.gen(function* () { + const share = yield* SessionShare.Service + const session = yield* Session.Service + yield* share.unshare(sessionID) + return yield* session.get(sessionID) + }), + ) return c.json(session) }, ) diff --git a/packages/opencode/src/share/session.ts b/packages/opencode/src/share/session.ts index f98bf14cb4..0030e3c840 100644 --- a/packages/opencode/src/share/session.ts +++ b/packages/opencode/src/share/session.ts @@ -1,8 +1,6 @@ -import { makeRuntime } from "@/effect/run-service" import { Session } from "@/session" import { SessionID } from "@/session/schema" import { SyncEvent } from "@/sync" -import { fn } from "@/util/fn" import { Effect, Layer, Scope, Context } from "effect" import { Config } from "../config/config" import { Flag } from "../flag/flag" @@ -58,10 +56,4 @@ export namespace SessionShare { Layer.provide(Session.defaultLayer), Layer.provide(Config.defaultLayer), ) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export const create = fn(Session.create.schema, (input) => runPromise((svc) => svc.create(input))) - export const share = fn(SessionID.zod, (sessionID) => runPromise((svc) => svc.share(sessionID))) - export const unshare = fn(SessionID.zod, (sessionID) => runPromise((svc) => svc.unshare(sessionID))) }