fix(core): add historical sync on workspace connect (#23121)

This commit is contained in:
James Long
2026-04-17 13:30:09 -04:00
committed by GitHub
parent fcb473ff64
commit a8c78fc005
8 changed files with 234 additions and 24 deletions

View File

@@ -130,13 +130,6 @@ export async function http(url: string | URL, extra: HeadersInit | undefined, re
const done = sync ? Fence.wait(workspaceID, sync, req.signal) : Promise.resolve()
return done.then(async () => {
console.log("proxy http response", {
method: req.method,
request: req.url,
url: String(url),
status: res.status,
statusText: res.statusText,
})
return new Response(res.body, {
status: res.status,
statusText: res.statusText,

View File

@@ -6,6 +6,8 @@ import { Database, asc, and, not, or, lte, eq } from "@/storage"
import { EventTable } from "@/sync/event.sql"
import { lazy } from "@/util/lazy"
import { Log } from "@/util"
import { startWorkspaceSyncing } from "@/control-plane/workspace"
import { Instance } from "@/project/instance"
import { errors } from "../../error"
const ReplayEvent = z.object({
@@ -20,6 +22,28 @@ const log = Log.create({ service: "server.sync" })
export const SyncRoutes = lazy(() =>
new Hono()
.post(
"/start",
describeRoute({
summary: "Start workspace sync",
description: "Start sync loops for workspaces in the current project that have active sessions.",
operationId: "sync.start",
responses: {
200: {
description: "Workspace sync started",
content: {
"application/json": {
schema: resolver(z.boolean()),
},
},
},
},
}),
async (c) => {
startWorkspaceSyncing(Instance.project.id)
return c.json(true)
},
)
.post(
"/replay",
describeRoute({
@@ -75,7 +99,7 @@ export const SyncRoutes = lazy(() =>
})
},
)
.get(
.post(
"/history",
describeRoute({
summary: "List sync events",