pub struct Advice {
pub records: Vec<AdvisorRecord>,
pub synthesized: bool,
}Expand description
The whole deliberation: one record per advisor seat, written to
<id>.advisors.json next to the draft so the operator can read every
seat’s reasoning - including a seat that failed - not only whichever parts
synthesis kept.
Fields§
§records: Vec<AdvisorRecord>One record per advisor seat asked.
synthesized: boolDid this deliberation reach a synthesized task file?
[deliberate] writes this record to disk unconditionally, before any
of its own failure checks run (see the module doc’s “The draft
survives every failure short of success”) - so a total advisor
failure, a planner crash, or a synthesis vet rejects all leave an
<id>.advisors.json on disk whose <id>.md is still the raw,
un-synthesized interview draft, not the deliberation’s output. This
field is false on every write except the very last one, made only
after draft itself has been overwritten with the synthesis - so a
reader (the web plan surface, DraftAdvisorsView in src/web.rs) can
tell those two situations apart without guessing from whether the
file happens to exist.
#[serde(default)] so a record written before this field existed
deserializes as false - the safe reading, since a pre-existing
record’s own age is exactly the information “was this ever
synthesized” would otherwise lose.
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Advice
impl<'de> Deserialize<'de> for Advice
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Advice
impl RefUnwindSafe for Advice
impl Send for Advice
impl Sync for Advice
impl Unpin for Advice
impl UnsafeUnpin for Advice
impl UnwindSafe for Advice
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more