Yahoo stopped returning capitalGain events for some funds (2026); a blind
os.Create + write of an empty event set overwrote the only copy of that
history. When the new download has zero rows of an event kind and the
existing CSV has data rows, keep the existing file. (gmp/f data.py also
falls back to overrides/event-backup/ as a second line of defense.)
- Dates were formatted with time.Unix (machine local zone), shifting the
trading day by one for any exchange in a different timezone. Use
meta.exchangeTimezoneName (IANA), falling back to meta.gmtoffset,
then UTC.
- Dividend/capital-gain/split CSVs were emitted in random order (JSON
object iteration). Sort rows by date.
- Yahoo occasionally emits the same chart timestamp twice; keep the
last occurrence (this drops the spurious CVSIX 2008-12-18 0.292 row
whose date is duplicated by the real 0.641 distribution).
- nil volume no longer panics (prints 0).
- Missing dividend/cap-gain amount still reports an error.