Skip to content

M4: macOS Recording Lifecycle + Chat Video UX#6916

Merged
Jasonnnz merged 1 commit into
feature/qa-video-automationfrom
swarm/qa-video-auto/task-7
Feb 23, 2026
Merged

M4: macOS Recording Lifecycle + Chat Video UX#6916
Jasonnnz merged 1 commit into
feature/qa-video-automationfrom
swarm/qa-video-auto/task-7

Conversation

@Jasonnnz
Copy link
Copy Markdown
Contributor

@Jasonnnz Jasonnnz commented Feb 23, 2026

Summary

  • Adds ScreenRecorder class using ScreenCaptureKit (SCStream) for recording screen content to .mp4 files, with window and display capture scopes
  • Integrates screen recording into ComputerUseSession for QA mode — starts recording before the action loop and stops on all terminal states
  • Sends cu_session_finalized IPC message to the daemon on session completion with recording metadata and 7-day expiry
  • Adds drag-to-Finder support for InlineVideoAttachmentView using NSItemProvider, including lazy-loaded attachment support

Test plan

  • Verify ScreenRecorder creates recordings in ~/Library/Application Support/vellum-assistant/recordings/
  • Verify QA mode sessions start/stop recording and send cu_session_finalized
  • Verify drag-and-drop from inline video attachments to Finder works
  • Verify non-QA sessions are unaffected (no recording, no finalized message)
  • Verify early session failures (no focused window) still finalize in QA mode

Part of #6899.

Generated with Claude Code


Open with Devin

… drag support

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Jasonnnz Jasonnnz self-assigned this Feb 23, 2026
@Jasonnnz Jasonnnz merged commit 32c3e61 into feature/qa-video-automation Feb 23, 2026
@Jasonnnz Jasonnnz deleted the swarm/qa-video-auto/task-7 branch February 23, 2026 16:19
@Jasonnnz
Copy link
Copy Markdown
Contributor Author

Where to focus your review

  • clients/macos/vellum-assistant/ComputerUse/ScreenRecorder.swift: New file — uses SCStream + AVAssetWriter to record screen to .mp4. The StreamOutputHandler is @unchecked Sendable with manual locking since SCStreamOutput callbacks arrive on arbitrary queues. Verify the lock/unlock pattern and asset writer lifecycle are correct.
  • clients/macos/vellum-assistant/ComputerUse/Session.swift (finalizeQARecording): New QA finalization logic — stops recorder and sends cu_session_finalized. Check that all terminal state paths (including the early "no focused window" exit) properly finalize.
  • InlineVideoAttachmentView.swift (dragItemProvider): New drag-and-drop support with registerFileRepresentation for lazy-loaded attachments. The completion handler captures values across Task boundaries — verify correctness.

Risk level: Medium — New ScreenCaptureKit integration and SCStream lifecycle management that could interact with existing screen capture permissions.

Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

View 6 additional findings in Devin Review.

Open in Devin Review

Comment thread clients/macos/vellum-assistant/ComputerUse/ScreenRecorder.swift
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b3abe228fd

ℹ️ 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".

Comment thread clients/macos/vellum-assistant/ComputerUse/Session.swift
Comment thread clients/macos/vellum-assistant/ComputerUse/ScreenRecorder.swift
@Jasonnnz
Copy link
Copy Markdown
Contributor Author

Addressed in #6920

Jasonnnz added a commit that referenced this pull request Feb 23, 2026
… drag support (#6916)

Co-authored-by: Vellum Assistant <assistant@vellum.ai>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Jasonnnz added a commit that referenced this pull request Feb 23, 2026
… drag support (#6916)

Co-authored-by: Vellum Assistant <assistant@vellum.ai>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Jasonnnz added a commit that referenced this pull request Feb 23, 2026
… drag support (#6916)

Co-authored-by: Vellum Assistant <assistant@vellum.ai>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Jasonnnz added a commit that referenced this pull request Feb 23, 2026
… drag support (#6916)

Co-authored-by: Vellum Assistant <assistant@vellum.ai>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Jasonnnz added a commit that referenced this pull request Feb 23, 2026
… drag support (#6916)

Co-authored-by: Vellum Assistant <assistant@vellum.ai>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Jasonnnz added a commit that referenced this pull request Feb 23, 2026
… drag support (#6916)

Co-authored-by: Vellum Assistant <assistant@vellum.ai>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
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