pub fn observed_merges(state_dir: &Path) -> BTreeSet<String>Expand description
Merge commits already recorded in state_dir’s observation ledger,
keyed by the ledger row’s revisions.merged oid.
This is what makes choir-bridge harvest incremental (D27): a re-run
against an updated mirror consults the ledger it is about to extend and
replays only the merges it has never seen. A missing or unreadable
ledger is an empty set — the first harvest into a fresh state directory
must not fail on its own absence — and a malformed row is skipped
rather than trusted, so it can never suppress a replay.