[DEPRECATED] Go implementation of plcbundle

update mempool

+11 -10
+3
bundle/manager.go
··· 493 493 return 0, fmt.Errorf("failed to create new mempool: %w", err) 494 494 } 495 495 496 + oldMempool := m.mempool 496 497 m.mempool = newMempool 498 + 499 + oldMempool.Clear() 497 500 498 501 // ✨ Update DID index if enabled and track timing 499 502 var indexUpdateDuration time.Duration
+8 -10
internal/mempool/mempool.go
··· 199 199 // Remove taken operations 200 200 m.operations = m.operations[n:] 201 201 202 - // Adjust lastSavedLen to account for removed operations 203 - if m.lastSavedLen > 0 { 204 - if m.lastSavedLen > n { 205 - m.lastSavedLen -= n // Some saved ops remain 206 - } else { 207 - m.lastSavedLen = 0 // All saved ops were taken 208 - } 209 - } 202 + // ✨ FIX: ALWAYS reset tracking after Take 203 + // Take() means we're consuming these ops for a bundle 204 + // Any remaining ops are "new" and unsaved 205 + m.lastSavedLen = 0 206 + m.lastSaveTime = time.Now() 210 207 211 - // ✨ Mark dirty since state changed 212 - m.dirty = true 208 + // Mark dirty only if ops remain 209 + m.dirty = len(m.operations) > 0 210 + m.validated = false 213 211 214 212 return result, nil 215 213 }