From cd9f4ea23530b132a194d949bfbbfe580c2bf4bf Mon Sep 17 00:00:00 2001 From: David Hu Date: Tue, 19 May 2026 16:08:09 +0800 Subject: [PATCH] chore: increase merge suggestion stale re-run interval from 1h to 24h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The hourly stale re-run adds little value: all person-modifying operations (merge, split, move_faces, category change, detection, recluster) already call MarkDirty immediately, so re-running on unchanged data produces identical suggestions. The DirtyGeneration fix (PR #8) also closed the race condition where a concurrent MarkDirty could be silently lost. 24h is a more appropriate fallback interval — pure safety net for edge cases like a missed MarkDirty trigger, not a primary discovery mechanism. Co-Authored-By: Claude Sonnet 4.6 --- backend/internal/service/person_merge_suggestion_service.go | 2 +- backend/pkg/config/config.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/internal/service/person_merge_suggestion_service.go b/backend/internal/service/person_merge_suggestion_service.go index b6c89d1..f993088 100644 --- a/backend/internal/service/person_merge_suggestion_service.go +++ b/backend/internal/service/person_merge_suggestion_service.go @@ -345,7 +345,7 @@ func (s *personMergeSuggestionService) RunBackgroundSlice() error { if !s.state.Dirty { staleSeconds := s.config.People.MergeSuggestionStaleSeconds if staleSeconds <= 0 { - staleSeconds = 3600 + staleSeconds = 86400 } if !s.state.LastRunAt.IsZero() && time.Since(s.state.LastRunAt) > time.Duration(staleSeconds)*time.Second { s.state.Dirty = true diff --git a/backend/pkg/config/config.go b/backend/pkg/config/config.go index 1d098fc..b6e5cf5 100644 --- a/backend/pkg/config/config.go +++ b/backend/pkg/config/config.go @@ -96,7 +96,7 @@ const ( defaultMergeSuggestionMaxPairsPerRun = 200 defaultMergeSuggestionBatchSize = 100 defaultMergeSuggestionCooldownSeconds = 300 - defaultMergeSuggestionStaleSeconds = 3600 + defaultMergeSuggestionStaleSeconds = 86400 defaultClusteringIntervalMs = 300 defaultANNBuildBatchSize = 100 defaultANNBuildCPUDuty = 0.5