From afb538b1e17d9e72d641d857f3e03c5e635f2042 Mon Sep 17 00:00:00 2001 From: Nick Mills-Barrett Date: Fri, 30 Jan 2026 16:16:44 +0000 Subject: [PATCH] backfill: fix check for bundled data containing all messages --- pkg/connector/backfill.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/pkg/connector/backfill.go b/pkg/connector/backfill.go index 6cc9e94..14b74a8 100644 --- a/pkg/connector/backfill.go +++ b/pkg/connector/backfill.go @@ -195,6 +195,17 @@ func (m *MetaClient) FetchMessages(ctx context.Context, params bridgev2.FetchMes } upsert, _ := params.BundledData.(*table.UpsertMessages) if upsert == nil || len(upsert.Messages) < params.Count { + // Shortcut: bundled data min TS <= anchor TS, meaning we have everything + if params.Forward && params.BundledData != nil && params.AnchorMessage != nil { + anchorTS := params.AnchorMessage.Timestamp.UnixMilli() + if upsert.Range.MinTimestampMs <= anchorTS { + zerolog.Ctx(ctx).Debug(). + Int64("bundled_min_ts", upsert.Range.MinTimestampMs). + Int64("anchor_ts", anchorTS). + Msg("Forward backfill has all messages already") + return m.wrapBackfillEvents(ctx, params.Portal, upsert, params.AnchorMessage, params.Forward), nil + } + } var oldestMessageID string var oldestMessageTS int64 if upsert != nil { @@ -225,10 +236,6 @@ func (m *MetaClient) FetchMessages(ctx context.Context, params bridgev2.FetchMes zerolog.Ctx(ctx).Warn().Msg("Can't backfill chat with no messages") return nil, nil } - if params.Forward && params.BundledData != nil && upsert.Range.MinTimestampMs >= oldestMessageTS { - zerolog.Ctx(ctx).Debug().Msg("Forward backfill has all messages already") - return m.wrapBackfillEvents(ctx, params.Portal, upsert, params.AnchorMessage, params.Forward), nil - } doneCh := make(chan struct{}) collector := &BackfillCollector{ UpsertMessages: upsert,