Skip to content

fix(gate-67): look for the shipped copy where the runner actually is - #465

Merged
rubenvdlinde merged 1 commit into
mainfrom
fix/gate-67-find-the-shipped-copy
Aug 15, 2026
Merged

fix(gate-67): look for the shipped copy where the runner actually is#465
rubenvdlinde merged 1 commit into
mainfrom
fix/gate-67-find-the-shipped-copy

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

The gate could only ever skip

gate-67 reported NOT APPLICABLE on every real run — including
openregister#2503, whose entire purpose was to bump the lock to the hydra-gates
version that ships the contracts:

[gate-67] openregister-contract-parity: NOT APPLICABLE — lib/Contract/ exists
but no shipped copy was found to compare it against.

Cause: it looked only in vendor/conduction/hydra-gates/…. The Hydra Gates
job fetches this runner from .github@main and never runs composer install,
so that job has no vendor/ at all — and never will. A gate that can only skip
protects nothing.

Fix

Three locations, in order:

looked up why it is in the list
vendor/conduction/hydra-gates/… the consumer's own install — first, so an app pinning an older hydra-gates is judged against what it actually ships
hydra-gates/contracts/ inside the .github repo itself
alongside this script the copy that travels with the runner — this is the one that works in CI

The ordering is what keeps the acceptance fixtures meaningful: they carry their
own vendor/ copy, which still wins, so planted drift is detected against the
fixture rather than against the real contract.

Verified on the shape CI actually has

openregister's lib/ with no vendor:

before:  rc=4   NOT APPLICABLE
after:   checked 2 file(s)   rc=0
drift:   rc=1, naming the file
leaf app with no lib/Contract:  rc=3

Acceptance matrix unchanged: 161 passed, 0 failed.

Why it was found

I checked the gate's verdict in a real run instead of assuming the lock bump was
enough. A gate that has only ever skipped has not been shown to work — the same
lesson this ADR-084 thread has now produced three times.

🤖 Generated with Claude Code

gate-67 reported NOT APPLICABLE on every real run, including the one whose
entire purpose was to bump openregister's lock to the hydra-gates version that
ships the contracts:

    [gate-67] openregister-contract-parity: NOT APPLICABLE — lib/Contract/
    exists but no shipped copy was found to compare it against.

The gate looked only in `vendor/conduction/hydra-gates/...`. The Hydra Gates job
fetches this runner from `.github@main` and never runs `composer install`, so
there is no vendor/ in that job at all — and there never will be. The gate could
therefore only ever skip, which protects nothing.

Three locations are now tried, in order:

    vendor/conduction/hydra-gates/...   the consumer's own install, first, so an
                                        app pinning an older hydra-gates is
                                        judged against what it actually ships
    hydra-gates/contracts/              inside the .github repo itself
    <alongside this script>             the copy that travels with the runner

The last one is what makes it work in CI, and the ordering is what keeps the
acceptance fixtures meaningful: they carry their own vendor/ copy, which still
wins, so planted drift is still detected against the fixture rather than against
the real contract.

Verified on the shape CI actually has — openregister's lib/ with NO vendor:

    before: rc=4 (NOT APPLICABLE)
    after:  checked 2 file(s), rc=0
    drift:  rc=1, naming the file
    leaf app with no lib/Contract: rc=3

Acceptance matrix unchanged: 161 passed, 0 failed.

The lesson is the one this whole ADR-084 thread keeps repeating: a gate that has
only ever skipped has not been shown to work. I checked its verdict in a real
run instead of assuming the lock bump was enough, which is the only reason this
was found.
@rubenvdlinde
rubenvdlinde merged commit 1dd9cd6 into main Aug 15, 2026
35 checks passed
@rubenvdlinde
rubenvdlinde deleted the fix/gate-67-find-the-shipped-copy branch August 15, 2026 08:38
@rubenvdlinde
rubenvdlinde restored the fix/gate-67-find-the-shipped-copy branch August 19, 2026 16:45
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