- Added a bounded, coalescing client repair queue with retry limits, exponential backoff, stale-generation suppression, concurrency controls, and shutdown draining.
- Added optional restart-safe repair journaling with topology identity, owner records, advisory locking, and pending-task recovery.
- Added replica-count validation, proxy-mode rejection, and disabled incompatible asynchronous writes when replication is enabled.
- Added copy-indexed replica migration plans with placement-generation validation, source-copy reads, local-source handling, and pre-I/O rejection of stale or malformed plans.
- Added replica-aware Simple Hash and Random Slicing topology mutation support, including expansion, shrink, CutShift, and migration integrity checks.
- Added daemon-side mutation safety checks and checkpoint recovery for replicated topologies.
- Added integration and unit coverage for daemon loss, restart recovery, surviving-copy reads, replicated metadata/data operations, repair journals, migration planning, and Random Slicing replica placement.
### Changed
- The canonical path resolver is now exposed through `gkfs::path::resolve()`; the old resolver API was removed ([!318](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/318)).
- Cppcheck findings in libc-interception and callback-ABI code remain documented as intentional compatibility cases; unsafe signature or pointer-cast changes were not applied ([!318](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/318)).
- Optimized count-only filtered directory listing (`sfind` with `-C`) ([!307](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/307))
- Avoid client-side buffer allocation and memory exposure for count-only queries.
- Avoid daemon-side dummy entries vector allocation and resizing during RocksDB iteration.