pub struct Db { /* private fields */ }Expand description
SQLite tracking database. Same schema as the bash version.
Implementations§
Source§impl Db
impl Db
Sourcepub fn track(&self, record: &TrackRecord) -> Result<()>
pub fn track(&self, record: &TrackRecord) -> Result<()>
Record a command execution.
Sourcepub fn record_invocation(&self, rec: &InvocationRecord) -> Result<()>
pub fn record_invocation(&self, rec: &InvocationRecord) -> Result<()>
Record an invocation for the usage-history ranking. Evicts oldest rows
once the table grows past INVOCATIONS_CAP.
Sourcepub fn prune_invocations(
&self,
filter: &PruneFilter,
dry_run: bool,
) -> Result<u64>
pub fn prune_invocations( &self, filter: &PruneFilter, dry_run: bool, ) -> Result<u64>
Prune invocation rows matching filter. With dry_run=true, returns the
count that would be removed without touching the table. Gain stats in the
commands table are lifetime counters and are never pruned here.
Sourcepub fn export_invocations(&self) -> Result<Vec<InvocationExport>>
pub fn export_invocations(&self) -> Result<Vec<InvocationExport>>
Export all invocation rows (oldest first) for user-driven backup.
Returns (timestamp, command, subcommand, raw_tokens, filtered_tokens, had_plugin, exit_code).
Sourcepub fn history_ranking(&self, limit: usize) -> Result<Vec<HistoryRow>>
pub fn history_ranking(&self, limit: usize) -> Result<Vec<HistoryRow>>
Rank command+subcommand pairs as plugin candidates. Score = runs × avg_raw_tokens × (1 − savings_ratio) — i.e. called often, produces a lot, and lowfat is not yet shrinking it much.
Sourcepub fn gain_summary(&self) -> Result<GainSummary>
pub fn gain_summary(&self) -> Result<GainSummary>
Lifetime gain summary.
Sourcepub fn top_commands(&self, limit: usize) -> Result<Vec<TopCommand>>
pub fn top_commands(&self, limit: usize) -> Result<Vec<TopCommand>>
Top commands by tokens saved.
Sourcepub fn session_summary(&self, since: &str) -> Result<SessionSummary>
pub fn session_summary(&self, since: &str) -> Result<SessionSummary>
Session summary since a given timestamp.