dee25afcd5
data-server does no timezone math (delphi_to_unix_ms is pure arithmetic), so the archive carries whatever the raw Pepperstone files contain, labelled as UTC. The Session node's UTC->Berlin DST conversion is unit-tested, but the assumption that the raw timestamps are themselves UTC was unverified — a broker-local archive would shift the whole session and the error would jump across the DST boundary. Verified empirically via the DAX cash-open volume spike (GER40): it lands at Berlin 09:00 in BOTH seasons, at 07:00 UTC (summer, CEST, UTC+2) and 08:00 UTC (winter, CET, UTC+1) — a clean +1h DST shift, the genuine-UTC signature. This gated test pins it so a future archive/convention drift cannot silently corrupt every session strategy's bar alignment.