pub struct FileActivityTracker { /* private fields */ }Expand description
Tracks file modification activity for timeout detection.
This tracker monitors AI-generated files in the .agent/ directory to detect
ongoing work that may not produce stdout/stderr output. It tracks modification
times and distinguishes meaningful AI progress from log churn and system artifacts.
Implementations§
Source§impl FileActivityTracker
impl FileActivityTracker
Sourcepub fn check_for_recent_activity(
&self,
workspace: &dyn Workspace,
timeout: Duration,
) -> Result<bool>
pub fn check_for_recent_activity( &self, workspace: &dyn Workspace, timeout: Duration, ) -> Result<bool>
Check if any AI-generated files have been modified within timeout.
This method scans two areas for evidence of recent agent work:
.agent/whitelist – files representing meaningful AI progress (PLAN.md, ISSUES.md, NOTES.md, STATUS.md, commit-message.txt,.agent/tmp/*.xml).- Workspace recursive scan (max depth 8) – any file outside excluded
noise directories (
.git/,target/,tmp/,node_modules/,.agent/) and excluded extensions (*.log,*.swp,*.tmp,*.bak,*~). This detects coding work (source edits, test writes,Cargo.tomlchanges) that produces no stdout/stderr output, including files nested deeply inside workspace crates (e.g.crate/src/mod/file.rs).
Returns Ok(true) if recent activity is detected, Ok(false) if no
recent activity, or Err if a required directory read fails.
§Arguments
workspace- The workspace to read files fromtimeout- The recency window (typically 300 seconds)
§Errors
Returns error if the .agent/ directory exists but cannot be read.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for FileActivityTracker
impl RefUnwindSafe for FileActivityTracker
impl Send for FileActivityTracker
impl Sync for FileActivityTracker
impl Unpin for FileActivityTracker
impl UnsafeUnpin for FileActivityTracker
impl UnwindSafe for FileActivityTracker
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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