| … | … | @@ -73,7 +73,8 @@ export class OverlayRepoStore { |
| 73 | 73 | |
| 74 | 74 | async del (collection, rkey) { |
| 75 | 75 | try { fs.unlinkSync(this._pathFor(collection, rkey)) } catch (e) { if (!e || e.code !== 'ENOENT') throw e } |
| 76 | // The file IS the source of truth; overlay index prune is a Phase-2 concern (evictContent). | |
| 76 | // Record the deletion in the overlay's change feed so it propagates to peers (attachReplication). | |
| 77 | if (this._overlay) { try { await this._overlay.unregisterFile(this._overlayPath(collection, rkey)) } catch {} } | |
| 77 | 78 | try { fs.rmdirSync(join(this._recordsDir, collection)) } catch {} // best-effort: drop an empty collection dir |
| 78 | 79 | } |
| 79 | 80 |
| … | … | @@ -1,6 +1,6 @@ |
| 1 | 1 | { |
| 2 | 2 | "name": "atproto-store", |
| 3 | "version": "0.0.3", | |
| 3 | "version": "0.0.4", | |
| 4 | 4 | "description": "Holepunch-native atproto repo store \u2014 records in a classic Hyperbee (collection/rkey -> DAG-CBOR). The P2P home; the atproto-repo module is the bridge serializer over it.", |
| 5 | 5 | "type": "module", |
| 6 | 6 | "main": "lib/repo-store.js", |