Skip to content

fix(windows): finalize recordings and harden release dependencies - #180

Open
petercr wants to merge 3 commits into
TheOrcDev:mainfrom
petercr:agent/windows-recording-reliability
Open

fix(windows): finalize recordings and harden release dependencies#180
petercr wants to merge 3 commits into
TheOrcDev:mainfrom
petercr:agent/windows-recording-reliability

Conversation

@petercr

@petercr petercr commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

What changed

  • Finalize a stopped Windows recording when FFmpeg returns a non-zero close status but the staged MKV remains exportable.
  • Normalize Windows verbatim paths before passing recording inputs and outputs to FFmpeg.
  • Refresh the pinned Windows FFmpeg build used by packaging.
  • Pin js-yaml to 4.3.1 in the package manifest, workspace override, and pnpm lockfile.

Why

Windows can report a non-zero FFmpeg status while closing a stopped capture graph. Treating that status as an unconditional failure strands an otherwise valid recording as recovery media. Separately, upstream still resolved vulnerable js-yaml 4.3.0 and the previous Windows FFmpeg build is no longer downloadable.

Validation

  • git diff --check
  • Existing Rust unit coverage in crates/videorc-backend/src/recording.rs
  • Lockfile, workspace override, and package manifest updated together.
  • Full recording-studio/device validation remains for GitHub Actions or the appropriate native host.

Summary by CodeRabbit

  • Bug Fixes

    • Improved recording finalization after an explicit stop, even when FFmpeg exits unsuccessfully.
    • Preserved error handling for recording bridge failures and unexpected FFmpeg failures.
    • Improved Windows MP4 export path handling.
  • Maintenance

    • Updated the Windows FFmpeg build.
    • Updated the YAML parsing package version.

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4641cf0d-60e8-4082-ae6f-3bfc17cf13ee

📥 Commits

Reviewing files that changed from the base of the PR and between 3980679 and 04c5ef3.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (4)
  • crates/videorc-backend/src/recording.rs
  • package.json
  • pnpm-workspace.yaml
  • vendor/ffmpeg/windows-pin.json

📝 Walkthrough

Walkthrough

FFmpeg paths are normalized for recording and export arguments. Explicitly stopped recordings can finalize after a non-successful FFmpeg exit. Windows export coverage and the pinned FFmpeg build were updated. The js-yaml development dependency now uses version 4.3.1.

Changes

Recording and Windows FFmpeg

Layer / File(s) Summary
FFmpeg path normalization and Windows pin
crates/videorc-backend/src/recording.rs, vendor/ffmpeg/windows-pin.json
FFmpeg input and output arguments now use normalized paths. A Windows MP4 export test covers verbatim paths. The Windows FFmpeg archive and checksum were updated.
Explicit-stop finalization behavior
crates/videorc-backend/src/recording.rs
Explicitly stopped recordings can finalize after a non-successful FFmpeg exit. Recording bridge failures and unsignaled FFmpeg failures still return failure.

JavaScript dependency alignment

Layer / File(s) Summary
js-yaml version alignment
package.json, pnpm-workspace.yaml
The development dependency and workspace override now use js-yaml version 4.3.1.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

  • TheOrcDev/videorc#14: Both changes modify FFmpeg argument and finalization wiring in recording.rs.
  • TheOrcDev/videorc#39: This change extends Windows FFmpeg path handling and updates the pinned build.
  • TheOrcDev/videorc#141: Both changes modify FFmpeg path normalization and finalization behavior in recording.rs.

Suggested reviewers: theorcdev

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the Windows recording finalization changes and dependency updates in the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install failed. For unrecoverable errors, disable the tool in CodeRabbit configuration.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@petercr petercr changed the title fix(windows): finalize stopped recordings and refresh FFmpeg pin fix(windows): finalize recordings and harden release dependencies Aug 7, 2026
@petercr
petercr marked this pull request as ready for review August 7, 2026 19:02
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