feat: show build logs in chat for start_workspace and create_workspace tools (#24194)

This commit is contained in:
Danielle Maywood
2026-04-12 15:04:10 +01:00
committed by GitHub
parent 982739f3bf
commit cb0b84a2d3
17 changed files with 1941 additions and 339 deletions
+25 -1
View File
@@ -1,6 +1,11 @@
import type { QueryOptions, UseInfiniteQueryOptions } from "react-query";
import type {
QueryOptions,
UseInfiniteQueryOptions,
UseQueryOptions,
} from "react-query";
import { API } from "#/api/api";
import type {
ProvisionerJobLog,
WorkspaceBuild,
WorkspaceBuildParameter,
WorkspaceBuildsRequest,
@@ -61,6 +66,25 @@ export const infiniteWorkspaceBuilds = (
} satisfies UseInfiniteQueryOptions<WorkspaceBuild[]>;
};
function workspaceBuildLogsKey(workspaceBuildId: string) {
return ["workspaceBuilds", workspaceBuildId, "logs"] as const;
}
// Fetches build logs via REST. Completed build logs are immutable,
// so the query uses infinite staleTime to cache across re-mounts
// (e.g. collapsible expand/collapse cycles).
export function workspaceBuildLogs(workspaceBuildId: string) {
return {
queryKey: workspaceBuildLogsKey(workspaceBuildId),
queryFn: () => API.getWorkspaceBuildLogs(workspaceBuildId),
staleTime: Number.POSITIVE_INFINITY,
gcTime: 10 * 60 * 1000, // 10 minutes. Avoids holding logs in cache forever.
refetchOnMount: false,
refetchOnReconnect: false,
refetchOnWindowFocus: false,
} as const satisfies UseQueryOptions<ProvisionerJobLog[]>;
}
// We use readyAgentsCount to invalidate the query when an agent connects
export const workspaceBuildTimings = (workspaceBuildId: string) => {
return {