ReadViewSDK/.planning/phases/05-regression-stability/05-02-PLAN.md

6.0 KiB
Raw Blame History

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` After completion, create `.planning/phases/05-regression-stability/05-02-SUMMARY.md` and `.planning/phases/05-regression-stability/05-VERIFICATION.md`