Skip to content

Implement opaque asset, page, and deterministic bundle handles #89

Description

@flyingrobots

Outcome

Expose validated opaque handles for immutable assets, bounded pages, and deterministic structured bundles so applications never manage segment coordinates, catalog locations, or physical object identifiers.

Dependencies

Invariant impact

A handle must identify one completely validated immutable graph and must never imply durability, retention, publication, or application meaning that its accompanying receipt does not establish.

Acceptance criteria

  • Asset handles bind exact BlobId, LayoutId, and admitted representation evidence.
  • Page handles enforce explicit count-and-byte bounds and immutable exact bytes.
  • Bundle handles use a canonical deterministic descriptor grammar with duplicate, order, depth, fanout, and aggregate-byte refusal.
  • Traversal is streaming and bounded; named-member reads do not materialize unrelated members.
  • Handles contain no physical paths, segment offsets, catalog generations, keys, or application labels.
  • Retain and publish operations return generation-scoped evidence separate from the handle itself.
  • Golden, mutation, corruption, graph-cycle, property, fuzz, and public-contract tests pass.
  • Re-encoding or physical relocation preserves logical handles when their governed logical graph is unchanged.

Non-goals

  • Mutable documents.
  • Application-specific schemas or causal semantics.
  • Using handles as access-control tokens.
  • Hiding unsupported partial verification behind an opaque type.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:formatCanonical durable formats and decodingarea:identityLogical content identity and typed coordinatesarea:integrationEcho, Graft, and external integration boundariesarea:retentionRetention namespaces, roots, and generationskind:implementationProduction implementation workkind:testTest infrastructure or failure-mode evidencepriority:P2Should fix

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions