PR Review Checklist
Findings come first. Do not approve a change because tests pass if it weakens metadata atomicity, object publish safety, watch/snapshot retention, or package boundaries.
Scope
- Does the PR change one logical boundary?
- Are unrelated metadata schema, object, client, FUSE, docs, or example changes mixed together?
- Is every behavior change described?
- Does every non-merge commit include
Signed-off-by?
Boundaries
- Does the package import direction match the code contract?
- Did a lower layer import a higher layer for convenience?
- Does
nokvfs-typesremain storage-neutral? - Does
nokvfs-metakeep schema, command execution, Holt binding, and service semantics inside the metadata boundary? - Does
nokvfs-objectavoid namespace metadata? - Does
nokvfs-clientresolve paths throughnokvfs-metainstead of importing layout or storage internals? - Does
nokvfs-fusestay inode-first and callnokvfs-metarather than the path SDK? - Does
nokvfs-clikeep thenokv-fsbinary thin overclient/fuseinstead of duplicating metadata semantics?
Correctness
- Are predicates checked before mutations and applied atomically?
- Can a failed object publish or metadata publish leave user-visible partial state?
- Are duplicate request ids deterministic?
- Does remove/replace return old body descriptors when GC needs them?
- Are snapshot/watch retention and history GC rules explicit?
- Does a read path observe a complete dentry projection or fall back safely?
Performance
- Does a hot metadata operation avoid unnecessary history writes?
- Does
ReadDirPlushit dentry projection without inode fanout on the common path? - Does prefix-empty use Holt prefix iteration with early exit?
- Does the change report benchmark evidence when it claims speedup?
Tests
- Is there a package test for each local invariant?
- Is there a contract test for metadata commands or object-store behavior?
- Are S3/RustFS integration tests env-gated rather than hard-required?
- Are error paths and predicate failures covered?
Required Validation
bash
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
git diff --check