Browse Source
Real blockvol integration: - BlockVol.StatusSnapshot() reads actual fields: WALHeadLSN ← nextLSN-1, WALTailLSN ← wal.Tail(), CommittedLSN ← flusher.CheckpointLSN(), CheckpointLSN ← super.WALCheckpointLSN, CheckpointTrusted ← super.Validate()==nil weed/storage/blockvol/v2bridge/: - Reader wraps real BlockVol, implements ReadState() → BlockVolState - Lives in weed/ module (can import blockvol directly) sw-block/bridge/blockvol/ contract interfaces: - BlockVolReader: ReadState() (weed-side implements) - BlockVolPinner: HoldWALRetention/HoldSnapshot/HoldFullBase → release func - BlockVolExecutor: StreamWALEntries/TransferSnapshot/TransferFullBase/TruncateWAL - StorageAdapter refactored to consume interfaces (not push-based) - PushStorageAdapter for tests Handoff boundary (E5): - sw-block/ defines contracts, weed/ implements them - sw-block/ does NOT import weed/ - No cross-module circular dependency Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>feature/sw-block
2 changed files with 101 additions and 0 deletions
Loading…
Reference in new issue