fix(server): emit fixed workspace fence headers (#26443)

This commit is contained in:
Kit Langton
2026-05-08 22:45:54 -04:00
committed by GitHub
parent 9b7b6cb30f
commit 8e9550d90d
3 changed files with 47 additions and 0 deletions

View File

@@ -4,8 +4,11 @@ import { describe, expect } from "bun:test"
import { Config, Effect, FileSystem, Layer, Path } from "effect"
import { HttpClient, HttpClientRequest, HttpRouter, HttpServer } from "effect/unstable/http"
import * as Socket from "effect/unstable/socket/Socket"
import { WorkspaceID } from "../../src/control-plane/schema"
import { InstancePaths } from "../../src/server/routes/instance/httpapi/groups/instance"
import { SessionPaths } from "../../src/server/routes/instance/httpapi/groups/session"
import { ExperimentalHttpApiServer } from "../../src/server/routes/instance/httpapi/server"
import { HEADER as FenceHeader } from "../../src/server/shared/fence"
import { resetDatabase } from "../fixture/db"
import { disposeAllInstances, tmpdirScoped } from "../fixture/fixture"
import { testEffect } from "../lib/effect"
@@ -65,6 +68,28 @@ describe("instance HttpApi", () => {
}),
)
it.live("emits a sync fence header for fixed-workspace mutations", () =>
Effect.gen(function* () {
const originalWorkspaceID = Flag.OPENCODE_WORKSPACE_ID
Flag.OPENCODE_WORKSPACE_ID = WorkspaceID.ascending()
yield* Effect.addFinalizer(() =>
Effect.sync(() => {
Flag.OPENCODE_WORKSPACE_ID = originalWorkspaceID
}),
)
const dir = yield* tmpdirScoped({ git: true })
const response = yield* HttpClientRequest.post(SessionPaths.create).pipe(
directoryHeader(dir),
HttpClientRequest.bodyJson({ title: "fenced" }),
Effect.flatMap(HttpClient.execute),
)
expect(response.status).toBe(200)
expect(JSON.parse(response.headers[FenceHeader] ?? "{}")).not.toEqual({})
}),
)
it.live("serves path and VCS read endpoints", () =>
Effect.gen(function* () {
const dir = yield* tmpdirScoped({ git: true })