82a2c8a9

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Treat the output file as the source of truth, and never book an unfinished month

The importer only ever adds months the file has no transaction dated in.  It
never rewrites a month that is already there, so a hand edit sticks.  Filtering
after emitting rather than before also stops the opening balance transaction
being re-emitted with a new date on every run that adds a month.

A month that has not ended is not booked at all, because Stripe is still
collecting it and, given the above, half a month written now would stay half a
month forever.  It still counts towards the balance checked against Stripe.

Listings are conduit sources, so a page is fetched only once downstream has asked
for something past the previous one.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 0s 1s 1s 1s 0s
Eval 0s 17s 17s 18s 0s
Build 16s 5m00s 2m35s 2m51s 0s
Suite 0s 5m19s 2m51s 2m51s 0s

Timeline

0s20s40s1m1m20s1m40s2m2m20s2m40s