pub struct ProjectKnowledge {
pub files: HashMap<PathBuf, FileInfo>,
pub decisions: Vec<Decision>,
pub patterns: Vec<Pattern>,
pub story_changes: Vec<StoryChanges>,
pub baseline_commit: Option<String>,
}Expand description
Cumulative project knowledge tracked across agent runs.
This struct combines two sources of truth:
- Git diff data for empirical knowledge of file changes
- Agent-provided semantic information about decisions and patterns
Fields§
§files: HashMap<PathBuf, FileInfo>Known files and their metadata, keyed by path
decisions: Vec<Decision>Architectural and implementation decisions made during the run
patterns: Vec<Pattern>Code patterns established or discovered during the run
story_changes: Vec<StoryChanges>Changes made for each completed story
baseline_commit: Option<String>The baseline commit hash when the run started (for git diff calculations)
Implementations§
Source§impl ProjectKnowledge
impl ProjectKnowledge
Sourcepub fn our_files(&self) -> HashSet<&PathBuf>
pub fn our_files(&self) -> HashSet<&PathBuf>
Returns all files touched by any story in this run.
This includes files that were created, modified, or deleted across all completed stories. Used to filter out changes from other sources.
Sourcepub fn filter_our_changes(&self, all_changes: &[DiffEntry]) -> Vec<DiffEntry>
pub fn filter_our_changes(&self, all_changes: &[DiffEntry]) -> Vec<DiffEntry>
Filter diff entries to only include files that autom8 agents touched.
This method filters out changes from external sources by only including files that are either:
- New to the project (DiffStatus::Added)
- Already in the set of files we’ve touched in this run
§Arguments
all_changes- All diff entries to filter
§Returns
Filtered list of diff entries containing only our changes
Trait Implementations§
Source§impl Clone for ProjectKnowledge
impl Clone for ProjectKnowledge
Source§fn clone(&self) -> ProjectKnowledge
fn clone(&self) -> ProjectKnowledge
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ProjectKnowledge
impl Debug for ProjectKnowledge
Source§impl Default for ProjectKnowledge
impl Default for ProjectKnowledge
Source§fn default() -> ProjectKnowledge
fn default() -> ProjectKnowledge
Source§impl<'de> Deserialize<'de> for ProjectKnowledge
impl<'de> Deserialize<'de> for ProjectKnowledge
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 ProjectKnowledge
impl RefUnwindSafe for ProjectKnowledge
impl Send for ProjectKnowledge
impl Sync for ProjectKnowledge
impl Unpin for ProjectKnowledge
impl UnwindSafe for ProjectKnowledge
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,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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