···176177 log.Info().Str("path", feedIndexPath).Msg("Feed index opened")
17800000000000179 // Populate feed registry from SQLite known_dids (replaces BoltDB feed registry)
180 if knownDIDs, err := feedIndex.GetKnownDIDs(); err == nil {
181 for _, did := range knownDIDs {
···176177 log.Info().Str("path", feedIndexPath).Msg("Feed index opened")
178179+ // One-time seed: copy any DIDs from the legacy BoltDB feed_registry bucket into
180+ // SQLite known_dids. INSERT OR IGNORE makes this a no-op once DIDs are present.
181+ if legacyDIDs := store.LegacyFeedDIDs(); len(legacyDIDs) > 0 {
182+ added, err := feedIndex.SeedKnownDIDs(legacyDIDs)
183+ if err != nil {
184+ log.Warn().Err(err).Msg("Failed to seed known DIDs from legacy feed registry")
185+ } else if added > 0 {
186+ log.Info().Int("seeded", added).Msg("Seeded known_dids from legacy BoltDB feed registry")
187+ }
188+ }
189+190 // Populate feed registry from SQLite known_dids (replaces BoltDB feed registry)
191 if knownDIDs, err := feedIndex.GetKnownDIDs(); err == nil {
192 for _, did := range knownDIDs {