Skip to content

Make structured-output authoring consistent and add boundary-parity coverage #573

Closed as not planned

Description

@jeremi

Follow-up to #560 and #565.

Why

The structured claim implementation is bounded and safe, but project authors currently use different idioms for scalar and composite declarations. Recursive representations also cross Registryctl, Relay, Rhai, and Notary boundaries, so focused parity coverage would make future changes safer.

This is a developer-experience and regression-hardening follow-up. It is not a blocker for #565.

Scope

  • Choose one familiar nullable authoring idiom across scalar, object, and array declarations, with a compatibility plan if the current syntax has shipped.
  • Keep an aggregate composite byte budget as an independent safety control. Consider a safe derived default when omitted, while retaining an explicit advanced override.
  • Improve discriminator and nested-path diagnostics for malformed recursive declarations.
  • Add boundary-parity tests from Registryctl through Relay/Rhai and Notary for:
    • escaped control characters and non-ASCII strings/keys,
    • exact bounded integers,
    • nullable and required nested values,
    • byte caps at N and N - 1,
    • platform depth, field, item, and expanded-node limits.

Non-goals

  • Do not consolidate the boundary-specific Rust types into one shared product type merely to remove duplication.
  • Do not remove independently useful aggregate byte budgets.
  • Do not expand the structured-claim feature set.

Activity

  1. added this to the 1.0 milestone on Jul 30, 2026
  2. jeremi commented on Jul 30, 2026

    @jeremi
    MemberAuthor

    Triage decision for 1.0: required before the authoring contract freezes.

    The structured-claim surface has just entered the maintained product. Carrying different nullable idioms for scalar and composite declarations into 1.0 would make the public configuration harder to learn and force long-term compatibility with accidental syntax.

    Choose one familiar syntax now and add focused end-to-end parity tests at the existing product boundaries. Keep the aggregate composite byte ceiling explicit and advanced. Do not add a derived default, shared cross-product type, new structured-claim capability, or exhaustive framework merely for symmetry. The purpose of this ticket is to remove authoring inconsistency and lock the current safety bounds, not expand them.

  3. jeremi commented on Aug 13, 2026

    @jeremi
    MemberAuthor

    Closing as not planned after the Registry Notary retirement in #644 and the Relay V1 and registryctl removal in #716. The acceptance criteria depend on retired cross-product contracts, shared machinery, or implementation paths. If the underlying outcome remains valuable, it needs a new issue scoped to the current Evidence, Relay V2, Manifest, or Platform boundary.

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions