fix(source-control): copy settings.local.json into new worktrees - #2453
Conversation
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Claude finished @kyle-sexton's task in 3m 17s —— View job Security Review Complete
No CRITICAL or IMPORTANT security issues found. The change adds ~19 lines to One low-severity note for awareness:
I did not find any injection, authorization, or trust-boundary issues introduced by this diff. Note: I was unable to execute |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a614f8df89
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Claude finished @kyle-sexton's task in 3m 30s —— View job Code review: PR #2453
SummaryThis PR adds logic to 🔴 worktree-create.sh:712-716 — the copy source path is wrong. 🟡 worktree-create.test.sh:442-450 — the new test can't catch the bug above. The test commits Note: I verified the No other issues found — the rest of the diff (mkdir/cp error handling, log messages, doc comment) follows the existing |
|
Claude has reviewed this PR 5 times. The lane skips further automatic reviews after 5; deleting this comment resets the count. |
42331be to
8120587
Compare
|
Claude finished @kyle-sexton's task in 49s —— View job Security Review Complete
Scope: only the two files changed in this PR ( No CRITICAL or IMPORTANT security issues found. The new block resolves One low-severity note, same as flagged in the earlier security pass on this PR and still applicable to the current diff:
I did not find any injection, authorization, or trust-boundary issues introduced by this diff. (Note: a separate, non-security correctness bug in this same block — |
|
Claude finished @kyle-sexton's task in 1m 59s —— View job Code review: PR #2453
SummaryI reviewed the current state of this PR (commit The diff content at this commit is unchanged from what earlier review passes on this PR already examined, and both previously-flagged issues are still present: 🔴 🟡 Both were raised by two earlier review passes on this PR (Codex and a prior Claude pass) and do not appear to have been addressed yet in the current commit — I'm re-confirming them here since this is the code-review lane's pass over the current PR state, not assuming the earlier reports still stand without re-checking. No other issues found. The rest of the diff (mkdir/cp error handling pattern, log messages, doc comment) follows the existing Per this repo's I did not independently run |
8120587 to
13e9eb3
Compare
|
Claude finished @kyle-sexton's task in 47s —— View job Security Review Complete
Scope: only the two files changed in this PR ( No changes since the last security pass. I diffed the current HEAD ( No CRITICAL or IMPORTANT security issues found. The new block resolves One low-severity note, carried forward from both prior passes:
I did not find any injection, authorization, or trust-boundary issues introduced by this diff. (Note: a separate, non-security correctness bug in this same block — |
68c0ae6 to
00e14ae
Compare
|
Claude finished @cursor[bot]'s task in 1m 16s —— View job Security Review Complete
Scope: only the two shell files with logic changes ( No CRITICAL or IMPORTANT security issues found. The previously-flagged correctness bug (
One low-severity note, unchanged from earlier passes on this PR and still theoretical: I did not find any injection, authorization, or trust-boundary issues introduced by this diff. The test-file change ( |
|
Last security-reviewed head: |
|
Claude finished @cursor[bot]'s task in 1m 28s —— View job Code review: PR #2453
SummaryBoth issues raised by earlier passes on this PR (Codex and prior Claude code-review passes) are fixed as of this commit ( ✅ ✅ I was unable to execute No other issues found. Version bump ( |
|
Claude finished @kyle-sexton's task in 55s —— View job Security Review Complete
Skip gate hit (condition 3): this head already has a successful security review that still applies. Current HEAD is produces no output — none of the files this PR actually touches ( Per the security-review skill's guidance, re-posting the same findings would add noise rather than signal, so per the skip gate I'm not re-reviewing. The prior conclusions still stand: No CRITICAL or IMPORTANT security issues. The carry-in logic uses only double-quoted, non-attacker-influenced path construction ( |
…ckRollup running-check pitfall (#2513) ## Summary Lands the two PR-lifecycle facts #1436 recorded from driving #1393/#1316/#1318/#1322 to merge, in the document that was prescribing the expensive path: - **Stale-branch recovery now defaults to merge-forward.** `monitor.md`'s mergeable pre-check (§3.1 step 1) and stale-branch recovery rule (§3.2) both prescribed "force-push with lease" — but auto-mode permission classifiers commonly deny force-push, and the recorded consequence was a fresh branch + fresh PR + closing the old one per rebase (the #1315 → #1377 → #1393 churn, with every review thread re-opened on the successor). Merging the default branch *into* the PR branch resolves staleness and pushes **fast-forward** — no force-push — and under a squash-only default branch the merge commits collapse to one commit on merge, so linear-history requirements stay satisfied. Verified in the issue's own record: #1393 landed that way and #1318 was merge-forwarded five times without needing a new branch. Rebase stays available as the exception for projects requiring a linear PR branch where force-push is actually permitted. - **`statusCheckRollup` reports a running check as `conclusion: ""` (empty string), not `null`.** The complement-shaped filter (`conclusion != null and != "SUCCESS"`) therefore counts every in-progress check as a failure — the exact misreport in the issue (two "failing" checks that were simply still running). The multi-PR scan section (§3.0.6, the one place this skill reads `statusCheckRollup`) now documents the pitfall with value-positive jq selectors for "failed" and "still running". Version `0.53.11` → `0.53.14` (patch; `0.53.12`/`0.53.13` are claimed by in-flight PRs #2450/#2453/#2483/#2510 and #2469 — skipping past them per the #1746 collision pattern). ## Test plan - `npx markdownlint-cli2@0.23.2` on both edited markdown files — 0 issues. - Docs-only change to skill reference text; no scripts or hooks touched. The jq forms added are the ones from the issue, verified against `gh pr view --json statusCheckRollup` semantics. ## Related Fixes #1436 Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
…ckRollup running-check pitfall (#2513) ## Summary Lands the two PR-lifecycle facts #1436 recorded from driving #1393/#1316/#1318/#1322 to merge, in the document that was prescribing the expensive path: - **Stale-branch recovery now defaults to merge-forward.** `monitor.md`'s mergeable pre-check (§3.1 step 1) and stale-branch recovery rule (§3.2) both prescribed "force-push with lease" — but auto-mode permission classifiers commonly deny force-push, and the recorded consequence was a fresh branch + fresh PR + closing the old one per rebase (the #1315 → #1377 → #1393 churn, with every review thread re-opened on the successor). Merging the default branch *into* the PR branch resolves staleness and pushes **fast-forward** — no force-push — and under a squash-only default branch the merge commits collapse to one commit on merge, so linear-history requirements stay satisfied. Verified in the issue's own record: #1393 landed that way and #1318 was merge-forwarded five times without needing a new branch. Rebase stays available as the exception for projects requiring a linear PR branch where force-push is actually permitted. - **`statusCheckRollup` reports a running check as `conclusion: ""` (empty string), not `null`.** The complement-shaped filter (`conclusion != null and != "SUCCESS"`) therefore counts every in-progress check as a failure — the exact misreport in the issue (two "failing" checks that were simply still running). The multi-PR scan section (§3.0.6, the one place this skill reads `statusCheckRollup`) now documents the pitfall with value-positive jq selectors for "failed" and "still running". Version `0.53.11` → `0.53.14` (patch; `0.53.12`/`0.53.13` are claimed by in-flight PRs #2450/#2453/#2483/#2510 and #2469 — skipping past them per the #1746 collision pattern). ## Test plan - `npx markdownlint-cli2@0.23.2` on both edited markdown files — 0 issues. - Docs-only change to skill reference text; no scripts or hooks touched. The jq forms added are the ones from the issue, verified against `gh pr view --json statusCheckRollup` semantics. ## Related Fixes #1436 Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
2beea99 to
6772168
Compare
|
Claude finished @cursor[bot]'s task in 1m 20s —— View job Security Review Complete
Skip gate hit (condition 3): this head already has a successful security review that still applies. Current HEAD is
Per the skill's skip gate, re-posting identical findings would add noise rather than signal, so I'm not re-reviewing. Prior conclusions on this diff still stand: No CRITICAL or IMPORTANT security issues. All path construction in the carry-in block uses double-quoted, non-attacker-influenced variables ( No GitHub Actions workflow files are touched by this PR, so the |
|
Claude finished @cursor[bot]'s task in 2m 7s —— View job Code review: PR #2453
SummaryReviewed the current head ( ✅ ✅ No other issues found:
I was unable to execute Per this repo's |
6772168 to
d1021ae
Compare
|
Claude finished @cursor[bot]'s task in 1m 6s —— View job Security Review Complete
Skip gate hit (condition 3): this head already has a successful security review that still applies. Current HEAD is
The branch also picked up an unrelated, already-merged-to-main commit ( Per the skill's skip gate, re-posting identical findings would add noise rather than signal, so I'm not re-reviewing the logic. Prior conclusions on this diff still stand: No CRITICAL or IMPORTANT security issues. All path construction in the carry-in block uses double-quoted, non-attacker-influenced variables ( No GitHub Actions workflow files are touched by this PR, so the |
|
Claude finished @cursor[bot]'s task in 1m 18s —— View job Code review: PR #2453
Skip gate hit (condition 4): this head already has a successful review from this lane that still applies. Current HEAD is
Per the skill's skip gate, re-posting identical findings would add noise rather than signal, so I'm not re-reviewing line-by-line. No new findings. Both issues originally raised on this PR (path bug, test-coverage gap) remain fixed at this head. I was unable to execute Per this repo's |
|
Claude finished @cursor[bot]'s task in 56s —— View job Security Review Complete
Skip gate hit (condition 3): this head already has a successful security review that still applies. Current HEAD is
Per the skill's skip gate, re-posting identical findings would add noise rather than signal, so I'm not re-reviewing the logic. Prior conclusions on this diff still stand: No CRITICAL or IMPORTANT security issues. The carry-in block in No GitHub Actions workflow files are touched by this PR, so the |
|
Claude finished @cursor[bot]'s task in 55s —— View job Security Review Complete
Skip gate hit (condition 3): this head already has a successful security review that still applies. Current HEAD is
The two files with actual logic — Per the skill's skip gate, re-posting identical findings would add noise rather than signal, so I'm not re-reviewing the logic. Prior conclusions on this diff still stand: No CRITICAL or IMPORTANT security issues. The settings.local.json carry-in block in No GitHub Actions workflow files are touched by this PR, so the |
Carry .claude/settings.local.json from the git common dir so env overrides such as DISK_HYGIENE_GUARD_WATCHDOG_SECONDS load in worktree sessions. Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
…xture Copy from the main worktree root (dirname of git-common-dir), not under .git/.claude/. Leave settings.local.json untracked in the test fixture so the copy logic is actually exercised. Bump to 0.53.10. Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
0cfd044 to
8c07b87
Compare
|
Claude finished @cursor[bot]'s task in 51s —— View job Security Review Complete
Skip gate hit (condition 3): this head already has a successful security review that still applies. Current HEAD is
Per the skill's skip gate, re-posting identical findings would add noise rather than signal, so I'm not re-reviewing the logic. Prior conclusions on this diff still stand: No CRITICAL or IMPORTANT security issues. The settings.local.json carry-in block in No GitHub Actions workflow files are touched by this PR, so the |
Summary
.claude/settings.local.jsonfrom the git common dir so env overrides such asDISK_HYGIENE_GUARD_WATCHDOG_SECONDSload in worktree sessionsCloses #2119
Test plan
bash plugins/source-control/scripts/worktree-create.test.shRelated
N/A