The rerun test failed: same segments, two different memos. The builder
reads its input destructively, so the second run gets an empty list.
Fix build_memo to leave its input untouched — rerun must print SAME.
Expected output:
run 1: organic: 8.0% | paid: 30.0% | partner: 55.0%
run 2: organic: 8.0% | paid: 30.0% | partner: 55.0%
rerun: SAME — memo is reproducible
The break is on lines 10, 11 — but read the whole snippet first.