Commit graph

1 commit

Author SHA1 Message Date
Peter Steinberger
a6446347b1
fix(protocol): fail protocol:check when the published schema drifts (#133090)
dist/protocol.schema.json is gitignored and never committed, so the trailing
`git diff --exit-code` guard in protocol:check exited 0 unconditionally. The
Swift and Kotlin halves work because those files are tracked; the JSON half read
as verification while it could not fail, leaving schema drift to the slow QA-lab
scenario. scripts/prepush-ci.sh carried the same dead guard: its before/after
diff covered only the untracked artifact and a file that protocol:check:swift
never writes.

The artifact is a build output with no committed baseline, so it gets a contract
check instead of a diff. scripts/lib/protocol-schema-document.mts owns the
published document; protocol-gen builds through it, asserts required frame
definitions, frame ordering, discriminator mapping, and a non-empty method
catalog before writing through the shared generated-output helper. The QA-lab
verifier drops its duplicate envelope copy and compares the packed tarball
against that same owner.

The generated artifact is byte-identical to before.
2026-08-29 23:38:23 -07:00