fix: 6 bugs found during fresh-eyes code review

1. cache: record diagnostic miss before early-return on modified()/duration_since() failure
2. dump-state: resolve all cache_dir template vars ({cache_version}, {config_hash})
3. config: remove dead breakpoint_hysteresis field from GlobalConfig (breakpoints.hysteresis is used)
4. config: align Rust Default cache_dir with defaults.json template
5. vcs: apply branch truncation in render_stale_cache (--no-shell path)
6. vcs: fix jj prefetch retry on already-failed command (flatten→unwrap_or_else)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Taylor Eernisse
2026-02-06 16:11:02 -05:00
parent 4c9139ec42
commit 4e38b8259b
4 changed files with 45 additions and 29 deletions

View File

@@ -95,8 +95,20 @@ impl Cache {
return None;
}
};
let modified = meta.modified().ok()?;
let age = SystemTime::now().duration_since(modified).ok()?;
let modified = match meta.modified().ok() {
Some(m) => m,
None => {
self.record_diag(key, false, None);
return None;
}
};
let age = match SystemTime::now().duration_since(modified).ok() {
Some(a) => a,
None => {
self.record_diag(key, false, None);
return None;
}
};
let age_ms = age.as_millis() as u64;
let effective_ttl = self.jittered_ttl(key, ttl);
if age < effective_ttl {