From eac6ba14102bf0630c35ccab48a16bc7f8a4e9b4 Mon Sep 17 00:00:00 2001 From: mleku Date: Wed, 10 Sep 2025 20:34:35 +0100 Subject: [PATCH] Enhance `HandleDelete` to skip newer events based on delete event timestamp and improve logging for skipped and deleted events. --- app/handle-delete.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/handle-delete.go b/app/handle-delete.go index 2ea8ff2..7c41c60 100644 --- a/app/handle-delete.go +++ b/app/handle-delete.go @@ -85,8 +85,16 @@ func (l *Listener) HandleDelete(env *eventenvelope.Submission) (err error) { log.I.F("HandleDelete: skipping non-replaceable event %s - a-tags only apply to replaceable events", hex.Enc(ev.ID)) continue } - log.I.F("HandleDelete: deleting event %s via a-tag %d:%s:%s", - hex.Enc(ev.ID), at.Kind.K, hex.Enc(at.Pubkey), string(at.DTag)) + + // Only delete events that are older than or equal to the delete event timestamp + if ev.CreatedAt > env.E.CreatedAt { + log.I.F("HandleDelete: skipping newer event %s (created_at=%d) - delete event timestamp is %d", + hex.Enc(ev.ID), ev.CreatedAt, env.E.CreatedAt) + continue + } + + log.I.F("HandleDelete: deleting event %s via a-tag %d:%s:%s (event_time=%d, delete_time=%d)", + hex.Enc(ev.ID), at.Kind.K, hex.Enc(at.Pubkey), string(at.DTag), ev.CreatedAt, env.E.CreatedAt) if err = l.DeleteEventBySerial( l.Ctx, s, ev, ); chk.E(err) {