diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3135fe7b..9c0d0864 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -26,7 +26,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
(adversarial review): WAL segment rotation re-creates a missing parent
directory (`mkdir -p
` after an incident no longer leaves the nested
`wal-v3/` dir dead), and any tick-flush failure arms a 1s retry backoff so
- no flush error class can ever loop at the 1ms tick cadence again.
+ no flush error class can ever loop at the 1ms tick cadence again. The
+ latch is unix-only by design (the non-unix statvfs stub never fails); the
+ latch-behavior unit test is `cfg(unix)`-gated accordingly.
### Performance
- **Disk-offload: shard event loop no longer pays manifest-commit fsyncs
diff --git a/src/shard/disk_monitor.rs b/src/shard/disk_monitor.rs
index ef1085d3..81d440d3 100644
--- a/src/shard/disk_monitor.rs
+++ b/src/shard/disk_monitor.rs
@@ -563,6 +563,11 @@ mod tests {
d
}
+ // unix-only: the non-unix `query_free_bytes` stub always returns `Ok`,
+ // so the latch (by design) never engages on Windows — this test would
+ // fail its `dir_lost()` assertion there. The Windows Check job runs on
+ // main pushes only, so a missing gate here is invisible on the PR.
+ #[cfg(unix)]
#[test]
fn test_dir_lost_latches_pauses_and_self_heals() {
let d = scratch_dir("latch");