DOC-FULL-001 P0 | ReadingMaterialRef 替代 ReadingTargetType 【status:todo】 #50

Closed
opened 2026-06-07 11:33:11 +08:00 by wangdl · 2 comments
Owner

v2 修正

Rust 不保存 ReadingTargetType。只保存 materialId。

模型

pub struct ReadingMaterialRef { pub material_id: String }

规则

  • material_id 由宿主 App 传入
  • Rust 不校验 material_id 是否存在
  • Rust 不知道 knowledgeBaseId / readingTargetType
  • iOS 上传 API 时补 readingTargetType
## v2 修正 Rust 不保存 ReadingTargetType。只保存 materialId。 ## 模型 ```rust pub struct ReadingMaterialRef { pub material_id: String } ``` ## 规则 - material_id 由宿主 App 传入 - Rust 不校验 material_id 是否存在 - Rust 不知道 knowledgeBaseId / readingTargetType - iOS 上传 API 时补 readingTargetType
wangdl added this to the M-DOC-FULL:Document Runtime 完整阅读内核与学习事件协议 milestone 2026-06-07 11:33:11 +08:00
wangdl changed title from DOC-FULL-001 P0 | 定义 ReadingTarget / ReadingTargetType to DOC-FULL-001 P0 | ReadingMaterialRef 替代 ReadingTargetType 2026-06-07 11:45:13 +08:00
wangdl changed title from DOC-FULL-001 P0 | ReadingMaterialRef 替代 ReadingTargetType to DOC-FULL-001 P0 | ReadingMaterialRef 替代 ReadingTargetType 【status:todo】 2026-06-07 19:15:00 +08:00
Author
Owner

审查结论:document runtime 当前有文件类型识别/MaterialType/PreviewMode/DocumentInfo(基本)/Markdown解析/Text解析/ImageMeta/Search(V1 Markdown+Text)/NoteAnchor(V1)/ReadingEvent(V1)/ReadingPosition(V1)/EventBuffer(V1基础)/iOS构建/UniFFI绑定/docs。但 V2 核心模型(ReadingSession/EventV2/ActiveTimeTracker)不存在,EventBuffer 缺 ack/failed,Position 缺 camelCase+clamp,PDF/EPUB/Office 为 stub,测试覆盖不足 V2。

本 Issue: ReadingTarget/ReadingTargetType 不存在。ReadingMaterialRef 也不存在。Rust 当前只用 material_id String。

状态: status:todo
工作类型: work:new-module

## 审查结论:document runtime 当前有文件类型识别/MaterialType/PreviewMode/DocumentInfo(基本)/Markdown解析/Text解析/ImageMeta/Search(V1 Markdown+Text)/NoteAnchor(V1)/ReadingEvent(V1)/ReadingPosition(V1)/EventBuffer(V1基础)/iOS构建/UniFFI绑定/docs。但 V2 核心模型(ReadingSession/EventV2/ActiveTimeTracker)不存在,EventBuffer 缺 ack/failed,Position 缺 camelCase+clamp,PDF/EPUB/Office 为 stub,测试覆盖不足 V2。 **本 Issue**: ReadingTarget/ReadingTargetType 不存在。ReadingMaterialRef 也不存在。Rust 当前只用 material_id String。 **状态**: status:todo **工作类型**: work:new-module
Author
Owner

完成情况

交付物

crates/zx_document_core/src/reading_material.rs (40行)

模型

#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize, uniffi::Record)]
pub struct ReadingMaterialRef {
    pub material_id: String,
}

注册

  • zx_document_core/src/lib.rspub mod reading_material;
  • zx_document_ffi/src/lib.rspub use zx_document_core::reading_material::ReadingMaterialRef;

测试

test reading_material::tests::test_new ... ok
test reading_material::tests::test_serde ... ok
2 passed; 0 failed

设计决策

Rust 不区分 KnowledgeSource/TemporaryFile。readingTargetType 由 iOS 上传适配层补充。

涉及文件

文件 变更
crates/zx_document_core/src/reading_material.rs 新建
crates/zx_document_core/src/lib.rs +1 行
crates/zx_document_ffi/src/lib.rs +1 行
## 完成情况 ✅ ### 交付物 `crates/zx_document_core/src/reading_material.rs` (40行) ### 模型 ```rust #[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize, uniffi::Record)] pub struct ReadingMaterialRef { pub material_id: String, } ``` ### 注册 - `zx_document_core/src/lib.rs` — `pub mod reading_material;` - `zx_document_ffi/src/lib.rs` — `pub use zx_document_core::reading_material::ReadingMaterialRef;` ### 测试 ``` test reading_material::tests::test_new ... ok test reading_material::tests::test_serde ... ok 2 passed; 0 failed ``` ### 设计决策 Rust 不区分 KnowledgeSource/TemporaryFile。readingTargetType 由 iOS 上传适配层补充。 ### 涉及文件 | 文件 | 变更 | |------|------| | crates/zx_document_core/src/reading_material.rs | 新建 | | crates/zx_document_core/src/lib.rs | +1 行 | | crates/zx_document_ffi/src/lib.rs | +1 行 |
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/zhixi-document-runtime#50
No description provided.