Document display route proxies bytes instead of redirecting to Case Vault
kveton fixed a production "Failed to load document" error by replacing a 302 redirect to a Case Vault presigned URL with a backend byte proxy. The single-document display endpoint now downloads the file server-side and streams it to the browser with the correct content-type and `private, no-store` cache headers.
The broken state: GET /single-documents/:id/display called getSignedUrl() and redirected the browser to a Case Vault presigned URL. The cross-origin request was failing in production, producing a "Failed to load document" error in the viewer.
The fix calls downloadFile() instead, buffers the result, and responds directly. Content-type resolution picks between application/pdf, application/msword, and the DOCX content-type based on the file type and whether a PDF rendition is available. Content-Disposition: inline and Cache-Control: private, no-store are set explicitly.
Alongside this, the Account > Models page got a small loading-state fix. The profile fetch was running five async calls sequentially; during the gap before completion, the UI would briefly show a "missing key" warning. That fix had missed the prior PR's merge window and was bundled here.
Spotted something wrong? Or know the PR text has fresher detail than the writeup above?