Skip to content

Contract Retention And Semantic Lookup Seams #513

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-retention-and-semantic-lookup-seams.md
Original lane: v0.1.0
Original legend: PLATFORM

Original backlog card

Contract Retention And Semantic Lookup Seams

Status: implemented local boundary; retained evidence refs complete.

Depends on:

Why now

Large retained artifacts and bounded readings need semantic lookup above raw
CAS identity. Full materialization is allowed as a cache, never as canonical
truth.

What it should look like

Keep echo-cas content-only, but add semantic contract refs above CAS:

  • contract family;
  • schema/type/layout identity;
  • codec and hash algorithm;
  • blob or fragment role;
  • basis coordinate;
  • retention tier.

Add a bounded blob reader seam if BlobStore::get Arc<[u8]> cannot support
bounded observers without full materialization. This is retained-payload lookup,
not a streaming subscription surface.

Core now also exposes retained evidence references above the byte-retention
layer:

  • RetainedEvidenceCoordinate names contract identity, retained role, and
    semantic digest;
  • RetainedEvidenceRef binds that coordinate to content hash and byte length;
  • RetainedEvidencePosture returns available evidence or a typed
    MissingRetention obstruction.

Acceptance criteria

  • Contract payloads can refer to retained blob fragments by CAS ref.
  • Bounded contract queries can read retained byte ranges under a budget.
  • Retained contract artifacts, receipt material, witness refs, reading
    envelopes, and reading payloads can be looked up by semantic coordinates.
  • If retention is unavailable, lookup returns typed obstruction.
  • GC or compaction cannot silently produce false successful retained readings.
  • Cache hits are accepted only when the semantic coordinate matches.
  • Retained reading refs are not query identities.
  • Reading payload and reading-envelope references remain distinct roles.

Non-goals

  • Do not redefine wormholes as rope chunks, portals, or state zoom.
  • Do not make CAS content hashes stand in for semantic reading identity.
  • Do not build a full distributed storage protocol in this slice.

Activity

  1. coderabbitai commented on Jun 1, 2026

    @coderabbitai
    Contributor
    🔗 Related PRs

    #326 - Echo contract hosting roadmap [merged]
    #365 - feat(wesley): emit query observer host helpers [merged]
    #368 - feat(core): connect installed contract intent pipeline [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