---
phase: 05-regression-stability
plan: 02
type: execute
wave: 2
depends_on:
- "05-01"
files_modified:
- Sources/RDReaderView/EPUBUI/RDEPUBReaderController.swift
- Sources/RDReaderView/EPUBTextRendering/RDEPUBTextBookBuilder.swift
- Sources/RDReaderView/EPUBCore/RDEPUBWebView.swift
- Sources/RDReaderView/EPUBCore/RDEPUBWebView+FixedLayout.swift
- Sources/RDReaderView/EPUBCore/RDEPUBResourceURLSchemeHandler.swift
- Sources/RDReaderView/RDURLReaderController.swift
- ReadViewDemo/ReadViewDemo/ViewController.swift
autonomous: true
requirements:
- STAB-02
user_setup: []
must_haves:
truths:
- Phase 5 is allowed to fix concrete regressions discovered by the validation matrix.
- fixes should be evidence-driven and narrow in scope.
- no new architecture should be introduced in a convergence phase.
artifacts:
- .planning/phases/05-regression-stability/05-02-SUMMARY.md
- .planning/phases/05-regression-stability/05-VERIFICATION.md
key_links:
- `RDEPUBReaderController`
- `RDEPUBTextBookBuilder`
- `RDEPUBWebView*`
- `RDURLReaderController`
---
依据样本矩阵执行回归,定位并收敛分页、位置映射、图片/块元素分页、fixed/interactive 资源加载,以及主题切换后的稳定性问题。
Purpose: 用真实样本和 reader 主流程把 Phase 1-4 的改动压测到可交付稳定水平。
Output: regression fixes where needed, plus a verification artifact showing which main flows and sample categories passed.
@.planning/ROADMAP.md
@.planning/STATE.md
@.planning/phases/05-regression-stability/05-RESEARCH.md
@.planning/phases/05-regression-stability/05-PATTERNS.md
@.planning/phases/05-regression-stability/05-VALIDATION.md
@.planning/phases/03-page-metadata-pagination/03-VERIFICATION.md
@.planning/phases/04-reader-capabilities/04-VERIFICATION.md
@Sources/RDReaderView/EPUBUI/RDEPUBReaderController.swift
@Sources/RDReaderView/EPUBTextRendering/RDEPUBTextBookBuilder.swift
@Sources/RDReaderView/EPUBCore/RDEPUBWebView.swift
@Sources/RDReaderView/EPUBCore/RDEPUBWebView+FixedLayout.swift
@Sources/RDReaderView/EPUBCore/RDEPUBResourceURLSchemeHandler.swift
@Sources/RDReaderView/RDURLReaderController.swift
@ReadViewDemo/ReadViewDemo/ViewController.swift
@ReadViewDemo/ReadViewDemo/book/
Task 1: 按矩阵执行 reader 主流程回归并修复具体问题
Sources/RDReaderView/EPUBUI/RDEPUBReaderController.swift, Sources/RDReaderView/EPUBTextRendering/RDEPUBTextBookBuilder.swift, Sources/RDReaderView/RDURLReaderController.swift, ReadViewDemo/ReadViewDemo/ViewController.swift
.planning/phases/05-regression-stability/05-VALIDATION.md, Sources/RDReaderView/EPUBUI/RDEPUBReaderController.swift, Sources/RDReaderView/RDURLReaderController.swift, ReadViewDemo/ReadViewDemo/ViewController.swift
基于样本矩阵执行 native reflowable 与 TXT 相关 reader 主流程验证,包括打开、位置恢复、搜索、highlight、TOC、theme/font repagination,并对发现的具体问题做最小修复。重点是收敛错误页、状态丢失、刷新后高亮/搜索不一致、TXT 入口回退等问题。
- key native/TXT reader flows have explicit pass evidence
- any fixes are traceable to a concrete regression found during validation
- no broad architectural refactor is introduced
rg -n "search|highlight|location|restore|theme|font|bookmark|tableOfContents" Sources/RDReaderView/EPUBUI/RDEPUBReaderController.swift Sources/RDReaderView/RDURLReaderController.swift ReadViewDemo/ReadViewDemo/ViewController.swift
native and TXT reader flows are regression-checked and stabilized.
Task 2: 回归 fixed / interactive WebKit 路径并收敛资源加载与展示问题
Sources/RDReaderView/EPUBCore/RDEPUBWebView.swift, Sources/RDReaderView/EPUBCore/RDEPUBWebView+FixedLayout.swift, Sources/RDReaderView/EPUBCore/RDEPUBResourceURLSchemeHandler.swift, ReadViewDemo/ReadViewDemo/ViewController.swift
Sources/RDReaderView/EPUBCore/RDEPUBWebView.swift, Sources/RDReaderView/EPUBCore/RDEPUBWebView+FixedLayout.swift, Sources/RDReaderView/EPUBCore/RDEPUBResourceURLSchemeHandler.swift, ReadViewDemo/ReadViewDemo/ViewController.swift
对 fixed / interactive EPUB 路径做回归验证,利用现有 `RDEPUBWebViewDebug` 与 demo/runtime evidence 检查资源加载、页面渲染、外链/内部链接与 search decoration 相关行为。若发现明显回归(白屏、加载失败、关键资源缺失、渲染未完成),做最小修复并把结果写入 verification artifact。
- fixed or interactive sample path has explicit runtime evidence
- resource loading and rendering regressions are either fixed or clearly surfaced in verification
- demo/runtime logs remain sufficient to inspect failures without adding a second validation shell
rg -n "RDEPUBWebViewDebug|load fixed|ResourceScheme|rendered|didFail|didFinish|searchPresentation" Sources/RDReaderView/EPUBCore ReadViewDemo/ReadViewDemo -S
WebKit-backed reader paths are included in the final regression closure, not treated as out-of-band.
Before declaring plan complete:
- [ ] `find ReadViewDemo/ReadViewDemo/book -maxdepth 1 -type f | sort`
- [ ] `rg -n "search|highlight|location|restore|theme|font|bookmark|tableOfContents" Sources/RDReaderView/EPUBUI/RDEPUBReaderController.swift Sources/RDReaderView/RDURLReaderController.swift ReadViewDemo/ReadViewDemo/ViewController.swift`
- [ ] `rg -n "RDEPUBWebViewDebug|load fixed|ResourceScheme|rendered|didFail|didFinish|searchPresentation" Sources/RDReaderView/EPUBCore ReadViewDemo/ReadViewDemo -S`