Skip to content

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

Comment 1, line 1

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

//! Hour/day/week/month usage queries share detail/archive selection and recompute ratios from sums.

Comment 2, line 2

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

//! Cross-period sessions use distinct retained identities; absent detail marks incomplete coverage.

Comment 3, line 3

desktop/src-tauri/crates/core/src/query.rs:3

//! Unknown models retain separate rows in totals; unverified ownership is excluded with reasons.

Comment 4, line 23

desktop/src-tauri/crates/core/src/query.rs:23

/// AND across filter fields, OR within one field; an empty list applies no restriction.

Comment 5, line 24

desktop/src-tauri/crates/core/src/query.rs:24

/// provider/model unknown matches absent or empty values.

Comment 6, line 31

desktop/src-tauri/crates/core/src/query.rs:31

/// Source instances selected by the application for the current user.

Comment 7, line 32

desktop/src-tauri/crates/core/src/query.rs:32

/// None applies no restriction; Some([]) means no owned sources and yields no rows.

Comment 8, line 71

desktop/src-tauri/crates/core/src/query.rs:71

/// Inclusive local date range.

Comment 9, line 76

desktop/src-tauri/crates/core/src/query.rs:76

/// Caller-supplied local today determines the in-progress flag.

Comment 10, line 78

desktop/src-tauri/crates/core/src/query.rs:78

/// Periods before the detail retention cutoff are marked partial history.

Comment 11, line 82

desktop/src-tauri/crates/core/src/query.rs:82

/// Metric sums for a record group/day; known sums are Some only when known samples exist.

Comment 12, line 86

desktop/src-tauri/crates/core/src/query.rs:86

/// Mean duration in milliseconds over records reporting duration.

Comment 13, line 88

desktop/src-tauri/crates/core/src/query.rs:88

/// Total known duration in milliseconds.

Comment 14, line 113

desktop/src-tauri/crates/core/src/query.rs:113

/// Cache ratio is summed reads/summed total input over records where both are known.

Comment 15, line 114

desktop/src-tauri/crates/core/src/query.rs:114

/// No valid samples or a zero denominator returns None, displayed as an em dash.

Comment 16, line 197

desktop/src-tauri/crates/core/src/query.rs:197

/// The current week/month is still in progress.

Comment 17, line 199

desktop/src-tauri/crates/core/src/query.rs:199

/// Coverage is limited by retention or sealed detail history.

Comment 18, line 202

desktop/src-tauri/crates/core/src/query.rs:202

/// Distinct sessions across the period; absent detail leaves the count unknown.

Comment 19, line 204

desktop/src-tauri/crates/core/src/query.rs:204

/// Active local dates; absent detail leaves the count unknown.

Comment 20, line 206

desktop/src-tauri/crates/core/src/query.rs:206

/// Mean request duration in milliseconds over known samples; None means no sample.

Comment 21, line 208

desktop/src-tauri/crates/core/src/query.rs:208

/// Total known request duration in milliseconds.

Comment 22, line 226

desktop/src-tauri/crates/core/src/query.rs:226

/// Model rows include unknown models and retain their known tokens in totals.

Comment 23, line 231

desktop/src-tauri/crates/core/src/query.rs:231

/// Unverified/excluded event count in the range, outside totals.

Comment 24, line 240

desktop/src-tauri/crates/core/src/query.rs:240

/// Local hour from hourly_usage; daily rows use None.

Comment 25, line 271

desktop/src-tauri/crates/core/src/query.rs:271

/// Shared period label/start/end key for summary and chart queries;

Comment 26, line 272

desktop/src-tauri/crates/core/src/query.rs:272

/// grouped series and total views use the same timeline.

Comment 27, line 273

desktop/src-tauri/crates/core/src/query.rs:273

/// Hour labels are YYYY-MM-DD HH:00; week labels follow week_start;

Comment 28, line 274

desktop/src-tauri/crates/core/src/query.rs:274

/// month labels are YYYY-MM.

Comment 29, line 303

desktop/src-tauri/crates/core/src/query.rs:303

/// Query the usage summary.

Comment 30, line 308

desktop/src-tauri/crates/core/src/query.rs:308

/// Select visible periods, including local hours; both DST folds share an hour label.

Comment 31, line 309

desktop/src-tauri/crates/core/src/query.rs:309

/// Keep date/user filters and distinct cross-period sessions without summing per-period counts.

Comment 32, line 539

desktop/src-tauri/crates/core/src/query.rs:539

/// Read retained details once for the selected range.

Comment 33, line 603

desktop/src-tauri/crates/core/src/query.rs:603

/// Aggregate detail metrics in SQLite before transferring results to Rust.

Comment 34, line 604

desktop/src-tauri/crates/core/src/query.rs:604

/// Exact calendar boundaries preserve DST and historical offsets; distinct sessions

Comment 35, line 605

desktop/src-tauri/crates/core/src/query.rs:605

/// span days rather than summing independent daily session counts.

Comment 36, line 743

desktop/src-tauri/crates/core/src/query.rs:743

/// Select one coverage representation for totals, models, Agents, and charts.

Comment 37, line 744

desktop/src-tauri/crates/core/src/query.rs:744

/// A complete materialized partition replaces only its matching daily source partition;

