Skip to content

Define the echo-cas adapter and transaction boundary #22

Description

@flyingrobots

Outcome

Define how Echo consumes Keep as a physical content engine while preserving the boundary that Echo owns causal meaning and Keep owns exact physical bytes.

Dependencies

Blocked by #13, #16, #19, and #20.

Contract scope

The design must specify:

  • conversion between Keep BlobId and Echo content identity;
  • mapping from Echo semantic retention decisions to Keep retention namespaces and generations;
  • stage, verify, retain, and Echo admission ordering;
  • idempotency and reconciliation after interruption at every cross-system boundary;
  • receipt fields binding logical identity, representation evidence, generation, and verification posture;
  • error translation without erasing Keep's precise causes;
  • sync versus async adapter posture;
  • test/reference backends versus durable production backend;
  • version and feature compatibility.

Acceptance criteria

  • Keep's core API imports no Echo, Graft, Git, WARP, or application-policy type.
  • Echo never commits a causal reference to content that lacks required verified physical retention.
  • Physical material staged but not causally admitted has a documented orphan/reconciliation path.
  • Rechunking, compaction, encryption, and storage migration cannot move Echo's logical content identity.
  • Keep retention evidence is not described as proof of Echo lawfulness.
  • Failure and retry behavior is specified for every cross-system step.
  • The design includes a sequence diagram and crash-state table.
  • Alternatives including embedding Keep directly into Graft and replacing Echo identity are evaluated.
  • No subprocess or Node sidecar is required in the production storage path.

Non-goals

  • Implementing the adapter.
  • Defining Graft workspace policy.
  • Migrating existing git-cas stores.

Activity

  1. added
    kind:designDesign contract or executable specification
    area:recoveryCrash states, reconciliation, and recovery
    area:integrationEcho, Graft, and external integration boundaries
    on Jul 20, 2026
  2. added
    area:identityLogical content identity and typed coordinates
    area:retentionRetention namespaces, roots, and generations
    kind:adrArchitecture decision record required
    on Jul 20, 2026
  3. flyingrobots commented on Aug 15, 2026

    @flyingrobots
    OwnerAuthor

    Disposition: completed and superseded by the merged Echo boundary decision in flyingrobots/echo#721 and Keep authenticated-reconstruction contract in #77. Echo now owns the physical-content port, semantic admission, transaction choreography, and adapter policy; Keep owns exact-byte identity, authenticated reconstruction, and generic durable physical capabilities. The remaining Keep #19 and #20 work is an implementation gate, not an unmade boundary decision. Implementation sequencing now lives in flyingrobots/echo#722. Closing this duplicate decision queue prevents the two repositories from drifting.

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

    area:identityLogical content identity and typed coordinatesarea:integrationEcho, Graft, and external integration boundariesarea:recoveryCrash states, reconciliation, and recoveryarea:retentionRetention namespaces, roots, and generationskind:adrArchitecture decision record requiredkind:designDesign contract or executable specificationpriority:P2Should fix

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions