实现分页阶段0-10分页、懒加载、虚拟锚点与完整系统回归 - #46
Draft
7015725 wants to merge 29 commits into
Draft
Conversation
7015725
force-pushed
the
agent/add-pagination-lazy-prefetch-20260807
branch
from
August 6, 2026 21:21
2be5d0b to
f097cc1
Compare
7015725
force-pushed
the
agent/add-pagination-lazy-prefetch-20260807
branch
from
August 7, 2026 00:16
5593cfe to
54275f6
Compare
7015725
force-pushed
the
agent/add-pagination-lazy-prefetch-20260807
branch
from
August 7, 2026 01:34
98cb208 to
48d4193
Compare
7015725
force-pushed
the
agent/add-pagination-lazy-prefetch-20260807
branch
from
August 7, 2026 01:40
48d4193 to
d6d4f6f
Compare
github-actions
Bot
deleted the
agent/add-pagination-lazy-prefetch-20260807
branch
August 9, 2026 10:04
github-actions
Bot
deleted the branch
agent/rebuild-performance-from-main-20260806
August 9, 2026 10:05
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
范围
当前 PR 包含 ClipHub 首页分页方案 Stage 0–10,现已完成实现与真机回归;继续保持 Draft,等待合并决策。
已完成且真机通过
Stage 8 真机返回
ok = true:180 条初始数据中 108 条脱水;AJAX 追加到 362 条后 328 条脱水;重新水合、标签恢复、缺失 ID 修正、锚点、AJAX 与数字分页回归全部通过。Stage 9 已实现且真机通过
版本:
moduleSetVersion = 20260807.13Filter.MODULE_VERSION = 48PAGINATION_STAGE = 9实现内容:
anchorItemId。测试入口:
ClipHub_分页阶段9数据变化与操作回归测试入口.txtClipHubPaginationStage9MutationStage 9 v4 真机返回
ok = true:新内容待处理和回到最新正确;删除、撤销、编辑、置顶、标签、搜索与排序后的锚点误差均为0px;数字分页映射到预期第 3 页,切回 AJAX 后锚点不变;所有错误字段为空,原设置已恢复。Stage 9 v2 修正
v1 置顶排序时查询和分页结果正常,但重建过程中旧 ScrollView 再次捕获锚点,把待恢复 ID 从
163覆盖为187。v2 在统一变化刷新期间锁定首次捕获的anchorItemId + anchorOffsetPx,首次恢复完成后再解锁,并使用独立生产与测试分片避免旧版本资源交叉校验。Stage 9 v3 修正
v2 真机已通过删除、撤销、编辑、置顶、标签、筛选、搜索、排序、数字分页映射与 AJAX 恢复。唯一失败项为回到最新后旧窗口异步回调重新写入已清除锚点。v3 在
scrollToTopPending期间禁止捕获锚点,并在测试中等待虚拟更新结束后额外延迟复核。Stage 9 v4 修正
v3 真机结果中的新增、回到最新、删除/撤销、编辑、置顶、标签、搜索、排序、数字分页与 AJAX 回归均已实际通过;
ok = false来自测试在锚点恢复队列尚未完全执行时过早采样。v4 仅调整测试等待逻辑:变化派发后等待布局与锚点稳定,再校验同一 ID、偏移误差、调度状态与位置保持标记;生产模块和版本不变。Stage 10 完整系统回归
Stage 10 不修改生产模块,新增测试入口
ClipHub_分页阶段10完整系统回归测试入口.txt,测试入口版本为 7,隔离运行目录为ClipHubPaginationStage10SystemRegression。自动覆盖:20 轮暖启动、20 轮快速显示/关闭、普通隐藏恢复锚点与面板缓存、Filter IME 显示和布局恢复。
真实交互覆盖:系统侧滑返回、外部点击、窗口拖动、右下角缩放、横竖屏切换、Home、最近任务,以及最终完全停止、数据库关闭、运行锁释放和隔离目录清理。测试通过顶部非触摸提示条逐步引导,每个真实动作限时 35 秒。
Stage 10 v2 修正
v1 真机自动回归全部通过:20 轮暖启动、20 轮快速显示/关闭及普通隐藏恢复均正常,清理、设置恢复和完全停止也成功。失败发生在创建顶部交互提示条时,测试的主线程快速路径把
DefaultDispatcher-worker-8误判为主线程;生产模块未失败。v2 仅修改隔离测试:以主 Looper 所属线程 ID 判断 Android 主线程,并加入
lastCheckpoint阶段定位。生产版本继续保持.13 / Filter 48 / Stage 9,冻结模块与正式入口不变。Stage 10 v3 修正
v2 真机再次确认全部自动回归、最终停止、设置恢复和隔离清理通过,提示条已正常创建;失败点推进至
interactive_ime。测试工作线程调用Filter.performSearchToggleClick()与Filter.handleBack()时,模块内部 Looper 包装对象快速判断误走直接调用路径。v3 仅在隔离测试中把展开搜索和关闭搜索动作显式投递到真实 Android 主线程;等待与状态采样保留在工作线程,避免阻塞主线程。生产模块、正式入口和版本不变。
Stage 10 v4 修正
v3 真机已完成搜索展开、输入焦点、IME 避让应用和关闭恢复,
lastInsetPx = 1093,所有相关错误字段为空。唯一失败是AtomicReference返回java.lang.Boolean(true)后,测试使用=== true比较,误记为toggleWorked = false。v4 仅规范化该返回值后再判断,不改变测试执行路径,也不修改生产模块、正式入口和版本。
Stage 10 v5 修正
v4 真机已通过 IME、系统侧滑返回和浮窗外部点击,失败点推进至真实拖动。拖动热区位于浮窗最顶部正中间约
86dp × 24dp的透明区域,且必须先保持超过长按阈值;提前移动会取消激活,旧提示不够明确。v5 显示按当前窗口几何计算的屏幕目标坐标,明确要求按住约 1 秒、感觉震动后再拖动;失败时额外返回
dragPending、dragActivateCount、移动计数与前后几何。生产窗口代码、正式入口和版本不变。Stage 10 v6 修正
v5 真机已通过真实拖动、右下角缩放、横竖屏切换和 Home,唯一中断点为最近任务。Home 关闭 UI 后任务监听会清空基线;旧测试重新显示浮窗后立即允许执行手势,可能在下一次约
180ms采样前进入最近任务,使最近任务界面被误收为新基线。v6 等待监听器恢复
running=true且取得非空baselinePackage,显示“准备完成”后才允许执行最近任务手势;失败时返回监听启停次数、前后包名、ActivityType、TaskId 和原因字段。生产模块、正式入口和版本不变。Stage 10 v7 最近任务手工项跳过
真机确认 ClipHub 浮窗覆盖桌面时无法完成底部上划进入最近任务。按用户要求,v7 不再重新显示浮窗或等待该手势,固定记录
skipped = true、skipReason = user_confirmed_coloros_recents_gesture_blocked和ok = true,随后直接完成停止、设置恢复与隔离清理。此项属于明确跳过,不表示最近任务关闭能力已经通过;Stage 10 其余自动和真实交互项目仍保持原通过条件。生产模块、正式入口和版本不变。
Stage 10 v7 真机 PASS
Android 14 / ColorOS / ShortX 返回
ok = true、lastCheckpoint = completed、error = null。20 轮暖启动、20 轮快速关闭、普通隐藏锚点恢复、IME、系统侧滑返回、外部点击、真实拖动、真实缩放、横竖屏切换、Home、最终停止和隔离清理全部通过。数据库已关闭、运行锁已释放、UI 已清除、原分页设置已恢复。最近任务手工项按用户要求记录为
skipped = true,属于明确未验证例外,不计作该能力通过。结论:Stage 10 PASS(带最近任务跳过边界)。冻结边界
src/ch_06_repository.js不变。src/ch_08_window.js不变:4ccff8067656ae51602290c884081795ec0f65easrc/ch_13_settings.js不变:7826055348bfce1682e6191a29dd34cdc1bdf2f3src/ch_15_app.js不变:ff60665e8ddd34bd96fa276cc7b632ca73a56845ch_16,模块数量保持 15。main未直接修改。提交边界
d2bce1d4ec49039a63fc94c8120e3b16c53213046c4b5b9f58bb3a8e1e7ff415922ad8db49d3c3c9b2c8ec8b25d99def43be51b50a667dbb175f9b1800195b5ec8e4e6c16ba7ed88e2e36d6ca96dfedb82c56a992c8e37ff870e7f015af3dd5e5f49b8525399799069c7de12a80695f4ff98d17fbb1ac8440a36e4a17c079557bb46b2b3616080c197730aaf7d9a0c647b0ca21f79b5c97afdacab03ff8115f1cc0a4cb1eed668c770c2d8f247f2e5fea765717658dc679f2cbe8075a8d373fd7f9bb4624020e5d306d2575a2c27ef5ffc9478bc7464b429276318c3107b45599218e51c35bf22f2563fcc8dd507b2437babbb47b370263f4d9c5283c00d92327543929aeb295ed4b5b9bdd247947736c7474a9e5fd0f00e402f00264d9d9fe1d13b73e491027fb9266ce9b2cbdd9fde2372b3c7c929d67cd897c319e5e52d98下一步:分页专项 Stage 0–10 已收口;由用户决定何时将 PR 转为 Ready 或合并。