Skip to content

desktop/src-tauri/crates/core/src/adapters/crush/common.rs

Comment 1, line 1

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:1

//! Crush-specific helpers under the independent adapter-directory convention.

Comment 2, line 2

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:2

//! Read-only database access copied from adapters/goose/common.rs, following hermes/kilo.

Comment 3, line 3

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:3

//!

Comment 4, line 4

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:4

//! Fixed source: charmbracelet/crush 1f3827bcd2d20f38076b2d46123683271e6ed9ba.

Comment 5, line 5

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:5

//! - sessions.prompt_tokens/completion_tokens snapshot the last nonzero step's context

Comment 6, line 6

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:6

//! size (agent.go:2060-2086 SET overwrites; reset after summary; title adds a request).

Comment 7, line 7

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:7

//! They are not cumulative usage and are excluded from token statistics to avoid inflation.

Comment 8, line 8

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:8

//! - sessions.cost accumulates (agent.go:2065); finished children roll into their parent

Comment 9, line 9

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:9

//! (coordinator.go:1742-1758). Read only roots with parent_session_id IS NULL

Comment 10, line 10

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:10

//! to avoid double-counting, matching official stats.sql.

Comment 11, line 11

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:11

//! - messages has no token columns; only assistant messages carry model/provider.

Comment 12, line 13

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:13

// Read-only database helpers copied from adapters/hermes/common.rs; modules remain independent.

Comment 13, line 21

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:21

/// Read-only source access; busy-like probe failures switch to a staging snapshot.

Comment 14, line 45

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:45

/// SQLite busy/locked/CANTOPEN errors prevent a successful consistency probe.

Comment 15, line 55

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:55

/// Staging page/time/size limits and cleanup follow architecture.md.

Comment 16, line 73

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:73

/// Open read-only; short busy_timeout bounds probe waits before a staging fallback.

Comment 17, line 86

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:86

/// Online Backup creates a consistent system-temporary snapshot without writing the source.

Comment 18, line 117

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:117

// More means pages were copied; count those pages toward the size limit.

Comment 19, line 128

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:128

// Busy/Locked or other non-exhaustive results retry without progress, within the timeout.

Comment 20, line 129

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:129

// 2026-09-30 fix: retries previously added pages and raced the timeout, causing

Comment 21, line 130

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:130

// platform-specific false size-limit failures (Linux CI hit the page cap before timeout).

Comment 22, line 149

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:149

/// Probe read-only sessions.db; busy-like probe failures use staging, later failures propagate.

Comment 23, line 150

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:150

/// Never write the source database.

Comment 24, line 177

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:177

/// Short schema query probes access, following kilo's rule.

Comment 25, line 182

desktop/src-tauri/crates/core/src/adapters/crush/common.rs:182

/// Required sessions columns for cost-only records; detection requires all columns.