fix(instance): run bootstrap from instance store (#25475)

This commit is contained in:
Kit Langton
2026-05-02 19:33:38 -04:00
committed by GitHub
parent 36007aecf4
commit f98053c34e
42 changed files with 540 additions and 249 deletions

View File

@@ -6,8 +6,14 @@ import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner"
import { Permission } from "../../src/permission"
import { PermissionID } from "../../src/permission/schema"
import { Instance } from "../../src/project/instance"
import { InstanceStore } from "../../src/project/instance-store"
import { disposeAllInstances, provideInstance, provideTmpdirInstance, tmpdirScoped } from "../fixture/fixture"
import { InstanceRuntime } from "../../src/project/instance-runtime"
import {
disposeAllInstances,
provideInstance,
provideTmpdirInstance,
reloadTestInstance,
tmpdirScoped,
} from "../fixture/fixture"
import { testEffect } from "../lib/effect"
import { MessageID, SessionID } from "../../src/session/schema"
@@ -1000,7 +1006,7 @@ it.live("pending permission rejects on instance dispose", () =>
expect(yield* waitForPending(1).pipe(run)).toHaveLength(1)
yield* Effect.promise(() =>
Instance.provide({ directory: dir, fn: () => void InstanceStore.disposeInstance(Instance.current) }),
Instance.provide({ directory: dir, fn: () => void InstanceRuntime.disposeInstance(Instance.current) }),
)
const exit = yield* Fiber.await(fiber)
@@ -1024,7 +1030,7 @@ it.live("pending permission rejects on instance reload", () =>
}).pipe(run, Effect.forkScoped)
expect(yield* waitForPending(1).pipe(run)).toHaveLength(1)
yield* Effect.promise(() => InstanceStore.reloadInstance({ directory: dir }))
yield* Effect.promise(() => reloadTestInstance({ directory: dir }))
const exit = yield* Fiber.await(fiber)
expect(Exit.isFailure(exit)).toBe(true)
@@ -1118,7 +1124,7 @@ it.live("ask - abort should clear pending request", () =>
const pending = yield* waitForPending(1).pipe(run)
expect(pending).toHaveLength(1)
yield* Effect.promise(() => InstanceStore.reloadInstance({ directory: dir }))
yield* Effect.promise(() => reloadTestInstance({ directory: dir }))
const exit = yield* Fiber.await(fiber)
expect(Exit.isFailure(exit)).toBe(true)