recover
Recover persisted log state from store. Call once at startup, before any call to export or merge, and never concurrently with either.
Rebuilds the dedup map from the op-log so that re-export of previously persisted records remains a no-op after a process restart.
If no persisted state exists, the exporter starts with an empty log.
Deliberately not serialized by writeMutex, unlike export and merge. Mutual exclusion here would order the store writes while suggesting a safety it cannot deliver: an un-recovered exporter's segment numbering starts at its construction defaults, so a merge that runs before this returns allocates a segment number the persisted index already uses and overwrites a live key — whichever order the two are serialized in. What makes a pre-recovery call unsafe is the numbering, not the interleaving, so the fix is the contract on this line rather than a lock.
Never throws. An unreadable store or an undecodable entry degrades this exporter to "start fresh" rather than propagating. The caller installs log capture after awaiting this, so a propagating failure here means capture is never installed at all: the exporter goes silently dead for the whole process lifetime, on every launch, with nothing written and nothing logged (#1860).