wangdl
c15a3bbb9e
docs: add UniFFI UDL spec + codegen guide (DOC-FULL-030)
...
- UDL syntax: namespace, functions, dictionary, enum, error
- Type mapping table: UDL→Rust→Swift
- New type checklist: Rust→UDL→codegen→verify
- Common pitfalls: type exports, naming, version compatibility
- Current interface stats: 28 functions, 10 records, 7 enums
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 14:41:44 +08:00
wangdl
9ab9a1a052
docs: add file format support matrix (DOC-FULL-028)
...
- 9 MaterialType × 8 capabilities matrix
- MIME detection strategy (magic bytes → extension)
- Per-format details: Markdown/Text/PDF/EPUB/Image/Office
- PreviewMode mapping, search capabilities, limits
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 14:38:00 +08:00
wangdl
4badf86953
docs: add iOS FFI integration guide (DOC-FULL-027)
...
- Architecture: Swift→uniffi C-ABI→Rust FFI→core
- Type mapping: Rust struct/enum ↔ Swift Record/Enum
- Core API reference: document parsing, search, anchors, V2 sessions
- Error handling, thread safety, performance recommendations
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 14:34:59 +08:00
wangdl
5d6bf41cab
fix: close_reading_session_v2 takes timestamp, sets closed_at_ms
...
Review finding #3 : close now accepts timestamp_ms and sets closed_at_ms
automatically, removing the need for a separate set_session_closed_at_ms call.
set_session_closed_at_ms retained for override use cases.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-11 21:33:42 +08:00
wangdl
37f2d9ad7f
fix: architecture doc - ReadingMaterialRef → ReadingMaterialRefV2
...
Review finding #1 : section 3.3 still referenced old V1 type name.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-11 21:31:20 +08:00
wangdl
af2bfe7c42
docs: V1→V2 compatibility layer (DOC-FULL-034)
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-11 21:20:28 +08:00
wangdl
e73575205c
docs: iOS ReadingEvent V2 integration example (DOC-FULL-008)
...
Swift pseudocode showing full V2 event pipeline:
openSession → heartbeat → position → markedAsRead → closeSession
→ export → local queue → ack → error handling → crash recovery
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-11 21:19:42 +08:00
wangdl
7f79802e0a
docs: update V2 architecture to reflect DOC-FULL-001~006 changes
...
- ReadingMaterialRef → ReadingMaterialRefV2 (full fields, camelCase)
- ReadingSessionV2: add closed_at_ms, Interrupted/Failed statuses
- EventBuffer: add reload_stale_events_v2, buffer_size_v2
- V1/V2 diff table: add session status/recovery rows
- Verification chain: add startup recovery + V2 MaterialRef
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-11 21:10:58 +08:00
wangdl
a81a9d7e1f
fix: add reload_stale_events_v2 FFI export + update UDL with V2 types + XCFramework rebuild
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-09 19:58:07 +08:00
wangdl
b22df85891
feat: DOC-FULL Batch 1 FFI + Compat
...
#56 FFI DTO V2 exports (done in A1)
#83 V1 deprecated annotations
#84 V2→API protocol mapping doc
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-07 20:26:05 +08:00
wangdl
22276bd44e
feat: DOC-FULL-000 完整架构文档 v2
...
7 设计决策、V2 核心模型、V1→V2 迁移、API 协议映射、项目结构、验收链路
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-07 19:23:56 +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
bae6ef5726
feat: M3 completion — event buffer, FFI search/anchor, PDF strategy, quality fixes
...
Rust Core:
- events: global Mutex-buffered event queue (push/export/clear/update_position)
- image_meta: use ImageReader::format() for real decoded format instead of extension
- search: change match_start/match_end usize→u64 for FFI compatibility
- epub/pdf: module-level placeholder comments
FFI (UDL exposed, 12 total functions):
- Added: search_markdown_blocks, search_text_content, create_note_anchor
- Added: push_reading_event, update_reading_position, export_pending_events,
clear_exported_events
Docs:
- README: synced DocumentBlock model (Table.headers + HorizontalRule),
simplified dependency recommendations, removed nonexistent doc references
- docs/pdf-strategy.md: PDFKit vs PDFium vs MuPDF evaluation, 5 decisions,
platform strategy matrix, roadmap
Build:
- .cargo/config.toml: cargo xtask alias
- xtask: CLI implementation (test/build-ios/fixtures commands)
- fixtures: markdown/sample.md (9 block types), text/sample.txt
- XCFramework rebuilt, Swift bindings regenerated (1977 lines)
58 tests pass, zero warnings.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 21:23:26 +08:00
wangdl
917c7a4d2f
feat: iOS integration docs + demo app skeleton
2026-06-02 19:33:45 +08:00
wangdl
a0aaf9b713
docs: app-rust-bridge - complete FFI call protocol
2026-05-30 20:27:52 +08:00
wangdl
5f34b871ba
docs: architecture, supported-formats, event-protocol, reading-position, ios-integration
2026-05-30 20:16:51 +08:00