mirror of
https://github.com/spacedriveapp/spacedrive.git
synced 2026-10-31 05:20:17 -04:00
A machine needs full local search over every file and a size figure the analyser can trust. Neither is the same question as what someone chose to keep, and the sources migration collapsed the two. A partition is keyed by source id today and routed by longest prefix, so a source nested inside another forks rather than narrows: two partitions, two snapshots, two ledgers, and two uuids for one file. A tag applied through one root is invisible through the other, which is the second-namespace problem between two filesystem sources. P2.7 keys the arena by medium instead. One drive, one arena, one snapshot, whatever is persisted from it. A source says persist this subtree and owns a data.db, so nesting is ordinary because the nested things are no longer the same thing. The arena mints identity once per medium and a source adopts what is already there, which is both what stops the fork and what makes creating a source over mapped files fast. A path under no source still has a uuid and still cannot carry an assertion, since assertions live in a source store. Choosing to keep something is what gives it somewhere to keep things. Also records the completeness cost. An internal volume walks with default rules, so /Library, ~/Library, node_modules and gitignored files never enter the map: 262 GB indexed against roughly 900 GB used on a 1 TB drive. Rules become view-time lenses and the walk records what it can read, which takes a 2.1M entry map to somewhere between 5 and 8M, and 1.0 GB resident to between 2.5 and 4. collection_flags already has room for a filtered bit. Settles the nesting question in the Open register. Both live documents were right about their own half: one filesystem owns one record namespace, and that namespace is the arena rather than the source.