Skip to main content
← Back to list
01Issue
BugOpenExtensions
AssigneesNone

Relationships

#541 CI review jobs use two-dot diff that includes files the PR never touched

Opened by stack72 · 6/3/2026

The claude-review, claude-adversarial-review, and claude-ci-security-review jobs in ci.yml use git diff --name-only origin/main..HEAD (two-dot, lines 697/814/907) to compute the changed-files list. This is a tree-to-tree comparison that shows everything differing between the branch tip and current main — including files the branch never modified but main gained since the branch point.

The changes job (line 43) correctly uses git diff --name-only \"${BASE_SHA}...${HEAD_SHA}\" (three-dot with PR base/head SHAs and fetch-depth: 0) to compute only what the branch actually changed.

The review jobs cannot simply switch to three-dot because the Forgejo runner does shallow clones and the merge base may not exist. The fix is to mirror the changes job pattern: use fetch-depth: 0 in the checkout step AND use the PR base/head SHAs (github.event.pull_request.base.sha / github.event.pull_request.head.sha) with a three-dot diff.

Concrete impact: PR #26 (namespace-scoped sync, issue #533) was blocked by a false-positive CRITICAL finding claiming the SSH trailing-newline fix was reverted. The branch never touched SSH files — it just forked from main before the SSH fix landed, and the two-dot diff surfaced the delta as branch changes.

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED

Open

6/3/2026, 1:32:02 PM

No activity in this phase yet.

03Sludge Pulse

Sign in to post a ripple.