Repository navigation
fix(ci): skip device nodes when check-affected stages uncommitted work - #8520
Conversation
The issue lane's sandbox bind-mounts /dev/null over dotfiles in the checkout (.bash_profile, .bashrc, .gitconfig, .vscode and others). check-affected --uncommitted staged the work tree with `git add -A`, which refuses a device node, so every issue-lane run's check-affected failed before any check ran. Stage only regular files, symlinks, repositories and deletions; a masked tracked file keeps its committed content. The test masks a tracked and an untracked file with bwrap and skips when bwrap cannot start. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xk7Lz7d2twxvA3LfRxnLkT
Codex Review SummaryThis 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 No security issues found in PR #8520 (
|
|
claude-review reviewed Code review: no findingsI read the full diff, the PR context and the surrounding code in What I checked
Minor observations (not blocking, no inline comment)
|
Refs: #8425
Summary
Issue-lane runs fail
check-affectedbefore any check runs: the lane's sandbox bind-mounts/dev/nullover dotfiles in the checkout (.bash_profile,.bashrc,.gitconfig,.vscodeand others), andcheck-affected --uncommittedstaged the work tree withgit add -A, which refuses a device node (can only add regular files, symbolic links or git-directories). This blocks every issue-lane admission.Fix
scripts/check-affected.sh --uncommittednow stages only regular files, symlinks, repositories and deletions fromgit ls-files --modified --others --exclude-standard. A masked tracked file keeps its committed content; when nothing qualifies, nothing is added (an empty pathspec would makeadd -Astage everything). No workflow or sandbox change.Verification
bash scripts/check-affected.test.sh: PASS=37 FAIL=0. The new case masks one tracked and one untracked file with bwrap; before the fix it fails with rc=2 and the git error, after it passes. It skips when bwrap cannot start.bwrap --ro-bind /dev/null <file>; the all-masked case exits 0 after the fix.shellcheckclean on both files.Related
🤖 Generated with Claude Code
https://claude.ai/code/session_01Xk7Lz7d2twxvA3LfRxnLkT