fix(vault): only reset enrichment progress on new batch, not mid-drain

Start() is called each drain loop in processBatch to update total.
Only reset done=0 when transitioning from idle→running (new batch),
not when already running (same batch, total growing).
This commit is contained in:
viettranx committed 2026-04-12 13:35:06 +07:00
1 parent c3d07bf6e9
commit d58e0366fd
1 file changed
+6 -3
+6 -3
View File
@@ -50,15 +50,18 @@ func (p *EnrichProgress) broadcast(e EnrichEvent) {
}
// Start signals enrichment with updated total and tenant scope.
// Resets done counter so the progress bar starts from 0%.
// Only resets done counter when starting a new batch (was idle).
// Subsequent calls within the same batch just update the total.
func (p *EnrichProgress) Start(total int, tenantID uuid.UUID) {
p.mu.Lock()
defer p.mu.Unlock()
p.done = 0
if !p.running {
p.done = 0
}
p.total = total
p.tenantID = tenantID
p.running = true
p.broadcast(EnrichEvent{Phase: "enriching", Done: 0, Total: p.total, Running: true})
p.broadcast(EnrichEvent{Phase: "enriching", Done: p.done, Total: p.total, Running: true})
}
// AddDone increments completed count by n and broadcasts progress.