pub struct Gathered {
pub buckets: BTreeMap<&'static str, Vec<ExportRecord>>,
pub retired: HashSet<String>,
}Expand description
Walk the index, bucket every ledger entry by ConclusionClass. Each
bucket is sorted by id alone — entry_ids are deterministic hashes
(blake3-derived for Plan G thinking, content-derived for others), so
id-sort gives:
- Byte-identical output across runs when the entry set is unchanged (re-export is a no-op).
- Conflict-resistant git merges: hash-distributed positions mean two developers’ concurrent same-day inserts land in different file regions and don’t textually collide. Plan K t-001.
The previous sort key was (created_at, id). That gave the same
byte-stability but clustered same-day inserts together, raising the
odds of merge conflicts when two devs added entries on the same day.
id-only loses the time-ordered visual diff but gains real
conflict-resistance — the Plan K principle (sidecar = judgment;
conflicts must be meaningful) prefers the latter.
Upgrade note: re-exporting an existing project at >=1.0.36 will
produce a one-time mass reorder of every .asd/conclusions/*.jsonl
file. Commit it once, then steady state.
What a gather produced, plus what it deliberately withheld.
Fields§
§buckets: BTreeMap<&'static str, Vec<ExportRecord>>§retired: HashSet<String>Entry ids excluded on purpose — superseded, or a hypothesis below the
confidence floor. Everything else missing from buckets is missing
because this clone could not produce it, not because it decided not to.