Skip to main content

Gathered

Struct Gathered 

Source
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:

  1. Byte-identical output across runs when the entry set is unchanged (re-export is a no-op).
  2. 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.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.