Turn loaded ledgers into a Report. Pure — the caller supplies
(session_id, Session) pairs (from disk in run, hand-built in tests).
Sessions are ordered newest-first by updated; limit caps how many appear
in sessions, but the aggregate counts span all of them.