v8.7.1
Bug fixes
Memory usage in recalculate_backtests and migrate_backtests
Both helpers could blow up RAM (multiple GB) when run with multiple workers on large batches. Workers were returning entire Backtest objects (full snapshots, trades, timeseries) through the multiprocessing result queue, and tasks were submitted up-front so the executor feeder buffered every backtest at once.
recalculate_backtests: workers now return only the freshly computed per-run metrics and summary; the parent merges them back into the existingBacktestobjects. In-flight tasks are bounded toworkers, so peak memory scales withworkers, notlen(backtests).migrate_backtests:index.parquetis now built from small row dicts returned by the workers, so the parent no longer re-loads every freshly written bundle into memory after migration.ex.mapwas replaced with a boundedsubmit+wait(FIRST_COMPLETED)loop.
migrate_backtests not exported from the package root
migrate_backtests is now exported from investing_algorithm_framework:
from investing_algorithm_framework import migrate_backtestsPreviously it was only reachable via investing_algorithm_framework.domain.