Skip to content

Clarify the case-sensitive lockfile comparison comment - #206

Merged
hyperpolymath merged 6 commits into
mainfrom
coderabbit/changes/54ec1709
Sep 22, 2026
Merged

hyperpolymath merged 6 commits into
mainfrom
coderabbit/changes/54ec1709

Conversation

@coderabbitai

@coderabbitai coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Update the comment in scripts/check-lock-sync.sh to explain that refs remain unchanged for case-sensitive lockfile comparisons. No executable behavior changes.

The committed change is a single comment clarification, rather than the docstring generation requested by the task title.

Validation was not run.

View coding task

hyperpolymath and others added 5 commits September 22, 2026 18:48
GitHub refuses a run at startup, creating zero jobs, when a workflow
carries a `uses:` ref that the lockfile does not record under that
workflow's own path. It matches by LITERAL STRING; `gh actions-lock`
matches by resolved commit, so a lock entry naming a tag that
dereferences to the pinned SHA passes the tool and still kills the run.

Regenerate the lock, make it transitively closed, and add a lock-sync
gate carrying no `uses:` of its own so it cannot be disabled by the
desync it detects. No workflow YAML is modified.

Refs: hyperpolymath/standards#968

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X3hgXxWm6umMgZkjYyHnnm
A workflow absent from actions.lock can be rejected at startup (startup_failure,
jobs=0) even when it carries zero real 'uses:' refs and so has nothing to pin.
The gate is deliberately zero-'uses:', which is exactly why it had no entry.

Measured on two repos in this batch: adding this single line flipped the gate
from 7 consecutive startup_failure runs to success on hyperpolymath/verisimdb
(two successes since, nothing else changed) and from 2 of 2 startup_failure to
success on hyperpolymath/blocky-writer.

Enforcement is not uniform across repos — 13 of the 14 repos in this batch start
the byte-identical gate today with the same gap. A repo that passes now is not
evidence its lock is complete, only that the behaviour has not reached it. This
closes the gap before it bites.

Zero-'uses:' workflows take the empty list, matching the entries actions.lock
already carries for other zero-'uses:' workflows such as labels.yml.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X3hgXxWm6umMgZkjYyHnnm
The gate could not defend the fix this PR ships. Clauses 1-3 ask "is every
`uses:` locked under its own workflow path?" GitHub asks a DIFFERENT question:
"is every workflow FILE represented in the lock?" A workflow with no `uses:`
satisfies clauses 1-3 vacuously and GitHub still refuses to start it - which is
exactly how lock-sync-gate.yml failed here 7 times running while the checker
reported the lock in sync. Thirteen other repositories passed the gate with the
same gap present, so a green gate was not evidence of a complete lock.

Clause 4 diffs the set of files under .github/workflows/ against the set of
lockfile keys, fails on any file with no key, names it, and quotes the
empty-list form to add. Remediation step 4 warns that re-running
`gh actions-lock` may not fix it, because omitting the file is the tool's own
defect.

Mutation-tested both ways: deleting the lock-sync-gate key fails the gate, and
deleting the unrelated labels.yml key fails it too; the unmutated tree passes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X3hgXxWm6umMgZkjYyHnnm
Preserve reference casing, skip $/ refs as local actions, and correctly reject empty workflow directories.
@coderabbitai

coderabbitai Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor Author

Important

Review skipped

This PR was authored by the user configured for CodeRabbit reviews. CodeRabbit does not review PRs authored by this user. It's recommended to use a dedicated user account to post CodeRabbit review feedback.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Essentials

Run ID: 497d2f96-d5b4-4e32-8d4f-d925bb2ff12b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

Base automatically changed from fix/actions-lock-desync to main September 22, 2026 21:12
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
@hyperpolymath
hyperpolymath merged commit 856fe78 into main Sep 22, 2026
20 of 22 checks passed
@hyperpolymath
hyperpolymath deleted the coderabbit/changes/54ec1709 branch September 22, 2026 21:15
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.

1 participant