6 Commits

Author SHA1 Message Date
wangdl
5fb372eb58 feat: DOC-FULL #63 #64 #70 DocumentInfo + Position restore
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-07 20:31:59 +08:00
wangdl
661d21de8f fix: DOC-FULL-005 ReadingPosition camelCase + clamp
Manual Serialize for camelCase JSON output
Clamp progress 0~1 (NaN→0, <0→0, >1→1)
normalized() + progress_value() methods
Backward-compatible Deserialize with #[serde(rename)]

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-07 19:49:49 +08:00
wangdl
dd360c88e2 fix: RagChatModule 导入 AiModule,修复 AiGatewayService 未注入
AiGatewayService 使用了 @Optional() 导致不报错但始终为 null,
sendMessage 永远走 fallbackReply。现在导入 AiModule 正确注入。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-06 13:38:57 +08:00
wangdl
b3a7fe0414 test: ReadingPosition serde round-trip tests for all 6 variants 2026-05-30 21:05:34 +08:00
wangdl
8042a9d92e feat: core data models - MaterialType, DocumentBlock, ReadingPosition, ReadingEvent, NoteAnchor, SearchResult, DocumentError 2026-05-30 20:22:16 +08:00
wangdl
e76f253260 chore: init Rust workspace skeleton with crate structure 2026-05-30 18:33:50 +08:00