跳转到内容

desktop/src-tauri/crates/core/src/adapters/jsonl.rs

第 1 条注释,第 1 行

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

//! 有界 JSONL 读取器(V07)。

第 2 条注释,第 2 行

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

//!(空行)

第 3 条注释,第 3 行

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

//! 约定(architecture.md「各输入的增量策略」):

第 4 条注释,第 4 行

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

//! - 游标 = 文件身份 + generation + 完整行字节偏移 + 解析上下文;

第 5 条注释,第 5 行

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

//! - 默认单行上限 8 MiB、单块 4 MiB(允许跨块组装行);超限不静默丢弃,

第 6 条注释,第 6 行

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

//! 状态显示位置与原因,允许受控重试;

第 7 条注释,第 7 行

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

//! - 半行留待下次(游标不前移);跨块 UTF-8 正确组装;跳过 UTF-8 BOM;

第 8 条注释,第 8 行

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

//! - 坏行隔离:诊断只存错误码与位置(行号/字节偏移),不复制原始行内容;

第 9 条注释,第 9 行

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

//! - 截断/同大小替换/改名时重探测;变更检测不限于文件长度。

第 10 条注释,第 14 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:14

/// 单行上限初值 8 MiB。

第 11 条注释,第 16 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:16

/// 单块上限初值 4 MiB。

第 12 条注释,第 18 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:18

/// 身份采样字节数(首/尾各取这么多做内容指纹)。

第 13 条注释,第 22 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:22

/// 读取限制。`max_lines` 是确定性行数上限(测试与受控重试用);

第 14 条注释,第 23 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:23

/// `time_budget` 是墙钟超时(单源每轮 30 秒初值)。

第 15 条注释,第 43 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:43

/// 一条完整行(含字节位置;`end` 为行终止符之后的偏移)。

第 16 条注释,第 52 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:52

/// 坏行诊断(无正文)。

第 17 条注释,第 60 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:60

/// 读取停止原因。

第 18 条注释,第 63 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:63

/// 读到当前文件尾。

第 19 条注释,第 65 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:65

/// 某完整行超过单行上限:游标停在该行起点,可受控重试(提高上限)。

第 20 条注释,第 67 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:67

/// 达到确定性行数或字节上限。

第 21 条注释,第 69 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:69

/// 达到墙钟超时时间。

第 22 条注释,第 73 行

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

/// 一次增量读取的结果。

第 23 条注释,第 78 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:78

/// 下一 unread 偏移(最后一条完整行之后;半行不前移)。

第 24 条注释,第 80 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:80

/// 下一行号(1 起始)。

第 25 条注释,第 82 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:82

/// 半行字节数(留待下次)。

第 26 条注释,第 87 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:87

/// 从 `start_offset`(完整行边界)读取 JSONL。`first_line_number` 为该偏移处的行号。

第 27 条注释,第 119 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:119

// 起点为 0 时跳过 BOM;BOM 不计入行内容但计入字节偏移。

第 28 条注释,第 159 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:159

// EOF:carry 中的残余是半行,留待下次。

第 29 条注释,第 166 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:166

// 逐条提取完整行;0x0A 不会出现在 UTF-8 多字节序列内,按字节切分安全。

第 30 条注释,第 215 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:215

// 无换行符的残余:若已超过单行上限,同样按超长行处理(不等待它继续增长)。

第 31 条注释,第 237 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:237

/// 文件身份探测:长度、mtime、创建时间与首/尾采样指纹。变更检测不限于长度。

第 32 条注释,第 243 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:243

/// 首采样指纹(采样长度 `head_len`)。

第 33 条注释,第 245 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:245

/// 首采样长度:len >= 4096 时固定 4096;小文件为当前长度(增长后不可比)。

第 34 条注释,第 296 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:296

/// 已存储的扫描状态(source_files 行 + 游标)。

第 35 条注释,第 303 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:303

/// 首采样长度:与探测值不一致时首指纹不可比(小文件增长跨过采样边界)。

第 36 条注释,第 309 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:309

/// 判断文件能否续读,或是否需创建新的文件 generation。

第 37 条注释,第 312 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:312

/// 同一 generation:未变化或仅追加内容时从游标继续。

第 38 条注释,第 314 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:314

/// 文件被替换/截断/重建:generation+1 从头重扫,解析上下文作废。

第 39 条注释,第 318 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:318

/// 比较存储状态与当前探测。身份要点:创建时间变化 → 新文件;

第 40 条注释,第 319 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:319

/// 长度小于游标表示截断;可比首指纹变化或同长尾指纹变化表示替换。

第 41 条注释,第 320 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:320

/// 小文件增长导致采样长度变化时,改按创建时间和长度单调性判断。

第 42 条注释,第 339 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:339

/// JSONL 游标(持久化在 ingestion_checkpoints.cursor_value)。

第 43 条注释,第 370 行

desktop/src-tauri/crates/core/src/adapters/jsonl.rs:370

// 小文件增长:首采样长度变化,指纹不可比,但创建时间一致且长度递增 → 追加。