desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs
Comment 1, line 1
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:1
//! MiMo Code-specific helpers; independent layout: architecture.md#adapter-layout.Comment 2, line 2
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:2
//! - Schema fingerprint requires message.agent_id. The referenced MiMo session has noComment 3, line 3
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:3
//! tokens_* totals; OpenCode's referenced schema lacks agent_id and cannot match.Comment 4, line 4
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:4
//! - Read-only state database access with Online Backup staging snapshots:Comment 5, line 5
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:5
//! helpers copied from `adapters/kilo/common.rs`; each Agent keeps its own module.Comment 6, line 6
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:6
//! The Kilo helper originated in the checked M3 implementation; prefixes/comments differ.Comment 7, line 7
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:7
//!Comment 8, line 8
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:8
//! Fixed source: A14, commit 456678b6a5afb0eef3fe2754575637218cfb3c84.Comment 9, line 9
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:9
//! - packages/shared/src/global.ts resolveMimocodeHome uses MIMOCODE_HOME,Comment 10, line 10
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:10
//! which must be absolute, with <home>/{data,cache,config,state}; otherwise use XDGComment 11, line 11
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:11
//! $XDG_DATA_HOME/mimocode, defaulting to ~/.local/share/mimocode.Comment 12, line 12
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:12
//! - packages/opencode/src/storage/db.ts defines data/mimocode.db,Comment 13, line 13
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:13
//! or channel variant mimocode-<channel>.db; database uses WAL.Comment 14, line 14
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:14
//! - packages/opencode/src/session/session.sql.ts: session includesComment 15, line 15
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:15
//! parent_id/version without tokens_* totals; message includesComment 16, line 16
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:16
//! agent_id defaulting to main; part completes the three literal table definitions.Comment 17, line 17
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:17
//! - packages/opencode/src/session/message-v2.ts StepFinishPart zod schema:Comment 18, line 18
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:18
//! tokens{total?, input, output, reasoning, cache{read, write}}.Comment 19, line 26
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:26
// Read-only database helpers copied from adapters/kilo/common.rs; modules remain independent.Comment 20, line 28
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:28
/// Read-only source access; busy-like probe failures switch to a staging snapshot.Comment 21, line 29
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:29
/// The staging guard owns its path and cleans up on drop, including query failures.Comment 22, line 53
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:53
/// SQLite busy/locked/CANTOPEN errors prevent a successful consistency probe.Comment 23, line 63
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:63
/// Staging page/time/size limits and cleanup follow architecture.md.Comment 24, line 81
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:81
/// Open read-only; short busy_timeout bounds probe waits before a staging fallback.Comment 25, line 94
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:94
/// Online Backup creates a consistent system-temporary snapshot without writing the source.Comment 26, line 125
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:125
// More means pages were copied; count those pages toward the size limit.Comment 27, line 136
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:136
// Busy/Locked or other non-exhaustive results retry without progress, within the timeout.Comment 28, line 137
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:137
// 2026-09-30 fix: retries previously added pages and raced the timeout, causingComment 29, line 138
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:138
// platform-specific false size-limit failures (Linux CI hit the page cap before timeout).Comment 30, line 157
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:157
/// Probe read-only mimocode.db; busy-like probe failures use staging, later failures propagate.Comment 31, line 158
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:158
/// Never write the source database.Comment 32, line 185
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:185
/// Short schema query probes access, following kilo's rule.Comment 33, line 190
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:190
// Schema fingerprint uses fixed session.sql.ts table/column names only.Comment 34, line 192
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:192
/// Required per-call part columns use literal session.sql.ts PartTable names.Comment 35, line 201
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:201
/// Required session identity/parent/version; referenced MiMo lacks cumulative totals,Comment 36, line 202
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:202
/// so no session-total reconciliation; OpenCode lacks the required message.agent_id.Comment 37, line 204
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:204
/// MiMo-specific message.agent_id defaults to main and distinguishes the referenced schemas.Comment 38, line 205
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:205
/// Assistant data JSON carries modelID/providerID under message-v2.ts zod definitions.Comment 39, line 208
desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:208
/// Return schema fingerprint, or None for absent tables/required columns.