feat(metaserver)!: define Classic publisher v2 - #35
Merged
Conversation
|
🎉 This PR is included in version 2.0.0 🎉 The release is available on:
Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
accessCodeRequired.Coordinates
mainatc8242676d1b90deeca7c215cf26aba4102b784a5feat/classic-publisher-v2at4840da01b2179a3850b4ab20c2c9e2bf20c3db09/workspaces/atrinik/workspace/worktrees/protocol/issue-33-classic-publisher-v21c80bb0(feat(metaserver)!: define Classic publisher v2),1d3a50b(fix(metaserver): close Classic v2 conformance gaps),7c33c33(fix(metaserver): make retirement fixtures exhaustive),aba06bf(fix(metaserver): bind migration fixtures to identities),4f823ac(fix(metaserver): execute retirement recovery vectors),4840da0(fix(metaserver): install complete v2 migration state)Validation
tools/validate.shgit diff --checkThe aggregate contract passed at the recorded head, including deterministic generation/drift, Buf lint/breaking checks, Go vet/unit/race/fuzz validation, Rust format/Clippy/tests/docs/Windows build, dependency/license policy, JSON fixtures and schemas, and release-package checksums.
Compatibility and consumers
Classic v1 remains frozen and independently authenticated, including deprecated Go aliases for its released exported names and a strict v1 body consumer that rejects v2. Classic v2 has a distinct route, schema, signature tag, and API profile; bidirectional cross-version vectors reject both body and signature replay. Exhaustive language-neutral negatives cover field/endpoint aliases and every retained identity, certificate, signature, digest, coordinate, and domain failure class. Executable before/request/expected-after vectors bind every lineage anchor and request to a cryptographically verified certificate identity, preserve a second unaffected identity, prevent uint64 rollover, define exact crash/race recovery, retire v1 presence and artifacts, and make an accepted upgrade irreversible. A separate executable transition defines the human-activated, durable, one-way global v1 retirement and fixed 410 response. Publication-state vectors define the privacy boundary for public and private bodies. Game Protocol 1 schemas, generated models, fixtures, and
passwordRequiredsemantics are unchanged.The ordered consumers remain atrinik/metaserver-worker#41 and atrinik/classic#155 after this source gate merges. Runtime verification is not applicable to this repository-only contract leaf: the replacement protocol component has no wrapper build/runtime adapter, and the Worker/Classic implementations belong to later program stages.