Skip to content

fix(gate): fail reproducibility on diff errors - #48

Open
raphaelnz wants to merge 2 commits into
negoro26:mainfrom
raphaelnz:fix/reproducibility-diff-errors
Open

raphaelnz wants to merge 2 commits into
negoro26:mainfrom
raphaelnz:fix/reproducibility-diff-errors

Conversation

@raphaelnz

Copy link
Copy Markdown
Contributor

Why

Keep upstream synchronization from accepting a tree it could not compare. The reproducibility check currently treats empty diff output as success, including read errors.

Closes #47.

What changed

  • Check each tree comparison's exit status and retain its diagnostics.
  • Fail reproducibility if any scope differs or cannot be compared, even if a later scope succeeds.
  • Add regression cases and document the failure behavior.

Scope

  • Covers the reproducibility check and its regression tests.
  • Does not change release versions, sync recovery, or upstream target selection.

Blast Radius

The port gate now rejects comparisons that previously returned a false PASS. Successful comparisons keep the existing behavior.

Verification

  • Real GNU diff ran as uid 65534 against a same-size modified file with mode 000. The reproducibility check reported FAIL and the gate exited 1 with the permission error.
  • The new mutation tests fail against the unfixed gate. The fixed full port gate passes, including all 35 mutation cases and the worktree audit.
  • Shell syntax checks pass for both changed scripts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Reproducibility gate returns PASS when diff cannot read changed generated content

1 participant