Skip to content

Reject duplicate regression evidence across accepted codec formats #9

Description

@rmcdaniel

Problem

The regression-corpus validator does not normalize equivalent evidence across the accepted avro-value-golden-v1 and codec-regression-v1 formats. The adapters give the same Avro wire case different protocol-version identities and different semantic object shapes. As a result, an existing golden value, wire payload, and failure policy can be rewrapped as a new codec-regression fixture, receive a different semantic digest, increase the guarded codec count, and pass the official binding test without adding a new reproducer.

At commit 452b2fd, rewrapping the existing long_7 golden case as codec-regression-v1 is accepted as distinct evidence even though both entries carry the same schema, fingerprint, value, and wire bytes.

Acceptance criteria

  • Normalize semantically equivalent codec evidence across every accepted fixture format before duplicate detection, including protocol identity, decoded wire bytes, value/type information, and failure policy.
  • Reject a codec-regression fixture that only rewraps an existing Avro golden round-trip or rejection case. Such a fixture must not satisfy guarded corpus growth.
  • Add adversarial policy coverage for cross-format duplicates and for equivalent base64 wire bytes.
  • Preserve acceptance of genuinely new evidence and the existing immutability and explicit-supersession rules.
  • Keep every accepted fixture executable through the official Python binding.

Delete when

Delete when equivalent evidence has one canonical semantic identity across accepted formats and cross-format rewrapping can no longer increase the corpus or satisfy a guarded implementation change.

Metadata

Metadata

Assignees

No one assigned

    Labels

    authority:githubGitHub is the authoritative lifecycle record for this workbeta:compatibleMay be completed without changing the frozen beta contractkind:defectA public product behavior is incorrectpriority:P2Normal-priority product workrepo:sdk-pythonOwned by the Python SDK repositorystatus:doneDerived from the authoritative closed issue state

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions