bb8c01895b
The new archive-gated e2e pins the #213 contract: a multi-symbol generalize without --from/--to must resolve the shared campaign window as the intersection (latest start, earliest end) of the listed symbols' full archive windows. On the current tree it resolves symbols[0]'s full window (AAPL.US listed first keeps AAPL's wider span on both bounds), so the test fails RED. Expected windows are derived from the live archive via single-symbol sweep probes, never hard-coded. refs #213