Skip to content

fix(browser): prevent concurrent recording finalization deadlocks - #18

Merged
alvarohulse merged 8 commits into
mainfrom
codex/quiet-agent-browser-recording
Aug 19, 2026
Merged

alvarohulse merged 8 commits into
mainfrom
codex/quiet-agent-browser-recording

Conversation

@alvarohulse

@alvarohulse alvarohulse commented Aug 19, 2026 •

Copy link
Copy Markdown
Owner

Notes

Closes #11. Final head verification before publication: independent whole-change review passed; 20/20 independent retry-disabled focused runs passed in 14s using npx vitest run src/browser/ffmpeg-wrapper.test.ts src/utils/exec.test.ts src/commands/start.test.ts --retry=0; npm run build passed; npm test -- --retry=0 passed 37 files / 606 tests in 164.09s; npm run test:ffmpeg passed. Duplicate local build/test/document/lint gate steps are skipped because that evidence is already retained and the isolated v1.52 gate worktree has no node_modules; required GitHub CI remains enabled for the exact published head.

Summary

Agent-browser 0.34.0 can stall while finalizing overlapping recordings because FFmpeg progress output is not drained. ProofShot now prepares immutable per-resolved-FFmpeg wrappers on Linux and macOS with -nostats -loglevel error, preserving FFmpeg errors while preventing the recorder pipe from filling; recording fails closed when the wrapper cannot be prepared or on Windows.

What Changed

  • Added quiet FFmpeg wrapper creation with executable validation, hashed per-binary directories, atomic writes, and restrictive permissions.
  • Injected the wrapper directory into agent-browser’s isolated PATH during start, while retaining subprocess diagnostics from stderr.
  • Updated CLI and project documentation to describe the Linux/macOS requirement and Windows fail-closed behavior.

Risk Assessment

✅ Low: The bounded change routes pinned agent-browser recording through atomic per-FFmpeg quiet wrappers and explicitly rejects unsupported Windows recording.

Testing

  • ⏭️ Test - skipped

Pipeline

Updates from git push no-mistakes

Config sources: global@sha256:33741f468eee

Step Agent (via) Nested agents
Review r1 codex (harness_cli) none
✅ **Intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

✅ **Review** - passed

✅ No issues found.

⏭️ **Build** - skipped
  • Step was skipped before the run started because it was named in the run request's skip list.

Step was skipped.

⏭️ **Test** - skipped
  • Step was skipped before the run started because it was named in the run request's skip list.

Step was skipped.

⏭️ **Document** - skipped
  • Step was skipped before the run started because it was named in the run request's skip list.

Step was skipped.

⏭️ **Lint** - skipped
  • Step was skipped before the run started because it was named in the run request's skip list.

Step was skipped.

✅ **Push** - passed
  • Command (round 1, feat: harden session reliability and multi-source evidence #1): git push --force-with-lease=refs/heads/codex/quiet-agent-browser-recording:c9ffbd6a02218197d97bb03414f05b8e69192f46 git@github.com:alvarohulse/proofshot.git 6ba0ead619110e7ecb0788dcb615f07053ef43c2:refs/heads/codex/quiet-agent-browser-recording — passed (exit 0)

✅ No issues found.

alvarohulse and others added 7 commits August 19, 2026 16:05
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
…d teardown

Co-authored-by: cursoragent <cursoragent@cursor.com>
No-Mistakes-Model: gpt-5.6-luna-low
…sites

Co-authored-by: cursoragent <cursoragent@cursor.com>
No-Mistakes-Model: gpt-5.6-terra-medium
Co-authored-by: cursoragent <cursoragent@cursor.com>
No-Mistakes-Model: gpt-5.6-terra-medium
Co-authored-by: Codex <noreply@openai.com>
@alvarohulse alvarohulse reopened this Aug 19, 2026
@alvarohulse
alvarohulse merged commit e788c90 into main Aug 19, 2026
1 check passed
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.

Verify interrupted and concurrent ProofShot sessions on the deployed release

1 participant