shenlei
6ed3fcb071
feat: 设置面板与章节运行时联动优化
...
- 设置页打开时仅重新计算当前章节预览,关闭后触发完整补全
- 新增 preview 加载优先级,支持设置页内当前章预览
- 添加设置页防抖机制,合并连续字号/行距变更
- 支持下滑手势关闭设置页,通过 presentation delegate 通知运行时
- 重新分页时跳过导航和尺寸校验,避免状态冲突
- currentTextPageSize 线程安全优化,后台线程使用缓存尺寸
- 更新 CocoaPods 依赖
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-17 09:47:50 +08:00
shenlei
c64460988a
feat: 实现大书远距目录跳转与后台补全优化方案
...
Phase 1: 稳定性优先
- 新增 RDEPUBJumpSession 保护机制,防止远距跳转后翻页串章
- 升级页图接管条件,增加 JumpSession 保护区检查
- 窗口扩展改为基于当前权威窗口方向
Phase 2: 补全优先级重排
- 新增 RDEPUBBackgroundPriorityPolicy 策略配置
- 实现 hot/warm/cold zone 优先级排序
- 添加失败重试机制(指数退避,最多3次)
Phase 3: 分段覆盖与最终收敛
- 新增 RDEPUBBackgroundCoverageStore 分段存储
- 新增 RDEPUBPageMapReconciliationCoordinator 页图接管仲裁
- 实现 LRU 淘汰和内存警告处理
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-15 16:28:11 +08:00
shenlei
e976ceebd5
chore: add .artifacts/ to .gitignore
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-15 08:38:09 +08:00
shen
6f75b083f7
feat: EPUB 阅读器搜索、选中注释、书签 chrome 状态及大量重构优化
...
- 新增 RDEPUBReaderSearchCoordinator 与 RDEPUBSelectionState 管理搜索和选中状态
- 新增 BookmarkChromeStateTests、NavigationBackwardTests、SelectionAnnotateTests 等 UI 测试
- 新增多个边界测试 epub 样本(损坏结构、空归档、缺失文件、流式外链验证)
- 重构阅读器 chrome 状态管理,统一 tool bar 与 search bar 交互
- 优化大书分页缓存策略(RDEPUBChapterSummaryDiskCache、RDEPUBPageCountCache)
- 移除废弃的 RDEPUBLocationConverter 和 RDEPUBPageBreakPolicy
- 更新 epub-bridge.js 与 JS bridge 通信协议
- 全面更新现有 UI 测试以适配新的 helper 和状态管理
2026-06-13 22:48:56 +08:00
shen
27e9b85ddb
Merge branch 'feature' of http://192.168.21.200:8418/4v5u09Z5a4Yuc/ReadViewSDK into feature
...
# Conflicts:
# .gitignore
2026-06-13 08:02:45 +08:00
shen
cdc74e5ad9
chore: add .gitignore and remove tracked xcuserdata
...
Xcode user-specific data (xcuserdata) should not be version controlled.
2026-06-13 08:02:21 +08:00
shenlei
ed390da147
feat: unify reader chrome state management
...
- Add RDEPUBReaderUIState struct for centralized UI state model
- Refactor RDEPUBReaderChromeCoordinator with makeUIState() and applyUIState()
- Remove direct UI updates from RDEPUBReaderAnnotationCoordinator
- Consolidate updateBookmarkChrome() into updateReaderChrome()
- Update RDEPUBReaderContext, Runtime, and LocationCoordinator
- Add reader problem fix development checklist documentation
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-12 17:51:08 +08:00
shenlei
d15187b730
Reorganize docs and update reader search flows
2026-06-10 08:22:07 +08:00
shenlei
0e7c0577e3
feat: add in-reader search and restructure documentation
...
- Add RDEPUBReaderSearchBarView with animated show/hide, keyword
navigation, and match counting integrated into the reader controller
- Restructure docs: replace scattered design docs with consolidated
BUSINESS_LOGIC.md and UML_CLASS_DIAGRAMS.md; update ARCHITECTURE.md
- Add SearchTests and FanrenParseTimeTest; enhance LargeBookOnDemandTests
- Add scripts/run_ui_regression.sh and summarize_ui_results.py for
automated UI test execution and reporting
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-05 17:34:50 +08:00
shen
d20196ee34
feat: configurable chapter window & parallel metadata parsing with benchmark
...
1. Configurable chapter window size (onDemandChapterWindowSize: 3-15)
- Parameterized window radius in RDEPUBChapterRuntimeStore
- Updated RDEPUBChapterWindowCoordinator to use configurable radius
- RDEPUBChapterWindowSnapshot.from() accepts chapter array instead of fixed prev/next
- Even numbers round up to odd (4→5), min 3, max 15
2. Configurable metadata parsing concurrency (metadataParsingConcurrency)
- Default equals CPU core count
- Parallel execution via OperationQueue in paginateMetadataOnly
- Each worker creates independent builder instance
- NSLock protects result aggregation
3. Per-chapter and total wall-clock timing instrumentation
- Separated render vs I/O timing per chapter
- Summary log with wallClockMs, renderTotalMs, writeTotalMs, avgRenderMs
- Timing stored in RDEPUBReaderContext for test access
4. UI automation test infrastructure
- Added --demo-window-size, --demo-concurrency, --demo-clear-cache launch args
- DemoReaderState exposes windowSize, parseMs, parseConcurrency
- ConfigurableWindowTests: 5 test cases for window size 3/5/15
- ConcurrentParsingTests: 4 test cases for concurrency 2/4
- MetadataParseBenchmarkTests: serial vs parallel benchmark
5. Bug fixes
- Fixed page snap-back during background parsing (isUserInteracting check)
- Reduced BookPageMap refresh frequency from 16 to 32 chapters
- Moved waitForReadingInteractionToSettle outside operation loop
6. Design doc: dual-layer PageMap (estimated + precise mixed)
2026-06-03 23:38:11 +08:00
shenlei
feb05eaf87
feat: complete large-book pagination runtime and UI coverage
2026-06-03 17:47:16 +08:00
shen
584976ac5f
docs: 补充大书优化方案的 WXRead 复刻依据与缓存语义
...
添加 3.0 节记录 WXRead 逆向依据(WRReaderViewController 核心语义),
完善 pageCountCache 失效策略与 key 生成说明,对齐 WXRead 运行时行为。
2026-06-03 07:22:25 +08:00
shenlei
9801af05d3
test: 增强 UI 测试基础设施与阅读器自动化测试
...
- 新增 BookmarkTests/PageNavigationTests/TableOfContentsTests 等阅读器功能测试
- 扩展 AccessibilityIdentifiers 支持更多 UI 元素定位
- XCUIApplication+Launch: 增加启动参数支持(reset state、自定义书籍)
- ReaderAnnotationTests: 完善标注测试覆盖
- ViewController: 支持 --demo-reset-state 参数清理持久化状态
- 新增凡人修仙传测试样本
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 21:17:04 +08:00
shenlei
c76beed03c
feat(reader): 实现大书快速进入与增量分页路径
...
- PaginationCoordinator: 新增 textReflowable 快速进入路径,支持增量章节构建
与 staged 合并策略,避免整书一次性构建的主线程阻塞
- TextBookBuilder: 重构为支持单章构建与增量合并模式
- ChapterPageCounter: 优化分页计数逻辑,支持章节级分页缓存
- PageFrameFactory: 新增 CoreText 页面帧工厂,提升排版性能
- ReaderContext/ReaderRuntime: 适配增量分页状态管理
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 21:16:57 +08:00
shenlei
488350d956
docs: 大书优化方案文档与架构分析更新
...
新增大书优化实施方案(内存与主线程、快速进入阅读器)和 WXRead 内存策略分析文档,
更新架构对比分析文档,完善章节级缓存运行时、串行加载、轻量磁盘摘要等设计细节。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 21:16:50 +08:00
shen
1c6108061c
feat: improve native text selection and annotation actions
2026-06-01 21:29:41 +08:00
shenlei
70133e4e6e
refactor(reader): 重构高亮选区绘制架构,对齐 WXRead 实现方案
...
- 移除 RDEPUBSelectableTextView,改用原生 UITextView
- 新增 NSAttributedString 自定义属性(com.rdreader.highlight/underline)注入高亮
- RDEPUBTextPageRenderView 统一绘制高亮背景、文字和选区
- RDEPUBTextSelectionController 精简,选区矩形传递给 RenderView 绘制
- 新增高亮选区复刻 WXRead 实现方案文档
- UI 测试适配新架构
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 20:57:27 +08:00
shen
948004eed1
docs: 补充注释、修正过时文档、清理重复内容
...
源码注释:
- 为 ~60 个 Swift 文件补充缺失的 doc comment(file header、类型、属性、方法)
- 修正 4 处错误注释:翻页模式数量、搜索行为描述、手势识别器描述、悬空文档块
文档维护:
- 删除重复文档:WXRead/读书EPUB阅读器实现架构.md(与微信读书版完全一致)
- 合并重叠文档:阅读器规划.md → 阅读器功能开发计划.md(单一真值)
- 修正过时内容:所有文档中"四种翻页模式"→"三种",移除 horizontalCoverScroll
- 更新架构图:补齐 EPUBUI/ReaderController、Paging/、Typesetter/ 等子目录
- 更新 index.md 索引:新增开发计划和架构对比文档引用
2026-06-01 09:33:23 +08:00
shen
1efb9d172f
feat(reader): 增强阅读器功能与 UI 测试支持
...
- 新增字体选择(系统/宋体/圆体/等宽)与暗色图片柔化配置
- 文本选择改为自定义手势+操作栏(拷贝/高亮/批注)
- 添加 accessibilityIdentifier 支持自动化 UI 测试
- 新增 UITests 覆盖阅读器打开/关闭、工具栏、设置面板、批注等
- 添加 Demo 测试用 EPUB 书源(宝山辽墓材料与释读)
- 新增文档:UI 自动化测试、功能开发计划、阅读器规划
2026-05-31 23:56:54 +08:00
shen
44202357c0
refactor: split reader architecture and chrome handling
2026-05-31 21:47:54 +08:00
shen
ea21c6a831
epub问题修改
2026-05-26 23:27:52 +08:00
shen
22adb76332
fix(reader): restore tool views and close action
2026-05-26 21:41:04 +08:00
shen
736902b489
fix(reader): stabilize pagination display and page curl reuse
2026-05-26 21:37:39 +08:00
shen
83b705b9ae
修改分页问题
2026-05-26 21:08:27 +08:00
shen
0e7d952fe5
feat(epub): complete wxread parity scope
2026-05-26 09:19:37 +08:00
shen
23182e8b5a
feat(epub): align wxread css and overlay pagination behavior
2026-05-25 22:15:24 +08:00
shen
c0aac56083
docs: 同步 Doc 文档与当前代码状态
...
- 更新模块文件数(EPUBCore 31+2, EPUBTextRendering 13, ReaderView 5, EPUBUI 19)
- 更新 Swift 版本(5.10)、iOS 版本(15.0)、行数等基本信息
- 补充新增文件文档(TextAnchor, RenderRequest, WebViewDebug, AssetRepository,
TextIndexTable, TextPerformanceSampler, ChapterData, PageInteractionController 等)
- 更新 RDEPUBLocation 模型(新增 rangeAnchor 字段)
- 更新 RDEPUBReaderConfiguration(13 项配置)、Delegate 签名、Persistence(8 方法)
- 修正 RDURLReaderController 归属(ReaderView → EPUBUI)
- 移除过时的 LegacyRDReaderController 引用
- 标记 SS→RD 命名迁移为已完成
2026-05-25 20:31:10 +08:00
shen
54798ba578
refactor: 添加中文注释 + 优化模块结构
...
- 给全部 78 个 Swift 源文件添加详细的中文注释(文件级、类级、方法级)
- 删除 LegacyRDReaderController/ 死代码目录(16 文件 4592 行)
- 根目录翻页容器文件移入 ReaderView/ 目录
- Resources/ 移入 EPUBCore/Resources/(与使用者归属一致)
- RDEPUBTextIndexTable.swift 移入 EPUBTextRendering/(消除反向依赖)
- RDURLReaderController.swift 移入 EPUBUI/(入口控制器归入 UI 层)
- 更新 podspec 资源路径
2026-05-25 10:19:14 +08:00
shen
5af90c1148
文档名更新
2026-05-24 15:37:26 +08:00
shen
2a94921e88
feat(wxread): align pagination, rendering, and docs
2026-05-24 15:36:01 +08:00
shen
a318c0e3d0
feat(epub): align text rendering with WXRead
2026-05-24 09:56:32 +08:00
shen
5125b8de51
docs(08): research pagination cache, quality, and performance sampling
2026-05-23 22:35:16 +08:00
shen
22bb86959c
docs(08): create phase plans for image display fix and pagination cache
...
3 plans covering QUAL-01 through QUAL-04:
- 08-01: pagination cache key + wiring into rendering pipeline
- 08-02: unified 1080x1920 max-size for all images, footnote width-only fix
- 08-03: pagination timing instrumentation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 18:43:41 +08:00
shen
86e6922f7b
docs(08): create phase plan — image display fix, cache stub, perf sampling
...
Three plans for Phase 8 (分页质量、缓存与性能采样):
- 08-01: Pagination cache key struct and manager stub (QUAL-01)
- 08-02: Unified 1080x1920 max-size constraint for all images, footnote width-only sizing (QUAL-02, QUAL-03, QUAL-04)
- 08-03: Pagination timing instrumentation with [EPUB][Perf] diagnostic output (QUAL-04)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 18:30:56 +08:00
shen
26afb9f7dc
docs(08): research image display fix for pagination quality
...
Research Phase 8 plan 08-02: image display fix in the native text
rendering path. Documents the unified max-size approach (1080x1920),
footnote width-only sizing, and three entry points that need changes.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 18:27:08 +08:00
shen
3e2669d8a8
目前阅读稳定版本,需要修改图片阅读方式
2026-05-23 15:50:53 +08:00
shen
d7339aa255
feat(07): close native text pagination semantics loop
2026-05-22 20:39:26 +08:00
shen
21c8bbb23a
docs(07): create phase plan
2026-05-22 20:04:47 +08:00
shen
46fa9fceff
docs(06): create phase plan
2026-05-22 14:20:33 +08:00
shen
7b5c77cedd
docs(06): capture phase context
2026-05-22 14:10:58 +08:00
shen
bd4978266a
docs: start milestone v1.1 WXRead 深化对齐
2026-05-22 13:59:26 +08:00
shen
1498e83ace
chore: archive v1.0 milestone
2026-05-22 13:52:47 +08:00
shen
5698aeaead
chore: checkpoint current milestone work
2026-05-22 13:28:53 +08:00
shen
6d196d64e5
docs(phase-01): add planning artifacts
2026-05-21 22:00:41 +08:00
shen
0870996ed0
docs(phase-01): complete phase execution
2026-05-21 22:00:21 +08:00
shen
6d7f02debd
docs(01-02): complete refactor entry strategy plan
2026-05-21 21:58:52 +08:00
shen
cc2573552c
docs(01-01): complete current engine audit plan
2026-05-21 21:56:54 +08:00
shen
743988a78b
docs: add no-page-turning-change constraint
2026-05-21 21:13:13 +08:00
shen
43c3381e9b
docs: update planning for direct reflowable engine rewrite
2026-05-21 21:08:21 +08:00
shen
c95d80e257
docs: add WXRead reflowable renderer design
2026-05-21 20:44:30 +08:00