Skip to content

ci: run the cross-port drift checks on the launcher conformance lane - #2

Merged
rustyconover merged 1 commit into
mainfrom
ci-cross-port-drift
Sep 16, 2026
Merged

rustyconover merged 1 commit into
mainfrom
ci-cross-port-drift

Conversation

@rustyconover

@rustyconover rustyconover commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Adds describe_diff --only java and identity_consistency --only java to the
conformance / launcher (pipe/unix, no shm) lane, before the wire suite.

Verified by observation, not by assumption: run 35118956342 carried a deliberate
echo_int(long value) -> echo_int(long number) perturbation and the new step
failed with

ConformanceService        2/2 ports       DRIFT
  5cc768771c2e8a54e19ebb7546c97c119823eb13e20a5ff62ca5ce7ed2a1334e  python  <- reference
  b7c842994064cf829be865d85e9d457d23941968f46e24981daedd8679af2b3d  java
    echo_int: params_schema_ipc number: int64 not null vs value: int64 not null
RESULT: drift

The perturbation was then reverted; run 35119974092 is green on all 8 jobs, with
the checks reporting AGREED on both frozen digests and the identity audit
naming 25 Java identity files.

The reference is cloned from main with no pin. VGI_RPC_PYTHON_REV stays
scoped to the Iroh lane, where this port is the client and the pinned revision is
a party to the wire contract.

🤖 Generated with Claude Code

https://claude.ai/code/session_01K2bAuCcTPfo6qEGkN8GoL3

The conformance lanes compare this port to the reference over the wire, and
that is the one comparison which cannot see a port drifting in what it *says
about itself*. Four ports described vgi_rpc.Reflection.v1 as having zero
methods and six logged six different wrong protocol_hash values, all with green
suites. describe_diff and identity_consistency are the checks that found it,
and until now they ran only by hand on a maintainer's machine.

They ride the launcher lane rather than a job of their own for the same reason
the access-log validator does: describe_diff spawns the worker on stdio and
talks to it over a pipe, which is this lane's transport, and the lane already
clones the reference and installs its conformance extras. The reference clone
moves from RUNNER_TEMP to a sibling of this checkout because the tools resolve
a port as <repos>/vgi-rpc-<name>; $GITHUB_WORKSPACE's parent already holds this
repo under exactly that name, so no copy and no symlink are needed and Gradle
keeps running in the real workspace.

The checks run before the suite. They cost seconds, and a hash diff naming the
field that differs is a better first answer than a thousand red test results.

Deliberately unpinned. VGI_RPC_PYTHON_REV stays scoped to the Iroh lane, where
this port is the client and the pinned revision is a party to the wire
contract. Here the reference is the yardstick, and a pinned yardstick is how
that lane reported green for eleven days against a stale reference.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K2bAuCcTPfo6qEGkN8GoL3
@rustyconover rustyconover changed the title ci: cross-port drift checks (verification run) ci: run the cross-port drift checks on the launcher conformance lane Sep 16, 2026
@rustyconover
rustyconover merged commit e32aa34 into main Sep 16, 2026
8 checks passed
@rustyconover
rustyconover deleted the ci-cross-port-drift branch September 16, 2026 16:18
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