# Surface.FS File Manifest Store ## Module Scanner ## Status IMPLEMENTED ## Description Persistent manifest store for scanner surface state, providing content-addressed caching of file system facets (layers, mounts, rootfs entries) with seal extraction for deterministic replay. ## Implementation Details - **File Manifest Store**: - `src/Scanner/__Libraries/StellaOps.Scanner.Surface.FS/FileSurfaceManifestStore.cs` - `FileSurfaceManifestStore` providing content-addressed storage for file system facets (layers, mounts, rootfs entries) - **Seal Extraction**: - `src/Scanner/__Libraries/StellaOps.Scanner.Surface.FS/FacetSealExtractor.cs` - `FacetSealExtractor` extracting deterministic seals from file system facets for replay verification - `src/Scanner/__Libraries/StellaOps.Scanner.Surface.FS/FacetSealExtractionOptions.cs` - Options for seal extraction behavior - **DI Registration**: - `src/Scanner/__Libraries/StellaOps.Scanner.Surface.FS/ServiceCollectionExtensions.cs` - DI registration for surface FS services - **Configuration**: - `src/Scanner/StellaOps.Scanner.WebService/Options/SurfaceManifestStoreOptionsConfigurator.cs` - WebService-side configuration for manifest store - **Tests**: - `src/Scanner/__Tests/StellaOps.Scanner.Surface.FS.Tests/FileSurfaceManifestStoreTests.cs` - Manifest store tests - `src/Scanner/__Tests/StellaOps.Scanner.WebService.Tests/SurfaceManifestStoreOptionsConfiguratorTests.cs` - Configuration tests ## E2E Test Plan - [ ] Store a file system facet in `FileSurfaceManifestStore` and verify it is retrievable by its content-addressed key - [ ] Verify content-addressed caching returns the same facet for identical content without re-storage - [ ] Extract a seal from stored facets using `FacetSealExtractor` and verify it is deterministic (same facets produce identical seals) - [ ] Verify the manifest store correctly handles layer, mount, and rootfs entry facets with correct metadata - [ ] Verify seal extraction supports deterministic replay by reproducing the exact same seal from the same inputs