desktop/src-tauri/crates/core/src/adapters/opencode/common.rs
第 1 条注释,第 1 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:1
//! OpenCode 产品特有的公共部分(独立目录约定 architecture.md#adapter-layout):第 2 条注释,第 2 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:2
//! - schema 指纹(产品互斥:session 必须含 tokens_* 五累计列,MiMo 无此列);第 3 条注释,第 3 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:3
//! - state 库只读访问实现(只读连接 + Online Backup 暂存副本):第 4 条注释,第 4 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:4
//! 小工具函数复制自 `adapters/kilo/common.rs`(各 Agent 目录保持独立,第 5 条注释,第 5 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:5
//! 不共享模块;kilo 版本为 M3 已验收实现,语义一致仅前缀/注释不同)。第 6 条注释,第 6 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:6
//!(空行)第 7 条注释,第 7 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:7
//! 固定源码依据(A17,commit 0027387dc5c59793c12dfc531abc78f825ed6868):第 8 条注释,第 8 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:8
//! - `packages/core/src/global.ts`:data = xdg-basedir 的 opencode 目录第 9 条注释,第 9 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:9
//! ($XDG_DATA_HOME 缺省 ~/.local/share/opencode);第 10 条注释,第 10 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:10
//! - `packages/core/src/database/database.ts`:库文件第 11 条注释,第 11 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:11
//! `path() = data/opencode.db`(安装通道变体 `opencode-<channel>.db`,第 12 条注释,第 12 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:12
//! channel 经 [^a-zA-Z0-9._-] 归一);WAL 模式;第 13 条注释,第 13 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:13
//! - `packages/core/src/session/sql.ts`:`session`(含 parent_id/version/第 14 条注释,第 14 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:14
//! tokens_input/output/reasoning/cache_read/cache_write 累计五列)、第 15 条注释,第 15 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:15
//! message 列包括 id、session_id、data JSON;part 列包括 id、message_id、session_id、第 16 条注释,第 16 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:16
//! time_created/time_updated/data JSON)三表逐字列名。第 17 条注释,第 24 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:24
// ---- 源库只读访问(复制自 adapters/kilo/common.rs,各目录独立约定)----第 18 条注释,第 26 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:26
/// 只读访问来源;探测出现 busy、locked 或 CANTOPEN 时切换到暂存副本。第 19 条注释,第 27 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:27
/// 暂存副本 guard 保存路径,drop 时清理,包括查询中途失败。第 20 条注释,第 51 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:51
/// busy/锁/CANTOPEN 判定(这些错误表示无法一致读取)。第 21 条注释,第 61 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:61
/// 暂存副本参数(architecture.md:设置页/时间/空间上限并清理)。第 22 条注释,第 79 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:79
/// 打开只读连接,以较短 busy_timeout 限制探测等待,再按规则尝试暂存副本。第 23 条注释,第 92 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:92
/// Online Backup 到系统临时目录的一致暂存副本(从只读连接发起,不写源库)。第 24 条注释,第 123 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:123
// More:实际拷贝了页,计入空间限制。第 25 条注释,第 134 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:134
// Busy/Locked(#[non_exhaustive] 其余):无进展重试,仍计入超时时间。第 26 条注释,第 135 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:135
// 2026-09-30 修复:此前重试也计入页数,与超时出口竞速产生第 27 条注释,第 136 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:136
// 平台相关的 space cap 误报(CI Linux 页上限先于超时触发)。第 28 条注释,第 155 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:155
/// 只读探测 opencode.db;探测出现 busy 类错误时使用暂存副本,后续失败返回错误。第 29 条注释,第 156 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:156
/// 绝不写源库(不调用上游可能迁移/初始化的打开路径)。第 30 条注释,第 183 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:183
/// 用简短 schema 查询探测访问,遵守 kilo 的规则。第 31 条注释,第 188 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:188
// ---- schema 指纹(固定源码 sql.ts 表/列名摘要;只含表/列名,可安全持久化)----第 32 条注释,第 190 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:190
/// part 逐次用量所需列使用 sql.ts PartTable 的原始列名。第 33 条注释,第 199 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:199
/// session 身份、父会话、版本和五个累计列用于对账。第 34 条注释,第 200 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:200
/// 所引用 MiMo schema 缺少这五列,不能通过此指纹。第 35 条注释,第 211 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:211
/// message 关键列(模型归属 join:message.data.$.modelID/providerID)。第 36 条注释,第 214 行
desktop/src-tauri/crates/core/src/adapters/opencode/common.rs:214
/// 计算 schema 指纹(表缺失/关键列缺失返回 None)。