pub struct HelperPaths {Show 19 fields
pub home_dir: PathBuf,
pub codex_dir: PathBuf,
pub codex_session_dir: PathBuf,
pub codex_archived_session_dir: PathBuf,
pub claude_dir: PathBuf,
pub claude_session_dir: PathBuf,
pub copilot_dir: PathBuf,
pub copilot_session_dir: PathBuf,
pub cursor_dir: PathBuf,
pub cursor_tracking_db: PathBuf,
pub cursor_chats_dir: PathBuf,
pub gemini_dir: PathBuf,
pub gemini_session_dir: PathBuf,
pub grok_dir: PathBuf,
pub grok_session_dir: PathBuf,
pub opencode_dir: PathBuf,
pub opencode_db: PathBuf,
pub hermes_db: PathBuf,
pub cache_dir: PathBuf,
}Expand description
Resolved on-disk locations for every provider’s session logs plus the tool’s cache directory.
Construct one with resolve_paths; the fields are derived from the
user’s home directory and are not validated to exist. The *_session_dir
fields point at the subtree a directory walker scans for that provider.
Fields§
§home_dir: PathBufThe user’s home directory, the root for every other path.
codex_dir: PathBufCodex root (~/.codex).
codex_session_dir: PathBufCodex active session logs (~/.codex/sessions).
codex_archived_session_dir: PathBufCodex archived session logs (~/.codex/archived_sessions); see
HelperPaths::codex_session_dirs.
claude_dir: PathBufClaude Code root (~/.claude).
claude_session_dir: PathBufClaude Code session logs (~/.claude/projects).
copilot_dir: PathBufCopilot CLI root (~/.copilot).
copilot_session_dir: PathBufCopilot CLI session state (~/.copilot/session-state).
cursor_dir: PathBufCursor CLI config root ($XDG_CONFIG_HOME/cursor or ~/.config/cursor).
Holds the OAuth credentials (auth.json) used by the quota panel. This
is not where Cursor stores session data — that lives under ~/.cursor
(see cursor_tracking_db / cursor_chats_dir).
cursor_tracking_db: PathBufCursor AI-code tracking database (~/.cursor/ai-tracking/ai-code-tracking.db).
Maps each conversation to the model that authored its code, used for
per-model attribution in the analysis view.
cursor_chats_dir: PathBufCursor chat session stores root (~/.cursor/chats).
Each conversation is a chats/<projectHash>/<conversationId>/store.db
SQLite blob store parsed for analysis tool metrics.
gemini_dir: PathBufGemini CLI root (~/.gemini).
gemini_session_dir: PathBufGemini CLI session logs (~/.gemini/tmp).
grok_dir: PathBufGrok CLI root ($GROK_HOME or ~/.grok).
grok_session_dir: PathBufGrok CLI session logs ($GROK_HOME/sessions or ~/.grok/sessions).
opencode_dir: PathBufOpenCode data root ($XDG_DATA_HOME/opencode or ~/.local/share/opencode).
opencode_db: PathBufOpenCode SQLite database (<opencode_dir>/opencode.db).
hermes_db: PathBufHermes SQLite database (~/.hermes/state.db).
cache_dir: PathBufThis tool’s cache directory (~/.vct).
Implementations§
Source§impl HelperPaths
impl HelperPaths
Sourcepub fn codex_session_dirs(&self) -> [&Path; 2]
pub fn codex_session_dirs(&self) -> [&Path; 2]
Every directory that can hold a Codex rollout log, active root first.
Codex is the one file-backed provider with more than one session root:
archiving moves a log from the dated sessions/YYYY/MM/DD/ tree into the
flat archived_sessions/, unchanged. The order is load-bearing — a
discovery walk keeps the copy it meets first, so a scan that races the
move attributes the session to the active root.
Trait Implementations§
Source§impl Clone for HelperPaths
impl Clone for HelperPaths
Source§fn clone(&self) -> HelperPaths
fn clone(&self) -> HelperPaths
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for HelperPaths
impl RefUnwindSafe for HelperPaths
impl Send for HelperPaths
impl Sync for HelperPaths
impl Unpin for HelperPaths
impl UnsafeUnpin for HelperPaths
impl UnwindSafe for HelperPaths
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> 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