From f148b3a0e4b032c0acf835cda6d2935e19b9f67e Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Wed, 28 Jan 2026 21:00:14 +0000 Subject: feat(purgatory): track event source for filtered expiry logging MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add EventSource enum (Direct/Sync) to purgatory entries to distinguish between user-submitted events and sync-fetched events. This enables: - WARN-level logging for direct submissions that expire (user should know) - DEBUG-level logging for sync-fetched expirations (expected behavior) - Source upgrade from Sync→Direct if user submits after sync - Expiry timer reset on source upgrade (fresh 30-min window for user) The source is included in [PURGATORY_EXPIRED] logs as source=direct or source=sync for easy filtering. --- src/nostr/builder.rs | 2 +- src/nostr/policy/state.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/nostr') diff --git a/src/nostr/builder.rs b/src/nostr/builder.rs index 629c111..9211972 100644 --- a/src/nostr/builder.rs +++ b/src/nostr/builder.rs @@ -399,7 +399,7 @@ impl Nip34WritePolicy { // Add to purgatory self.ctx .purgatory - .add_pr(event.clone(), event.id.to_hex(), commit.clone()); + .add_pr(event.clone(), event.id.to_hex(), commit.clone(), is_synced); WritePolicyResult::Reject { status: true, // Client sees OK diff --git a/src/nostr/policy/state.rs b/src/nostr/policy/state.rs index f94f004..52f0483 100644 --- a/src/nostr/policy/state.rs +++ b/src/nostr/policy/state.rs @@ -207,7 +207,7 @@ impl StatePolicy { // (add_state automatically enqueues for background sync) self.ctx .purgatory - .add_state(event.clone(), state.identifier.clone(), event.pubkey); + .add_state(event.clone(), state.identifier.clone(), event.pubkey, is_synced); tracing::info!( "state event added to purgatory: eventid: {}, identifier: {}", -- cgit v1.2.3