Skip to content

desktop/src-tauri/crates/core/src/retention.rs

Comment 1, line 1

desktop/src-tauri/crates/core/src/retention.rs:1

//! Detail cutoff is today's start in the selected timezone minus D-1 days; archive expired days

Comment 2, line 2

desktop/src-tauri/crates/core/src/retention.rs:2

//! with timezone/field/source versions and block ordinary additions. Size includes DB/WAL/SHM/backups.

Comment 3, line 13

desktop/src-tauri/crates/core/src/retention.rs:13

/// Increment when archive field meanings change; archived rows retain the version used.

Comment 4, line 18

desktop/src-tauri/crates/core/src/retention.rs:18

/// Detail retention in local days, including today: 7–3650.

Comment 5, line 20

desktop/src-tauri/crates/core/src/retention.rs:20

/// Diagnostic retention in days.

Comment 6, line 22

desktop/src-tauri/crates/core/src/retention.rs:22

/// Hard maximum local-day retention for usage/quotas/diagnostics; None adds no extra limit.

Comment 7, line 53

desktop/src-tauri/crates/core/src/retention.rs:53

/// Keep details on or after this local cutoff day.

Comment 8, line 64

desktop/src-tauri/crates/core/src/retention.rs:64

/// Archive expired daily summaries and delete expired details in one transaction.

Comment 9, line 79

desktop/src-tauri/crates/core/src/retention.rs:79

// Persist an increasing cleanup floor; restart/longer retention cannot restore deleted data through ordinary rescans.

Comment 10, line 87

desktop/src-tauri/crates/core/src/retention.rs:87

// 1. Find expired local days with details.

Comment 11, line 99

desktop/src-tauri/crates/core/src/retention.rs:99

// 2. Recompute each day before archiving; retain timezone/field/source-selection versions.

Comment 12, line 100

desktop/src-tauri/crates/core/src/retention.rs:100

// Publish the aggregate generation atomically with the transaction.

Comment 13, line 137

desktop/src-tauri/crates/core/src/retention.rs:137

// 3. Delete expired details; logical SQLite deletion does not guarantee physical erasure.

Comment 14, line 149

desktop/src-tauri/crates/core/src/retention.rs:149

// 4. Apply diagnostic retention.

Comment 15, line 160

desktop/src-tauri/crates/core/src/retention.rs:160

// 5. Apply hard maximum retention to daily summaries and quota snapshots.

Comment 16, line 184

desktop/src-tauri/crates/core/src/retention.rs:184

// Native intervals cannot be split proportionally; unknown starts/cross-cutoff aggregates cannot satisfy the hard limit.

Comment 17, line 225

desktop/src-tauri/crates/core/src/retention.rs:225

/// Storage size: main DB, WAL, SHM and backup-directory files.