Comment 38, line 745

desktop/src-tauri/crates/core/src/query.rs:745

/// it cannot replace another source or be assigned to a clipped interval.

Comment 39, line 872

desktop/src-tauri/crates/core/src/query.rs:872

/// Current reference pricing uses the same archived usage selection as usage queries.

Comment 40, line 912

desktop/src-tauri/crates/core/src/query.rs:912

// Aggregate fields can represent different sample sets; retain saved component sums.

Comment 41, line 913

desktop/src-tauri/crates/core/src/query.rs:913

// Subtracting independently known sums would invent uncached input.

Comment 42, line 935

desktop/src-tauri/crates/core/src/query.rs:935

// Aggregate total input is not a per-request context size or necessarily the same sample set.

Comment 43, line 1109

desktop/src-tauri/crates/core/src/query.rs:1109

/// Count unverified/excluded events outside totals, with their exclusion reasons.

Comment 44, line 1155

desktop/src-tauri/crates/core/src/query.rs:1155

/// Group excluded records by reason.

Comment 45, line 1264

desktop/src-tauri/crates/core/src/query.rs:1264

/// Agent rows share ModelRow metric structure and total rules.

Comment 46, line 1271

desktop/src-tauri/crates/core/src/query.rs:1271

/// Group by Agent, retaining unknown models/providers under that Agent.

Comment 47, line 1290

desktop/src-tauri/crates/core/src/query.rs:1290

/// One day's local-hour buckets use each event's retained occurrence-time basis.

Comment 48, line 1291

desktop/src-tauri/crates/core/src/query.rs:1291

/// Both occurrences of a repeated DST hour share the displayed local-hour label.

Comment 49, line 1301

desktop/src-tauri/crates/core/src/query.rs:1301

/// Distinct sessions in this hour.

Comment 50, line 1303

desktop/src-tauri/crates/core/src/query.rs:1303

/// Mean known duration in milliseconds.

Comment 51, line 1346

desktop/src-tauri/crates/core/src/query.rs:1346

/// Heatmap date cell; archived periods that cannot be assigned to individual dates remain unavailable.

Comment 52, line 1377

desktop/src-tauri/crates/core/src/query.rs:1377

// Query only required heatmap columns with ownership/model filters applied in SQLite

Comment 53, line 1378

desktop/src-tauri/crates/core/src/query.rs:1378

// rather than loading every grouped daily row.

Comment 54, line 1405

desktop/src-tauri/crates/core/src/query.rs:1405

// Period-only imports may lack the local daily_retention_floor setting.

Comment 55, line 1406

desktop/src-tauri/crates/core/src/query.rs:1406

// Detect their materialized partitions directly without assigning period sums to one date.

Comment 56, line 1472

desktop/src-tauri/crates/core/src/query.rs:1472

/// Paginated detail row.

Comment 57, line 1505

desktop/src-tauri/crates/core/src/query.rs:1505

/// Query detail events in descending occurrence-time order.

Comment 58, line 1565

desktop/src-tauri/crates/core/src/query.rs:1565

/// Expose hourly_usage in the shared DailyRow shape, retaining the local hour

Comment 59, line 1566

desktop/src-tauri/crates/core/src/query.rs:1566

/// so summary grouping and merging can reuse the same implementation.

Comment 60, line 1647

desktop/src-tauri/crates/core/src/query.rs:1647

/// Recover completeness metadata absent from older hourly storage using retained records;

Comment 61, line 1648

desktop/src-tauri/crates/core/src/query.rs:1648

/// do not derive unknown fields by subtracting sums from unlike sample sets.

Comment 62, line 1721

desktop/src-tauri/crates/core/src/query.rs:1721

// Like recompute_day, unknown-quality markers report no known token fields.

Comment 63, line 1722

desktop/src-tauri/crates/core/src/query.rs:1722

// Count their calls/events without treating them as missing fields of token observations.

Comment 64, line 1748

desktop/src-tauri/crates/core/src/query.rs:1748

/// Chart grouping mode.

Comment 65, line 1757

desktop/src-tauri/crates/core/src/query.rs:1757

/// Grouped time-series row for trend charts.

Comment 66, line 1774

desktop/src-tauri/crates/core/src/query.rs:1774

/// Query grouped time series using the same retained partitions as query_summary.

Comment 67, line 1775

desktop/src-tauri/crates/core/src/query.rs:1775

/// Hourly queries use hourly_usage; date-based queries use daily_usage and eligible

Comment 68, line 1776

desktop/src-tauri/crates/core/src/query.rs:1776

/// materialized period_usage archives for week/month/year views.

Comment 69, line 1777

desktop/src-tauri/crates/core/src/query.rs:1777

/// Exclude archives already covered by daily rows and retain Agent/provider/model/instance filters.

Comment 70, line 1778

desktop/src-tauri/crates/core/src/query.rs:1778

/// Shared period_key_of labels match the total usage timeline.

Comment 71, line 1832

desktop/src-tauri/crates/core/src/query.rs:1832

/// Diagnostic row for the settings log viewer.

Comment 72, line 1842

desktop/src-tauri/crates/core/src/query.rs:1842

/// Read bounded recent diagnostics in descending time order, excluding message bodies.