Skip to content

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 no

Comment 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 XDG

Comment 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 includes

Comment 15, line 15

desktop/src-tauri/crates/core/src/adapters/mimo-code/common.rs:15

//! parent_id/version without tokens_* totals; message includes

Comment 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, causing

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