fix(opencode): filter session list by resolved instance directory (#34842)

This commit is contained in:
Luke Parker
2026-07-02 14:39:49 +10:00
committed by GitHub
parent d6b897188a
commit a0d64b12c9
3 changed files with 30 additions and 2 deletions
@@ -137,8 +137,9 @@ export const experimentalHandlers = HttpApiBuilder.group(InstanceHttpApi, "exper
const session = Effect.fn("ExperimentalHttpApi.session")(function* (ctx: { query: typeof SessionListQuery.Type }) {
const limit = ctx.query.limit ?? 100
const directory = ctx.query.directory ? yield* InstanceState.directory : undefined
const all = yield* sessions.listGlobal({
directory: ctx.query.directory,
directory,
roots: ctx.query.roots,
start: ctx.query.start,
cursor: ctx.query.cursor,
@@ -18,6 +18,7 @@ import { MessageID, PartID, SessionID } from "@/session/schema"
import { NamedError } from "@opencode-ai/core/util/error"
import { Cause, Effect, Option, Schema, Scope } from "effect"
import * as Stream from "effect/Stream"
import { InstanceState } from "@/effect/instance-state"
import { HttpServerRequest, HttpServerResponse } from "effect/unstable/http"
import { HttpApiBuilder, HttpApiError, HttpApiSchema } from "effect/unstable/httpapi"
import { InstanceHttpApi } from "../api"
@@ -61,8 +62,9 @@ export const sessionHandlers = HttpApiBuilder.group(InstanceHttpApi, "session",
const scope = yield* Scope.Scope
const list = Effect.fn("SessionHttpApi.list")(function* (ctx: { query: typeof ListQuery.Type }) {
const directory = ctx.query.directory ? yield* InstanceState.directory : undefined
return yield* session.list({
directory: ctx.query.scope === "project" ? undefined : ctx.query.directory,
directory: ctx.query.scope === "project" ? undefined : directory,
scope: ctx.query.scope,
path: ctx.query.path,
roots: ctx.query.roots,