desktop/src-tauri/crates/core/src/adapters/goose/common.rs
Comment 1, line 1
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:1
//! Goose-specific helpers under the independent adapter-directory convention.Comment 2, line 2
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:2
//! - Read-only DB access copied from adapters/zed/common.rs, following hermes/kilo.Comment 3, line 3
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:3
//! - Per-request usage_ledger mapping: official a701bb1, A26.Comment 4, line 4
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:4
//!Comment 5, line 5
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:5
//! Fixed source: aaif-goose/goose a701bb1756f0c6a49a7dbc10ac8a90f94dd24bd1.Comment 6, line 6
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:6
//! - usage_ledger migration 15 (session_manager.rs:1083-1097) inserts one row perComment 7, line 7
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:7
//! provider response (:913); created_timestamp is Unix seconds. cost_source isComment 8, line 8
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:8
//! provider_reported/estimated/carried_forward; is_compaction marks compaction calls.Comment 9, line 9
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:9
//! - Usage (goose-provider-types token_usage.rs:93-101): input_tokens is the entireComment 10, line 10
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:10
//! prompt including cache-read/write subsets; derive input_uncached by subtractionComment 11, line 11
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:11
//! with sub_checked rejecting negative results.Comment 12, line 12
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:12
//! - sessions.accumulated_* contains session totals; other columns are last snapshots.Comment 13, line 13
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:13
//! Fall back to session aggregates only in older databases without usage_ledger (schema <15).Comment 14, line 18
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:18
/// usage_ledger token columns; NULL remains unknown without zero substitution.Comment 15, line 28
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:28
/// Derive uncached from cache-inclusive input; retain reported total for comparison.Comment 16, line 85
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:85
// Read-only database helpers copied from adapters/hermes/common.rs; modules remain independent.Comment 17, line 93
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:93
/// Read-only source access; busy-like probe failures switch to a staging snapshot.Comment 18, line 117
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:117
/// SQLite busy/locked/CANTOPEN errors prevent a successful consistency probe.Comment 19, line 127
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:127
/// Staging page/time/size limits and cleanup follow architecture.md.Comment 20, line 145
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:145
/// Open read-only; short busy_timeout bounds probe waits before a staging fallback.Comment 21, line 158
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:158
/// Online Backup creates a consistent system-temporary snapshot without writing the source.Comment 22, line 189
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:189
// More means pages were copied; count those pages toward the size limit.Comment 23, line 200
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:200
// Busy/Locked or other non-exhaustive results retry without progress, within the timeout.Comment 24, line 201
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:201
// 2026-09-30 fix: retries previously added pages and raced the timeout, causingComment 25, line 202
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:202
// platform-specific false size-limit failures (Linux CI hit the page cap before timeout).Comment 26, line 221
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:221
/// Probe read-only sessions.db; busy-like probe failures use staging, later failures propagate.Comment 27, line 222
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:222
/// Never write the source database.Comment 28, line 249
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:249
/// Short schema query probes access, following kilo's rule.Comment 29, line 254
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:254
/// Required usage_ledger columns follow the fixed migration-15 schema.Comment 30, line 255
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:255
/// Include each column from the fixed usage_ledger creation SQL.Comment 31, line 270
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:270
/// Legacy sessions fallback requires accumulated_* columns when usage_ledger is absent.Comment 32, line 286
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:286
// Input includes cache read/write: uncached = 100 - 30 - 10 = 60.Comment 33, line 302
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:302
// Cache exceeds input: leave uncached unknown with a contradiction diagnostic, without zero replacement.Comment 34, line 318
desktop/src-tauri/crates/core/src/adapters/goose/common.rs:318
// NULL columns remain unknown without zero substitution.