Create file-backed attachment on QA finalize + video /content streaming#6943
Conversation
… support Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 20f3e13393
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| sizeBytes: msg.recording.sizeBytes, | ||
| filePath: msg.recording.localPath, | ||
| sha256: undefined, | ||
| expiresAt: msg.recording.expiresAt, |
There was a problem hiding this comment.
Normalize recording expiry to milliseconds before persisting
handleCuSessionFinalized persists msg.recording.expiresAt directly, but the macOS sender sets this as Unix seconds (Int(Date().timeIntervalSince1970) in Session.swift) while expiration checks use epoch milliseconds (Date.now() in getExpiredFileAttachments). This makes every new QA recording look already expired and causes it to be deleted on the next cleanup pass (hours) instead of the intended 7-day retention window.
Useful? React with 👍 / 👎.
… support (#6943) Co-authored-by: Vellum Assistant <assistant@vellum.ai> Co-authored-by: Claude <noreply@anthropic.com>
… support (#6943) Co-authored-by: Vellum Assistant <assistant@vellum.ai> Co-authored-by: Claude <noreply@anthropic.com>
… support (#6943) Co-authored-by: Vellum Assistant <assistant@vellum.ai> Co-authored-by: Claude <noreply@anthropic.com>
… support (#6943) Co-authored-by: Vellum Assistant <assistant@vellum.ai> Co-authored-by: Claude <noreply@anthropic.com>
… support (#6943) Co-authored-by: Vellum Assistant <assistant@vellum.ai> Co-authored-by: Claude <noreply@anthropic.com>
… support (#6943) Co-authored-by: Vellum Assistant <assistant@vellum.ai> Co-authored-by: Claude <noreply@anthropic.com>
P0: handleCuSessionFinalized now creates a file-backed attachment from recording metadata and links it to the injected message. Removes 'for future M3' placeholder. P1: InlineVideoAttachmentView fetches binary from /v1/attachments/:id/content for file-backed attachments instead of trying to decode empty base64. Updates sessions.ts lazy detection to handle file-backed storage kind.