mirror of
https://github.com/samvallad33/vestige.git
synced 2026-04-25 00:36:22 +02:00
fix: guard consolidation triggers against recent activity
Triggers 2 (force after 6h stale) and 3 (mini-consolidation after 2h) fired immediately on fresh schedulers even when user was active, because they didn't check activity state. Added MIN_BRIEF_IDLE_MINS (5 min) guard so both triggers require a brief idle period before firing. Fixes test_consolidation_idle_trigger in CI. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
697c981e49
commit
26cee040a5
1 changed files with 14 additions and 4 deletions
|
|
@ -84,6 +84,9 @@ const DEFAULT_ACTIVITY_WINDOW_SECS: i64 = 300;
|
|||
/// Minimum idle time before consolidation can run (30 minutes)
|
||||
const MIN_IDLE_TIME_FOR_CONSOLIDATION_MINS: i64 = 30;
|
||||
|
||||
/// Minimum brief idle time for force/mini consolidation triggers (5 minutes)
|
||||
const MIN_BRIEF_IDLE_MINS: i64 = 5;
|
||||
|
||||
/// Connection strength decay factor
|
||||
const CONNECTION_DECAY_FACTOR: f64 = 0.95;
|
||||
|
||||
|
|
@ -270,13 +273,20 @@ impl ConsolidationScheduler {
|
|||
return true;
|
||||
}
|
||||
|
||||
// Trigger 2: >6h stale (force consolidation regardless of idle)
|
||||
if time_since_last >= Duration::hours(6) {
|
||||
// Brief idle: no activity in the last 5 minutes (shorter than full idle)
|
||||
let briefly_idle = self
|
||||
.activity_tracker
|
||||
.time_since_last_activity()
|
||||
.map(|d| d >= Duration::minutes(MIN_BRIEF_IDLE_MINS))
|
||||
.unwrap_or(true); // No activity ever = idle
|
||||
|
||||
// Trigger 2: >6h stale — force during any idle period (even brief)
|
||||
if time_since_last >= Duration::hours(6) && briefly_idle {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Trigger 3: Mini-consolidation every 2h if active
|
||||
if time_since_last >= Duration::hours(2) && !is_idle {
|
||||
// Trigger 3: Mini-consolidation every 2h during brief lulls (5-30 min idle)
|
||||
if time_since_last >= Duration::hours(2) && briefly_idle && !is_idle {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue