{"version":"2.1.246","anchor":"a-self-contained-git-implementation-for-folder-sync","canonical_anchor":"a-self-contained-git-implementation-for-folder-sync","heading":"A self-contained git implementation for folder sync","tier":"internal","area":"File Sync","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.246\/e\/a-self-contained-git-implementation-for-folder-sync","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.246","markdown":"### A self-contained git implementation for folder sync\n\nFolder sync now carries its own git-style object store and packfiles instead of the old journal.\n\n**What**\n\nFolder sync ships its own git: an append-only object store on disk, packfile encoding and decoding, bundle create and receive, and a cached file-hash index so unchanged files are not re-hashed. It replaces the old row-journal approach. Reachable only for sessions started against a folder, and an internal boolean decides whether the store gets attached at all.\n\n**Details**\n\n- Object store segment files are named `<session>.<seq>-<hex>.seg` and stamped `ccobjs`.\n- Packfile decoding resolves offset and reference deltas, rejects thin packs, and enforces decompression and object-count budgets.\n- Bundle receive checks prerequisites before applying.\n- The file-hash index persists as `stat-cache.json`.\n- The store refuses non-canonical objects, names in the style of `.git`, `.gitmodules` and `.gitattributes`, and objects over its size cap.\n\n**Evidence**\n\n`dir-sync object store: opened with `\n\n- Area: File Sync\n- Tier: Under the hood\n- Useful: 3\/5\n- Signal: 4\/5"}