 				if showsSearchResults {
 					fetchAndReplaceArticlesAsync()
 				} else {
+					resetMarkAsReadOnScroll()
 					fetchAndReplaceArticlesSync()
 					if articles.count > 0 {
 						tableView.scrollRowToVisible(0)

	}
	
	func restoreState(from state: [AnyHashable : Any]) {
		guard let readArticlesFilterStateKeys = state[UserInfoKey.readArticlesFilterStateKeys] as? [[AnyHashable: AnyHashable]],
			let readArticlesFilterStateValues = state[UserInfoKey.readArticlesFilterStateValues] as? [Bool] else {
			return

	private var timelineShowsSeparatorsObserver: NSKeyValueObservation?

	private let scrollPositionQueue = CoalescingQueue(name: "Timeline Scroll Position", interval: 0.3, maxInterval: 1.0)

	private var markBottomArticlesAsReadWorkItem: DispatchWorkItem?
	
	convenience init(delegate: TimelineDelegate) {
		self.init(nibName: "TimelineTableView", bundle: nil)
