Parent
Native sub-issue of #901. This issue must block #901 and does not expand its acceptance criteria.
Objective
Represent a generation's authoritative graph inventory as a compact authenticated content-addressed root so adding bounded immutable topology shards does not copy a generation-sized manifest or retain unreachable payloads.
Requirements
- Publish canonical graph payloads and a bounded-fanout authenticated manifest atomically with CURRENT.
- Reuse unchanged immutable objects without copying their bytes.
- Trace every live generation, checkpoint, and lease before bounded garbage collection.
- Preserve v1 migration, crash recovery, integrity, symlink rejection, and ordinary generation readers.
- Keep publication and GC work aggregate-observable and content-free.
Acceptance criteria
- Repeated append publications hash/write only changed descriptors and payloads within deterministic bounds.
- Interrupted publication leaves the prior generation authoritative; acknowledged publication survives reopen.
- GC never removes objects reachable from CURRENT, retained generations, checkpoints, or live leases.
- Corrupt, cyclic, oversized, traversal, duplicate-reference, and wrong-digest manifests fail closed.
- Storage tests and ordinary project reopen cover migration and the compact-root format.
Non-goals
Topology shard writing, UUID endpoint lookup, the public construction session, or Graph500 orchestration; those remain sibling #901 work.
Parent
Native sub-issue of #901. This issue must block #901 and does not expand its acceptance criteria.
Objective
Represent a generation's authoritative graph inventory as a compact authenticated content-addressed root so adding bounded immutable topology shards does not copy a generation-sized manifest or retain unreachable payloads.
Requirements
Acceptance criteria
Non-goals
Topology shard writing, UUID endpoint lookup, the public construction session, or Graph500 orchestration; those remain sibling #901 work.