Repository navigation
fix(source-control): skip the sandbox's /dev/null dotfile masks in feedback-thread record - #9551
Conversation
…edback-thread record The lane's Bash sandbox masks dotfiles in the checkout with /dev/null, so git ls-files --others lists .bash_profile as untracked and record refused every VALID reply as outside the kept threads' scope. address-feedback then stopped feedback-invalid or feedback-incomplete (#9536, #9479, #9483). Skip a character device that is not a symlink, as check-affected.sh does since #8520; a symlink to /dev/null is still refused. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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 #9551. The change makes the untracked-file scope check in
critical-findings: 0 |
|
claude-review reviewed No findings on this pull request. What I checked
I read the diff and the surrounding script. I did not run the tests, so the author's claims of 0 failures and a clean shellcheck are unverified by me. |
No related issue: root-caused from the address-feedback stops on #9536, #9479 and #9483 today; this is the fix.
Summary
pr-unblock's address-feedback fixed VALID findings, then
feedback-thread.sh recordrefused to record the reply: "the working tree changes .bash_profile, which is outside every kept thread's scope". The lane's Bash sandbox masks dotfiles in the checkout with/dev/null,git ls-files --otherslists that device as untracked, andis_stubexcuses only empty regular files. With no reply recorded, the reply job stoppedfeedback-invalid(no replies beside a patch,publish-feedback.mjs:404-406) orfeedback-incomplete(:422-425), and a person had to finish every lane PR with a review finding.Each run's reply quotes the
.bash_profilerefusal. Thefeedback-uncertainstops (#9483 r2, #9418) were correct escalations and are unchanged.Fix
plugins/source-control/skills/pull-request/scripts/feedback-thread.sh: the untracked loop skips a character device that is not a symlink, the same rulescripts/check-affected.sh:130-133uses since fix(ci): skip device nodes when check-affected stages uncommitted work #8520.-Lis tested first because-cfollows symlinks, so an untracked symlink to/dev/nullis still scope-checked and refused.feedback-thread.test.sh: a bwrap case with/dev/nullmounted over.bash_profile(fails before the fix, passes after) and a symlink case that must still refuse..changes/source-control/: patch fragment.Verification
bash plugins/source-control/skills/pull-request/scripts/feedback-thread.test.sh: 0 failures; case 79 fails on origin/main's script (exit 1) and passes with the fix.shellcheckon both files: clean.Related
#9536, #9479, #9483, #8520
🤖 Generated with Claude Code