Skip to content

Explore a read-only FUSE projection over verified CAS content #66

Description

@flyingrobots

Outcome

Determine whether Keep can expose an admitted durable snapshot as a read-only FUSE filesystem while preserving the core law: every byte returned for a content identity is exact, or the read refuses.

Why this could matter

A filesystem projection would let ordinary tools navigate and read verified CAS content without teaching each consumer the Keep API. The useful product is a narrow compatibility adapter, not a mutable POSIX storage layer.

Dependencies

Required design questions

  • Define the namespace: identity-addressed files, manifest/layout trees, named retained roots, or a deliberately limited combination.
  • Prove how random reads satisfy the full-file BlobId contract; the existing narrower range-read receipt must not be silently upgraded into whole-blob verification.
  • Define stable inode, size, timestamp, permission, and directory-order semantics without clocks, host-order iteration, or identity aliases.
  • Bind every open handle to one immutable catalog and retention snapshot.
  • Specify kernel page-cache and invalidation behavior across verification failure, recovery, retention release, and unmount.
  • Preserve bounded memory and streaming reads; no hidden whole-blob materialization.
  • Map missing, corrupt, ambiguous, and unsupported state to deterministic typed adapter errors and appropriate FUSE status codes.
  • Audit the FUSE dependency, platform support, privilege model, unmount/recovery behavior, and crash surface.

Acceptance criteria

  • A written ADR decides whether the adapter is viable and names its authority and verification boundaries.
  • A read-only namespace contract has no writable, rename, truncate, link, metadata-mutation, or repair operations.
  • Deterministic tests prove exact namespace ordering, inode stability, snapshot pinning, short/random reads, verification refusal, and unmount cleanup against a fake FUSE port.
  • A Linux-only proof mounts a fixture when the environment supports FUSE and remains skippable without weakening normal CI.
  • Benchmarks measure lookup latency, read throughput, verification work, allocations, and page-cache effects.
  • No mount is exposed until durable recovery and retention pins are implemented.

Non-goals

  • A writable filesystem.
  • Treating paths, inode numbers, or kernel cache presence as content identity.
  • Silent repair, partial trust, network filesystems, or cross-platform claims without dedicated evidence.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:integrationEcho, Graft, and external integration boundariesarea:readReconstruction, streaming, and byte-range readsarea:recoveryCrash states, reconciliation, and recoverykind:adrArchitecture decision record requiredkind:designDesign contract or executable specificationpriority:P3Could fix

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions