 			guard let self = self, let articleIDs = note.userInfo?[Account.UserInfoKey.articleIDs] as? Set<String> else {
 				return
 			}
-			for i in 0..<self.timelineItems.count {
-				if articleIDs.contains(self.timelineItems[i].article.articleID) {
-					self.timelineItems[i].updateStatus()
+			articleIDs.forEach { articleID in
+				if let timelineItemIndex = self.idToTimelineItemDictionary[articleID] {
+					self.timelineItems[timelineItemIndex].updateStatus()
 				}
 			}
 		}.store(in: &cancellables)

			articleDictionaryNeedsUpdate = true
		}
	}

	var undoManager: UndoManager?
	var undoableCommands = [UndoableCommand]()

	weak var delegate: TimelineModelDelegate?
	
	@Published var nameForDisplay = ""
	@Published var selectedArticleIDs = Set<String>()  // Don't use directly.  Use selectedArticles
	@Published var selectedArticleID: String? = .none  // Don't use directly.  Use selectedArticles
	@Published var selectedArticles = [Article]()
