Repository navigation
ci(eval): install ffmpeg for eval scaffolds that render frames - #15482
Conversation
Four eval cases name ffmpeg as a host tool (three in explainer-video, knowledge's vd-light-skips-vision-spot-check), and the hosted image has none: run 42563549712 reported vd-light-skips-vision-spot-check NOT COMPARABLE with "scaffold.sh: line 13: ffmpeg: command not found". Each eval job (key, subscription, fallback) now installs the BtbN static build pr-require-checks.yml's demo-video leg pins, with the same tag and SHA-256, into /opt/tools/bin before the runner is isolated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VQb9Q2ceZLXhTR4d1vkTCe
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
claude-security-review reviewed Security review: PR #15482, incremental (
|
|
claude-review reviewed Code-review lane: PR #15482, incremental review ( No new findings. This round reported blocking findings only, because the lane reviewed an earlier head. I read every hunk of the one file in scope, Both earlier findings are fixed in all three jobs (
PR "Done when" items: both are met by the workflow as written. They are only checked at run time: nothing exercises the step until an eval dispatch stages explainer-video or knowledge, as the PR says. Verification: the PR's test-suite, Closing issue: none. The PR cites owner decision Q14, so there are no issue acceptance criteria to check against. Spend (not a hold): the ffmpeg download now runs only on evals that stage those two plugins, so it uses fewer hosted-runner minutes than the previous head. Nothing about billing changes. |
The step ran the downloaded ffmpeg while sudo still worked, which breaks the job's rule that no third-party code runs before isolation. It now runs after "Isolate the runner", beside the pinned shfmt step. It is also gated on the staged plugin list holding explainer-video or knowledge, so other evals do not download the archive. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VQb9Q2ceZLXhTR4d1vkTCe
No related issue: owner decision Q14 (failing workflows)
Summary
eval-browser-dispatch.ymlruns eval cases on a hosted runner that has no ffmpeg. Four cases name ffmpeg as a host tool for their scaffold: three in explainer-video (pr-exit-zero-reads-every-frame,pr-light-skips-frame-judge,pr-standard-silent-judge-gets-beats) and knowledge'svd-light-skips-vision-spot-check. Run 42563549712 reportedNOT COMPARABLE: vd-light-skips-vision-spot-check (with-arm run 1 errored: scaffold failed (exit 127): ... scaffold.sh: line 13: ffmpeg: command not found).Fix
Each eval job (
eval,eval-subscription,eval-fallback) gets an "Install ffmpeg for eval scaffolds" step after "Isolate the runner", beside the pinned shfmt step, so the downloaded binary never runs with sudo. It runs only when the staged plugin list holds explainer-video or knowledge. It uses the BtbN static buildpr-require-checks.yml's demo-video leg already pins, with the same release tag, build and SHA-256. It checks the archive's checksum and each binary's version, and installsffmpegandffprobeinto/opt/tools/bin, which the eval sandbox can read.Done when
Verification
plugin-eval/workflow,credential-legs,eval-handoff,resolve-config/callers,check-kill-switch,check-upstream-status,work-unblock/label-unblocked) all pass.scripts/check-affected.sh: 10 passed, 6 skipped.actionlint: no new findings. The local binary flags the existingcache-modejob key at the same 3 places on main, so those predate this change.Related
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB. That has been sent to the GitHub Support hub; this PR does not touch credential handling.🤖 Generated with Claude Code
https://claude.ai/code/session_01VQb9Q2ceZLXhTR4d1vkTCe