Skip to content

feat: upload video and screenshot attachments without a trace - #34

Merged
joris-gallot merged 1 commit into
mainfrom
feat/upload-media-attachments
Aug 14, 2026
Merged

feat: upload video and screenshot attachments without a trace#34
joris-gallot merged 1 commit into
mainfrom
feat/upload-media-attachments

Conversation

@joris-gallot

@joris-gallot joris-gallot commented Aug 14, 2026

Copy link
Copy Markdown
Collaborator

Seeing a video or screenshot in kinora required trace: 'on': isTraceAttachment gated uploads to zips, so with tracing off they stayed metadata pointing at a dead CI-runner path. Playwright doesn't couple them, our upload filter did.

Both ingest paths now filter by attachment kind, opt-in, ['trace'] by default:

reporter: [['@kinora/reporter', { project: { slug: 'web-app' }, uploadAttachments: ['trace', 'video', 'screenshot'] }]]
npx @kinora/cli upload results.json --project web-app --upload-attachments trace,video,screenshot

No on-failure filtering: screenshot: 'only-on-failure' and video: 'retain-on-failure' already decide what exists.

Two server bugs this uncovered, harmless while only zips were uploaded:

  • The storage key hardcoded .zip, and /artifacts/* types responses from it, so a webm would have been served as application/zip. Extension now derives from the content type; trace keys keep their previous shape.
  • Run-report urls were keyed by attachment name alone, so two toHaveScreenshot assertions (both attach actual) shared one url. Urls are now queued per name, in upload order.

Dashboard badges link to a.url when hosted, else fall back to the viewer's Attachments tab.

Refs #18.

@joris-gallot
joris-gallot merged commit 8142380 into main Aug 14, 2026
8 checks passed
@joris-gallot
joris-gallot deleted the feat/upload-media-attachments branch August 14, 2026 16:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant