Skip to content

Contract Artifact Retention In echo-cas #512

Description

@flyingrobots

Migrated from Method backlog

This issue was created from a legacy filesystem backlog card. GitHub Issues are now the live work tracker; repository docs remain Method evidence.

Source backlog: docs/method/backlog/v0.1.0/PLATFORM_contract-artifact-retention-in-echo-cas.md
Original lane: v0.1.0
Original legend: PLATFORM

Original backlog card

Contract Artifact Retention In echo-cas

Status: implemented local boundary.

Depends on:

Why now

Echo's doctrine says echo-cas stores retained witnesses and cached readings,
but the contract-hosting path needs concrete retention rules for generated
contract artifacts and bounded optic readings.

CAS hashes name bytes. Semantic lookup keys name the question those bytes
answer. This matches existing echo-cas policy: CAS hashes are content-only,
while domain separation belongs in typed references and semantic coordinates
above the blob store.

This card also carries the modern replacement for the retired retention wording
in #244: Echo should stay holographic. It should retain witnesses, receipts,
coordinates, and cached bounded readings; it should not materialize the entire
graph state every tick. When memory or disk pressure appears, cache and index
eviction is legal storage policy, but required evidence must either be
rehydrated or produce an explicit obstruction.

What it should look like

Define and implement minimal retention for:

  • intent payload blobs
  • contract receipts
  • witness refs
  • reading payloads
  • reading envelopes
  • observer artifacts

Semantic lookup should include contract identity, schema hash, basis, observer
or intent kind, aperture or payload identity, and law/projection version where
applicable.

Storage tiers may use content-defined chunking for large retained artifacts or
reading payloads. Variable chunk sizes, MIME-aware chunk policy, and buzhash-like
chunk boundary selection are implementation options for deduplication and space
savings. Those choices are not causal semantics and must not affect Intent
identity, tick identity, receipt identity, read identity, or replay outcome.

The future retained-reading stack is WSC-backed and proof-ready: WSC provides
canonical columnar reading/checkpoint bytes, Verkle-style commitments may
authenticate WSC coordinates, IPA-style openings may support bounded apertures,
and echo-cas remains byte retention only.

Acceptance criteria

  • Stored contract receipt can be loaded by content hash.
  • Stored contract reading can be loaded by content hash.
  • Semantic lookup includes contract and schema identity.
  • Cached reading is not reused for a newer live frontier unless a proof of
    containment or equivalent witness relation exists.
  • Large retained payloads may be stored through chunked CAS layout without
    changing their semantic read identity.
  • Missing locally retained witness material returns obstruction or
    rehydration-required posture, not a fake cache hit.
  • Garbage collection remains storage policy and does not mutate truth.

Non-goals

  • Do not build a full distributed CAS protocol.
  • Do not implement proof-carrying retention.
  • Do not add app-specific indexes.
  • Do not make CAS content hashes stand in for reading identity.
  • Do not change echo-cas content-hash policy for contract semantics.

Activity

  1. coderabbitai commented on Jun 1, 2026

    @coderabbitai
    Contributor
    🔗 Related PRs

    #145 - AIΩN bridge doc + tick receipts (#144) [merged]
    #323 - Witnessed suffix admission evaluator [merged]
    #326 - Echo contract hosting roadmap [merged]
    #371 - feat(core): advance v0.1 contract evidence and retention [merged]
    #380 - feat(core): expose retained evidence posture on readings [merged]


    📝 Issue Planner

    Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.

    • Create Plan

    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

  2. flyingrobots commented on Jul 3, 2026

    @flyingrobots
    OwnerAuthor

    Closing from the 2026-07-03 issue fate audit. The useful work here is complete or superseded by the current GitHub-native release/goalpost structure; active follow-through now lives in the narrower open Echo issues.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureFeature umbrella (epic)lane:releaseMethod lane release.legend:platformMethod legend platform.specSpec/Design document

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions