Skip to content

feat(metaserver)!: define Classic publisher v2 - #35

Merged
zoeyrose merged 6 commits into
mainfrom
feat/classic-publisher-v2
Aug 14, 2026
Merged

feat(metaserver)!: define Classic publisher v2#35
zoeyrose merged 6 commits into
mainfrom
feat/classic-publisher-v2

Conversation

@zoeyrose

@zoeyrose zoeyrose commented Aug 14, 2026

Copy link
Copy Markdown
Member

Summary

  • Define the independently signed Classic publisher-v2 route, profile, and strict canonical Go codec using accessCodeRequired.
  • Add the normative schema and language-neutral signed positive, negative, boundary, cross-profile, and v1-to-v2 replay-lineage fixtures.
  • Freeze Classic v1 with its original human-password meaning and document the irreversible per-identity v2 upgrade and global retirement gates without changing Game Protocol 1.
  • Include the new contract artifacts in aggregate validation and release packaging.

Coordinates

  • Issue: Closes feat(metaserver)!: define Classic access-code publisher v2 #33
  • Base: main at c8242676d1b90deeca7c215cf26aba4102b784a5
  • Head: feat/classic-publisher-v2 at 4840da01b2179a3850b4ab20c2c9e2bf20c3db09
  • Worktree: /workspaces/atrinik/workspace/worktrees/protocol/issue-33-classic-publisher-v2
  • Commits: 1c80bb0 (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.sh
  • git diff --check

The 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 passwordRequired semantics 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.

@zoeyrose zoeyrose moved this to Review in Atrinik work Aug 14, 2026
@zoeyrose
zoeyrose marked this pull request as ready for review August 14, 2026 03:21
@zoeyrose
zoeyrose merged commit 4cf7d8b into main Aug 14, 2026
8 checks passed
@zoeyrose
zoeyrose deleted the feat/classic-publisher-v2 branch August 14, 2026 03:53
@github-project-automation github-project-automation Bot moved this from Review to Done in Atrinik work Aug 14, 2026
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 2.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

feat(metaserver)!: define Classic access-code publisher v2

1 participant