modern-fireman-99755
05/19/2026, 2:21 PMwooden-umbrella-84098
05/19/2026, 2:48 PMwooden-umbrella-84098
05/19/2026, 2:49 PMwooden-umbrella-84098
05/19/2026, 2:52 PMwooden-umbrella-84098
05/19/2026, 2:53 PMwooden-umbrella-84098
05/19/2026, 2:57 PMwooden-umbrella-84098
05/19/2026, 2:59 PMwooden-umbrella-84098
05/19/2026, 2:59 PMstaticUrl was a real URL on the agent server:
https://<agent-server>/api/conversations/{id}/workspace/<path>
authenticated via the oh_workspace_session_key cookie minted by startWorkspaceSession. The iframe / <img> loaded it directly.
After PR #278 ("Route agent-server calls through TypeScript client", a0832610, May 2026), the workspace static fileserver and cookie session were dropped. useWorkspaceFileContent now downloads the bytes via FileClient.downloadFile and constructs a local Blob URL:
function makePreviewUrl(buffer: ArrayBuffer, mimeType: string): string {
return URL.createObjectURL(new Blob([buffer], { type: mimeType }));
}
…
staticUrl: makePreviewUrl(buffer, mimeType),
FileContentViewer still hands that to <iframe src={staticUrl} sandbox="allow-same-origin"> for HTML / SVG and to <img src={staticUrl}> for images.modern-fireman-99755
05/19/2026, 2:59 PMhmm how are you running canvas here?
npm run dev:dockermodern-fireman-99755
05/19/2026, 3:00 PMwooden-umbrella-84098
05/19/2026, 3:01 PMmodern-fireman-99755
05/19/2026, 3:01 PMwooden-umbrella-84098
05/19/2026, 3:01 PMwooden-umbrella-84098
05/19/2026, 3:35 PM