diff --git a/backend/README.md b/backend/README.md index f8af4cef..870f855c 100644 --- a/backend/README.md +++ b/backend/README.md @@ -451,3 +451,12 @@ Custom compute is available to admins and users supplying their own provider key The worker image must include the pinned EigenBench revision for multi-GPU execution; `EIGENBENCH_TENSOR_PARALLEL_SIZE` is set by the scheduler. + +### Private experiment viewer + +The private results bucket must allow `application/gzip`, `application/json`, +`application/jsonl`, `application/x-ndjson`, `text/csv`, `image/png`, and +`application/octet-stream`. Keep the bucket private. Successful runs are +converted lazily to the same whitelisted file format used by public experiments; +owner-authorized requests receive five-minute signed links. Preparing viewer +files does not publish the run or execute another evaluation. diff --git a/next-src/src/app/(record)/transcript/page.tsx b/next-src/src/app/(record)/transcript/page.tsx index 3bdd3c52..3c1c2e03 100644 --- a/next-src/src/app/(record)/transcript/page.tsx +++ b/next-src/src/app/(record)/transcript/page.tsx @@ -124,10 +124,15 @@ export default function TranscriptPage() { // meta gives the criteria count and rating scale up front; the records // can stand in for it if the fetch fails, so this never blocks. + let accessFailed = false; const loaded = await fetchMeta(runId).catch(error => { - if (runId.startsWith('account/')) throw error; + if (runId.startsWith('account/')) { + accessFailed = true; + if (!cancelled) setError(error instanceof Error ? error.message : String(error)); + } return null; }); + if (accessFailed) return; if (cancelled) return; if (loaded) { setMeta(loaded);