feat(core): add fence to make all methods strongly consistent when syncing (#22679)

This commit is contained in:
James Long
2026-04-15 21:04:37 -04:00
committed by GitHub
parent 4ca809ef4e
commit 074ef032ee
9 changed files with 289 additions and 39 deletions

View File

@@ -7,10 +7,16 @@ import { tmpdir } from "../fixture/fixture"
const disableDefault = process.env.OPENCODE_DISABLE_DEFAULT_PLUGINS
process.env.OPENCODE_DISABLE_DEFAULT_PLUGINS = "1"
const { Flag } = await import("../../src/flag/flag")
const { Plugin } = await import("../../src/plugin/index")
const { Workspace } = await import("../../src/control-plane/workspace")
const { Instance } = await import("../../src/project/instance")
const experimental = Flag.OPENCODE_EXPERIMENTAL_WORKSPACES
// @ts-expect-error tests override the flag directly
Flag.OPENCODE_EXPERIMENTAL_WORKSPACES = true
afterEach(async () => {
await Instance.disposeAll()
})
@@ -18,9 +24,12 @@ afterEach(async () => {
afterAll(() => {
if (disableDefault === undefined) {
delete process.env.OPENCODE_DISABLE_DEFAULT_PLUGINS
return
} else {
process.env.OPENCODE_DISABLE_DEFAULT_PLUGINS = disableDefault
}
process.env.OPENCODE_DISABLE_DEFAULT_PLUGINS = disableDefault
// @ts-expect-error restore original test flag value
Flag.OPENCODE_EXPERIMENTAL_WORKSPACES = experimental
})
describe("plugin.workspace", () => {