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 daysComment 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.