diff --git a/src/workspaces/officerdev/src/apps/FileViewer/FileViewerHeader.tsx b/src/workspaces/officerdev/src/apps/FileViewer/FileViewerHeader.tsx
index bc1e28f3..2de7c55d 100644
--- a/src/workspaces/officerdev/src/apps/FileViewer/FileViewerHeader.tsx
+++ b/src/workspaces/officerdev/src/apps/FileViewer/FileViewerHeader.tsx
@@ -98,7 +98,22 @@ export const FileViewerHeader = () => {
{ocrLoading ? : }
)}
- {fileType === 'audio' && (
+ {/*
+ TRANSCRIBE — hidden, not deleted, and the distinction is deliberate.
+
+ Speech-to-text is leaving the platform for a plugin of its own. Until that lands this button calls
+ `POST /file-browser/transcribe`, which refuses on every server here because no STT endpoint is
+ configured anywhere — so it is a control that can only fail, and one of those teaches people to
+ distrust the controls beside it.
+
+ Kept because the wiring is the useful part. When the plugin exists this becomes a call to it, and
+ the handler, the loading state and the sibling-markdown behaviour in FileViewerProvider are all
+ still correct; deleting would mean rediscovering them.
+
+ It may not come back here at all. The other route to the same job is the file browser's context
+ menu, which a plugin reaches with a task — and that path needs no button in this header.
+ */}
+ {false && fileType === 'audio' && (