4mb, including the application and the service!? How long have you been running it? It was substantially higher than that for me within like 1 day.
While little tweaks will surely provide improvement, with the amount of ram that’s being used it seems like some fundamental redesigns of what’s kept resident in memory might be in order. For instance, rather than limiting the overall history to 7 days / 1 day (as you suggested), keep the history long (in the sqlite database on-disk), but only allow the Gui to display 7-day-at-a-time blocks of historical data; data would need to be read from the disk to seek between 7-day blocks. Then only truly bare-minimum long-term info (i.e. to generate the notifications) would need to be loaded. That’s just one idea, but it just seems like if memory usage grows without bound as long the history grows, even tweaks here and there are unlikely to really solve it.