fix(clients): drop tombstone gate that blocked re-import after delete

ClientService.Delete tombstones a just-deleted email for 90s to keep a
late node snapshot from resurrecting it. The same check was also gating
the create branch of SyncInbound — which silently dropped clients on any
legitimate re-add (delete inbound + re-import within 90s left the
clients table empty even though settings.clients carried the rows).

The snapshot-side caller in setRemoteTraffic already filters tombstoned
emails before handing the list to SyncInbound, so removing the duplicate
check inside SyncInbound preserves the protection where it's needed and
unblocks user-initiated re-imports.

While here, mirror the addInbound shape in importInbound (NodeID=0→nil
normalisation, early return on error, broadcastInboundsUpdate) and fan
out a notifyClientsChanged from add/del/update/import so an open Clients
page picks up settings.clients reconciliation without a manual refresh.
This commit is contained in:
MHSanaei
2026-05-23 23:05:43 +02:00
parent 4c71669815
commit 6185db586a
2 changed files with 15 additions and 7 deletions
-3
View File
@@ -208,9 +208,6 @@ func (s *ClientService) SyncInbound(tx *gorm.DB, inboundId int, clients []model.
return err
}
if errors.Is(err, gorm.ErrRecordNotFound) {
if isClientEmailTombstoned(email) {
continue
}
if err := tx.Create(incoming).Error; err != nil {
return err
}