like i suspected from the beginning, you’re trying to use offline mode the way it was never supposed to be used without reworking it properly: it was only ever designed for one “go offline -> read stuff -> go back online” cycle, nothing else.
if you want a proper offline-first design and two-way sync you’ll have to start with reworking the entire app, not just offline mode specifically, to use some kind of persistent storage everywhere instead of trying to bolt together ephemeral memory-only storage with separate storage for offline mode with hacks and kludges.
you’ll also have to implement a sync adapter (while writing about ten kilometers of boilerplate code), etc. good luck with that.
i didn’t want to do any of the above (and i preferred how the app worked without trying to sync stuff all the time, as opposed to a different tt-rss client i tried to use, because news is essentially ephemeral anyway) but people were whining for offline mode so i wrote something that was specifically limited to do what it does (while allowing me to keep offline code almost entirely separate from main app code i was actually interested in working on) and nothing else.
this was 2011 and i could justify time spent on it, nowadays i’d probably just tell them to go get a better network connection instead.
anyway, instead of a proper rework (which would be hard) what you’re proposing is to pile hacks on top of the current (consciously limited) design to make it sorta-kinda work similarly to what i have outlined above. in my experience, this is not a sustainable way of application development.
what’s going to happen is that hacks are not going work right, they never do. i’ll have to fix things indefinitely long after you personally lose interest because i feel responsible or, worse, rework offline because i don’t like half-assing things. all of it is what i’ve never wanted to do in the first place. which is why i’m not interested.
it’s 2020, get a better network connection.