From f30c386fbf37013150588678c0ec13f02c354f8d Mon Sep 17 00:00:00 2001 From: Hadi <112569860+anotherhadi@users.noreply.github.com> Date: Fri, 10 Apr 2026 23:38:27 +0200 Subject: [PATCH] Pin the search in demo mode Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com> --- back/internal/search/demo.go | 2 ++ back/internal/search/manager.go | 3 +++ back/internal/search/search.go | 1 + 3 files changed, 6 insertions(+) diff --git a/back/internal/search/demo.go b/back/internal/search/demo.go index 65cbde1..3206eb1 100644 --- a/back/internal/search/demo.go +++ b/back/internal/search/demo.go @@ -21,6 +21,7 @@ func (m *Manager) InjectDemoSearches() { InputType: tools.InputTypeEmail, Profile: "default", StartedAt: now.Add(-2 * time.Hour), + pinned: true, PlannedTools: []ToolStatus{ {Name: "user-scanner", ResultCount: ptr(10)}, {Name: "github-recon", ResultCount: ptr(3)}, @@ -77,6 +78,7 @@ func (m *Manager) InjectDemoSearches() { InputType: tools.InputTypeUsername, Profile: "default", StartedAt: now.Add(-30 * time.Minute), + pinned: true, PlannedTools: []ToolStatus{ {Name: "user-scanner", ResultCount: ptr(10)}, {Name: "github-recon", ResultCount: ptr(0)}, diff --git a/back/internal/search/manager.go b/back/internal/search/manager.go index d39ded5..361fde7 100644 --- a/back/internal/search/manager.go +++ b/back/internal/search/manager.go @@ -131,6 +131,9 @@ func (m *Manager) purgeExpired() { m.mu.Lock() defer m.mu.Unlock() for id, s := range m.searches { + if s.pinned { + continue // demo/pinned searches are never purged + } ft := s.FinishedAt() if ft.IsZero() { continue // still running diff --git a/back/internal/search/search.go b/back/internal/search/search.go index 67679c9..d21c06c 100644 --- a/back/internal/search/search.go +++ b/back/internal/search/search.go @@ -32,6 +32,7 @@ type Search struct { PlannedTools []ToolStatus cancelFn context.CancelFunc + pinned bool // if true, never purged by the cleanup loop mu sync.RWMutex events []tools.Event