Surface attachment-backed artifact work products as a first-class
Output section on the issue detail page so cloud users can watch and
download agent-generated videos without host filesystem access.
- ui/src/lib/issue-output.ts: formatBytes/formatDuration/getOutputFileGlyph
helpers + getIssueOutputs selector that validates the Phase-2 attachment
artifact metadata contract and tolerates malformed metadata (degraded).
- issue-output components: IssueOutputSection, OutputPrimaryCard (native
<video>/image/generic), OutputRow, OutputVideoPlayer, OutputFileTile.
- IssueDetail: fetch work products and render the Output section between
Documents and Attachments; reuse formatBytes in the attachments list.
- DesignGuide: showcase multiple-output, degraded, and empty states.
- Focused tests for video output, empty state, multiple outputs, and
failed attachment metadata (15 tests).
Co-Authored-By: Paperclip <noreply@paperclip.ing>