codetether_agent/tui/utils/
workspace.rs1use std::path::Path;
8
9use super::workspace_entries::{collect_entries, sort_entries};
10use super::workspace_helpers::detect_git_status;
11
12pub use super::workspace_types::{WorkspaceEntry, WorkspaceEntryKind, WorkspaceSnapshot};
13
14impl WorkspaceSnapshot {
15 pub fn capture(root: &Path, max_entries: usize) -> Self {
17 let mut entries = collect_entries(root);
18 sort_entries(&mut entries);
19 entries.truncate(max_entries);
20 let (git_branch, git_dirty_files) = detect_git_status(root);
21 Self {
22 root_display: root.to_string_lossy().to_string(),
23 git_branch,
24 git_dirty_files,
25 entries,
26 captured_at: chrono::Local::now().format("%H:%M:%S").to_string(),
27 }
28 }
29}